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

          新聞中心

          淺談按鍵消抖

          作者: 時(shí)間:2016-11-29 來源:網(wǎng)絡(luò) 收藏

          下面再介紹一種按鍵消抖的方法:利用switch()結(jié)構(gòu),程序設(shè)計(jì)如下:

          無延時(shí)的軟件消抖

          /*********************************************名稱:鍵盤掃描子函數(shù)功能:在按鍵穩(wěn)定期內(nèi)判斷鍵值,并返回鍵值**********************************************/uchar keyscan(void){static char key_state = 0;static char key_value = 0;uchar key_press, key_return = 0;key_press=turn_left&turn_right;     //讀按鍵I/O電平switch (key_state) {case 0 :   // 按鍵初始態(tài)if (key_press==0) key_state = 1; // 鍵被按下,但需要確認(rèn)是否是干擾break;case 1 : // 按鍵確認(rèn)態(tài)if (key_press==0)//如有鍵按下則不是干擾,判斷鍵值{       if(turn_left==0)   //判斷是哪一個(gè)按鍵被按下key_value=1;       //按鍵較多時(shí)可采用switch選擇結(jié)構(gòu)else if(turn_right==0)key_value=2;else  key_value=0;key_state = 2; // 狀態(tài)轉(zhuǎn)換到鍵釋放態(tài)}else  key_state = 0; // 按鍵已抬起,屬于干擾,轉(zhuǎn)換到按鍵初始態(tài)break;case 2 :if (key_press==1) {key_return=key_value;//按鍵釋放后再輸出鍵值 key_value=0;key_state = 0; //如果按鍵釋放,轉(zhuǎn)換到按鍵初始態(tài)}  break;}return key_return; //返回鍵值}/*********************************************名稱:按鍵處理子函數(shù)功能:**********************************************/void key_operation(void){    switch (keyscan())      //根據(jù)鍵值不同,執(zhí)行不同的內(nèi)容{ case 1:hight_votage-=1;if(hight_votage<5)hight_votage=5; break;case 2:hight_votage+=1;if(hight_votage>25)hight_votage=25; break;default :break;} }

          只要有按鍵就一定要想到消抖,總之不管是硬件消抖還是軟件消抖,在腦海里始終要想到按鍵按下時(shí)出現(xiàn)圖一的情景,然后再進(jìn)行相應(yīng)的設(shè)計(jì)。

          幾個(gè)好的按鍵設(shè)計(jì)的總結(jié)
          對于多個(gè)按鍵的設(shè)計(jì)常用思路是: 按照面向過程的編程方式, 將數(shù)據(jù)與過程分離. 把和按鍵狀態(tài)相關(guān)的東西比如按鍵功能統(tǒng)統(tǒng)塞到結(jié)構(gòu)里, 把消抖的代碼放在一個(gè)函數(shù)中。這里介紹按鍵設(shè)計(jì)的幾種方法:

          1、 矩陣鍵盤,http://www.51hei.com/f/jzjpcx.rar
          (這個(gè)文檔里放了幾個(gè)矩陣鍵盤的程序,個(gè)人覺得這幾個(gè)程序比較精簡,大家可以參看一下)

          2、 ADC按鍵,具體設(shè)計(jì)點(diǎn)擊這個(gè)網(wǎng)址:http://www.ceet.hbnu.edu.cn/bbs/viewthread.php?tid=7641&extra=&highlight=%CA%FD%D7%D6%CA%BE%B2%A8%C6%F7&page=2

          ADC按鍵的優(yōu)點(diǎn)是節(jié)省IO口,但是需要調(diào)配好電阻值,個(gè)人覺得有點(diǎn)麻煩。

          3、 并入串出按鍵,具體設(shè)計(jì)點(diǎn)擊這個(gè)網(wǎng)址:http://www.ceet.hbnu.edu.cn/bbs/redirect.php?tid=8059&goto=lastpost#lastpost

          4、 4*3鍵盤并且復(fù)用端口很牛http://www.51hei.com/mcu/1316.html


          上一頁 1 2 下一頁

          關(guān)鍵詞: 按鍵消抖軟件消

          評論


          技術(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); })();