單片機論壇

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 227|回復: 2
打印 上一主題 下一主題
收起左側

曼联队歌中文歌词: 基于8段Led顯示器和DS1302的時鐘單片機源程序+Proteus仿真

[復制鏈接]
使用51單片機,ds1302 和 8段LED顯示屏制作的電子時鐘,利用proteus制作的過程,代碼和工程文件全在。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include <REGX52.H>
  2. #include <1302.h>

  3. #define ge P2
  4. #define shi P0

  5. bit s_flag,flag;

  6. unsigned char x,s;

  7. unsigned char code table[]={
  8. 0x3f,0x06,0x5b,0x4f,0x66,
  9. 0x6d,0x7d,0x07,0x7f,0x6f,0xbf};

  10. void delayms(unsigned char xms)   
  11. {
  12.     unsigned char a,b,c;
  13.     for(c=xms;c>0;c--)
  14.         for(b=142;b>0;b--)
  15.             for(a=2;a>0;a--);
  16. }

  17. void wei(unsigned char add)
  18. {
  19.         switch(add)
  20.         {
  21.                 case 1:
  22.                         P2=0x01;
  23.                         break;
  24.                 case 2:
  25.                         P2=0x02;
  26.                         break;
  27.                 case 3:
  28.                         P2=0x04;
  29.                         break;
  30.                 case 4:
  31.                         P2=0x08;
  32.                         break;
  33.                 case 5:
  34.                         P2=0x10;
  35.                         break;
  36.                 case 6:
  37.                         P2=0x20;
  38.                         break;
  39.                 case 7:
  40.                         P2=0x40;
  41.                         break;
  42.                 case 8:
  43.                         P2=0x80;
  44.                         break;
  45.         }
  46. }

  47. void display()
  48. {
  49.         P0=~table[hr/16];
  50.         wei(1);
  51.         delayms(2);
  52.         P0=0xFF;
  53.         P0=~table[hr%16];
  54.         wei(2);
  55.         delayms(2);
  56.         if(flag==0)
  57.         {
  58.                 P0=0xFF;
  59.                 P0=table[10];
  60.                 wei(3);
  61.                 delayms(2);
  62.         }
  63.         P0=0xFF;
  64.         P0=~table[min/16];
  65.         wei(4);
  66.         delayms(2);
  67.         P0=0xFF;
  68.         P0=~table[min%16];
  69.         wei(5);
  70.         delayms(2);
  71.         if(flag==0)
  72.         {
  73.                 P0=0xFF;
  74.                 P0=table[10];
  75.                 wei(6);
  76.                 delayms(2);
  77.         }
  78.         P0=0xFF;
  79.         P0=~table[sec/16];
  80.         wei(7);
  81.         delayms(2);
  82.         P0=0xFF;
  83.         P0=~table[sec%16];
  84.         wei(8);
  85.         delayms(2);
  86.         P0=0xFF;
  87. }

  88. void T_init()
  89. {
  90.         TMOD = 0x01;
  91.     TH0 = 0x3C;
  92.     TL0 = 0x0B0;
  93.     EA = 1;
  94.     ET0 = 1;
  95.     TR0 = 1;
  96.         EX0=1;
  97.         IT0=1;
  98. }

  99. void main()
  100. {
  101.         T_init();
  102.         P2=0x00;
  103.         while(1)
  104.         {
  105.                 if(s_flag==0)
  106.                         readtime();
  107.                         display();
  108.         }
  109. }

  110. void T0_IN(void) interrupt 0
  111. {
  112.         unsigned char temp,a,b;
  113.         temp=P3;
  114.         switch(temp)
  115.         {
  116.                 case 0x7b:
  117.                         write1302(0x84,hr);
  118.                         write1302(0x82,min);
  119.                         s_flag=0;
  120.                         break;
  121.                 case 0xbb:
  122.                         s_flag=1;
  123.                         a=min/16;b=min%16;
  124.                         b++;if(b==10){b=0;a++;}
  125.                         if((a*10+b)==60){a=0;b=0;}
  126.                         min=a*16+b;
  127. ……………………

  128. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
用DS1302與數碼管設計的可調電子鐘.rar (58.34 KB, 下載次數: 28)


沙發
szzxl10 發表于 2019-7-12 18:33 | 只看該作者
謝謝分享
板凳
不可思議的晴朗 發表于 2019-7-25 21:45 來自手機 | 只看該作者
需不需要接線
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

QQ|手機版|小黑屋|單片機論壇 |51黑電子論壇單片機 聯系QQ:125739409;技術交流QQ群582644647

Powered by 曼联vs曼城

快速回復 曼联vs曼城 返回列表