找回密码
 立即注册

QQ登录

只需一步,快速开始

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

AT89C51单片机为核心的简单电子显示时钟设计资料

[复制链接]
跳转到指定楼层
楼主
AT89C51单片机为核心的简单电子显示时钟,有原程序和电路图

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


单片机源程序如下:

  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code table[]="   hh:mm:ss!  ";
  5. uchar code table1[]="WWW.BAIDU.COM";
  6. sbit E=P3^4;       
  7. sbit RS=P3^5;       
  8. sbit dula=P2^6;               
  9. sbit wela=P2^7;               
  10. uchar num ,ssf;
  11.         int time=0;
  12.         unsigned char hh=12;
  13.         unsigned char mm=22;
  14.         unsigned char ss=33;
  15. void delay(uint z)
  16. {
  17. while(z--);
  18. }
  19. void write_com(uchar com)
  20. {
  21.         RS=0;
  22.         P0=com;
  23.         delay(5);
  24.         E=1;
  25.         delay(5);
  26.         E=0;
  27. }
  28. void write_data(uchar date)
  29. {
  30.         RS=1;
  31.         P0=date;
  32.         delay(5);
  33.         E=1;
  34.         delay(5);
  35.         E=0;
  36. }
  37. void init()
  38. {
  39.         dula=0;
  40.         wela=0;
  41.         E=0;
  42.         write_com(0x38);
  43.         write_com(0x0c);
  44.         write_com(0x06);
  45.         write_com(0x01);



  46. }
  47. void Timer0Init(void)               
  48. {
  49.   
  50.         TMOD &= 0xF0;               
  51.         TMOD |= 0x01;               
  52.         TL0 = 0x18;               
  53.         TH0 = 0xFC;               
  54.         TF0 = 0;               
  55.         TR0 = 1;
  56.                 EA=1;
  57.                 ET0=1;
  58. }

  59. void main()
  60. {

  61.         init();
  62.         Timer0Init();
  63.         write_com(0x80);
  64.         for(num=0;num<11;num++)
  65.         {
  66.                 write_data(table[num]);
  67.                 delay(5);
  68.         }

  69.          write_com(0x80);
  70.         while(1)
  71.         {

  72.         if(ssf==1)
  73.         { ssf=0;
  74.         write_com(0x80+3);
  75.         write_data((hh/10)+'0');
  76.         write_data((hh%10)+'0');
  77.         write_com(0x80+6);
  78.         write_data((mm/10)+'0');
  79.         write_data((mm%10)+'0');
  80.         write_com(0x80+9);
  81.         write_data((ss/10)+'0');
  82.         write_data((ss%10)+'0');
  83.        
  84.         }

  85.         }
  86. }

  87. time0()        interrupt  1
  88. {
  89.         TL0 = 0x18;       
  90.         TH0 = 0xFC;               
  91. time++;
  92. if(time==1000)
  93. { time=0; ssf=1;
  94.    ss++;
  95.    if(ss==60)
  96.    {  ss=0;
  97.       mm++;
  98.           if(mm==60)
  99.           {         mm=0;
  100.             hh++;
  101.                 if(hh==24)
  102.                 { hh=0;
  103.                 }
  104.           
  105.           }
  106.    
  107.    }
  108. }

  109. }

复制代码

所有资料51hei提供下载:
AT89C51单片机为核心的简单电子显示时钟.rar (178.94 KB, 下载次数: 30)


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

使用道具 举报

沙发
ID:447218 发表于 2018-12-16 14:06 | 只看该作者
6666有帮助
回复

使用道具 举报

板凳
ID:909037 发表于 2021-4-26 21:00 | 只看该作者
请问如何进行时间的设置呢?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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