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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機雙按鍵控制數碼管,仿真出錯,求大佬指點迷津,有文件上傳

[復制鏈接]
跳轉到指定樓層
樓主
雙按鍵控制數碼管,仿真出錯,求大佬指點迷津,有文件上傳
  1. #include <reg51.h>
  2. sbit SW1=P1^0;
  3. sbit SW2=P1^1;
  4. sfr LED=0xA0;
  5. unsigned char ID;
  6. void delay(int time);
  7. void Disp(unsigned char i);
  8. unsigned char SW_check(void);
  9. //unsigned char code LED_SUM[10]={0xfc,0x61,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};
  10. //主函數通過調用按鍵檢測函數,顯示函數完成數碼管對按鍵有效擊鍵次數的顯示
  11. void mian(void){
  12.         ID=0;
  13.         while(1){
  14.                
  15.                 SW_check();
  16.                 Disp(ID);
  17.         }
  18.         
  19.         
  20. }
  21. void Disp(unsigned char i){
  22.         unsigned char x,y;
  23.         x=i%10;
  24.         y=i/10;
  25.         y<<4;
  26.         LED=y|x;
  27. }

  28. unsigned char SW_check(void){
  29.         if(!SW1){//sw1是否按下
  30.                 delay(10);
  31.                 if(!SW1){
  32.                         if((ID++)>=99)ID=0;
  33.                         while(!SW1);
  34.                 }
  35.                
  36.         }
  37.         else if(!SW2){
  38.                 delay(10);
  39.                 if(!SW2){
  40.                         if((ID--)<=0){
  41.                                 ID=99;
  42.                         }
  43.                         while (!SW2);
  44.                 }
  45.                
  46.         }

  47.         
  48.         return ID;
  49.         

  50. }

  51. void delay(int time){
  52.         unsigned char j;
  53.         for(time;time>=0;time--)
  54.                 for(j=125;j>0;j--)
  55.                         {;}
  56. }
復制代碼
雙按鍵組合加減.rar (43.02 KB, 下載次數: 6)
求大佬指點迷津。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:974245 發表于 2021-11-2 10:35 | 只看該作者
就是仿真的時候按按鍵沒反應
回復

使用道具 舉報

板凳
ID:313048 發表于 2021-11-2 11:48 | 只看該作者
確定仿真頻率是否正確,有時候仿真它跑得很慢  你按鍵時間短了,壓根就沒檢查到,你就松開了.
1、修改按鍵掃描時的消抖延時,減小延時時間看看。或者按鍵按的時候時間持續長一點點。看仿真軟件下方的仿真時間而定。
2、程序去除掉數碼管的顯示。保留按鍵掃描,通過LED來確定按鍵掃描程序是否正常運行,如果正常運行再開啟數碼管顯示程序。
回復

使用道具 舉報

地板
ID:213173 發表于 2021-11-2 15:54 | 只看該作者
給你改好了,但不直接告訴你問題在哪,你自己逐字對照找錯誤,以后就不會再犯了,終身享用。


  1. #include <reg51.h>
  2. sbit SW1=P1^0;
  3. sbit SW2=P1^1;
  4. sfr LED=0xA0;
  5. unsigned char ID;
  6. void delay(int time);
  7. void Disp(unsigned char i);
  8. unsigned char SW_check(void);
  9. //unsigned char code LED_SUM[10]={0xfc,0x61,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};
  10. //主函數通過調用按鍵檢測函數,顯示函數完成數碼管對按鍵有效擊鍵次數的顯示
  11. void main(void){
  12.         ID=0;
  13.         while(1){
  14.                
  15.                 SW_check();
  16.                 Disp(ID);
  17.         }
  18.         
  19.         
  20. }
  21. void Disp(unsigned char i){
  22.         unsigned char x,y;
  23.         x=i%10;
  24.         y=i/10;
  25.         y<<=4;
  26.         LED=y|x;
  27. }

  28. unsigned char SW_check(void){
  29.         if(!SW1){//sw1是否按下
  30.                 delay(10);
  31.                 if(!SW1){
  32.                         if((ID++)>=99)ID=0;
  33.                         while(!SW1);
  34.                 }
  35.                
  36.         }
  37.         else if(!SW2){
  38.                 delay(10);
  39.                 if(!SW2){
  40.                         if((ID--)<=0){
  41.                                 ID=99;
  42.                         }
  43.                         while (!SW2);
  44.                 }
  45.                
  46.         }

  47.         
  48.         return ID;
  49.         

  50. }

  51. void delay(int time){
  52.         unsigned char j;
  53.         for(time;time>=0;time--)
  54.                 for(j=125;j>0;j--)
  55.                         {;}
  56. }
復制代碼




回復

使用道具 舉報

5#
ID:974245 發表于 2021-11-2 17:00 | 只看該作者
wulin 發表于 2021-11-2 15:54
給你改好了,但不直接告訴你問題在哪,你自己逐字對照找錯誤,以后就不會再犯了,終身享用。

謝謝你了,超級感謝。我是個大傻子!!終于好了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩欧美中文字幕 | 国产精品1区 | 亚洲一区二区三区在线观看免费 | 天天夜干 | 亚洲国产区| 精品国产不卡一区二区三区 | 91激情电影 | 欧美一级在线 | 国产一级免费视频 | 国产精品综合视频 | 自拍偷拍第一页 | 国产精品成人一区二区 | 欧美日韩久久久久 | 欧美成年人 | 亚洲一区二区三区四区视频 | 精品人伦一区二区三区蜜桃网站 | 成人久久网 | 久久精品色欧美aⅴ一区二区 | 国产传媒毛片精品视频第一次 | 成人在线一区二区三区 | 国产精品久久久久久婷婷天堂 | 国产精品久久久久久久久久妞妞 | 一级片视频免费 | 日韩成人精品一区 | 在线看av网址 | 中文字幕成人av | 国产日韩久久 | 9久久婷婷国产综合精品性色 | 免费一级做a爰片久久毛片潮喷 | 麻豆精品国产免费 | 久久精品亚洲精品 | 一区二区在线不卡 | 久久久精品日本 | www.伊人.com | 羞羞的视频网站 | 91久久| 国产亚洲精品久久久久久豆腐 | 五月天天丁香婷婷在线中 | 91亚洲精选 | 99精品免费在线观看 | 久久综合影院 |