<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)一般按鍵的設(shè)計(jì)

          單片機(jī)一般按鍵的設(shè)計(jì)

          作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
          一、機(jī)械按鍵的抖動(dòng)

          本文引用地址:http://www.ex-cimer.com/article/201611/322007.htm

          鍵盤,作為向系統(tǒng)操作人員的干預(yù)指令的接口,以其特定的按鍵序列代表著各種確定的操作命令,所以,準(zhǔn)確無誤的辨認(rèn)每個(gè)鍵的動(dòng)作和其所處的狀態(tài),是系統(tǒng)能否正常工作的關(guān)鍵。多數(shù)鍵盤的按鍵多使用機(jī)械式彈性開關(guān),一個(gè)電信號(hào)通過機(jī)械觸點(diǎn)的斷開,閉合過程完成高低電平的切換。由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合及斷開的瞬間必然伴隨著一連串的抖動(dòng),其波形如圖所示:


          抖動(dòng)過程的長(zhǎng)短是由按鍵的機(jī)械特性決定,一般是10~20ms。為了使CPU對(duì)一次按鍵動(dòng)作只確認(rèn)一次,必須消除抖動(dòng)的影響,可以從硬件及軟件兩個(gè)方面著手。本文只介紹軟件方面的防抖。

          軟件防抖的思路:當(dāng)?shù)谝淮螜z測(cè)到有建按下時(shí),先用軟件延時(shí)(10~20ms),而后再確認(rèn)鍵電平是否依舊維持閉合狀態(tài)的電平。若保持閉合狀態(tài)電平,則確認(rèn)此間已按下,從而消除抖動(dòng)影響。

          二、proteus仿真

          源程序:

          #include
          #include
          #define uchar unsigned char
          #define uint unsigned int

          sbit jia_key=P2^0;
          sbit jian_key=P2^1;

          uint i;//定義要顯示的數(shù)字、字符
          uchar duan_code[]={
          0x3f,0x06,0x5b,0x4f,
          0x66,0x6d,0x7d,0x07,
          0x7f,0x6f,0x77,0x7c,
          0x39,0x5e,0x79,0x71
          };//共陰極數(shù)碼管段碼0~F

          void delay_ms(uint z)//ms級(jí)延遲函數(shù),z表示形參,是幾就是幾ms延遲
          {
          uint x,y;
          for(x=z;x>0;x--)
          for(y=99;y>0;y--)
          { _nop_();
          _nop_();
          }
          }

          void scankey(void)//按鍵掃描函數(shù)
          {
          if(jia_key==0)//加按鍵檢測(cè)
          {
          delay_ms(150);//延遲防抖
          if(jia_key==0)//加按鍵檢測(cè)
          i++;
          if(i>15)
          i=15;
          }

          if(jian_key==0)//減按鍵檢測(cè)
          {
          delay_ms(150);//延遲防抖
          if(jian_key==0)//減按鍵檢測(cè)
          i--;
          if(i<0)
          i=0;
          }

          }
          void main(void)//主函數(shù)
          {
          P0=0X00;//初始化P0口為低電平
          while(1)
          {
          scankey();//檢測(cè)按鍵
          P0=duan_code[i];//數(shù)碼管顯示
          }
          }



          關(guān)鍵詞: 單片機(jī)一般按

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();