欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2606|回復: 0
收起左側

51單片機中斷簡易電子時鐘設計,這個應該是我感覺最簡單的了,沒有其它復雜電路

[復制鏈接]
ID:868430 發表于 2020-12-26 18:50 | 顯示全部樓層 |閱讀模式
e99c2583a7a7bf3625a9cfc317da2545.png
  1. #include <reg52.h>
  2. unsigned char Seg_CC_Data[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

  3. unsigned char Seg_CC_Position[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
  4. void DelayTime10ms(unsigned int DelayValue);
  5. void Seg_Display_Second(unsigned char DisData,unsigned char Seg_Number);
  6. void Seg_Display_Minute(unsigned char DisData,unsigned char Seg_Number);
  7. void Seg_Display_Hour(unsigned char DisData,unsigned char Seg_Number);
  8. unsigned char Count=0;
  9. unsigned char  Second=45;
  10. unsigned char  Minute=58;
  11. unsigned char  Hour=10;
  12. void main()
  13. {
  14.          TMOD=0x01;
  15.     EA=1;
  16.          ET0=1;
  17.         
  18.          PT0=1;
  19.         
  20.          TH0=(65536-50000)/256;          //??×°??êy3??μ
  21.    TL0=(65536-50000)%256;          //??×°??êy3??μ
  22.         
  23.          TR0=1;

  24.       
  25.    for(;;)
  26.          {
  27.                           Seg_Display_Second(Second,2);
  28.                           Seg_Display_Minute(Minute,2);        
  29.            Seg_Display_Hour(Hour,2);                  
  30.    }
  31. }

  32. void DelayTime10ms(unsigned int DelayValue){
  33.          unsigned int a,b;
  34.          for(a =0 ;a < DelayValue; a++)
  35.              for(b =0 ;b < 1828; b++);
  36. }
  37. void Seg_Display_Second(unsigned char DisData,unsigned char Seg_Number)
  38. {
  39.    unsigned char i=0;
  40.           for(i=0;i<Seg_Number;i++)
  41.           {        
  42.              P2=Seg_CC_Position[i];
  43.                    P0=Seg_CC_Data[DisData%10];
  44.                    DisData=DisData/10;
  45.                    DelayTime10ms(1);         
  46.           }
  47. }

  48. void Seg_Display_Minute(unsigned char DisData,unsigned char Seg_Number)
  49. {
  50.    unsigned char i=0;
  51.             
  52.           for(i=2;i<Seg_Number+2;i++)
  53.            {
  54.              P2=Seg_CC_Position[i];
  55.                    P0=Seg_CC_Data[DisData%10];
  56.                    DisData=DisData/10;
  57.                    DelayTime10ms(1);         
  58.            }
  59. }
  60. void Seg_Display_Hour(unsigned char DisData,unsigned char Seg_Number)
  61. {
  62.    unsigned char i=0;
  63.           for(i=4;i<Seg_Number+4;i++)
  64.           {        
  65.              P2=Seg_CC_Position[i];
  66.                    P0=Seg_CC_Data[DisData%10];
  67.                    DisData=DisData/10;
  68.                    DelayTime10ms(1);         
  69.           }
  70. }
  71. void Irq_Timer_0() interrupt 1 //?D??·t??3ìDò
  72. {        
  73.         TH0=(65536-50000)/256;          //??×°??êy3??μ
  74.   TL0=(65536-50000)%256;          //??×°??êy3??μ
  75.   if(Count++==20)
  76.                 {
  77.                                   Count=0;
  78.                            
  79.                              if(++Second==60)
  80.                                    {
  81.                                      Second=0;
  82.                                            if(++Minute==60)
  83.                                                 {
  84.                                                         Minute=0;
  85.                                                         if(++Hour==24)
  86.                                                         {Hour=0;}
  87.                                                    
  88.                                           }        
  89.                             }
  90.         }
  91. }
復制代碼


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表