微控制器系統當中,最常用的外設和人機輸入就是按鍵,按鍵常分為獨立按鍵,矩陣按鍵,AD按鍵等。
一個按鍵獨立佔用一個微控制器埠,完成高低電平的變化,從而實現各種按鍵的邏輯判斷。
獨立按鍵的特點,區別於AD按鍵和矩陣鍵盤,獨立按鍵的邏輯判斷簡單,硬體設計簡單,主要是佔用微控制器的埠資源。
獨立按鍵的應用場景, 一般來說在按鍵個數較少,或者按鍵有多重功能複用時,考慮使用獨立按鍵。
為什麼需要消抖,這是因為在按鍵按下時候,會形成一個簡短機械的反覆電平抖動,而這種電平的抖動會容易造成誤判干擾,所以必須避開,一般有兩鍾方法。
硬體消抖,在按鍵並聯電容,利用電容對快速變化的電平有濾波作用而消抖。這種方式其實很少用。
軟體消抖,在微控制器判斷時,在按鍵按下的這個過程中,軟體避開抖動電平的區間。一般按鍵都是使用軟體消毒消抖。
在很多的初級教學視訊當中,常見使用delay函式延時10到 20ms避開抖動,其實這種方式有很大缺陷,不適合批量產品。
原因:微控制器執行程式的時候,是使用順序執行,使用delay消抖,佔用了微控制器資源,沒辦法處理其他的任務。也沒辦法複用按鍵,對連按,短按,長按,按下起反應,按後起反應進行區分與處理。
1需要一個能夠計時的裝置,計算你需要延時消抖的時間時長,這個部分就需要使用定時器。
2,每次按鍵按下,電平變化,定時器計數變數開始計數,等到時間,按鍵依舊有效,則觸發,如果中途按鍵電平變化,則計數變數清零,一般這個時間設定為10ms即可。
3,當鬆開按鍵,電平回覆成正常時,則清除計數變數的值。如下圖所示,則是對按鍵的 按鍵鬆開起反應的程式碼說明,按鍵鬆開後,按鍵狀態位值1。
微控制器系統當中,最常用的外設和人機輸入就是按鍵,按鍵常分為獨立按鍵,矩陣按鍵,AD按鍵等。
什麼是獨立按鍵以及特點一個按鍵獨立佔用一個微控制器埠,完成高低電平的變化,從而實現各種按鍵的邏輯判斷。
獨立按鍵的特點,區別於AD按鍵和矩陣鍵盤,獨立按鍵的邏輯判斷簡單,硬體設計簡單,主要是佔用微控制器的埠資源。
獨立按鍵的應用場景, 一般來說在按鍵個數較少,或者按鍵有多重功能複用時,考慮使用獨立按鍵。
按鍵的消抖方式為什麼需要消抖,這是因為在按鍵按下時候,會形成一個簡短機械的反覆電平抖動,而這種電平的抖動會容易造成誤判干擾,所以必須避開,一般有兩鍾方法。
硬體消抖,在按鍵並聯電容,利用電容對快速變化的電平有濾波作用而消抖。這種方式其實很少用。
軟體消抖,在微控制器判斷時,在按鍵按下的這個過程中,軟體避開抖動電平的區間。一般按鍵都是使用軟體消毒消抖。
獨立按鍵實現長按,短按,連按的實現思路和方法在很多的初級教學視訊當中,常見使用delay函式延時10到 20ms避開抖動,其實這種方式有很大缺陷,不適合批量產品。
原因:微控制器執行程式的時候,是使用順序執行,使用delay消抖,佔用了微控制器資源,沒辦法處理其他的任務。也沒辦法複用按鍵,對連按,短按,長按,按下起反應,按後起反應進行區分與處理。
按鍵的思路:1需要一個能夠計時的裝置,計算你需要延時消抖的時間時長,這個部分就需要使用定時器。
2,每次按鍵按下,電平變化,定時器計數變數開始計數,等到時間,按鍵依舊有效,則觸發,如果中途按鍵電平變化,則計數變數清零,一般這個時間設定為10ms即可。
3,當鬆開按鍵,電平回覆成正常時,則清除計數變數的值。如下圖所示,則是對按鍵的 按鍵鬆開起反應的程式碼說明,按鍵鬆開後,按鍵狀態位值1。