📄 dac0808.asm
字号:
MAIN:MOV 30H,#00H
LOOP:JB P2.0,NEXT
LOOP1:MOV R0,#33H;显示缓冲区首地址
LCALL DISPLAY;调用显示子程序
JNB P2.0,LOOP1
INC 30H;+1
NEXT:MOV P3,30H
MOV A,30H
LCALL HBCD;调用单字节十六进制数转BCD子程序
MOV R2,#02H;N个待分离的BCD
MOV R0,#33H;分离后BCD首地址
MOV R1,#31H;待分离BCD首地址
LCALL CBCD;分离压缩的BCD码
MOV R0,#33H;显示缓冲区首地址
LCALL DISPLAY;调用显示子程序
LJMP LOOP
;=========================
HBCD: MOV B,#100
DIV AB
MOV R3,A
MOV A,#10
XCH A,B
DIV AB
SWAP A
ORL A,B
MOV 31H,R3
MOV 32H,A
RET
;======================================
CBCD: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,CBCD
RET
;===================================
DISPLAY:MOV R4,#04H;位数选择
MOV R5,#00H
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
LOOP11:MOV R7,#38H
LOOP2:DJNZ R7,LOOP2
DJNZ R6,LOOP11
RET
;=============================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -