3x3矩陣鍵盤簡介
矩陣鍵盤,3×3矩陣鍵盤,數(shù)碼管顯示對應(yīng)按鍵,動態(tài)掃描,中斷實現(xiàn)。
其中上拉電阻屬性需設(shè)置為“digital”。
3x3矩陣鍵盤掃描原理及掃描程序
將9個按鍵排成3行3列,第一行將每個按鍵的一端連接在一起構(gòu)成行線,第一列將每個按鍵的另一端連接在一起構(gòu)成列線,這樣一共有3行3列一共6根線,我們將這六根線連接到STM32的6個IO口上,通過程序掃描鍵盤就可檢測9個鍵。
無論獨立鍵盤還是矩陣鍵盤,單片機檢測其是否被按下的原理都是一樣的,也就是檢測與該鍵對應(yīng)的I/O口是否為低電平。獨立按鍵有一端固定為低電平,單片機寫程序檢測時比較方便。而矩陣鍵盤兩端都與單片機I/O口相連,因此在檢測時需要人為通過單片機I/O口送出低電平。檢測時,先送一列為低電平,其余幾列為高電平(此時我們確定了列數(shù)),然后立即輪流檢測一次各行是否有低電平,若檢測到某一行為低電平(此時我們又確定了行數(shù)),則我們便可確認當前按下的鍵是哪一行哪一列的,用同樣的方法輪流送各列一次低電平,再輪流檢測一次各行是否變?yōu)榈碗娖?,這樣既可檢測完所有的按鍵。當然我們也可將行線置低電平,掃描列是否有低電平。這就是矩陣鍵盤的檢測原理和方法。
SETB P1.0 ;首先各位先置一
SETB P1.1
SETB P1.2
SETB P1.3
SETB P1.4
SETB P1.5
KEY: CLR P1.0 ;行線均清零
CLR P1.1 CLR P1.2
JNB P1.3 , KEY0 ;判斷是否有按鍵按下
JNB P1.4, KEY0
JNB P1.5 , KEY0
SJMP KEY ;無按鍵按下回到KEY繼續(xù)查詢是否有按鍵按下
KEY0: LCALL DELAY ;調(diào)用延時函數(shù)
CLR P1.0 ;P1.0清零,P1.1、P1.2置一
SETB P1.1
SETB P1.2
JNB P1.3 , KEY1 ;P1.3為零則按鍵一被按下,跳轉(zhuǎn)到按鍵一KEY1處
JNB P1.4 , KEY2
JNB P1.5 , KEY3
SETB P1.0 ;P1.1清零,P1.0、P1.2置一 CLR P1.1
SETB P1.2
JNB P1.3 , KEY4
JNB P1.4 , KEY5
JNB P1.5 , KEY6
SETB P1.0 ;P1.2清零,P1.0、P1.1置一
SETB P1.1
CLR P1.2
JNB P1.3 , KEY7
JNB P1.4 , KEY8
JNB P1.5 , KEY9
SJMP KEY ;如果無按鍵按下重新跳回到按鍵查詢程序
KEY1: LCALL PRO1 ;調(diào)用按鍵一的處理子程序
LJMP KEY ;返回繼續(xù)查詢按鍵是否被按下
KEY2: LCALL PRO2
LJMP KEY
KEY3: LCALL PRO3
LJMP KEY
KEY4: LCALL PRO4
LJMP KEY
KEY5: LCALL PRO5
LJMP KEY
KEY6: LCALL PRO6
LJMP KEY
KEY7: LCALL PRO7
LJMP KEY
KEY8: LCALL PRO8
LJMP KEY
KEY9: LCALL PRO9
LJMP KEY
PRO1: 。 ;按鍵一的處理子程序
RET ;子程序返回
PRO2:
。 RET
PRO3:
RET
PRO4:
RET
PRO5:
RET
PRO6:
RET
PRO7:
RET
PRO8:
RET
PRO9:
RET
-
矩陣鍵盤
+關(guān)注
關(guān)注
7文章
206瀏覽量
31410
發(fā)布評論請先 登錄
相關(guān)推薦
評論