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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機定時器按鍵控制兩位數碼管加減(入門級proteus仿真)

[復制鏈接]
跳轉到指定樓層
樓主
用51單片機的定時器,按鍵實現兩位數碼管加減仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. sbit S1=P2^0;                                  //第一個數碼管
  4. sbit S2=P2^1;                                  //第二個數碼管
  5. sbit PWM=P2^2;
  6.        
  7. uchar t,i;          //定義周期   占空比
  8. uchar        m;      //掃描次數   
  9. uchar code seg[]={
  10. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
  11.       };   //0  1  2   3   4    5    6    7    8     9                  */

  12. void InitTimer0()         //定時器0中斷初始化子函數
  13. {
  14.     TMOD = 0x01;                 //設置T0為工作方式1     16位
  15.     TH0 = (65536-200)/256;
  16.     TL0 = (65536-200)%256;
  17.     EA = 1;                                //允許總中斷標志位
  18.     ET0 = 1;                        //定時器0中斷
  19.     TR0 = 1;                        //啟動定時器0
  20.         EX0=1;                                //打開外部中斷0
  21.     EX1=1;                                //打開外部中斷1
  22.         IT0=1;                                //下降沿觸發
  23.         IT1=1;                                //下降沿觸發
  24. }


  25. void   display(void)           //數碼管顯示占空比子函數
  26. {
  27.         P0        =0;
  28.         S1        =1;
  29.         S2        =1;        //Seg全輸出低,Com全輸出高,滅掉顯示

  30.         switch(m)
  31.         {
  32.                 case        0:
  33.                         m++;
  34.                        
  35.                         P0=seg[i/10];                   //數碼管顯示第一位數
  36.                         S1=0;
  37.                         break;
  38.                 case        1:
  39.                         m=0;
  40.                         P0=seg[i%10];                  //數碼管顯示第二位數
  41.                         S2=0;       
  42.                         break;
  43.                 default:
  44.                         break;       
  45.         }
  46. }


  47. void main()                                //主函數入口
  48. {
  49.    InitTimer0();
  50.    while(1);                         //無限循環
  51. }

  52. void Timer0Interrupt(void) interrupt 1 //定時器中斷0
  53. {
  54.     TH0 = (65536-200)/256;                 //重裝初值
  55.     TL0 = (65536-200)%256;          
  56.   
  57.         if(++t>=99)
  58.         {
  59.                 t=0;
  60.         }
  61.         if(t>i)
  62.         {
  63.                 PWM        =0;
  64.         }
  65.         else
  66.         {
  67.                 PWM        =1;
  68.         }

  69.         display();       
  70. }       


  71. void Timer1Interrupt(void) interrupt 0 //外部中斷0中斷服務函數
  72. {
  73. ……………………

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

所有資料51hei提供下載:
定時器按鍵控制數碼管加減.zip (60.41 KB, 下載次數: 96)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:283883 發表于 2019-6-7 22:36 | 只看該作者
是不是按一個按鈕加,另一個減?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美精品 | 精品国产欧美一区二区 | a a毛片 | 1区2区视频 | 欧美成人精品二区三区99精品 | 亚洲一区二区久久 | 精品乱码一区二区 | 97起碰| 午夜精品一区二区三区在线视频 | 中文字幕在线第二页 | 欧美高清一区 | 91精品国产欧美一区二区成人 | 狠狠操天天干 | 在线看av的网址 | 国产日韩精品在线 | 欧美精品乱码久久久久久按摩 | 黄久久久 | 久在线 | 国产精品免费在线 | 久久精品电影 | 亚洲精品一区二区冲田杏梨 | 国产一区二区精华 | 欧美国产精品一区二区 | 狠狠色综合久久丁香婷婷 | 久久日韩精品 | 亚洲免费三级 | 综合九九 | 婷婷综合五月天 | 久久国产精品-久久精品 | 欧美视频一区二区三区 | 精品国产欧美在线 | 狠狠入ady亚洲精品经典电影 | 日韩欧美三级 | 国产午夜影院 | 毛片免费观看 | 日韩精品在线视频免费观看 | 国产精品theporn| 九九九久久国产免费 | 亚洲一区二区日韩 | 黄色免费网站在线看 | 久久成人国产精品 |