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