找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1783|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)按鍵控制數(shù)碼管代碼,能給解釋一下嗎?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
  1. #define uchar unsigned char
  2. #include<reg51.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. void delay (uint x);
  6. sbit A=P1^0;
  7. sbit B1=P1^1;
  8. sbit B2=P1^2;
  9. sbit B3=P1^3;
  10. sbit dula=P2^1;
  11. sbit wela=P2^2;
  12. uchar c,i;
  13. unsigned char code NumDecode[] ={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,};
  14. void main()
  15. {
  16.         TMOD=0x11;
  17.         TH0=(65536-45872)/256;
  18.         TH0=(65536-45872)%256;
  19.         EA=1;
  20.         ET0=1;
  21.         TF0=1;
  22.         TR0=1;
  23.         while(1)
  24.         {
  25.                 if(B1==0)
  26.                 {
  27.                         delay(10);
  28.                         if(B1==0)
  29.                         {
  30.                                 while(B1==0)
  31.                                 {
  32.                                         if(c==20)//50ms中斷20次
  33.                                         {
  34.                                         c=0;
  35.                                         i++;//倒計時總數(shù)每秒減1
  36.                                         }
  37.                                         if(i<10)
  38.                                         {
  39.                                         dula=0;//數(shù)碼管位選選通
  40.                                         P0=NumDecode[i];//顯示數(shù)據(jù)
  41.                                         }
  42.                                         else  //循環(huán)計時設(shè)置
  43.                                         {
  44.                                         i=0;
  45.                                         }
  46.                                 }
  47.                                 TR0=1;

  48.                         }
  49.                 }
  50.                 if(B2==0)
  51.                 {
  52.                         delay(10);
  53.                         if(B2==0)
  54.                         {
  55.                                 while(B2==0)
  56.                                 TR1=1;
  57.                         }
  58.                 }
  59.         }        
  60. }
  61. void t1() interrupt 1
  62. {        char
  63.         TH0=(65536-45872)/256;
  64.         TH0=(65536-45872)%256;
  65.         
  66. }
復(fù)制代碼

捕獲.PNG (123.09 KB, 下載次數(shù): 31)

捕獲.PNG
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:309816 發(fā)表于 2018-6-5 14:16 | 只看該作者
先了解數(shù)碼管的段選和片選,創(chuàng)建了一個數(shù)字庫的數(shù)組能顯示0-9,然后就是中斷程序和定時器了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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