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