一、按鍵抖動
通常的按鍵所用開關為機械彈性開關,當機械觸點斷開、閉合時,由于機械觸點的彈性作用,一個按鍵開關在閉合時不會馬上穩(wěn)定地接通,在斷開時也不會一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,為了不產(chǎn)生這種現(xiàn)象而作的措施就是按鍵消抖。
抖動時間的長短由按鍵的機械特性決定,一般為5ms~10ms。這是一個很重要的時間參數(shù),在很多場合都要用到。按鍵穩(wěn)定閉合時間的長短則是由操作人員的按鍵動作決定的,一般為零點幾秒至數(shù)秒。為確保CPU對鍵的一次閉合僅作一次處理,必須去除鍵抖動。在鍵閉合穩(wěn)定時讀取鍵的狀態(tài),并且必須判別到鍵釋放穩(wěn)定后再作處理。
二、按鍵消抖方法
1.硬件消抖:適用于按鍵較少時
(1)RS觸發(fā)器
圖中兩個“與非”門構成一個RS觸發(fā)器。當按鍵未按下時,輸出為0;當鍵按下時,輸出為1。此時即使用按鍵的機械性能,使按鍵因彈性抖動而產(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ā)器的工作過程很容易得到驗證。
(2)電容器
利用電容的放電延時,采用并聯(lián)電容法,也可以實現(xiàn)硬件消抖。如圖所示,由于電容兩端電壓不能突變,使得按鍵兩端的電壓平緩變化,直至電容充放電到達一定電壓閾值時,單片機才讀取到電平變化。
2.軟件消抖
如果按鍵較多,常用軟件方法消抖
(1)延時函數(shù)按鍵消抖
檢測出鍵閉合后執(zhí)行一個延時程序,5ms~10ms(取決于機械特性)的延時,讓前沿抖動消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認為真正有鍵按下。當檢測到按鍵釋放后,也要給5ms~10ms的延時,待后沿抖動消失后才能轉(zhuǎn)入該鍵的處理程序。
優(yōu)點:簡單方便
缺點:程序在空跑浪費CPU資源、不夠精準
注:如果按鍵是用中斷方式實現(xiàn)的,那就更不能在中斷服務函數(shù)里面使用延時函數(shù),因為中斷服務函數(shù)最基本的要求就是快進快出!
(2)定時器按鍵消抖
原理:按鍵采用中斷驅(qū)動方式,當按鍵按下以后觸發(fā)按鍵中斷,在按鍵中斷中開啟一個定時器,定時周期為 10ms,當定時時間到了以后就會觸發(fā)定時器中斷,最后在定時器中斷處理函數(shù)中讀取按鍵的值,如果按鍵值還是按下狀態(tài)那就表示這是一次有效的按鍵。
如圖所示:
圖中 t1 ~ t3 這一段時間就是按鍵抖動,是需要消除的。設置按鍵為下降沿觸發(fā)(由按鍵的電路決定),因此會在 t1、t2 和 t3 這三個時刻會觸發(fā)按鍵中斷,每次進入中斷處理函數(shù)都會重新開器定時器中斷,所以會在 t1、t2 和 t3 這三個時刻開器定時器中斷。但是 t1 ~ t2 和 t2 ~ t3 這兩個時間段是小于我們設置的定時器中斷周期(也就是消抖時間,比如 10ms),所以雖然 t1 開啟了定時器,但是定時器定時時間還沒到 t2 時刻就重置了定時器,最終只有 t3 時刻開啟的定時器能完整的完成整個定時周期并觸發(fā)中斷,我們就可以在定時器中斷處理函數(shù)里面做按鍵處理了。
優(yōu)點:節(jié)約CPU資源
缺點:消耗一個定時器
注:
1.消抖的定時時間由按鍵的機械特性決定,多調(diào)試。
2.中斷處理函數(shù)處理完要清除相應中斷標志。
3.進行按鍵處理后要清零和失能定時器,否則無按鍵按下時也在定時。
審核編輯:湯梓紅
-
電容器
+關注
關注
64文章
6711瀏覽量
102970 -
單片機
+關注
關注
6067文章
44992瀏覽量
650584 -
軟件
+關注
關注
69文章
5154瀏覽量
89230 -
RS觸發(fā)器
+關注
關注
3文章
101瀏覽量
18471 -
按鍵消抖
+關注
關注
2文章
28瀏覽量
10665
原文標題:【單片機】按鍵消抖及原理(硬件和軟件方法詳解)
文章出處:【微信號:被硬件攻城的獅子,微信公眾號:被硬件攻城的獅子】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
按鍵延時消抖的方法和目的分別是什么
51單片機的獨立按鍵和按鍵消抖及矩陣按鍵的電路與程序免費下載

使用51單片機實現(xiàn)按鍵消抖的資料和程序免費下載

使用51單片機實現(xiàn)矩陣按鍵的掃描消抖和動作分離的程序免費下載

STM單片機中的按鍵消抖和FPGA消抖
單片機復位后為什么要對sp重新賦值_自學單片機第二十二篇:延時消抖|延時|key|單片機|消抖...

評論