找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2098|回复: 2
打印 上一主题 下一主题
收起左侧

基于51单片机的倒计时程序设计

[复制链接]
跳转到指定楼层
楼主
基于51单片机  led 12864的显示器  显示当前时间 和 距离高考小白第一个项目  望大神指点  多多指教
  1. #include <reg51.h>
  2. #include "lcd12864.h"
  3. #include "string.h"
  4. #include "stdio.h"
  5. #include "uart.h"
  6. #include "main.h"
  7. #include "ds1302.h"
  8. unsigned int i = 0;
  9. //当前时间
  10. extern uint         now_year,now_month,now_date,now_hour,now_min,now_sec;
  11. //倒计时时间
  12. extern int        days;
  13. extern int        hours;
  14. extern int        mins;
  15. extern int        secs;
  16. uchar temp[10] = {0};
  17. //获取个位数并转换为字符类型
  18. uchar get_ge(uint c){
  19.         uchar ge = c%10;
  20.         ge = ge+48;
  21.         return ge;
  22. }
  23. //获取百位数并转换为字符类型
  24. uchar get_shi(uint c){
  25.         uchar ge = c%100/10;
  26.         ge = ge+48;
  27.         return ge;
  28. }
  29. //获取十位数并转换为字符类型
  30. uchar get_bai(uint c){
  31.         uchar ge = c%1000/100;
  32.         ge = ge+48;
  33.         return ge;
  34. }


  35. void to_str(uint c,uchar* content,uint length){
  36.         
  37.         if(length == 1){
  38.                 *content = ' ';
  39.                 *(content+1) = get_ge(c);
  40.                 *(content+2) = '\0';
  41.         }
  42.         else if(length == 2){
  43.                 *(content) = get_shi(c);
  44.                 *(content+1) = get_ge(c);
  45.                 *(content+2) = '\0';
  46.         }
  47.         else if(length == 3){
  48.                 *content = ' ';
  49.                 *(content+1) = get_bai(c);
  50.                 *(content+2) = get_shi(c);
  51.                 *(content+3) = get_ge(c);
  52.                 *(content+4) = '\0';
  53.         }
  54. }
  55. void add_str(char* p){
  56.         while(*p !='\0')
  57.         {
  58.                 LCD12864_WriteData(*p);
  59.                 p++;        
  60.         }
  61. }
  62. //刷新显示界面
  63. void refresh(){
  64.         //LCD12864_ClearScreen();//清屏有BUG
  65.         LCD12864_SetWindow(0, 0);
  66.         add_str("当前时间");
  67.         to_str(now_hour,temp,2);
  68.         add_str(temp);
  69.         add_str("时");
  70.         to_str(now_min,temp,2);
  71.         add_str(temp);
  72.         add_str("分");
  73.         LCD12864_SetWindow(1,0);
  74.         add_str("  距离高考还有  ");
  75.         LCD12864_SetWindow(2,0);
  76.         if(days < 10){
  77.                 to_str(days,temp,1);
  78.         }else if(days >= 10 && days < 100){
  79.                 to_str(days,temp,2);
  80.         }else{
  81.                 to_str(days,temp,3);
  82.         }
  83.         to_str(days,temp,3);
  84.         add_str(temp);
  85.         add_str("天");
  86.         LCD12864_SetWindow(2,3);
  87.         to_str(hours,temp,2);
  88.         add_str(temp);
  89.         add_str("时");
  90.         to_str(mins,temp,2);
  91.         add_str(temp);
  92.         add_str("分");
  93.         to_str(secs,temp,2);
  94.         add_str(temp);
  95.         LCD12864_SetWindow(3,0);
  96.          add_str("你还年轻你怕什么");
  97. //        if (days==127&& now_hour ==8&& now_min <=5){
  98. //                        TR0=0;
  99. //                LCD12864_SetWindow(0, 0);
  100. //                 add_str("撸起袖子加油干  ");
  101. //                LCD12864_SetWindow(1, 0);
  102. //                 add_str("                ");
  103. //                LCD12864_SetWindow(2, 0);
  104. //                add_str("                ");
  105. //                LCD12864_SetWindow(3, 0);
  106. //                 add_str("          谢显山");
  107. //        }
  108. ////        if ( days ==138&&now_hour ==15 && now_min <=5){
  109. //                        TR0=0;
  110. //                LCD12864_SetWindow(0, 0);
  111. //                 add_str("人生最大的痛苦是");
  112. //                LCD12864_SetWindow(1, 0);
  113. //                 add_str("梦醒了无路可走  ");
  114. //                LCD12864_SetWindow(2, 0);
  115. //                add_str("  不怕万人阻挡  ");
  116. //                LCD12864_SetWindow(3, 0);
  117. //                 add_str("  只怕自己投降  ");
  118. //        }
  119. //        
复制代码

时间  和励志标语  可在基础上进行更改

TIM截图20190703104122.png (102.52 KB, 下载次数: 16)

TIM截图20190703104122.png

倒计时.7z

49.74 KB, 下载次数: 14, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:586359 发表于 2019-7-31 10:00 | 只看该作者
这里有用到定时器吗?为什么会有TR0呢?
回复

使用道具 举报

板凳
ID:393625 发表于 2019-8-14 10:17 | 只看该作者
请问有电路图参考一下呢吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表