找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机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)


评分

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

查看全部评分

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

使用道具 举报

沙发
ID:458623 发表于 2018-12-31 16:48 | 只看该作者
我爱你

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

51hei.png
回复

使用道具 举报

板凳
ID:723510 发表于 2020-5-4 16:59 | 只看该作者
大佬  跪了跪了  牛皮
回复

使用道具 举报

地板
ID:854794 发表于 2020-12-6 15:48 | 只看该作者
Thanks♪(・ω・)ノ

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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