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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8044|回復: 1
收起左側

51單片機0到9999數碼管顯示的Proteus仿真+代碼

[復制鏈接]
ID:388477 發表于 2018-12-13 09:39 | 顯示全部樓層 |閱讀模式
1.png 2.png

單片機源程序如下:
  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. #define wei=P2;
  5. #define duan=P0;
  6. sbit led=P1^0;
  7. sbit S2=P3^0;
  8. sbit S3=P3^1;
  9. sbit S4=P3^2;
  10. uchar sec,num;
  11. uint cnt=0; //全局變量,控制數碼管顯示的數字的變化
  12. uint ge,shi,qian,bai;
  13. uchar code arry[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  14. void delay(uint i);//軟件延時函數
  15. void display(); //數碼管顯示函數
  16. void delay(uint i)//軟件延時函數
  17. {
  18.         uint a,c;
  19.         for(a =i;a>0;a--)
  20.         {
  21.                 for(c=114;c>0;c--);
  22.         }
  23. }

  24. void display()
  25. {
  26.         qian=cnt/1000;
  27.         bai=(cnt%1000)/100;
  28.         shi=((cnt%1000)%100)/10;
  29.         ge=        ((cnt%1000)%100)%10;
  30.         P2=0xf7;
  31.         P0=arry[ge];
  32.         delay(5);  //防止重影
  33.         P2=0xfb;
  34.         P0=arry[shi];
  35.         delay(5);
  36.         P2=0xfd;
  37.         P0=arry[bai];
  38.         delay(5);
  39.         P2=0xfe;
  40.         P0=arry[qian];
  41.         delay(5);
  42. }

  43. void Timer0Init()
  44. {
  45.         TMOD|=0X11;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。
  46.         TH0=0X3c;        //給定時器賦初值,定時1ms
  47.         TL0=0Xb0;
  48.         TH1=0X3C;
  49.         TL1=0XB0;
  50.         ET1=1;       
  51.         ET0=1;//打開定時器0中斷允許
  52.         EA=1;//打開總中斷
  53.                
  54. }
  55. void Timer0() interrupt 1
  56. {
  57.        
  58.         TH0=0X3c;        //
  59.         TL0=0Xb0;
  60.         sec++;
  61.         if(sec==20)
  62.         {
  63.                
  64.                 TF0=0;
  65.                 sec=0;
  66.                 cnt++;
  67.                
  68.         }
  69.                 if(cnt==9999)
  70.                 {
  71.                   
  72.                  cnt=9999;
  73.                         TR0=0;
  74.                         TF0=0;
  75.                 }
  76. }

  77. void Timer1() interrupt 3
  78. {
  79.        
  80.         TH1=0X3c;        //
  81.         TL1=0Xb0;
  82.         num++;
  83.         if(num==10)
  84.         {
  85.                 num=0;
  86.                 TF1=0;
  87.                 led=~led;
  88.                
  89.         }
  90. }       

  91. void main()//主函數
  92. {
  93.         Timer0Init();
  94.         while(1)
  95.         {
  96.                 display();
  97.                 if(S2==0)//開始/復位
  98.         {
  99.                   delay(10);
  100.                         if(S2==0)
  101.                         {
  102.                                 sec = 0;
  103.                                 num=0;
  104.                     cnt=0;
  105.                               TR0=1;
  106.                                 TR1=1;
  107.                         }   
  108.         }
  109.         if(S3==0)//暫停
  110.         {
  111.                   delay(10);
  112.                         if(S3==0)
  113.                         {
  114.                                 TR0 = 0;    //關閉定時器
  115.                          TF0 = 0;
  116.                                 TR1=0;
  117.                                 TF1=0;
  118.                         }
  119.                                        
  120.         }
  121.                 if(S4==0)//繼續開始
  122.         {
  123.                   delay(10);
  124.                         if(S4==0)
  125.                         {
  126.                                 sec = 0;
  127.                                 num=0;
  128.                                 TR0=1;
  129.                                 TR1=1;
  130.                         }
  131.                                                   
  132.         }
  133.                                        
  134.        
  135.      }
  136. }
復制代碼

所有資料51hei提供下載:
51單片機0到9999數碼管顯示的Proteus仿真 代碼.dsn.zip (77.43 KB, 下載次數: 82)



評分

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

查看全部評分

回復

使用道具 舉報

ID:759029 發表于 2020-5-23 11:56 | 顯示全部樓層
謝謝,非常厲害
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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