51 單片機(jī)匯編語言--矩陣鍵盤的驅(qū)動(dòng)
用這個(gè)矩陣鍵盤做單片機(jī)輸入,插 P1 口的 P1.0~P1.6。
想問的是,當(dāng):
按下 1 鍵 P0 口的 P0.0 輸出高電平;
按下 2 鍵 P0.1 輸出高電平;
……
一直到 8 鍵就可以了。
還有一個(gè)要求,當(dāng)按下一個(gè)鍵時(shí)延時(shí)5秒并鎖住其它按鍵,5秒之后回到起點(diǎn)。用匯編語言
;=====================================================
;如下即可:
ORG 0000H
START:
MOV P0, #255
MOV P1, #255
CLR P1.0
NOP
JNB P1.4, K1
JNB P1.5, K2
JNB P1.6, K3
MOV P1, #255
CLR P1.1
NOP
JNB P1.4, K4
JNB P1.5, K5
JNB P1.6, K6
MOV P1, #255
CLR P1.2
NOP
JNB P1.4, K7
JNB P1.5, K8
; JNB P1.6, K9
SJMP START
K1: CLR P0.0
SJMP DELAY
K2: CLR P0.1
SJMP DELAY
K3: CLR P0.2
SJMP DELAY
K4: CLR P0.3
SJMP DELAY
K5: CLR P0.4
SJMP DELAY
K6: CLR P0.5
SJMP DELAY
K7: CLR P0.6
SJMP DELAY
K8: CLR P0.7
DELAY:
MOV R5, #10
DJNZ R7, $
DJNZ R6, $ - 2
DJNZ R5, $ - 4
LJMP START
END
如果需要按鍵控制輸出高電平,把上述程序中的 CLR,全改成 SETB。
再把: MOV P0, #255
改成: MOV P0, #0
即可。