标题: 单片机8位动态数码管的24小时制电子表仿真+程序 [打印本页]

作者: ponuyy    时间: 2018-10-12 20:27
标题: 单片机8位动态数码管的24小时制电子表仿真+程序
  基于80C51单片机的电子时钟  8位动态数码管显示时分秒

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. //==================================================//
  2. //==          电子信息科学与技术(2)班           ==//
  3. //==                                              ==//
  4. //==               八位数码管电子时钟             ==//
  5. //==   16214088       陈朝      24小时制电子表    ==//
  6. //==                                              ==//
  7. //==================================================//
  8. #include<reg51.h>
  9. #include"delay.h"
  10. unsigned char code LED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //定义共阴极LED7段显示码

  11. unsigned char dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};   //定义数码管位码
  12. unsigned char hour=23,min=58,sec=52;                 //定义初始时间为23时58分52秒
  13. unsigned char tcount;                           //定义50ms计数变量

  14. void display(unsigned char,unsigned char,unsigned char);

  15. void delay(unsigned int time)//定义延时函数
  16.         {
  17.                 unsigned int j = 0;
  18.                 for(;time>0;time--)
  19.                         for(j=0;j<125;j++);
  20.         }

  21. void main(void)
  22. {
  23.          TMOD=0x01;                  //定时/计数器0设为方式1
  24.          TH0=(65536-50000)/256;      //定时50ms初值的高八位送入TH0
  25.          TL0=(65536-50000)%256;      //定时50ms初值的低八位送入TL0
  26.          EA=1;                       //开CPU中断
  27.          ET0=1;                      //开定时/计数器0的中断
  28.          TR0=1;                      //启动定时器0
  29.         while(1)
  30.         {
  31.              display(hour,min,sec);
  32.         }
  33. }


  34. void display(unsigned char hour,unsigned char min,unsigned sec)
  35. {
  36.        
  37.         P0=LED[hour/10];            //小时的十位送数码管1位显示
  38.         P2=0xfe;
  39.         delay(1);
  40.         P2=0xff;
  41.        
  42.         P0=LED[hour%10];            //小时的个位送数码管2位显示
  43.         P2=0xfd;
  44.         delay(1);
  45.         P2=0xff;
  46.        
  47.         P0=LED[10];                 //横杠送数码管3位显示
  48.         P2=0xfb;
  49.         delay(1);
  50.         P2=0xff;
  51.        
  52.         P0=LED[min/10];             //分的十位送数码管4位显示
  53.         P2=0xf7;
  54.         delay(1);
  55.         P2=0xff;
  56.        
  57.         P0=LED[min%10];             //分的个位送数码管5位显示
  58.         P2=0xef;
  59.         delay(1);
  60.         P2=0xff;
  61.        
  62.         P0=LED[10];                 //横杠送数码管6位显示
  63.         P2=0xdf;
  64.         delay(1);
  65.         P2=0xff;
  66.        
  67.         P0=LED[sec/10];             //秒的十位送数码管7位显示
  68.         P2=0xbf;
  69.         delay(1);
  70.         P2=0xff;
  71.        
  72.         P0=LED[sec%10];             //秒的个位送数码管8位显示
  73.         P2=0x7f;
  74.         delay(1);
  75.         P2=0xff;
  76. }



  77. void T0_time() interrupt 3    //定时器中断处理函数
  78. {
  79.         TH0=(65536-50000)/256;      //重新将定时50ms初值的高八位送TH0
  80.         TL0=(65536-50000)%256;      //重新将定时50ms初值的低八位送TH0
  81.         tcount++;                   //定时50ms时间到加1
  82.         if(tcount==20)              //判断是否到1s
  83.         {
  84.         tcount=0;                   //到1s,变量清0
  85.         sec++;                      //秒计数变量加1
  86.         if(sec==60)                 //判断秒是否到60
  87.         {
  88.         sec=0;                      //到60,秒变量清0
  89.     min++;                    //分计数变量加1
  90.         if(min==60)                 //判断分是否到60
  91.         {
  92.         min=0;                      //到60,分变量清0
  93.         hour++;                     //小时计数变量加1
  94.         if(hour==24)                //判断小时是否到24
  95.         hour=0;                     //到24,小时清0
  96.         }
  97. }
  98. }
  99. }
  100.                                        
复制代码

所有资料51hei提供下载:
8位数码管24小时制电子表.zip (94.15 KB, 下载次数: 95)



作者: lj839983357    时间: 2018-12-31 16:48
我爱你

51hei.png (21.64 KB, 下载次数: 142)

51hei.png

作者: 白鹅不    时间: 2020-5-4 16:59
大佬  跪了跪了  牛皮
作者: kfd    时间: 2020-12-6 15:48
Thanks♪(・ω・)ノ






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1