在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 關于單片機按鍵的抖動與消抖

            關于單片機按鍵的抖動與消抖

            作者: 時間:2016-11-18 來源:網(wǎng)絡 收藏
            單片機的程序中,如果涉及到按鍵,一般都會看到幾行注釋著“消抖”的代碼。
            比如下面這一段:

            if((KeyV|0xc3)==0xff){//無鍵按下
            return 0;
            }
            mDelay(10);//延時,去鍵抖
            KeyV=P3;
            if((KeyV|0xc3)==0xff){//無鍵按下
            return 0;
            }

            關于其作用與目的,有如下解釋:
            按鍵在按下時會產(chǎn)生電平的變化,通常是由高電平變?yōu)榈碗娖?,而且這一過程也不是瞬間完成的,按鍵按下之后,電平會有一段不穩(wěn)定變化的時間。一般情況下,我們的程序讀取這個電平變化并做相關的動作。但由于機械按鍵的局限性,當系統(tǒng)受到外力而產(chǎn)生抖動或其它動作時,也可能使系統(tǒng)內(nèi)部產(chǎn)生電平變化(通常這種變化持續(xù)的時間非常短),這種現(xiàn)象稱之為按鍵的“抖動”。
            這種“抖動”顯然不是我們期望出現(xiàn)的,一旦程序中沒有針對它進行特殊處理,這種隱患很可能導致系統(tǒng)執(zhí)行我們不希望出現(xiàn)的動作。進而可能釀成一場悲劇。避免按鍵“抖動”的操作就稱之為“消抖”。
            目前,單片機的消抖主要分為軟件消抖和硬件消抖。
            其中,軟件消抖增加軟件資源,但不增加硬件成本;硬件消抖反之。
            現(xiàn)在普遍采用的是軟件消抖的方式。

            軟件消抖具體的操作思路是:
            當監(jiān)聽到按鍵被按下時,不立刻執(zhí)行相關的操作,而進行一定時間的延時(通常是50ms),之后再次檢測按鍵是否被按下,如果此時按鍵仍然被按下,則判定按鍵確實被按下了(因為不論是異常情況導致的抖動還是正常情況下按鍵被按下產(chǎn)生的電平變化都會在這一段時間內(nèi)過去,緊接著的電平將會是穩(wěn)定的),然后進行按鍵被按下之后所需要的操作,否則判定按鍵未被按下,繼續(xù)監(jiān)聽按鍵狀態(tài)。
            實際上,以上所說的軟件消抖的方法在真正的軟件中應用的不多,只是在練習的時候使用。真正的應用上,會在可能產(chǎn)生抖動的那一段時間內(nèi)等間隔多次監(jiān)聽按鍵狀態(tài)(電流狀態(tài)),等到數(shù)次(可以是連續(xù)5次)電流平穩(wěn)了才確定按鍵被按下。按鍵被放開時采取同樣操作。這樣才不會產(chǎn)生誤差,例如在延時的時候出現(xiàn)按鍵按下并放卡的情況會被漏過。

            硬件消抖的思路則是采用相關手段去除最初產(chǎn)生的那不穩(wěn)定的電平變化,只輸出后面穩(wěn)定的電平。
            具體的實現(xiàn)方法有以下兩種:

            法1:
            用10K的上拉電阻與按鍵串聯(lián),然后按鍵并聯(lián)一個去抖電容用以消除按鍵的機械抖動。電容的計算方法如下:電容的容值是根據(jù)機械按鍵的觸點抖動頻率而定,一般機械按鍵的抖動頻率為100Hz左右,當按鍵閉合抖動時接觸時間在毫秒級,根據(jù)電容放電的時間t=0.7×√RCR=10K,C選0.1μF,電容的充放電時間約20ms,大于抖動時間,可將抖動濾除掉。通常電容C選取0.01μF~1μF.

            法2:
            在鍵數(shù)較少時可用硬件方法消除按鍵抖動。下圖所示的RS觸發(fā)器為常用的硬件去抖。


            圖中兩個“與非”門構(gòu)成一個RS觸發(fā)器。當按鍵未按下時,輸出為1;當按鍵按下時,輸出為0.此時即使用按鍵的機械性能,使按鍵因彈性抖動而產(chǎn)生瞬時斷開(抖動跳開B),按鍵不返回原始狀態(tài)A,雙穩(wěn)態(tài)電路的狀態(tài)不改變,輸出保持為0,不會產(chǎn)生抖動的波形。也就是說,即使B點的電壓波形是抖動的,但經(jīng)雙穩(wěn)態(tài)電路之后,其輸出為正規(guī)的矩形波。這一點通過分析RS觸發(fā)器的工作過程很容易得到驗證。



            評論


            技術專區(qū)

            關閉