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