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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
ID:162360 發表于 2017-12-7 19:57 | 顯示全部樓層 |閱讀模式
用51單片機的定時器,按鍵實現兩位數碼管加減仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
TIM圖片20171207195411.png 0.png
單片機源程序如下:
  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 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:283883 發表于 2019-6-7 22:36 | 顯示全部樓層
是不是按一個按鈕加,另一個減?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品一区二区三区中文字幕 | 婷婷色在线 | 夜夜躁狠狠躁日日躁av | 美女视频福利 | 伊人干综合| 一区二区免费看 | 国产精品成人一区二区三区 | 精品小视频 | 操综合| 亚洲国产天堂 | www.啪啪 | 成人aa| 久久国产精品免费视频 | 国产精自产拍久久久久久蜜 | 日韩亚洲欧美在线 | 欧美日韩国产三级 | 日韩视频在线观看免费 | 九九九视频 | 福利av在线| 51成人做爰www免费看网站 | 五月天婷婷激情网 | 中文字幕丰满人伦在线 | 欧美性猛交99久久久久99按摩 | 亚洲最新视频 | 黄色小视频在线观看 | 国产第一页在线 | 免费激情网站 | 亚洲精品日本 | 国产午夜三级一区二区三 | 欧美一二区 | 色网站在线 | 成人黄色网 | 中文字幕日本在线 | www.四虎影视 | 免费av一区二区三区 | 一区二区三区日韩 | 一本久久道 | 日韩少妇av | 少妇在线观看 | 免费黄色一级视频 | 国产视频99 |