找回密码
 立即注册

QQ登录

只需一步,快速开始

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

1602液晶显示记一日的计时 单片机源程序

[复制链接]
跳转到指定楼层
楼主
1602液晶显示记一日的计时


单片机源程序如下:
  1. #include <REGX52.H>
  2. #include <INTRINS.H>
  3. void delayms(unsigned char xms)
  4. {
  5.         unsigned char i,j;
  6.         for(i=xms;i>0;i--)
  7.                 for(j=110;j>0;j--);
  8. }

  9. void showTime();
  10. void timer0(void );

  11. unsigned char COUNT = 0;
  12. unsigned char h1 = 2;
  13. unsigned char h2 = 3;
  14. unsigned char m1 = 5;
  15. unsigned char m2 = 9;
  16. unsigned char s1 = 5;
  17. unsigned char s2 = 0;

  18. unsigned char code table[]={
  19. "0123456789"};

  20. #include <1602.H>
  21. #include <1302.H>

  22. void main()
  23. {

  24.         Lcd_Int();
  25.        
  26.         TMOD = 0x01;
  27.         TL0 = (65536 - 50000)%256;
  28.         TH0 = (65536 - 50000)/256;
  29.         IE = 0x00;
  30.         TR0 = 1;
  31.         COUNT = 0x14;
  32.        
  33.         while(1)
  34.         {
  35.                 if (TF0) {
  36.                         timer0();
  37.                         TF0 = 0;
  38.                 }
  39.         }
  40. }

  41. void jishi() {
  42.         writelcd(7,2,table[h1]);
  43.                         writelcd(8,2,table[h2]);                       
  44.                         writelcd(10,2,table[m1]);
  45.                         writelcd(11,2,table[m2]);                       
  46.                         writelcd(13,2,table[s1]);
  47.                         writelcd(14,2,table[s2]);
  48.                         writelcd(9,2,' ');writelcd(12,2,' ');
  49.                         writelcd(9,2,':');writelcd(12,2,':');
  50. }

  51. void timer0(void ) {
  52.         TL0 = (65536 - 50000)%256;
  53.         TH0 = (65536 - 50000)/256;
  54.         switch(COUNT) {
  55.         case 0:{
  56.                 //showTime();
  57.                 s2 ++;
  58.                
  59.                 //秒
  60.                 if (s2 > 9) {
  61.                 s2=0;
  62.                 s1++;
  63.         }
  64.         if (s1 > 5) {
  65.         s1 = 0;
  66.                 m2++;
  67. }
  68. //分
  69. if (m2 > 9) {
  70.                 m2=0;
  71.                 m1++;
  72.         }
  73.         if (m1 > 5) {
  74.         m1 = 0;
  75.                 h2++;
  76. }

  77. //时
  78. if (h2 > 9)
  79.         h1++;

  80. if ( h2 >3 && h1 == 2 ) {
  81.                 h2=0;
  82.                 h1=0;
  83.         }
  84.         if (h1 > 2) {
  85.         h1 = 0;
  86.        
  87. }
  88. ……………………

  89. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
1602液晶显示记一日的计时.zip (65.29 KB, 下载次数: 9)


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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