A. 常用的按鍵消抖方法有哪些分別用什麼方法來實現
按鍵的消抖,可用硬體或軟體兩種方法。
1、硬體消抖
在鍵數較少時可用硬體方法消除鍵抖動。硬體消抖的典型做法是:採用R-S觸發器或RC積分電路。
雙穩態消抖
電路的工作過程如下:當按鍵未按下時,a=0,b=1,輸出A=1,B=0。當按鍵按下時,按鍵的機械彈性作用使按鍵產生前沿抖動。當釋放按鍵時,按鍵的機械彈性作用使按鍵產生後沿抖動。
濾波消抖
電路的工作過程如下:當按鍵未按下時,電容C兩端的電壓為V,非門輸出為1。當按鍵按下時,由於電容C兩端的電壓不能突變,因此即使在接觸過程中出現抖動,只要C兩端的充電電壓波動不超過非門的開啟電壓(TTL為0.8V左右),非門的輸出就不會改變(可通過選取合適的R1、R2和C的值來實現)。
當按鍵斷開時,即使出現抖動,由於C兩端的電壓不能突變(它要經過R2放電),因此只要C兩端的放電電壓波動不超過非門的關閉電壓,非門的輸出就不會改變所以,RC電路濾波消抖成敗的關鍵在於R1、R2和C時間常數的選取。
必須保證C由穩態電壓充電到開啟電壓或放電到關閉電壓的延遲時間大於或等於10ms。參數的數值可由計算或實驗確定,圖中的參數僅供參考。若釆用輸入端有施密特觸發特性的門電路,則效果更好。
2、軟體消抖
實現方法:假設未按鍵時輸入1,按鍵後輸入為0,抖動時不定。可以做以下檢測:檢測到按鍵輸入為0之後,延時5ms~10ms,再次檢測,如果按鍵還為0,那麼就認為有按鍵輸入。
延時的5ms~10ms恰好避開了抖動期,從而消除了前沿抖動的影響同理,在檢測到按鍵釋放後,再延時5~10ms,消除後沿抖動,然後再對鍵值進行處理。不過一般情況下,我們通常不對按鍵釋放的後沿進行處理,實踐證明,這樣也能滿足一定的要求。
(1)按鍵消抖誰發明擴展閱讀
在機械按鍵的觸點閉合和斷開時,都會產生抖動,為了保證系統能正確識別按鍵的開關,就必須對按鍵的抖動進行處理。
按鍵的抖動對於人類來說是感覺不到的,但對單片機來說,則是完全可以感應到的,而且還是一個很「漫長」的過程,因為單片機處理的速度在「微秒」級,而按鍵抖動的時間至少在「毫秒」級。
單片機如果在觸點抖動期間檢測按鍵的通斷狀態,則可能導致判斷出錯,即按鍵一次按下或釋放被錯誤地認為是多次操作,從而引起誤處理。因此,為了確保單片機對一次按鍵動作只作—次響應,就必須考慮如何消除按鍵抖動的影響。
B. 按鍵防抖動原理
第一種是可以的,第二種不對達不到按鍵去抖的目的,第一種while(key1==0);是等待按鍵放開,而第二種while(key1!=0);如果按鍵執行到這里時還沒有放開就直接執行下面的程序了,如果到這已經放開了程序進入了死循環了,希望能幫到你
C. 按鍵消抖的其他相關
Verilog HDL語言實現按鍵消抖
assign key_done = (dout1 | dout2 | dout3); //按鍵消抖輸出always @(posedge count[17])begindout1 <= key_in;dout2 <= dout1;dout3 <= dout2;endalways @(negedge key_done[0])beginkeyen = ~keyen; //將琴鍵開關轉換為乒乓開關end
程序中所用的方法是不斷檢測按鍵值。每當Count[17]上升沿到來,就進行檢測輸入信號。其中dout1,dout2,dout3分別為當前、上個Count[17]上升沿、上上個Count[17]上升沿輸入數值。正常情況下為1,假如連續三次為0,三個信號作或運算,使得key_done信號為0,出現下降沿,這樣就認為是有按鍵。
D. 按鍵消抖的介紹
按鍵消抖通常的按鍵所用開關為機械彈性開關,當機械觸點斷開、閉合時,由於機械觸點的彈性作用,一個按鍵開關在閉合時不會馬上穩定地接通,在斷開時也不會一下子斷開。
E. 按鍵的工作原理及如何消抖
觸發器。。。
F. 按鍵消抖的方法
消抖是為了避免在按鍵按下或是抬起時電平劇烈抖動帶來的影響。按鍵的消抖,可用硬體或軟體兩種方法。 如果按鍵較多,常用軟體方法去抖,即檢測出鍵閉合後執行一個延時程序,5ms~10ms的延時,讓前沿抖動消失後再一次檢測鍵的狀態,如果仍保持閉合狀態電平,則確認為真正有鍵按下。當檢測到按鍵釋放後,也要給5ms~10ms的延時,待後沿抖動消失後才能轉入該鍵的處理程序。
一般來說,軟體消抖的方法是不斷檢測按鍵值,直到按鍵值穩定。實現方法:假設未按鍵時輸入1,按鍵後輸入為0,抖動時不定。可以做以下檢測:檢測到按鍵輸入為0之後,延時5ms~10ms,再次檢測,如果按鍵還為0,那麼就認為有按鍵輸入。延時的5ms~10ms恰好避開了抖動期。
G. 按鍵消抖真的有必要嗎
是這樣的:按鍵不消抖會引起誤判(把一次按鍵判成了兩次或者丟失按鍵)是肯定的,其誤判的幾率取決於你你每次檢查按鍵的時間間隔,這個時間間隔很長的話誤判的機會很小,它發生在你兩次檢查按鍵的時間點都在抖動的情況.
這個時間過長會給用戶按鍵不靈敏的感覺,時間過短接近抖動時間就會頻繁出錯,這樣的程序雖然能用但是是不嚴謹的.
至於會不會跑飛又是另外一個話題了,誤判和用戶的錯誤輸入應當是等同的效果,嚴格的講這種錯誤是不應該引起程序跑飛的.
H. 按鍵消抖的百科名片
通常的按鍵所用開關為機械彈性開關,當機械觸點斷開、閉合時,由於機械觸點的彈性作用,一個按鍵開關在閉合時不會馬上穩定地接通,在斷開時也不會一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,為了不產生這種現象而作的措施就是按鍵消抖。
I. 滑鼠中的按鍵消抖功能
按鍵消抖通常的按鍵所用開關為機械彈性開關,當機械觸點斷開、閉合時,由於機械觸點的彈性作用,一個按鍵開關在閉合時不會馬上穩定地接通,在斷開時也不會一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,為了不產生這種現象而作的措施就是按鍵消抖。