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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 22931|回復(fù): 14
收起左側(cè)

單片機(jī)按鍵實(shí)現(xiàn)0-9999計(jì)數(shù)器程序+仿真 4位一體數(shù)碼管顯示

  [復(fù)制鏈接]
ID:293363 發(fā)表于 2019-4-15 08:33 | 顯示全部樓層 |閱讀模式
名稱:按鍵調(diào)節(jié)數(shù)碼管顯示

  功能:通過(guò)按鍵加減數(shù)碼管所顯示的數(shù)字
            按下k1加1,最大加到9999
            按下k2減1,最小減到0
            按下k3清零復(fù)位   
   用了最簡(jiǎn)單的思路,各路大神不喜勿噴.

   小弟就不和各位爺繞彎子了,直接上圖

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
仿真.jpg 0.png

單片機(jī)源程序如下:
  1. //----------------------------------------------------------------------
  2. //名稱:按鍵調(diào)節(jié)數(shù)碼管顯示
  3. //----------------------------------------------------------------------
  4. //功能:通過(guò)按鍵加減數(shù)碼管所顯示的數(shù)字
  5. //     按下k1加1,最大加到9999
  6. //     按下k2減1,最小減到0
  7. //     按下k3清零復(fù)位   
  8. //----------------------------------------------------------------------
  9. //姓名:陳潤(rùn)源
  10. //地點(diǎn):內(nèi)江職業(yè)技術(shù)學(xué)院
  11. //時(shí)間:2019年4月6日21:39:46
  12. //----------------------------------------------------------------------
  13. #include <reg51.h>
  14. #define uchar unsigned char
  15. #define uint unsigned int

  16. sbit k1 = P1^0;                   //加
  17. sbit k2 = P1^1;                   //減
  18. sbit k3 = P1^2;                   //復(fù)位
  19. void key(void);
  20. void display(void);

  21. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,
  22.                     0x92,0x82,0xf8,0x80,0x90};           //數(shù)組
  23.                        
  24. char m=99,n=98;                                //顯示初值,m,n的值決定開(kāi)機(jī)顯示數(shù)值
  25. //****************************************
  26. //延時(shí)程序
  27. //****************************************
  28. void delayms(uint xms)
  29. {
  30.    uint i,j;
  31.    for(i=xms;i>0;i--)
  32.    for(j=110;j>0;j--);
  33. }
  34. //***********************************************
  35. //顯示程序
  36. //***********************************************
  37. void display(void)
  38. {
  39.         P2=0X08;
  40.                 P0=table[m%10];   //顯示個(gè)位
  41.                 delayms(5);  
  42.                 P2=0X04;
  43.             P0=table[m/10];          //顯示十位
  44.                 delayms(5);                                                              
  45.             P2=0X02;
  46.                 P0=table[n%10];          //顯示百位
  47.                 delayms(5);
  48.                 P2=0X01;
  49.                 P0=table[n/10];          //顯示千位
  50.                 delayms(5);
  51. }

  52. //***************************************************
  53. //按鍵處理
  54. //***************************************************
  55. void key()
  56. {
  57.   if(k1==0)                                         //檢測(cè)按鍵是否被按下
  58.    {                                                 //延時(shí)消抖
  59.            delayms(10);                         
  60.         if(k1==0)                                 //再次檢測(cè)是否真正按下按鍵
  61.         {
  62.           m++;                                         //m自加一
  63.           if(m>=100)                         //如果m加到100則n加一 (限制m的取值范圍) 個(gè)位、十位最大顯示99
  64.           {
  65.                   n++;                                 //n自加一
  66.                 m=0;                                 //使m又從0開(kāi)始計(jì)數(shù)
  67.                 if(n>=100)                         //如果n加到100則m=n=99 (限制n的取值范圍) 百位、千位最大顯示99
  68.                 {
  69.                   m=99;                                 //最大顯示9999
  70.                   n=99;
  71.                 }
  72.           }
  73.         }
  74.         while(!k1);                                 //按鍵松開(kāi)
  75.    }

  76.   if(k2==0)                                         //檢測(cè)按鍵是否被按下
  77.    {                                                 //延時(shí)消抖
  78.            delayms(10);                         //再次檢測(cè)是否真正按下按鍵
  79.         if(k2==0)
  80.         {                                                 //m自減一
  81.           m--;
  82.           if(m<=0)                                 //如果m減到0則n減一 (限制n的取值范圍) 個(gè)位、十位最小顯示00
  83.           {                                                 
  84.             m=99;                                 //重新給m裝初值
  85.                   n--;                                 //n自減一
  86.                 if(n==-1)                         //如果n減到-1,則m=n=0 (限制n的取值范圍) 百位、千位最小顯示00
  87.                 {
  88.                  n=0;                                 //最小顯示0000
  89.                  m=0;
  90.                 }
  91.           }
  92.         }
  93.         while(!k2);                                 //按鍵松開(kāi)
  94.    }

  95. if(k3==0)                                         //檢測(cè)按鍵是否被按下
  96. {
  97.    delayms(10);                                 //延時(shí)消抖
  98.    if(k3==0)                                 //再次檢測(cè)是否真正按下按鍵
  99.    {
  100.             m=0;                                         //復(fù)位,顯示0000
  101.          n=0;
  102.    }
  103.    while(!k3);                                 //按鍵松開(kāi)
  104. }
  105. }

  106. void main()
  107. {
  108.   while(1)
  109.   {                                                         //調(diào)用按鍵檢測(cè)
  110.    key();                                         //數(shù)碼管顯示
  111.    display();
  112.   }

  113. }                                  
復(fù)制代碼

所有資料51hei提供下載:
0~9999計(jì)數(shù)器.zip (53.03 KB, 下載次數(shù): 375)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:567885 發(fā)表于 2019-6-20 15:36 | 顯示全部樓層
哭了如果是匯編就好了嗚嗚嗚
回復(fù)

使用道具 舉報(bào)

ID:571801 發(fā)表于 2019-6-25 15:56 | 顯示全部樓層
好,非常好
回復(fù)

使用道具 舉報(bào)

ID:571903 發(fā)表于 2019-6-25 16:42 | 顯示全部樓層
好,很好
回復(fù)

使用道具 舉報(bào)

ID:353831 發(fā)表于 2019-9-5 15:14 | 顯示全部樓層
程序有問(wèn)題  數(shù)碼管無(wú)法正常顯示
回復(fù)

使用道具 舉報(bào)

ID:353831 發(fā)表于 2019-9-6 18:09 來(lái)自手機(jī) | 顯示全部樓層
數(shù)碼管接錯(cuò)了,改了可以正常顯示和計(jì)數(shù)了,只是個(gè)位計(jì)數(shù)時(shí)前面的十百千位跟著閃爍
回復(fù)

使用道具 舉報(bào)

ID:293363 發(fā)表于 2019-9-7 20:36 | 顯示全部樓層
wl020807 發(fā)表于 2019-9-6 18:09
數(shù)碼管接錯(cuò)了,改了可以正常顯示和計(jì)數(shù)了,只是個(gè)位計(jì)數(shù)時(shí)前面的十百千位跟著閃爍

謝謝提出來(lái)
回復(fù)

使用道具 舉報(bào)

ID:626644 發(fā)表于 2019-10-19 15:29 | 顯示全部樓層
怎么改?急在線等
回復(fù)

使用道具 舉報(bào)

ID:753568 發(fā)表于 2020-5-17 14:42 | 顯示全部樓層
大神在不在 要答辯了 有點(diǎn)問(wèn)題想問(wèn)您 能不能加個(gè)qq
回復(fù)

使用道具 舉報(bào)

ID:920649 發(fā)表于 2021-5-13 18:42 | 顯示全部樓層
哭了,非常感謝
回復(fù)

使用道具 舉報(bào)

ID:331078 發(fā)表于 2021-5-13 20:25 | 顯示全部樓層
CPU Delay 是大忌,為啥不用定時(shí)器?
回復(fù)

使用道具 舉報(bào)

ID:293363 發(fā)表于 2022-5-7 15:19 | 顯示全部樓層
YTWO 發(fā)表于 2021-5-13 20:25
CPU Delay 是大忌,為啥不用定時(shí)器?

因?yàn)槲也粫?huì)
回復(fù)

使用道具 舉報(bào)

ID:514317 發(fā)表于 2022-5-7 21:47 | 顯示全部樓層
為什么大家發(fā)出來(lái)的程序都不用操作系統(tǒng)呢   最次也可以用個(gè)rtx51tny   要是閑麻煩可以移植下STC庫(kù)文件的分時(shí)任務(wù)調(diào)度   就3個(gè)函數(shù)   用起來(lái)不要太方便   
回復(fù)

使用道具 舉報(bào)

ID:1082988 發(fā)表于 2023-6-9 16:46 | 顯示全部樓層
可以變成自動(dòng)加1和減1嗎


回復(fù)

使用道具 舉報(bào)

ID:293363 發(fā)表于 2023-6-10 11:15 | 顯示全部樓層
zhangyubin 發(fā)表于 2023-6-9 16:46
可以變成自動(dòng)加1和減1嗎

可以  去掉按鍵檢測(cè)   自加1程序放定時(shí)器里面  
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区精品在线观看 | 欧美jizzhd精品欧美巨大免费 | 亚洲高清在线 | 草草视频在线免费观看 | 午夜精品视频 | 欧美成人精品一区二区男人看 | 久久国产欧美日韩精品 | 精品亚洲一区二区 | 一区二区三区四区日韩 | 久久99精品久久久久久狂牛 | 99精品视频在线观看 | 成人一区二区三区 | 欧美视频二区 | 天天射影院 | 一级在线免费观看 | 久久久久国产 | 91佛爷在线观看 | 中文字幕欧美日韩 | 国产精品日日做人人爱 | 亚洲综合久久精品 | 久久久男人的天堂 | 毛片视频免费观看 | 成人午夜精品一区二区三区 | 色妹子综合网 | 欧美精品久久久久 | 久久中文视频 | 97伦理影院 | 福利网址 | 91精品久久久久久综合五月天 | 黄色永久免费 | 免费一区二区在线观看 | 日韩免费视频一区二区 | 国产小视频在线 | 在线观看免费毛片 | 欧美日韩在线播放 | 欧美性一区二区三区 | 国产精品久久av | 亚洲精品一区二三区不卡 | 久久久久久国产 | 99久久精品免费看国产免费软件 | 精品免费国产视频 |