找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10173|回复: 4
收起左侧

51单片机定时器程序超简单实现数码管24小时时钟显示

[复制链接]
ID:557357 发表于 2019-7-28 21:15 | 显示全部楼层 |阅读模式
用74hc573实现数码管24小时时钟显示,对于74hc573芯片如果不了解可以看看文件里面的手册,不多说先上代码
  1. /*以下程序是根据74hc573芯片的锁存器
  2. **原理来写的
  3. **若有不懂的地方可以看看文件夹的芯片
  4. **手册或者百度*/

  5. #include<reg52.h>
  6. typedef unsigned char u8;
  7. typedef unsigned int u16;
  8. //串口定义没什么好说的
  9. sbit LSA = P2^2;
  10. sbit LSB = P2^3;
  11. sbit LSC = P2^4;

  12. u8 code mabiao[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  13.                                                 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~f的码表,不过这里我们就用0~9
  14. /*时 分 初值定义*/
  15. u16 sex = 0,s = 56,min = 59,h = 23;//sex中断进入次数控制变量,s,min,h是秒,分,时。
  16. u8 shu[8];                                                                 //控制扫描数组得到码表值
  17. void Int0(){
  18.         TMOD |= 0x01; //定时器方式1
  19.         TH0 = 0xFC;    //1ms定时
  20.         TL0 = 0x18;
  21.         TR0 = 1;
  22.         ET0 = 1;
  23.         EA = 1;
  24. }
  25. void delay10us(u16 i)   //10us延时
  26. {
  27.     while(i--);
  28. }




  29. void shaomiao(){                                //数码管扫描
  30.         u8 i;
  31.         for(i = 0;i <8;i++){
  32.                 switch(i){
  33.                         case 0:
  34.                                 LSA = 0; LSB = 0; LSC = 0; break;
  35.                         case 1:
  36.                                 LSA = 1; LSB = 0; LSC = 0; break;
  37.                         case 2:
  38.                                 LSA = 0; LSB = 1; LSC = 0; break;
  39.                         case 3:
  40.                                 LSA = 1; LSB = 1; LSC = 0; break;
  41.                         case 4:
  42.                                 LSA = 0; LSB = 0; LSC = 1; break;
  43.                         case 5:
  44.                                 LSA = 1; LSB = 0; LSC = 1; break;
  45.                         case 6:
  46.                                 LSA = 0; LSB = 1; LSC = 1; break;
  47.                         case 7:
  48.                                 LSA = 1; LSB = 1; LSC = 1; break;

  49.                 }
  50.                         if(i == 2||i==5){                                //这句主要控制如时间:14-12-56(14点12分56秒)中间的“-”
  51.                                 P0 = 0x40;
  52.                                 delay10us(1);
  53.                                 P0 = 0x00;
  54.                         }
  55.                         else if(i != 2||i!=5){                //扫描使数码管得值
  56.                                 P0 = mabiao[shu[i]];
  57.                                 delay10us(1);
  58.                                 P0 = 0x00;
  59.                         }
  60.                                 
  61.                
  62.         }

  63. }

  64. void main(){
  65.         Int0();
  66.         while(1){
  67.                 shaomiao();
  68.         
  69.         }
  70.                
  71. }

  72. void TimeInt0() interrupt 1{
  73.         TH0 = 0xfc;
  74.         TL0 = 0x18;
  75.         sex++;
  76.         
  77.         if(sex == 1000){                // 中断1000次即1s        
  78.                 sex = 0;
  79.                 s++;
  80.                 if(s == 60){                //60s到了归零
  81.                         s = 0;
  82.                         min++;
  83.                 }
  84.         }
  85.         if(min == 60){                        //60min到了归零
  86.                 min = 0;
  87.                 h++;               
  88.                 if(h == 24)                        //24h到了归零(24小时格式)
  89.                         h = 0;
  90.         }
  91.                 shu[0] = s % 10;                //秒的计算
  92.                 shu[1] = s / 10;
  93.                 shu[3] = min % 10;        //分的计算
  94.                 shu[4] = min / 10;
  95.                 shu[6] = h % 10;                //小时的计算
  96.                 shu[7] = h / 10;
  97.                

  98.         }

复制代码
IMG_20190728_210504.jpg
](V50V0E`MD241ML%4]P~QC.png

数码管时钟.rar

499.32 KB, 下载次数: 67, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:590348 发表于 2019-10-1 14:06 | 显示全部楼层
厉害,很强
回复

使用道具 举报

ID:618737 发表于 2019-10-2 10:40 | 显示全部楼层
厉害,厉害,佩服。
回复

使用道具 举报

ID:632628 发表于 2019-11-27 23:53 | 显示全部楼层
很详细呀,学习了
回复

使用道具 举报

ID:821778 发表于 2020-9-22 11:20 来自手机 | 显示全部楼层
楼主,如果要加入暂停该怎么加入代码?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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