有人在网上求助矩阵键盘的驱动方法。
链接是在:用这个矩阵键盘做单片机输入。
题目内容如下。
用下面这个矩阵键盘做单片机输入,插 P1 口的 P1.0~P1.6。
想问的是,当:
按下 1 键 P0 口的 P0.0 输出高电平;
按下 2 键 P0.1 输出高电平;
……。
一直到 8 键就可以了。
用汇编语言哦。
-------------------
做而论道回答:
用按键控制单项输出,这就不需要消抖了。 执行如下程序即可。
;=====================================================
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 P0.X,全改成 SETB P0.X。
再把: MOV P0, #255
改成: MOV P0, #0
即可。
--本文完--