📄 bz.asm
字号:
ORG 0000H
AJMP MAIN
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0020H
MAIN:
MOV 71H,#00H
MOV 72H,#00H
MOV 73H,#00H
MOV 78H,#00H
MOV 79H,#00H
MOV 7AH,#00H
MOV 31H,#0
MOV 32H,#0
MOV 35H,#0
SETB P2.5
SETB P2.6
REL:
SETB P2.5
SETB P2.6
MOV R1,#0FFH
MOV R2,#0FFH
ACALL DELAY
REL1:
JNB P2.3,H20V
JB P2.4,ZERO2
ACALL ZERO
MOV 71H,31H
MOV 72H,32H
MOV 73H,35H
ACALL TRAN
MOV R1,#05H
MOV 7FH,#05H
ACALL DISPLAY
AJMP REL1
ZERO2:
ACALL GET
ACALL BCD5
MOV 31H,71H
MOV 32H,72H
MOV 35H,73H
ACALL SUB
;MOV A,21H
;JNZ Q1
;MOV A,22H
;CLR C
;SUBB A,#06H
;JNC Q1
;MOV 21H,#00H
;MOV 22H,#00H
ACALL TRAN
MOV R1,#05H
MOV 7FH,#05H
ACALL DISPLAY
AJMP REL1
H20V:
CLR P2.5
CLR P2.6
MOV R1,#0FFH
MOV R2,#0FFH
ACALL DELAY
H20VV:
JNB P2.3,REL
JB P2.4,ZZERO2
ACALL ZERO
MOV 78H,31H
MOV 79H,32H
MOV 7AH,35H
ACALL TRAN
MOV R1,#04H
MOV 7FH,#04H
ACALL DISPLAY
AJMP H20VV
ZZERO2:
ACALL GET
ACALL BCD5
MOV 31H,78H
MOV 32H,79H
MOV 35H,7AH
ACALL SUB
;MOV A,21H
;JNZ Q2
;MOV A,22H
;CLR C
;SUBB A,#06H
;JNC Q2
;MOV 20H,#00H
;MOV 21H,#00H
;MOV 22H,#00H
;MOV 23H,#00H
;MOV 24H,#00H
ACALL TRAN
MOV R1,#04H
MOV 7FH,#04H
ACALL DISPLAY
AJMP H20VV
ZERO:
ACALL GET
ACALL BCD5
MOV 31H,21H
MOV 32H,22H
MOV 35H,25H
RET
GET:
REL2: JNB P0.2,REL2
JB P0.3, REL22
MOV 20H,#00H
AJMP REL33
REL22: MOV 20H,#01H
REL33: JB P0.7,REL4
MOV 25H,#01H
AJMP REL5
REL4: MOV 25H,#00H
REL5: JB P0.2,REL5
MOV A,P0
RR A
RR A
RR A
ANL A,#0FH
MOV 21H,A
REL6: JNB P0.1,REL6
MOV A,P0
RR A
RR A
RR A
ANL A,#0FH
MOV 22H,A
REL7: JB P0.1,REL7
MOV A,P0
RR A
RR A
RR A
ANL A,#0FH
MOV 23H,A
REL8: JNB P0.0,REL8
MOV A,P0
RR A
RR A
RR A
ANL A,#0FH
MOV 24H,A
RET
G1:
MOV A,#00H
MOVC A,@A+DPTR
MOV 51H,A
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV 52H,A
RET
G2:
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV 53H,A
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV 54H,A
RET
G3:
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV 75H,A
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV 76H,A
RET
G5:
MOV 52H,#5
ACALL G6
;DEC DPTR
;DEC DPTR
;DEC DPTR
;DEC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV 51H,A
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV 52H,A
RET
G6:
MOV 53H,21H
MOV 54H,22H
MOV 21H,DPH
MOV 22H,DPL
MOV 51H,#0
ACALL SUB1
MOV DPH,51H
MOV DPL,52H
MOV 21H,53H
MOV 22H,54H
RET
G4:
ACALL G5
ACALL SUB1
MOV R7,51H
MOV R6,52H
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
ACALL G1
MOV 21H,51H
MOV 22H,52H
MOV 52H,#5
ACALL G6
;DEC DPTR
;DEC DPTR
;DEC DPTR
;DEC DPTR
;DEC DPTR
;DEC DPTR
ACALL G1
ACALL SUB1
MOV R5,51H
MOV R4,52H
MOV R0,#63H
ACALL MUL1
MOV R6,63H
MOV R7,62H
MOV 3EH,61H
MOV 3FH,60H
INC DPTR
ACALL G1
MOV 21H,51H
MOV 22H,52H
MOV 52H,#5
ACALL G6
;DEC DPTR
;DEC DPTR
;DEC DPTR
;DEC DPTR
ACALL G1
ACALL SUB1
MOV R5,51H
MOV R4,52H
LCALL DIV6
MOV 21H,R7
MOV 22H,R6
ACALL G3
MOV A,7BH
CJNE A,#00H,ZZ1
ACALL ADD3
RET
ZZ1: ACALL SUB3
RET
BCD5: MOV 26H,21H
MOV 27H,22H
ACALL MUL10
MOV B,#64H
MUL AB
MOV 29H,A
XCH A,B
MOV 2AH,A
MOV 26H,23H
MOV 27H,24H
ACALL MUL10
ADD A,29H
MOV 22H,A
MOV A,2AH
ADDC A,#00H
MOV 21H,A
MOV A,20H
CJNE A,#01H,B1
MOV A,#10H
ADD A,22H
MOV 22H,A
MOV A,#27H
ADDC A,21H
MOV 21H,A
B1: RET
MUL10: MOV A,26H
ANL A,#0FH
MOV B,#0AH
MUL AB
MOV 28H,A
MOV A,27H
ANL A,#0FH
ADD A,28H
RET
BINBCD2:MOV R1,41H
MOV R2,42H
INC R2
CLR A
BB0: MOV @R1,A
INC R1
DJNZ R2,BB0
MOV A,42H
MOV B,#08H
MUL AB
MOV R3,A
BB3: MOV R0,40H
MOV R2,42H
CLR C
BB1: MOV A,@R0
RLC A
MOV @R0,A
INC R0
DJNZ R2,BB1
MOV R2,42H
INC R2
MOV R1,41H
BB2: MOV A,@R1
ADDC A,@R1
DA A
MOV @R1,A
INC R1
DJNZ R2,BB2
DJNZ R3,BB3
RET
SUB: MOV A,35H
CJNE A,#00H,S1
MOV A,25H
CJNE A,#00H,S2
CLR C
MOV A,22H
SUBB A,32H
MOV 3BH,A
MOV A,21H
SUBB A,31H
JC S3
MOV 21H,A
MOV 22H,3BH
RET
S3: MOV A,32H
CLR C
SUBB A,22H
MOV 22H,A
MOV A,31H
SUBB A,21H
MOV 21H,A
MOV 25H,#01H
RET
S2: MOV A,22H
ADD A,32H
MOV 22H,A
MOV A,21H
ADDC A,31H
MOV 21H,A
MOV 25H,#01H
RET
S1: MOV A,25H
CJNE A,#00H,S4
MOV A,22H
ADD A,32H
MOV 22H,A
MOV A,21H
ADDC A,31H
MOV 21H,A
RET
S4: CLR C
MOV A,22H
SUBB A,32H
MOV 3BH,A
MOV A,21H
SUBB A,31H
JC S5
MOV 21H,A
MOV 22H,3BH
RET
S5: MOV A,32H
CLR C
SUBB A,22H
MOV 22H,A
MOV A,31H
SUBB A,21H
MOV 21H,A
MOV 25H,#00H
RET
SUB1: CLR C
MOV A,22H
SUBB A,52H
MOV 52H,A
MOV A,21H
SUBB A,51H
MOV 51H,A
RET
MUL1: MOV A,R6
MOV B,R4
MUL AB
MOV @R0,A
MOV R3,B
MOV A,R4
MOV B,R7
MUL AB
ADD A,R3
MOV R3,A
MOV A,B
ADDC A,#00H
MOV R2,A
MOV A,R6
MOV B,R5
MUL AB
ADD A,R3
DEC R0
MOV @R0,A
MOV R1,#00H
MOV A,R2
ADDC A,B
MOV R2,A
JNC LAST
INC R1
LAST: MOV A,R7
MOV B,R5
MUL AB
ADD A,R2
DEC R0
MOV @R0,A
MOV A,B
ADDC A,R1
DEC R0
MOV @R0,A
RET
COMP2:
MOV A,20H
CLR C
SUBB A,#99H
MOV A,21H
ANL A,#0FH
SUBB A,#49H
JC LLL1
MOV 70H,#00H
AJMP LLL2
LLL1: MOV 70H,#01H
LLL2:
MOV 20H,22H
MOV 21H,23H
MOV 22H,24H
RET
COMP3: MOV A,70H
CJNE A,#00H,LA1
MOV A,22H
ADD A,#01H
MOV 22H,A
MOV A,21H
ADDC A,#00H
MOV 21H,A
LA1: RET
ADD3: MOV A,22H
ADD A,76H
MOV 22H,A
MOV A,21H
ADDC A,75H
MOV 21H,A
RET
SUB3: MOV A,76H
CLR C
SUBB A,22H
MOV 22H,A
MOV A,75H
SUBB A,21H
MOV 21H,A
RET
COMP4: MOV 40H,20H
MOV 41H,21H
MOV 42H,22H
MOV A,40H
ANL A,#0FH
MOV 20H,A
MOV A,41H
SWAP A
ANL A,#0FH
MOV 21H,A
MOV A,41H
ANL A,#0FH
MOV 22H,A
MOV A,42H
SWAP A
ANL A,#0FH
MOV 23H,A
MOV A,42H
ANL A,#0FH
MOV 24H,A
RET
TRAN: MOV A,22H
MOV 45H,A
MOV A,21H
MOV 46H,A
MOV 40H,#45H
MOV 41H,#20H
MOV 42H,#02H
ACALL BINBCD2
MOV A,20H
XCH A,22H
MOV 20H,A
MOV A,22H
ANL A,#0FH
MOV 24H,A
MOV A,22H
SWAP A
ANL A,#0FH
MOV 23H,A
MOV A,21H
ANL A,#0FH
MOV 22H,A
MOV A,21H
SWAP A
ANL A,#0FH
MOV 21H,A
RET
DISPLAY:
;ACALL TXD
KOVER: JB P3.7,KOVER
JNB P3.6,OOVER
MOV 20H,#10
MOV 21H,#0
MOV 22H,#13
MOV 23H,#14
MOV 24H,#10
AJMP L3
OOVER:
MOV A,25H
CJNE A,#00H,L1
MOV A,20H
CJNE A,#00H,L3
MOV 20H,#0AH
AJMP L3
L1: MOV A,20H
CJNE A,#00H,L2
MOV 20H,#0BH
AJMP L3
L2: MOV 20H,#0CH
L3: MOV R7,#05H
MOV R0,#20H
SETB P2.1
DISP0: MOV A,@R0
MOV DPTR,#DTAB
MOVC A,@A+DPTR
MOV B,A
MOV A,R7
CLR C
SUBB A,R1
JNZ D2
MOV A,B
ADD A,#01H
MOV B,A
D2: MOV A,B
ACALL AB1
INC R0
DJNZ R7,DISP0
CLR P2.1
ACALL TXD
RET
DTAB: DB 0FCH,60H,0DAH,0F2H,66H
DB 0B6H,0BEH,0E0H,0FEH,0F6H,00H,02H,62H,7CH ,1CH
AB1:
MOV R2,#08H
B2:
RRC A
MOV P2.2,C
CPL P2.0
CPL P2.0
DJNZ R2,B2
RET
DIV6: MOV A,R5
JNZ BEGIN
MOV A,R4
JZ OVER
BEGIN: CLR A
MOV R3,A
MOV R2,A
MOV R1,#20H
DIV0: ACALL RLC6
MOV A,R2
SUBB A,R4
MOV R0,A
MOV A,R3
SUBB A,R5
JC NEXT
INC R6
MOV R3,A
MOV A,R0
MOV R2,A
NEXT: DJNZ R1,DIV0
MOV A,R3
RLC A
JC ROUND
MOV A,R2
RLC A
MOV R2,A
MOV A,R3
RLC A
SUBB A,R5
JC DONE
JNZ ROUND
MOV A,R2
SUBB A,R4
JC DONE
ROUND: ACALL ADD1
DONE: CLR A
RET
OVER: MOV A,#0FFH
RET
RLC6:
CLR C
MOV A,R6
RLC A
MOV R6,A
MOV A,R7
RLC A
MOV R7,A
MOV A,3EH
RLC A
MOV 3EH,A
MOV A,3FH
RLC A
MOV 3FH,A
MOV A,R2
RLC A
MOV R2,A
MOV A,R3
RLC A
MOV R3,A
RET
ADD1: MOV A,R6
ADD A,#1
MOV R6,A
MOV A,R7
ADDC A,#0
MOV R7,A
RET
KPammHG:
; MOV A,22H
; CLR C
; SUBB A,#97H
; MOV A,21H
; SUBB A,#4CH
; JNC Q1
MOV A,22H
MOV B,#75
MUL AB
MOV 63H,A
MOV 22H,B
MOV A,21H
MOV B,#75
MUL AB
ADD A,22H
MOV 62H,A
MOV A,B
ADDC A,#00H
MOV 61H,A
MOV A,63H
ADD A,#32H
MOV 63H,A
MOV A,62H
ADDC A,#00H
MOV 62H,A
MOV A,61H
ADDC A,#00H
MOV 61H,A
MOV 45H,63H
MOV 46H,62H
MOV 47H,61H
MOV 40H,#45H
MOV 41H,#20H
MOV 42H,#03H
ACALL BINBCD2
MOV 20H,23H
MOV A,22H
XCH A,21H
MOV 22H,A
MOV A,22H
ANL A,#0FH
MOV 24H,A
MOV A,22H
ANL A,#0F0H
SWAP A
MOV 23H,A
MOV A,21H
ANL A,#0FH
MOV 22H,A
MOV A,21H
ANL A,#0F0H
SWAP A
MOV 21H,A
RET
;**** DELAY,subroutine:
;{
; The length of delay ti-me is (R1+R1*R2)*5 machine cycles;
DELAY:
LD1: MOV A,R2
MOV R0,A ; R2=R0;
LD2: DEC R0 ; R2 decreases;
NOP
NOP
CJNE R0,#0H,LD2
DEC R1
CJNE R1,#0H,LD1
RET
;}
TXD:
MOV TMOD,#21H
;MOV TL1,#0EFH
;MOV TH1,#0EFH
MOV TL1,#0EFH
MOV TH1,#0EFH
CLR ET1
SETB TR1
MOV SCON,#40H
MOV 1EH,#255
MOV DPTR,#CODE
MOV A,#0
MOVC A,@A+DPTR
MOV 1FH,A
MOV 25H,7FH
MOV R0,#1EH
MOV R7,#8
TLOOP: MOV A,@R0
ACALL SPOUT
;MOV C,P
;JNC ERROR
INC R0
DJNZ R7,TLOOP
RET
SPOUT: ;MOV C,P
;CPL C
;MOV ACC.7,C
MOV SBUF,A
WAIT: JNB TI,WAIT
CLR TI
RET
ERROR:
RET
CODE: DB 128
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -