📄 b16-1.asm
字号:
READ_COM: EQU 0F4E3H
WRITE_COM: EQU 0F4E0H
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP IINT0
ORG 000BH
LJMP TT0
ORG 0030H
MAIN: MOV SP,#08H
LCALL INIT
M1: CLR C
MOV A,39H
SUBB A,57H
JNC M1
MOV 57H,#00H
MOV 5BH,52H
LCALL PID
CLR C
MOV A,58H
SUBB A,#80H
JC IS0
MOV 68H,A
LJMP COU
IS0: MOV A,#10H
MOV 68H,A
COU: LCALL COUNTA
MOV A,58H
LCALL PUT_COM
MOV A,5BH
ADD A,#80H
LCALL PUT_COM
MOV A,3AH
ADD A,#80H
LCALL PUT_COM
LJMP M1
INIT: MOV TMOD,#21H
MOV IP,#02H
MOV TH0,#0FEH
MOV TL0,#00CH
MOV A,#00H
MOV R0,#50H
I1: MOV @R0,A
INC R0
CJNE R0,#80H,I1
MOV 2FH,#00H
MOV 5EH,#01H
MOV 6AH,#7FH
MOV 68H,#7FH
MOV 90H,#0FEH
LCALL TX
SETB EX0
SETB IT0
SETB ET0
SETB TR0
SETB EA
RET
IINT0: PUSH ACC
PUSH 0F0H
PUSH 0D0H
PUSH 02H
PUSH 03H
PUSH 04H
PUSH 05H
PUSH 06H
PUSH 07H
JB 7FH,IN1
SETB 7FH
IN2: POP 07H
POP 06H
POP 05H
POP 04H
POP 03H
POP 02H
POP 0D0H
POP 0F0H
POP ACC
RETI
IN1: CLR 7FH
LCALL VV
MOV 52H,51H
LJMP IN2
VV: MOV R2,#00H
MOV R3,#00H
MOV R4,#03H
MOV R5,#0E8H
MOV R6,5DH
MOV R7,50H
MOV A,50H
JNZ LL
MOV A,5DH
JZ MM1
LL: LCALL DIV1
MM: MOV 5DH,#00H
MOV 51H,R5
MOV 50H,#00H
MOV 5DH,#00H
MM1: RET
TT0: PUSH ACC
PUSH 0D0H
MOV 8CH,#0FEH
MOV 8AH,#00CH
SETB TR0
INC 57H
LCALL KJ
CLR C
JNB 7FH,TT1
CLR C
MOV A,50H
ADD A,#01H
MOV 50H,A
MOV A,5DH
ADDC A,#00H
MOV 5DH,A
CLR C
MOV A,5DH
SUBB A,#07H
JC TT1
MOV 5DH,#07H
MOV 50H,#0D0H
CLR 7FH
TT1: POP 0D0H
POP ACC
RETI
COUNTA:
CLR C
MOV A,#07FH
SUBB A,68H
MOV 5CH,A
RET
KJ:
PUSH ACC
MOV A,5EH
CJNE A,#01H,TEST2
MOV A,6AH
JNZ ANOT0
MOV A,#02H
MOV 5EH,A
MOV A,5CH
CLR C
RRC A
MOV 59H,A
LJMP TEST2
ANOT0: CLR C
MOV A,6AH
SUBB A,#01H
MOV 6AH,A
SETB P1.0
TEST2: MOV A,5EH
CJNE A,#02H,OUT
MOV A,59H
JNZ BNOT0
MOV A,#01H
MOV 5EH,A
MOV A,68H
CLR C
RRC A
MOV 6AH,A
LJMP OUT
BNOT0: CLR C
MOV A,59H
SUBB A,#01H
MOV 59H,A
CLR P1.0
OUT: POP ACC
RET
PUT_COM:LCALL SEND0
LCALL TEST
RET
TEST: MOV DPTR,#0CC1H
LCALL READ_COM
ANL A,#01H
JZ TEST
RET
SEND0: MOV DPTR,#0CC0H
LCALL WRITE_COM
RET
SEND1: MOV DPTR,#0CC1H
LCALL WRITE_COM
RET
DLY1: MOV R1,#02H
D11: MOV R2,#0A0H
D21: DJNZ R2,D21
DJNZ R1,D11
RET
TX: MOV A,#00H
LCALL SEND1
LCALL DLY1
LCALL SEND1
LCALL DLY1
LCALL SEND1
LCALL DLY1
LCALL SEND0
LCALL DLY1
LCALL SEND0
LCALL DLY1
MOV A,#40H
LCALL SEND1
LCALL DLY1
MOV A,#7EH
LCALL SEND1
LCALL DLY1
MOV A,#34H
LCALL SEND1
LCALL DLY1
MOV A,#31H
LCALL SEND1
LCALL DLY1
RET
YKF1: ANL A,#7FH
MOV 0F0H,A
CLR C
MOV A,#080H
SUBB A,0F0H
MOV R2,A
LJMP YKF
PID: MOV R5, #00H
MOV R4, 3AH
MOV R3, #00H
MOV R2, 5BH
MOV A,5BH
JB 0E7H,YKF1
LCALL CPL1
YKF: CLR C
MOV A, R4
ADD A, R2
MOV R2, A
MOV A, R5
ADDC A, R3
MOV R3, A
MOV R0, 02H
MOV R1, 03H
MOV R4, 73H
MOV R5, 74H
CLR C
MOV A, R0
SUBB A, 71H
MOV 73H,A
MOV A, R1
SUBB A, 72H
MOV 74H,A
MOV 71H,R0
MOV 72H,R1
CLR C
MOV A, 73H
SUBB A, R4
MOV 75H,A
MOV A, 74H
SUBB A, R5
MOV 76H,A
CLR A
MOV 77H,A
MOV 78H,A
MOV 79H,A
MOV 7AH,A
MOV A, R3
JNB 0E7H,EK1
LCALL CPL1
EK1: MOV A, R2
CLR C
SUBB A, 3BH
MOV A, R3
SUBB A, #00H
JC II
CLR A
MOV 7CH,A
MOV 7DH,A
LJMP DDD
II: MOV R5, 01H
MOV R4, 00H
MOV R7, #00H
MOV R6, 39H
MOV R0, #77H
LCALL L20
MOV R2,7AH
MOV R3,79H
MOV R4,78H
MOV R5,77H
PUSH 0D0H
MOV R7,43H
MOV R6,42H
LCALL DIV1
POP 0D0H
JNC II1
MOV A,R5
CPL A
ADD A,#01H
MOV R5,A
MOV A,R4
CPL A
ADDC A,#00H
MOV R4,A
II1: MOV 7DH,R4
MOV 7CH,R5
DDD: MOV R5,76H
MOV R4,75H
MOV R7,44H
MOV R6,45H
MOV R0,#77H
LCALL L20
MOV R2,7AH
MOV R3,79H
MOV R4,78H
MOV R5,77H
PUSH 0D0H
MOV 0F0H,39H
MOV A,#08H
MUL AB
MOV R6,0F0H
MOV R7,A
LCALL DIV1
POP 0D0H
JNC DD1
MOV A,R5
CPL A
ADD A,#01H
MOV R5,A
MOV A,R4
CPL A
ADDC A,#00H
MOV R4,A
DD1: MOV A,7CH
ADD A,R5
MOV R5,A
MOV A,7DH
ADDC A,R4
MOV R4,A
JB 0D2H,L9
L2: MOV A,73H
ADD A,R5
MOV R6,A
MOV A,74H
ADDC A,R4
MOV R7,A
JB 0D2H,L3
L5: MOV R4,41H
MOV R5,40H
MOV R0,#77H
LCALL L19
L10: MOV A,31H
LJMP L11
JNB 0E6H,L11
LJMP L12
L11: MOV R0,#00CH
LJMP L13
L12: MOV R0,#09H
L13: CLR C
L6: MOV A,7AH
MOV C,0E7H
RRC A
MOV 7AH,A
MOV A,79H
RRC A
MOV 79H,A
MOV A,78H
RRC A
MOV 78H,A
MOV A,77H
RRC A
MOV 77H,A
DJNZ R0,L6
LCALL L14
LJMP L7
L9: MOV A,7DH
JB 0E7H,L1
MOV R4,#07FH
MOV R5,#0FFH
LJMP L2
L1: MOV R4,#080H
MOV R5,#000H
LJMP L2
L3: MOV A,74H
JB 0E7H,L4
MOV R7,#07FH
MOV R6,#0FFH
LJMP L5
L4: MOV R7,#080H
MOV R6,#000H
LJMP L5
L7: ADD A,5FH
JB 0D2H,L8
L18: MOV 5FH,A
ADD A,#80H
MOV 58H,A
RET
L8: MOV A,7AH
JB 0E7H,L17
MOV A,#07FH
LJMP L18
L17: MOV A,#080H
LJMP L18
L14: MOV A,7AH
RLC A
PUSH 0D0H
JC L15
MOV A,78H
ANL A,#0FEH
JZ L16
POP 0D0H
MOV A,#07FH
RET
L16: MOV A,78H
RRC A
MOV A,77H
RRC A
POP 0D0H
RRC A
RET
L15: MOV A,78H
ANL A,#0FEH
CLR C
SUBB A,#0FEH
JZ L16
POP 0D0H
MOV A,#080H
RET
L19: CLR C
LJMP L21
L20: CLR C
CPL C
L21: PUSH 0D0H
MOV A,R7
RLC A
MOV 6EH,C
JNC L22
MOV A,R6
CPL A
ADD A,#01H
MOV R6,A
MOV A,R7
CPL A
ADDC A,#00H
MOV R7,A
L22: MOV A,R5
RLC A
MOV 6FH,C
JNC L23
MOV A,R4
CPL A
ADD A,#01H
MOV R4,A
MOV A,R5
CPL A
ADDC A,#00H
MOV R5,A
L23: LCALL L24
MOV C,6EH
ANL C,6FH
JC L25
MOV C,6EH
ORL C,6FH
JNC L25
POP 0D0H
JC L26
DEC R0
DEC R0
DEC R0
MOV A,@R0
CPL A
ADD A,#01H
MOV @R0,A
LCALL L27
LCALL L27
LJMP L28
L25: POP 0D0H
L30: CLR C
L26: RET
L27: INC R0
MOV A,@R0
CPL A
ADDC A,#00H
MOV @R0,A
RET
L24: MOV A,R6
MOV 0F0H,R4
MUL AB
MOV @R0,A
MOV R3,0F0H
MOV A,R4
MOV 0F0H,R7
MUL AB
ADD A,R3
MOV R3,A
MOV A,0F0H
ADDC A,#00H
MOV R2,A
MOV A,R6
MOV 0F0H,R5
MUL AB
ADD A,R3
INC R0
MOV @R0,A
CLR 6DH
MOV A,R2
ADDC A,0F0H
MOV R2,A
JNC L29
SETB 6DH
L29: MOV A,R7
MOV 0F0H,R5
MUL AB
ADD A,R2
INC R0
MOV @R0,A
MOV A,0F0H
ADDC A,#00H
MOV C,6DH
ADDC A,#00H
INC R0
MOV @R0,A
RET
L28: LCALL L27
LJMP L30
CPL1: MOV A,R2
CPL A
ADD A,#01H
MOV R2,A
MOV A,R3
CPL A
ADDC A,#00H
MOV R3,A
RET
DIV1: MOV A,R3
CLR C
SUBB A,R7
MOV A,R2
SUBB A,R6
CLR 0D2H
JC L31
MOV R4,#07FH
MOV R5,#0FFH
SETB 0D2H
RET
L31: MOV 0F0H,#10H
L34: CLR C
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
XCH A,R2
RLC A
XCH A,R2
MOV 0D5H,C
CLR C
SUBB A,R7
MOV R1,A
MOV A,R2
SUBB A,R6
JB 0D5H,L32
JC L33
L32: MOV R2,A
MOV A,R1
MOV R3,A
INC R5
L33: DJNZ 0F0H,L34
RET
ORG 2000H
MOV R0,#50H
MOV A,#00H
CC1: MOV @R0,A
INC R0
CJNE R0,#80H,CC1
MOV 39H,#25H
MOV 3AH,#32H
MOV 3BH,#60H
MOV 40H,#10H
MOV 41H,#10H
MOV 42H,#00H
MOV 43H,#10H
MOV 44H,#00H
MOV 45H,#25H
CC2: SJMP CC2
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -