📄 mcu89c51hoter.asm
字号:
start: NOP
NOP
NOP
NOP
NOP
NOP
NOP
LJMP BEGIN
ORG 0BH
INTV: LJMP INTP
ORG 20H
DB 64H
DB 3CH
ORG 050H
FINIS: MOV A,77H
JZ FO1
LCALL HRN
FO1: MOV A, 40H
JZ FO2
DEC A
JZ FO2
LCALL TAEE
FO2: MOV A, 58H
JZ FO3
MOV A, #255
LCALL STN1
FO3: MOV PSW,#0
MOV DPTR,#0FF0H
MOV R0,#15
MOV R1,#6
PT10: MOV A,@R0
MOVX @DPTR,A
DEC R0
INC DPTR
DJNZ R1,PT10
RET
;============================
ORG 0090H
PRINT: LCALL SIO0
SETB P3.0
SETB P3.1
PLL1: MOV A,68H
LCALL DIS1
CLR P1.5
MOV R0,#7FH
PDD1: DJNZ R1,PDD1
DJNZ R0,PDD1
MOV A,#0AH
LCALL SSI1
JNC PCONT
SETB P1.5
MOV A,#0FFH
LCALL DIS1
MOV R0,#7FH
PDD2: DJNZ R1,PDD2
DJNZ R0,PDD2
SJMP PLL1
PCONT: LCALL FINIS
PRTB: MOV DPTR,#LIBX0
MOV R0,#36
LCALL SIO5
LCALL TX0
LCALL TX1
LCALL TX2
LCALL TX3
LCALL tx4
LCALL TX5
LCALL PECG
LCALL PEVT
MOV DPTR, #LB1
MOV R0, #11
LCALL SIO5
PDD3: LCALL KSEK
INC A
JZ PDD3
SJMP PRTB
ORG 100H
BEGIN: MOV SP, #31
CLR P3.1
MOV PSW, #0
LCALL CRAM
MOV P1, #0
MOV R0, #64
MOV R1, #64
MOV A, #0
PRL1: MOV @R0, A
INC R0
DJNZ R1, PRL1
LCALL VDC
LCALL CLT
LCALL OTAB
LCALL SMT1
LCALL TTM
LCALL PTAB
lcall CLPTB
MOV DPTR, #20H
MOV A, #0
MOVC A, @A+DPTR
MOV 62H, A
MOV A, #1
MOVC A, @A+DPTR
MOV 63H, A
LCALL CTC
LJMP KRTN
;============================
CLPTB: MOV 6EH,#0
MOV 6FH,#0
MOV 70H,#0
MOV 71H,#0
MOV 72H,#0
MOV 73H,#0
RET
ORG 0180H
PWF: MOV R0, #48
PWL: MOV A, PCON
ORL A, #1H
MOV PCON, A
DJNZ R0,PWL
Ret
TX0: MOV A,#52H
LCALL SIO1
MOV A,54H
LCALL SIO4
MOV A,#0DH
LCALL SIO1
MOV A,#0AH
LJMP SIO1
;============================
;ERROR process program .
;---------------------------------------
ERRD: MOV DPTR,#0D00H
LCALL DSTU
MOV A,R1
JZ DOWN
INC A
JZ OVER
SUBB A,#10
JC DOWN
SUBB A,#220
JNC OVER
MOV A,R1
CLR C
ADD A,#9
MOV R0,A
MOV R1,#20
MOV R2,#0
EL1: MOVX A,@R0
ADD A,R2
JC NECG
XCH A,R2
DEC R0
DJNZ R1,EL1
MOV A,R2
SUBB A,#75
JNC NECG
NOIS: MOV A,#2
RET
OVER: MOV A,#1
RET
DOWN: MOV A,#3
RET
NECG: MOV A,#4
RET
ER2P: MOV DPTR,#ERR2
MOV R0,#6
LCALL SIO5
APP: MOV DPTR,#0D00H
MOV R0,#2
MOV R1,#230
LCALL DRAWC
RET
ER4P: MOV DPTR,#ERR4
MOV R0,#7
LCALL SIO5
SJMP APP
ER1P: MOV DPTR,#ERR1
MOV R0,#9
LCALL SIO5
SJMP APP
ER3P: MOV DPTR,#ERR3
MOV R0,#9
LCALL SIO5
SJMP APP
;-------------------------------------------
ERRM: LCALL SIO0
LCALL ERRD
ERRL: LCALL FLAS2
PUSH ACC
DEC A
JNZ EOM2
LCALL ER1P
POP ACC
SJMP ERRL
EOM2: DEC A
JNZ EOM3
LCALL ER2P
POP ACC
SJMP ERRL
EOM3: DEC A
JNZ EOM4
LCALL ER3P
POP ACC
SJMP ERRL
EOM4: LCALL ER4P
POP ACC
SJMP ERRL
;-----------------------
ORG 0300H
BS1: MOV C, ACC.7
JNC BO1
BO0: PUSH ACC
MOV A, #45
LCALL SIO1
POP ACC
CPL A
INC A
BO1: MOV B, #100
DIV AB
JZ BO2
ORL A, #30H
LCALL SIO1
BO2: MOV A, B
MOV B, #10
DIV AB
JZ BO3
ORL A, #30H
LCALL SIO1
BO3: MOV A, B
ORL A, #30H
LCALL SIO1
RET
;=======================
DRAS: MOV A, #74
LCALL sio1
MOV A, R0
LCALL BS1
MOV A, #44
LCALL SIO1
MOV A, R1
LCALL BS1
MOV A, #13
LCALL SIO1
RET
;================================
ORG 0370H
LIBX0: DB 1BH,61H
DB 1BH,3FH,64H
DB 1BH,30H
DB 20H,20H,41H,6DH,62H,75H,6CH,61H,74H,6FH,72H,79H
DB 20H,45H,43H,47H
DB 20H,4DH,6FH,6EH,69H,74H,6FH,72H,0DH
DB 1BH,3FH,62H,0DH
LIBX1: DB 48H,0DH
DB 1BH,61H,20H,20H,0DH
DB 1BH,33H,0DH
LC11: DB 58H,3AH,20H,32H,35H,6DH,6DH,2FH
DB 53H,65H,63H,20H,20H,59H,3AH,20H
DB 31H,30H,6DH,6DH,2FH,31H,6DH,76H
DB 20H,20H,20H,0DH,0DH
LIBX2: DB 64H,72H,6FH,70H,20H,20H,20H,20H
DB 20H,20H,74H,69H,6DH,65H,73H,3AH
LIBX3: DB 50H,72H,65H,6DH,61H,74H,75H,72H,65H
DB 20H,74H,69H,6DH,65H,73H,3AH
LIBX4: DB 53H,2DH,54H,20H,6CH,65H,76H,65H,6CH
DB 20H,6CH,69H,6DH,69H,74H,3AH
DB 20H,2DH,30H,2EH,32H,6DH,76H,0DH
ERR1: DB 'o','v','e','r','f','l','o','w',0dh
ERR2: DB 'n','o','i','s','e',0dh
ERR3: DB 'd','o','w','n','f','l','o','w',0dh
ERR4: DB 'n','o',' ','E','C','G',0dh
;==========================
ORG 041EH ;
PEN: PUSH ACC
MOV A, #27
LCALL SIO1
POP ACC
LCALL SIO1
MOV A, #13
LJMP SIO1
TX3: MOV DPTR, #LIBX4
MOV R0, #24
LCALL SIO5
RET
;===========================
S7S: MOV R4, #47
CLR C
s7l: INC R4
MOV A, R1
SUBB A, R3
MOV R1, A
MOV A, R0
SUBB A, R2
MOV R0, A
JNC S7L
MOV A, R1
ADD A, R3
MOV R1, A
MOV A, R0
ADDC A, R2
MOV R0, A
MOV A, R4
LJMP SIO1
;--------------------------
SIO7: MOV R2,#27H
MOV R3, #16
LCALL S7S
MOV R2, #3
MOV R3, #232
LCALL S7S
MOV R2, #0
MOV R3, #100
LCALL S7S
MOV R3, #10
LCALL S7S
MOV A, R1
ORL A, #30H
LCALL SIO1
MOV A, #13
LJMP SIO1
;=========================
TX5: MOV DPTR, #LIBX3
MOV R0, #16
LCALL SIO5
MOV R0, 78H
MOV R1, 79H
LCALL sio7
MOV DPTR, #LIBX2
MOV R0, #16
LCALL SIO5
MOV R0, 7AH
MOV R1, 7BH
LJMP SIO7
DIVR: MOV B, R0
DIV AB
MOV R7, A
MOV A, B
ADD A, ACC
CLR C
SUBB A, R0
JC T5E
INC R7
T5E: RET
;==========================
MS1: PUSH DPH
PUSH DPL
MOVX A, @DPTR
MOV R1, A
MOV A, DPL
ADD A, R0
MOV DPL, A
JNC MO1
INC DPH
ANL DPH, #0FH
MO1: MOVX A, @DPTR
CLR C
SUBB A, R1
JC MO2
LCALL DIVR
SJMP MO3
MO2: CPL A
INC A
LCALL DIVR
MOV A, R7
CPL A
INC A
MOV R7, A
MO3: POP DPL
POP DPH
MOV R4, #0
MOV R5, #0
MOV A, R7
JNZ MO4
RET
MO4: MOVX A, @DPTR
MSL: ADD A, R7
MOV R6, A
INC DPTR
ANL DPH, #0FH
MOVX A, @DPTR
CLR C
SUBB A, R6
JC MO6
SUBB A, R5
JC MO5
ADD A, R5
MOV R5, A
MOV A, R0
MOV R3, A
MO5: MOV A, R6
DJNZ R0,MSL
RET
MO6: CPL A
INC A
CLR C
SUBB A, R4
JC MO5
ADD A, R4
MOV R4, A
MOV A, R0
MOV R2, A
SJMP MO5
;============;=======================
ORG 0520H
SX1: MOVX A, @DPTR ;
MOV R0, A
INC DPTR
MOVX A, @DPTR
MOV DPL, A
MOV A, R0
MOV DPH, A
MOVX A, @DPTR
PUSH ACC
LCALL BLM
POP ACC
CLR C
SUBB A, R1
JNC sx11
CPL A
INC A
SX11: XCH A, R1
RET
;=======================
RHC: MOV R0, #0
MOVX A, @R0
MOV DPTR, #2H
MOV R4, #0
MOV R5, #0
RHL: PUSH DPH
PUSH DPL
PUSH ACC
MOVX A, @DPTR
MOV R0, A
INC DPTR
MOVX A, @DPTR
MOV DPL, A
MOV A, R0
MOV DPH, A
MOVX A, @DPTR
PUSH ACC
LCALL BLM
POP ACC
CLR C
SUBB A, R1
JNC R11
CPL A
INC A
R11: ADD A, R5
XCH A, R5
JNC R12
INC R4
R12: POP ACC
POP DPL
POP DPH
INC DPTR
INC DPTR
DEC A
JNZ RHL
MOV R0, #0
MOVX A, @R0
MOV R0, A
MOV A, R5
MOV R1, A
MOV A, R4
LCALL DIVB
MOV 54H, R1
RET
;==============================
BLM: MOV A, DPL
CLR C
SUBB A, #15
MOV DPL, A
JNC BLO1
DEC DPH
ANL DPH, #0FH
BLO1: MOV A, #0
MOV R0, #4
MOV R1, #0
MOV R2, #0
BLL1: MOVX A, @DPTR
ADD A, R1
JNC BLO2
INC R2
BLO2: XCH A, R1
INC DPTR
ANL DPH, #0FH
DJNZ R0, BLL1
MOV R0, #2
BLL2: CLR C
XCH A, R2
RRC A
XCH A, R2
XCH A, R1
RRC A
XCH A, R1
DJNZ R0, BLL2 ;
RET
;=========================
TTMH: MOV A,IE ;
MOV IE,#0
PUSH ACC
MOV DPTR,#13FAH
MOV R0,#0FH
MOV R1,#6
TTL: MOV A,@R0
MOVX @DPTR,A
INC DPTR
DEC R0
DJNZ R1,TTL
POP IE
RET
;===========================
PTABH: PUSH 0H
MOV A,6AH
MOV DPL,A
ADD A,#18
MOV 6AH,A
MOV A,69H
MOV DPH,A
ADDC A,#0
MOV 69H,A
INC 68H
MOV R0,#6
MOV R4,#13H
MOV R5,#0FAH
PHL: MOV A,DPH
MOV DPH,R4
MOV R4,A
MOV A,DPL
MOV DPL,R5
MOV R5,A
MOVX A,@DPTR
INC DPTR
PUSH DPH
MOV DPH,R4
POP 04H
PUSH DPL
MOV DPL,R5
POP 05H
MOVX @DPTR,A
INC DPTR
DJNZ R0,PHL
POP ACC
MOVX @DPTR,A
INC DPTR
MOV A,64H
MOVX @DPTR,A
INC DPTR
MOV A,DPL
ADD A,#4
MOV 6FH,A
MOV A,DPH
ADDC A,#0
MOV 6EH,A
RET
;=========================
PFO3: MOV PSW,#0
PUSH IE
MOV IE,#0
MOV DPTR,#13FAH
MOV R0,#0FH
MOV R1,#6
PFL: MOV A,@R0
MOVX @DPTR,A
INC DPTR
DEC R0
DJNZ R1,PFL
POP IE
RET
;========================================
PSTOP: MOV A,6AH
MOV DPL,A
ADD A,#18
MOV 6AH,A
MOV A,69H
MOV DPH,A
ADDC A,#0
MOV 69H,A
INC 68H
MOV R0,#6
MOV R4,#13H
MOV R5,#0FAH
PSL1: MOV A,DPH
MOV DPH,R4
MOV R4,A
MOV A,DPL
MOV DPL,R5
MOV R5,A
MOVX A,@DPTR
INC DPTR
PUSH DPH
MOV DPH,R4
POP 04H
PUSH DPL
MOV DPL,R5
POP 05H
MOVX @DPTR,A
INC DPTR
DJNZ R0,PSL1
MOV A,#128
MOVX @DPTR,A
INC DPTR
MOV A,64H
MOVX @DPTR,A
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
PUSH IE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -