📄 7led.asm
字号:
MAIN: MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 33H,#01H;步长设定
MOV 60H,#00H
MOV 61H,#00H
MOV 62H,#00H
MOV 63H,#00H
GG:JB P2.0,DISPN
DISPF:LCALL DISPLAY
JNB P2.0,DISPF;加1按键控制
LCALL PRO;调用数据处理子程序
DISPN:LCALL DISPLAY;调用显示子程序
LJMP GG
PRO:MOV R7,#02;字节数
MOV R0,#31H;被加数高位地址
MOV R1,#33H;加数高位地址
LCALL BCDA;调用多位BCD加法子程序
MOV R0,#60H;分离后BCD首地址
MOV R1,#30H;待分离BCD首地址
MOV R2,#02H;3个待分离的BCD
LCALL CBCD;调用BCD码分离子程序
RET
CBCD:
CL:MOV A,@R1 ;分离后将占2n个单元
MOV B,A
ANL A,#0F0H
SWAP A
MOV 4CH,A
MOV A,B
ANL A,#0FH
MOV 4DH,A
MOV @R0,4CH
INC R0
MOV @R0,4DH
INC R0
INC R1
DJNZ R2,CL
RET
BCDA:CLR C
ALOOP:MOV A,@R0
ADDC A,@R1
DA A
MOV @R0,A
DEC R0
DEC R1
DJNZ R7,ALOOP
JC EXIT
RET
EXIT:MOV 30H,#00H;最高位溢出处理
MOV 31H,#00H
RET
DISPLAY:MOV R0,#60H;显示缓冲区首地址
MOV R4,#04H;共4位
MOV R5,#00H;位选通信号,74LS138输出控制
DISP:MOV A,R5
SWAP A
ORL A,@R0
MOV P0,A
ACALL DELAY1
INC R5
INC R0
DJNZ R4,DISP
RET
DELAY1:MOV R6,#10H
LOOP1:MOV R7,#38H
LOOP2:DJNZ R7,LOOP2
DJNZ R6,LOOP1
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -