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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

C51單片機(jī)按鍵添加防抖動延時后,其他按鍵就無效了?

查看數(shù): 2475 | 評論數(shù): 5 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2020-3-18 20:28

正文摘要:

K1添加防抖動延時后,其他按鍵就無效了,但是不添加的話,按一下會跳好多個 單片機(jī)代碼如下 #include<reg51.h> #include<intrins.h> sbit K1=P1^0; sbit K2=P1^1; sbit K3=P1^2; sbit K4=P1^3; un ...

回復(fù)

ID:372579 發(fā)表于 2020-3-19 19:55
這個問題我也可以學(xué)習(xí)了
ID:704397 發(fā)表于 2020-3-19 18:14
wulin 發(fā)表于 2020-3-19 08:50
在你的程序中K1按一下會跳好多次是因為移位能夠觀察到,K2~K4也跳好多次只不過內(nèi)容不變你觀察不到。添加一 ...

可以了可以了,謝謝謝謝
ID:704397 發(fā)表于 2020-3-19 18:13
lovexulu 發(fā)表于 2020-3-18 22:22
這圖上上電復(fù)位認(rèn)真的嗎?防抖不會令其他按鍵失效,一定是寫錯了,最常見防抖是delay(x);if。。。。

好的,謝謝
ID:213173 發(fā)表于 2020-3-19 08:50
在你的程序中K1按一下會跳好多次是因為移位能夠觀察到,K2~K4也跳好多次只不過內(nèi)容不變你觀察不到。添加一個標(biāo)志flag并不能防抖動。修改如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. sbit K1=P1^0;
  4. sbit K2=P1^1;
  5. sbit K3=P1^2;
  6. sbit K4=P1^3;
  7. bit flag=0;  
  8. bit sign=0;

  9. void delay(unsigned int x)
  10. {
  11.         unsigned int i,j;
  12.         for(i=x;i>0;i--)
  13.                 for(j=110;j>0;j--);
  14. }

  15. void main(void)
  16. {
  17.         while(1)
  18.         {
  19.                 if((P1&0x0f)!=0x0f)
  20.                 {
  21.                         delay(10);
  22.                         if((P1&0x0f)!=0x0f && sign==0)
  23.                         {
  24.                                 sign=1;
  25.                                 if(K2==0)  
  26.                                 {
  27.                                         flag=0;
  28.                                         P0=0xf0;
  29.                                 }
  30.                                 else if(K3==0)  
  31.                                 {
  32.                                         flag=0;
  33.                                         P0=0x0f;
  34.                                 }
  35.                                 else if(K4==0)  
  36.                                 {
  37.                                         flag=0;
  38.                                         P0=0xff;
  39.                                 }
  40.                                 else if(K1==0)   
  41.                                 {   
  42.                                         if(flag==0)
  43.                                         {
  44.                                                 P0=0xfe;
  45.                                                 flag=1;
  46.                                         }
  47.                                         else P0=_crol_(P0,1);       
  48.                                 }
  49.                         }
  50.                 }
  51.                 else sign=0;
  52.         }
  53. }
復(fù)制代碼
ID:687694 發(fā)表于 2020-3-18 22:22
這圖上上電復(fù)位認(rèn)真的嗎?防抖不會令其他按鍵失效,一定是寫錯了,最常見防抖是delay(x);if。。。。

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

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

快速回復(fù) 返回頂部 返回列表