單片機按鍵消抖方式詳解
通常按鍵所用的開關都是機械彈性開關,,當機械觸點斷開,、閉合時,由于機械觸點的彈性作用,,一個按鍵開關在閉合時不會馬上就穩(wěn)定的接通,,在斷開時也不會一下子徹底斷開,而是在閉合和斷開的瞬間伴隨了一連串的抖動,,如圖所示: 按鍵消抖狀態(tài)圖 按鍵穩(wěn)定閉合時間長短是由操作人員決定的,,通常都會在100ms以上,刻意快速按的話能達到40-50ms左右,,很難再低了,。抖動時間是由按鍵的機械特性決定的,一般都會在10ms以內,,為了確保程序對按鍵的一次閉合或者一次斷開只響應一次,,必須進行按鍵的消抖處理。當檢測到按鍵狀態(tài)變化時,,不是立即去響應動作,,而是先等待閉合或斷開穩(wěn)定后再進行處理。按鍵消抖可分為硬件消抖和軟件消抖,。 硬件消抖:利用電容的充放電特性來對抖動過程中產生的電壓毛刺進行平滑處理,,從而實現(xiàn)消抖。但實際應用中,,這種方式的效果往往不是很好,,而且還增加了成本和電路復雜度,所以實際中使用的并不多,。 硬件電容消抖 軟件實現(xiàn)消抖: 最簡單的消抖原理,,就是當檢測到按鍵狀態(tài)變化后,先等待一個10ms左右的延時時間,,讓抖動消失后再進行一次按鍵狀態(tài)檢測,,如果與剛才檢測到的狀態(tài)相同,就可以確認按鍵已經穩(wěn)定的動作了,。 |
|
來自: 和生k7zm98l2kv > 《51單片機》