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