单片机实验板矩阵键盘的实现
文章目录
题目重述
实验连线如图所示,编程实现按键控制极数码管。即按下按键K1-K16,数码管显示0-F。
问题分析以及求解思路
待完善(请耐心等待)
程序代码
ORG 0000H
BEG:
;MOV P2,#00000100B
; MOV P0,#0FH
;LCALL DELAY
;LJMP BEG
LLL: MOV P1,#0F0H
MOV A,P1
CJNE A,#0F0H,WLL
SJMP LLL
WLL: JNB ACC.4,H1
JNB ACC.5,H2
JNB ACC.6,H3
JNB ACC.7,H4
CLL: MOV P1,#0FH
MOV A,P1
CJNE A,#0FH,PLL
SJMP CLL
PLL: JNB ACC.0,L1
JNB ACC.1,L2
JNB ACC.2,L3
JNB ACC.3,L4
LIGHT:MOVC A,@A+DPTR
MOV P0,A
LJMP LLL
H1: MOV DPTR,#TAB4
LJMP CLL
H2: MOV DPTR,#TAB3
LJMP CLL
H3: MOV DPTR,#TAB2
LJMP CLL
H4: MOV DPTR,#TAB1
LJMP CLL
L1: MOV A,#3
LJMP LIGHT
L2: MOV A,#2
LJMP LIGHT
L3: MOV A,#1
LJMP LIGHT
L4: MOV A,#0
LJMP LIGHT
DELAY: MOV R5,#10
START:MOV R6,#100
NEXT1:MOV R7,#250
NEXT2:DJNZ R7,NEXT2
DJNZ R6,NEXT1
DJNZ R5,START
RET
TAB1:DB 00111111B,00000110B,01011011B,01001111B
TAB2:DB 01100110B,01101101B,01111101B,00000111B
TAB3:DB 01111111B,01101111B,01110111B,01111100B
TAB4:DB 00111001B,01011110B,01111001B,01110001B
END