程序的主流程如圖1所示。 圖1 程序的主流程 程序主要分為兩個部分:一個部分不停地監(jiān)測是否有按鍵按下,另一個部分查看哪一個鍵按下。 在初始狀態(tài)下,4個列輸出端口輸出低電平,即rd0~rd3輸出低電平,然后持續(xù)監(jiān)測4個行輸入端口rd4~rd7的狀態(tài)是不是高電平?! ∪绻麤]有按鍵按下,則rd4~rd7的狀態(tài)是高電平;如果有按鍵按下,則被按下的鍵對應的行輸入端口的電平就會被拉低,rd4~rd7會有低電平出現(xiàn),對4個行輸入端口rd4~rd7的電平的監(jiān)測即為對按鍵的監(jiān)測?! ≡?個行輸入端口rd4~rd7上出現(xiàn)低電平時,就轉到查詢程序see。鍵盤掃描子程序流程如圖2所示,按鍵查詢子程序流程如圖3所示?! D2 鍵盤掃描子程序流程 圖3 按鍵查詢子程序流程 查詢程序see分以下5個步驟。 · 在4個列輸出端口rd0~rd3上輸出,判斷哪一個端口輸入低電平?! ?在4個列輸出端口rd0~rd3上輸出0111,查看4個行輸入端口rd4~rd7是否有低電平出現(xiàn);如果有低電平出現(xiàn),則可以確定哪個鍵按下,跳出查詢程序:否則進入下一項。 · 在4個列輸出端口rd0~rd3上輸出1011,查看4個行輸入端口rd4~rd7是否有低電平出現(xiàn);如果有低電平出現(xiàn),可以確定哪個鍵按下,并跳出查詢程序;否則進入下一項?! ?在4個列輸出端口rd0~rd3上輸出1101,查看4個行輸入端口rd4~rd7是否有低電平出現(xiàn);如果有低電平出現(xiàn),可以確定哪個鍵按下,跳出查詢程序;否則進入下一頊?! ?在4個列輸出端口rd0~rd3上輸出1110,查看4個行輸入端口rd4~rd7是否有低電平出現(xiàn);如果有低電平出現(xiàn),可以確定哪個鍵按下,跳出查詢程序;否則進入下一項。 程序清單如下?! 。?)主程序。 完成初始化,對4×4的鍵盤輸入進行掃描,然后將其輸入通過端口d的低4位輸出,顯示時先閃兩下再輸出?! 。?)鍵盤掃描子程序。 test為出口參數(shù),若有鍵按下則子程序返回時test=0ffh,若沒有鍵按下,則子程序返回時test=0?! 。?)按鍵查詢子程序。 當有按鍵按下時,運行該程序。value中存放被按下的按鍵的鍵值,s0~515的鍵值為0~15。 ?。?)延時自程序?! ount1存放外部循環(huán)次數(shù),count2存放內(nèi)部循環(huán)次數(shù)?! g迎轉載,信息來源維庫電子市場網(wǎng)()





