根據電路原理圖,鍵盤掃描方法是:行線P10~P13為輸出線,列線P14~P17為輸入線。一開始單片機將行線(P10~P13)全部輸出低電平,此時讀入列線數據,若列線全為高電平則沒有鍵按下,當列線有出現低電平時調用延時程序以此來去除按鍵抖動。延時完成后再判斷是否有低電平,如果此時讀入列線數據還是有低電平,則說明確實有鍵按下。最后一步確定鍵值。現在我們以第二行的S5鍵為例,若按下S5后我們應該怎么得到這個鍵值呢?當判斷確實有鍵按下之后,行線輪流輸出低電平,根據讀入列線的數據可以確定鍵值。首先,單片機將P10輸出為低電平,其它P11~P13輸出高電平,此時讀取列線的數據全為高電平,說明沒有在第一行有鍵按下;其次,單片機將P11輸出低電平,其它P10、P12、P13仍為高電平,此時再來讀取列線數據,發現列線讀到的數據有低電平,數值為1011(0x0B),如果我們的鍵盤布局已經確定,那么0x0B就代表S5的值了。轉到S5鍵功能處理子程序就可以達到目的。