单片机型号:STC 89C52RC 引脚如图:
接线方法:4X4矩阵键盘,每行接P3.0-P3.3引脚,每列接P3.4-P3.7引脚,8个LED发光二极管接P1.0-P1.7,用于显示当前按下的键盘序号的二进制表示。
代码如下:
ORG 0000H
LJMP MAIN
MAIN: MOV P3,
;检查所有行,若出现低电平则跳转
JNB P3.0,H1
JNB P3.1,H2
JNB P3.2,H3
JNB P3.3,H4
LJMP MAIN
H1: MOV R0,
LJMP CHECKL ;列接高电平,行接低电平
;检查所有列
H2: MOV R0,
LJMP CHECKL
H3: MOV R0,
LJMP CHECKL
H4: MOV R0,
LJMP CHECKL
CHECKL: MOV P3,
JNB P3.4,L1
JNB P3.5,L2
JNB P3.6,L3
JNB P3.7,L4
LJMP MAIN
L1: MOV R1,
LJMP COUNT
L2: MOV R1,
LJMP COUNT
L3: MOV R1,
LJMP COUNT
L4: MOV R1,
LJMP COUNT
COUNT: MOV A,R0 ;计算所在按键,并将相应的灯置低电平
DEC A
MOV B,
MUL AB
ADD A,R1
CPL A
MOV P1,A
ACALL DEL
MOV P1,
MOV R0,
MOV R1,
LJMP MAIN
DEL: MOV R5,
DEL1: MOV R6,
DEL2: MOV R7,
DEL3: DJNZ R7, DEL3
DJNZ R6, DEL2
DJNZ R5, DEL1
RET
END
效果:每按下一个按键,8个发光二极管亮起的灯表示按键序号的二进制表示。
|