📄 1549采成.asm
字号:
ORG 0000H
LJMP START
START: MOV R2,#2
AD1549:SETB P2.2
MOV 21H, #00H ;清转换结果存放寄存器
MOV 22H, #00H ;
CLR P2.2 ;CLR 1549 CS
MOV R0, #02H
CLR A
ADTS: CLR P1.5 ; I/O CLOCK清零
NOP
MOV C, P1.7
RLC A
SETB P1.5 ;I/O CLOCK 置位
DJNZ R0, ADTS ;高2位读完 否, 转ADTS
MOV 21H, A ;高2位结果送20H
MOV R0, #08H
CLR A
ADTC: CLR P1.5 ;I/O CLOCK 清零
NOP
MOV C, P1.7
RLC A
SETB P1.5 ;I/O CLOCK 置位
DJNZ R0, ADTC ;低8位读完 否,转ADTC
MOV 22H, A ;低8位结果送21H
ACALL DELAY21
DJNZ R2,AD1549
MOV R2,21H
MOV R3,22H
LCALL TWOBYTE
MOV 27H,R4
MOV 28H,R5
MOV 29H,R6
MOV R1,#27H
MOV R0,#38H
LCALL CHAIBCD6W
MOV 37H,3AH
MOV 36H,3BH
MOV 35H,3CH
MOV 34H,3DH
LCALL DISPLAY
LCALL DELAY20MS
LJMP START
TWOBYTE:CLR A
MOV R4,A
MOV R5,A
MOV R6,A
MOV R7,#16
ZBLOOP:CLR C
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV A,R6; R6乘二调整送回
ADDC A,R6
DA A
MOV R6,A
MOV A,R5 ;R5乘二调整送回
ADDC A,R5
DA A
MOV R5,A
MOV A,R4 ;R4乘二调整送回
ADDC A,R4
DA A
MOV R4,A
DJNZ R7,ZBLOOP
RET
CHAIBCD6W:MOV R2,#3;多位亦可
CLOOP:MOV A,@R1
SWAP A
ANL A,#0FH
MOV @R0,A
INC R0
MOV A,@R1
ANL A,#0FH
MOV @R0,A
INC R1
INC R0
DJNZ R2,CLOOP
RET
DISPLAY:MOV R1,#37H
MOV R5,#0EFH
PLAY: MOV A,R5
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
LCALL DL1MS
DEC R1
MOV A,R5
JNB ACC.7,ENDOUT
RL A
MOV R5,A
AJMP PLAY
ENDOUT: SETB P2.7
RET
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB 00H,0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH
DL1MS: MOV R6,#20
DL1: MOV R7,#25
DL2: DJNZ R7,DL2
DJNZ R6,DL1
RET
DELAY21:MOV R7,#10
D21:DJNZ R7,D21
RET
DELAY20MS:MOV R3,#250
D20MS:LCALL DISPLAY
DJNZ R3,D20MS
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -