欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)雙按鍵控制數(shù)碼管,仿真出錯(cuò),求大佬指點(diǎn)迷津,有文件上傳 [打印本頁(yè)]

作者: carrots    時(shí)間: 2021-11-2 10:35
標(biāo)題: 單片機(jī)雙按鍵控制數(shù)碼管,仿真出錯(cuò),求大佬指點(diǎn)迷津,有文件上傳
雙按鍵控制數(shù)碼管,仿真出錯(cuò),求大佬指點(diǎn)迷津,有文件上傳
  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. //主函數(shù)通過(guò)調(diào)用按鍵檢測(cè)函數(shù),顯示函數(shù)完成數(shù)碼管對(duì)按鍵有效擊鍵次數(shù)的顯示
  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. }
復(fù)制代碼
雙按鍵組合加減.rar (43.02 KB, 下載次數(shù): 6)
求大佬指點(diǎn)迷津。

作者: carrots    時(shí)間: 2021-11-2 10:35
就是仿真的時(shí)候按按鍵沒(méi)反應(yīng)
作者: AUG    時(shí)間: 2021-11-2 11:48
確定仿真頻率是否正確,有時(shí)候仿真它跑得很慢  你按鍵時(shí)間短了,壓根就沒(méi)檢查到,你就松開(kāi)了.
1、修改按鍵掃描時(shí)的消抖延時(shí),減小延時(shí)時(shí)間看看;蛘甙存I按的時(shí)候時(shí)間持續(xù)長(zhǎng)一點(diǎn)點(diǎn)。看仿真軟件下方的仿真時(shí)間而定。
2、程序去除掉數(shù)碼管的顯示。保留按鍵掃描,通過(guò)LED來(lái)確定按鍵掃描程序是否正常運(yùn)行,如果正常運(yùn)行再開(kāi)啟數(shù)碼管顯示程序。

作者: wulin    時(shí)間: 2021-11-2 15:54
給你改好了,但不直接告訴你問(wèn)題在哪,你自己逐字對(duì)照找錯(cuò)誤,以后就不會(huì)再犯了,終身享用。


  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. //主函數(shù)通過(guò)調(diào)用按鍵檢測(cè)函數(shù),顯示函數(shù)完成數(shù)碼管對(duì)按鍵有效擊鍵次數(shù)的顯示
  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. }
復(fù)制代碼





作者: carrots    時(shí)間: 2021-11-2 17:00
wulin 發(fā)表于 2021-11-2 15:54
給你改好了,但不直接告訴你問(wèn)題在哪,你自己逐字對(duì)照找錯(cuò)誤,以后就不會(huì)再犯了,終身享用。

謝謝你了,超級(jí)感謝。我是個(gè)大傻子!終于好了




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1