很多的嵌入式或者單片機系統中,一般都需要向嵌入式或者單片機系統輸入信息的外設,以及嵌入式或者單片機向外輸出信息的外設
我們常見的顯示屏,數碼管等就是嵌入式或者單片機系統輸出外設
觸摸板,獨立按鍵等就是嵌入式或者單片機系統輸入的一種外設。
所以,關于單片機系統中運用獨立按鍵的目的,是為了滿足用戶在單片機系統已有的功能中,選擇自己需要的功能,或者設置對應的參數。
一般來說,獨立按鍵是通過物理機械式的接觸,將VCC或者GND短接,達到單片機的某一個IO電平變化的按鍵方式。
它與矩陣鍵盤,ADC按鍵等其他的按鍵方式,有電路設計簡單穩定,軟件處理簡單的優點,但這種形式相對于矩陣鍵盤和ADC按鍵的形式,更多占用IO口
一般獨立按鍵在硬件上設計時,如下圖所示
采取上拉式,其中的電阻是限流電阻,保護MCU的IO不會損壞,電容是濾波電容,
按鍵沒有按下時,MCU端口一直高電平,當按鍵按下時,端口就會變為低電平
在軟件設計過程中,可以采用外部中斷形式,或者IO端口循環掃描的形式進行鍵值的獲取,在按鍵狀態獲取時,需要考慮軟件消抖,同時建議不要使用Delay延時,使用時間計數方式來計算按鍵狀態時間,避免了占用MCU資源,無法處理其他的任務。
按鍵的運用在軟件中,按鍵的運用較為靈活,當多個按鍵同時存在時,可以通過組合按鍵操作實現某一個功能,但當只有一個按鍵,項目又需要多個功能實現切換的時候,可以考慮,短按+長按,按鍵按中+按鍵松開,單擊+雙擊+多擊,多種形式靈活組合實現各個不同的操作流程。
比如
關機狀態,短按進入待機X狀態
關機狀態,長按進入狀態A
待機X狀態短按,進入狀態B,
待機X狀態后長按,進入狀態C,
待機X狀態,快速多連擊進入狀態D
等等這樣的操作形式或者流程,就能利用一個獨立按鍵,實現多個功能代碼的設計。
獨立按鍵是單片機系統中一個很重要的設計,簡單運用很簡單,但深入靈活的組合實現也是需要自己仔細琢磨,將獨立按鍵的用法吃透,在實際的項目開發過程中,會讓您的解決問題可選方案增加很多,工作更加得心應手。