單片機開發——獨立按鍵的掃描

咱們就先編寫一個獨立按鍵的程序,把最基本的功能驗證一下。微信

本程序固定在 KeyOut1 上輸出低電平,而 KeyOut2~4 保持高電平,就至關因而把矩陣按鍵的第一行,即 K1~K4 做爲 4 個獨立按鍵來處理,而後把這 4 個按鍵的狀態直接送給LED9~6 這 4 個 LED 小燈,那麼當按鍵按下時,對應按鍵的輸入引腳是 0,對應小燈控制信號也是 0,因而燈就亮了,這說明上述關於按鍵檢測的理論都是可實現的。絕大多數狀況下,按鍵是不會一直按住的,因此咱們一般檢測按鍵的動做並非檢測一個固定的電平值,而是檢測電平值的變化,即按鍵在按下和彈起這兩種狀態之間的變化,只要發生了這種變化就說明如今按鍵產生動做了。(不喜歡閱讀文字?登陸「樂搏學院」官網,海量在線視頻教程免費學習,關注咱們還有驚喜喲)學習

程序上,咱們能夠把每次掃描到的按鍵狀態都保存起來,當一次按鍵狀態掃描進來的時候,與前一次的狀態作比較,若是發現這兩次按鍵狀態不一致,就說明按鍵產生動做了。當上一次的狀態是未按下而如今是按下,此時按鍵的動做就是「按下」;當上一次的狀態是按下而如今是未按下,此時按鍵的動做就是「彈起」。顯然,每次按鍵動做都會包含一次「按下」和一次「彈起」,咱們能夠任選其一來執行程序,或者兩個都用,以執行不一樣的程序也是能夠的。下面就用程序來實現這個功能,程序只取按鍵 K4 爲例。.net

在這個程序中,咱們以 K4 爲例,按一次按鍵,就會產生「按下」和「彈起」兩個動態的動做,咱們選擇在「彈起」時對數碼管進行加 1 操做。理論是如此,你們能夠在板子上用K4 按鍵作作實驗試試,多按幾回,是否是會發生這樣一種現象:有的時候我明明只按了一下按鍵,但數字卻加了不止 1,而是 2 或者更多?可是咱們的程序並無任何邏輯上的錯誤,這是怎麼回事呢?因而咱們就得來講說按鍵抖動和消抖的問題了。(不喜歡閱讀文字?登陸「樂搏學院」官網,海量在線視頻教程免費學習,關注咱們還有驚喜喲)3d

免費學習更多精品課程,登陸樂搏學院官網http://www.learnbo.com/視頻

或關注咱們的官方微博微信,還有更多驚喜哦~blog

相關文章
相關標籤/搜索