本次實驗通過掃描矩陣鍵盤,讀取鍵值并用1602液晶顯示。
簡單介紹一下矩陣鍵盤,實際應用中,正常一個按鍵需要占用一個IO,我們為了節省IO資源,于是把多個按鍵做成矩陣鍵盤的形式。如一個4x4的矩陣鍵盤,隻需要8個IO口就可以了,每個按鍵有它的行值和列值,行值和列值的組合就是識别這個按鍵的編碼。
單片機通過不斷掃描IO口的方式,反饋回來8個IO的實時狀态,當有按鍵按下時,IO口的狀态改變,通過對比就能識别是哪個按鍵按下了。
下面通過Arduino連接矩陣鍵盤和1602液晶,把鍵盤按下鍵值在液晶上顯示出來,原理圖的連接如下圖.
硬件原理圖
2.程序解讀算法描述:
Arduino的矩陣鍵盤的驅動的是庫函數的形式,直接調用庫的鍵盤配置函數和掃描函數,對鍵盤識别,所以Arduino的庫函數使用起來還是挺方便的。
矩陣鍵盤的掃描其實跟按鍵控制的算法有點類似,首先是讀取按鍵掃描回來的按鍵,當返回來鍵值之後再在LCD1602上顯示,并不難哦。因為1602一行隻能顯示16個字符,所以當顯示滿了之後要做換行處理,同樣,液晶兩行都顯示滿了之後,需要清屏刷新再繼續顯示鍵值。
其實這種按鍵掃描是基于循環查詢的方法的,掃描的過程比較占用CPU時間,比較好點的處理方法是用狀态機的方法實現。盡量減少鍵盤查詢過程對 cpu 的占用時間
LCD1602的顯示以前文章有介紹過了,這裡就不多介紹。
代碼解讀:
詳細的代碼解讀請看注釋
3.實物效果
實物連接圖如下,當按鍵按下時候,對應的鍵值會在LCD1602上顯示出來。
實驗動态效果圖如下:
歡迎點贊和轉發,關注頭條号:奔跑的晶體管 可以學到更多的電子知識哦。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!