📄 8870.asm
字号:
;////////////////////////////////////////
;5088编码程序:按键1~9分别显示1~9九个数字,
;p3口为编码的输出口
;p2口作为段码和数码管位选输出,高四位为位选码,低四位为BCD码,p1口为键盘输入
;////////////////////////////////////
ORG 0000H
TEMP EQU 76H
KEYBOARD EQU P1
CODE EQU P0
OUTPUT EQU P2
AJMP MAIN
ORG 0030H
MAIN:MOV SP,#60H
MOV 75H,#10
MOV 76H,#10
MOV 77H,#10
MOV 78H,#10
MOV 79H,#10
MOV 7AH,#10
MOV 7BH,#10
MOV 7CH,#10
MOV 7DH,#10
MOV 7EH,#10
MOV 7FH,#10
RETURN:LCALL KEYIN
CJNE A,#0FFH,JUDGE
LCALL DISPLAY
SJMP RETURN
JUDGE:MOV 79H,A
LCALL LEFT
LCALL DISPLAY
SJMP RETURN
;///////////////////////////////////////////////////
;键盘子程序
;////////////////////////////////////////////////////
KEYIN:MOV A,CODE
ANL A,#0FH
CJNE A,#00H,K1
RET
K1: CJNE A,#01H,K2
RET
K2: CJNE A,#02H,K3
RET
K3: CJNE A,#03H,K4
RET
K4: CJNE A,#04H,K5
RET
K5: CJNE A,#05H,K6
RET
K6: CJNE A,#06H,K7
RET
K7: CJNE A,#07H,K8
RET
K8: CJNE A,#08H,K9
RET
K9: CJNE A,#09H,K10
RET
K10: MOV A,#0FFH
RET
;/////////////////////////////////////////////////////////////////
; 显示子程序
;//////////////////////////////////////////////////////////////////
DISPLAY:MOV R0,#76H
MOV R3,#00H
LD0: MOV A,@R0
ANL A,#0FH
MOV B,A
MOV A,R3
ANL A,#0FH
SWAP A
ORL A,B
MOV OUTPUT,A
;LCALL D
INC R0
CJNE R3,#09H,ADDONE
RET
ADDONE: INC R3
AJMP LD0
RET
;///////////////////////////////////////////
;延时3ms
;///////////////////////////////////////////
D:MOV R5,#3;
D1:MOV R6,#100
D2: DJNZ R6,D2
DJNZ R5,D1
RET
;//////////////////////////////////////////
; 左移
;//////////////////////////////////////////
LEFT:MOV TEMP,TEMP+1
MOV TEMP+1,TEMP+2
MOV TEMP+2,TEMP+3
MOV TEMP+3,TEMP+4
MOV TEMP+4,TEMP+5
MOV TEMP+5,TEMP+6
MOV TEMP+6,TEMP+7
MOV TEMP+7,75H
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -