久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機數碼管遞減計數及流水燈程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:964116 發表于 2021-9-8 15:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
包含Proteus仿真圖和源代碼
單片機源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char

  5. uint count0, count1, count2, flag, flag1;         //三個定時時間 遞減計時 流水燈計時 暫停計時   
  6. uint  inx1, inx2, inx3, inx4, inx5, inx6, temp;       //六根數碼管的顯示
  7. uchar flowlight;

  8. void delay(uint num);       //延時函數
  9. void display(uchar inx1, uchar inx2, uchar inx3, uchar inx4, uchar inx5, uchar inx6);       //數碼管顯示函數

  10. sbit Wela = P2^7;          //位選端口
  11. sbit Dula = P2^6;          //段選端口
  12. sbit beep = P2^3;          //蜂鳴器端口

  13. uchar code Table[] =                //段碼數組
  14. {
  15.     0x3F,0x06,0x5B,0x4F,0x66,0x6D,  //共陰極段碼 0 1 2 3 4 5
  16.     0x7D,0x07,0x7F,0x6F,0x77,0x7C,  //共陰極段碼 6 7 8 9 A b
  17.     0x39,0x5E,0x79,0x71,0x73,0x3E,  //共陰極段碼 C d E F P U
  18.     0x31,0x6E,0x76,0x38,0x00        //共陰極段碼 T y H L 滅燈
  19. };  

  20. /************延時函數***************/
  21. void delay(uint num)        //延時 num ms
  22. {
  23.     uint x, y;
  24.     for(x=num; x>0; x--)
  25.     {
  26.         for(y=110; y>0; y--);
  27.     }
  28. }

  29. void main()
  30. {
  31.     temp = 765432 - 765000;
  32.     count0 = 0;
  33.     count1 = 0;
  34.     count2 = 0;
  35.     flag = 0;
  36.     flag1 = 0;

  37.     EA = 1;
  38.     EX0 = 1;
  39.     TMOD = 0x11;    //設置定時器T0,T1 為工作方式1
  40.     TH0 = (65536 - 50000) / 256;
  41.     TL0 = (65536 - 50000) % 256;
  42.     TH1 = (65536 - 50000) / 256;
  43.     TL1 = (65536 - 50000) % 256;
  44.     ET0 = 1;        //開定時器T0中斷
  45.     ET1 = 1;        //開定時器T1中斷
  46.     TR0 = 1;        //打開定時器T0
  47.     TR1 = 1;        //打開定時器T1
  48.    
  49.     P1 = 0xfe;      
  50.     flowlight = P1;
  51.     while(1)
  52.     {
  53.         beep = 0;
  54.         if(flag1 != 1)
  55.         {
  56.             display(7, 6, 5, inx4, inx5, inx6);
  57.             if(temp == 398)
  58.             {
  59.                 TR0 = 0;
  60.                 TR1 = 0;
  61.                 flag = 1;
  62.                 P1 = 0xff;
  63.                 TH0 = (65536 - 50000) / 256;
  64.                 TL0 = (65536 - 50000) % 256;
  65.                 TR0 = 1;
  66.                 count0 = 0;
  67.                 temp--;
  68.             }
  69.         }
  70.         else
  71.         {
  72.             display(20, 14, 21, 21, 0, 22);
  73.             TR0 = 0;
  74.         }   
  75.     }
  76. }

  77. /***********數碼管顯示函數************/
  78. void display(uchar inx1, uchar inx2, uchar inx3, uchar inx4, uchar inx5, uchar inx6)
  79. {
  80.     Wela = 1;
  81.     P0 = 0xfe;
  82.     Wela = 0;
  83.     Dula = 1;
  84.     P0 = Table[inx1];
  85.     Dula = 0;
  86.     delay(5);
  87.    
  88.     Wela = 1;
  89.     P0 = 0xfd;
  90.     Wela = 0;
  91.     Dula = 1;
  92.     P0 = Table[inx2];
  93.     Dula = 0;
  94.     delay(5);

  95.     Wela = 1;
  96.     P0 = 0xfb;
  97.     Wela = 0;
  98.     Dula = 1;
  99.     P0 = Table[inx3];
  100.     Dula = 0;
  101.     delay(5);

  102.     Wela = 1;
  103.     P0 = 0xf7;
  104.     Wela = 0;
  105.     Dula = 1;
  106.     P0 = Table[inx4];
  107.     Dula = 0;
  108.     delay(5);

  109.     Wela = 1;
  110.     P0 = 0xef;
  111.     Wela = 0;
  112.     Dula = 1;
  113.     P0 = Table[inx5];
  114.     Dula = 0;
  115.     delay(5);

  116.     Wela = 1;
  117.     P0 = 0xdf;
  118.     Wela = 0;
  119.     Dula = 1;
  120.     P0 = Table[inx6];
  121.     Dula = 0;
  122.     delay(5);

  123. }

  124. /*********定時器T0定時**********/
  125. void timer0() interrupt 1       //定時器T0定時50ms
  126. {
  127.     TH0 = (65536 - 50000) / 256;
  128.     TL0 = (65536 - 50000) % 256;
  129.     count0++;

  130.     if(flag != 1)
  131.     {
  132.         if(count0 == 10)        //流水燈延時 500ms 流動
  133.         {   
  134.             beep = 1;
  135.             flowlight = _crol_(flowlight, 1);
  136.             P1 = flowlight;
  137.             count0 = 0;
  138.         }
  139.     }
  140.     else
  141.     {
  142.         if(count0 % 4 == 0)
  143.         {
  144.             P1 = ~P1;
  145.             if(count0 == 60)
  146.             {
  147.                 flag1 = 1;
  148.             }
  149.         }
  150.     }
  151. }

  152. /*********定時器T1中斷函數50ms*******/
  153. void timer1() interrupt 3       //定時器T1定時50ms
  154. {   
  155.     TH1 = (65536 - 50000) / 256;
  156.     TL1 = (65536 - 50000) % 256;
  157.     count1++;

  158.     if(count1 == 2)     //數碼管以100ms遞減
  159.     {
  160.         temp--;
  161.         inx4 = temp / 100;
  162.         inx5 = temp % 100 / 10;
  163.         inx6 = temp % 10;
  164.         count1 = 0;
  165.     }
  166. }
復制代碼
新手程序,望大佬放過
所有資料51hei附件下載:
Works.rar (95.66 KB, 下載次數: 9)

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费激情网站 | 美女福利网站 | 日韩精品一区二区三区视频播放 | 国产一区视频在线 | 免费精品| 中文字幕精品视频 | 色婷婷久久久久swag精品 | 亚洲成人三级 | 国产精品久久久久无码av | 成人免费视频网 | 日本精品一区二区在线观看 | 都市激情亚洲 | 8x国产精品视频一区二区 | 精品福利一区 | 大陆一级毛片免费视频观看 | 国产美女自拍视频 | 一级黄色影片在线观看 | 久久网亚洲 | 国产精品一区视频 | 免费一级淫片aaa片毛片a级 | 日本欧美在线观看视频 | 亚洲午夜精品视频 | 国产精品中文字幕在线 | 久久蜜桃资源一区二区老牛 | 一区二区三区四区视频 | 国产精品久久国产精品久久 | 国产乱码精品一区二区三区中文 | 久久久精彩视频 | 日本精品一区二区 | 日日夜夜精品视频 | 中文字幕久久精品 | 欧美一区二区三区在线观看 | 狠狠干综合视频 | 欧美成人一区二区 | 一区二区三区四区毛片 | 一区二区国产在线 | 亚洲高清久久 | 狠狠av| 欧美 日韩精品 | 久久精品成人 | 精品在线一区二区 |