㈠ 單片機行列式鍵盤掃描原理
單片機行列式鍵盤掃描原理如下:
1、行線P10~P13為輸出線,列線P14~P17為輸入線。一開始單片機將行線(P10~P13)全部輸出低電平,此時讀入列線數據,若列線全為高電平則沒有鍵按下,當列線有出現低電平時調用延時程序以此來去除按鍵抖動。
2、延時完成後再判斷是否有低電平,如果此時讀入列線數據還是有低電平,則說明確實有鍵按下。最後一步確定鍵值。當判斷確實有鍵按下之後,行線輪流輸出低電平,根據讀入列線的數據可以確定鍵值。
3、單片機將P10輸出為低電平,其它P11~P13輸出高電平,此時讀取列線的數據全為高電平,說明沒有在第一行有鍵按下;其次,單片機將P11輸出低電平,其它P10、P12、P13仍為高電平。
4、此時再來讀取列線數據,發現列線讀到的數據有低電平,數值為1011(0x0B),如果我們的鍵盤布局已經確定,那麼0x0B就代表S5的值了。轉到S5鍵功能處理子程序就可以達到目的。
(1)單片機低電平掃描擴展閱讀
單片機學習方法
1、基礎理論知識學習
基礎理論知識包括模擬電路、數字電路和C語言知識。。在學習單片機之前,覺得模擬電路和數字電路基礎不好的話,不要急著學習單片機,應該先回顧所學過的模擬電路和數字電路知識,為學習單片機加強基礎。
2、單片機實踐
准備一台電腦、一塊單片機開發板、一套視頻教程、一本單片機教材和一本C語言教材。電腦是用來編寫和編譯程序,並將程序代碼下載到單片機上;開發板來運行單片機程序,驗證實際效果。
㈡ 單片機 行列矩陣鍵盤
這是一種常見的4*4矩陣鍵盤掃描按鍵的方法。其原理是先把4條列線設置為低電平,然後掃描行線,如有按鍵被按下,必定有一條行線為低電平。再把為低電平的行線設置為低電平,然後掃描列線,如有按鍵被按下,必定有一條列線為低電平。
在倒數第3句,P3=x;這里的x中的值是對應行線為低電平,其他7位為高電平。x是P3和0x0f按位或,也就是高四位(行)不變,低四位(列)全置1。但key_code重新讀取P3後,由於前面的操作中把高四位(行)的某一條線置為低電平,按下的鍵導致與該行線接觸的列線必定被拉低為低電平,所以這里key_code的低四位不是1111,而是有一位是0,這樣結合高四位的值就可以確定鍵碼了。
在51單片機中需要注意,雖然向單片機的引腳輸出1,但接著讀回的數據完全受引腳外部電平控制。原則上讀取51單片機的I/O之前必須向向對應I/O寫1,而讀回的數據完全決定於引腳外接電平。這意味著,即使輸出信號,如果外部電平未改變,讀取的數據可能仍然是之前的值,因此在讀取I/O之前應確保輸出高電平。
此外,為了確保准確讀取按鍵狀態,通常在掃描行線和列線時,需要快速切換電平,以避免讀取錯誤的電平狀態。例如,在設置行線為低電平後,應立即掃描對應的列線,然後再快速恢復行線為高電平,繼續下一個行線的掃描。
在實際應用中,還需要注意按鍵的抖動問題,這可能會導致誤觸發。可以通過軟體延時或硬體去抖動電路來解決這個問題。軟體延時通常是通過增加讀取按鍵狀態之間的延時來實現,而硬體去抖動電路則是在按鍵兩端並聯一個電容和電阻,利用RC電路的充放電特性來濾除抖動。
總的來說,4*4矩陣鍵盤的掃描方法需要精確控制電平切換和讀取時機,同時還需要考慮按鍵抖動的影響,以確保按鍵檢測的准確性。