实验五 数码管显示及键盘扫描实验(2学时)
实验目的:
– 掌握数码管动态显示的原理,熟悉用总线方式控制数码管显示的方法。
– 掌握矩阵键盘扫描原理,熟悉矩阵键盘与单片机的接口和编程。
实验内容及要求:
– 将30H ~ 32H中存储的6位十进制数在6个数码管上显示出来(要求编写将一个内存单元中的压缩BCD码转换为两个七段显示码的子程序和延时子程序)。
– 扫描矩阵键盘,将对应键值送LED数码管显示。
ORG 0000H
AJMP START
ORG 0030H
START:
MOV 30H,#12H
MOV 31H,#34H
MOV 32H,#56H
MOV R0,#30H
MOV R1,#20H
BCD:
MOV A,@R0
SWAP A
ANL A,#0FH
ACALL CTAB
MOV R2,A
MOV A,@R0
ANL A,#0FH
ACALL CTAB
MOV R3,A
MOV DPTR,#8002H
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#8004H
MOV A,R2
MOVX @DPTR,A
MOV A,R1
RR A
MOV R1,A
ACALL DL1MS
MOV DPTR,#8002H
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#8004H
MOV A,R3
MOVX @DPTR,A
MOV A,R1
RR A
MOV R1,A
ACALL DL1MS
INC R0
CJNE R0,#33H,BCD
LJMP START
CTAB:
PUSH DPH
PUSH DPL
MOV DPTR,#TAB
MOVC A,@A+DPTR
POP DPL
POP DPH
RET
TAB:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5FH,79H,71H
DL1MS:
MOV R7,#02H
DL: MOV R6,#0FFH
DL6:DJNZ R6,DL6
DJNZ R7,DL
RET
END