找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3336|回復(fù): 2
收起左側(cè)

AT89C51單片機(jī)為核心的簡單電子顯示時鐘設(shè)計(jì)資料

[復(fù)制鏈接]
ID:431392 發(fā)表于 2018-11-22 19:22 | 顯示全部樓層 |閱讀模式
AT89C51單片機(jī)為核心的簡單電子顯示時鐘,有原程序和電路圖

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.jpg 0.png

單片機(jī)源程序如下:

  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. }

復(fù)制代碼

所有資料51hei提供下載:
AT89C51單片機(jī)為核心的簡單電子顯示時鐘.rar (178.94 KB, 下載次數(shù): 30)


回復(fù)

使用道具 舉報

ID:447218 發(fā)表于 2018-12-16 14:06 | 顯示全部樓層
6666有幫助
回復(fù)

使用道具 舉報

ID:909037 發(fā)表于 2021-4-26 21:00 | 顯示全部樓層
請問如何進(jìn)行時間的設(shè)置呢?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表