📄 mc68hc08as20.asm
字号:
LJMP ERA4430
;*******************用专用串口配置波特率****************************
autobaudE:
ORL P4,#04H ;中间的BUSY灭
lcall delayms
CLR RST
LCALL DELAY15MS
SETB RST
lcall delay6ms
lcall delayms
ANL P4,#0FBH ;中间的BUSY灯亮
lcall delayms
MOV R0,#03H
TDb3: MOV A,R0 ;从表中取数据入累加器
MOVC a,@A+PC
JMP TDB4
DB 0eah, 0e7h, 0d5h, 0cdh ,0f5h, 0efh
DB 0e3h, 0e5h, 0cah, 0c6h, 8ch, 18h
TDB4:
mov baud,a
mov a,#55h
LCALL txdbaud
lcall rxdbaud
mov auto,a
;LCALL OUTPUT
mov a,auto
xrl a,#55h
jz autoE
clr rst
lcall delay15ms
setb rst
lcall delay6ms
inc r0
cjne r0,#0fh,tdb3
mov a,#0aah
lcall output
mov a,#0cch ;波特率没配对
lcall output
ANL P4,#0F7H ;中间的BUSY亮
ANL P4,#0FDH
lcall delay200ms
ORL P4,#02h ;蜂鸣器
lcall delay200ms
ANL P4,#0FDH
lcall delay200ms
ORL P4,#02h ;蜂鸣器
lcall delay200ms
ANL P4,#0FDH
lcall delay200ms
ORL P4,#02h ;蜂鸣器
SETB CTRL ;适配器断电
lcall delayms
SETB CTRLDIR
lcall delayms
loopE: LJMP FUWEI
autoE: ljmp autoERA ; 用专用串口配置的波特率子程序
;***************************用IO口模拟串口配置的波特率子程序***************************
;*************************************ERASE 28800*****************************************************
ERA28800: mov a,#55h ;波特率配置正确
lcall output
clr rst
lcall delay15ms
setb rst
lcall delay6ms
mov r0,#08h ;8 个00 安全位
TT00: mov a,#00h
lcall txd28800
lcall rxd28800
lcall delay15ms
djnz r0,TT00
lcall delayms
lcall delayms
lcall delayms
lcall delayms
lcall delayms
lcall delayms
lcall delayms
lcall delayms
mov a,#0bbh
lcall output; 芯片测试通过
mov r1,addh
mov r2,addl
mov r6,lenh
mov r4,lenl
mov a,r4
JNZ EREDATA
LJMP Eronlyr3
EREDATA: lcall delay1ms
mov a,#49h
lcall txd28800
lcall rxd28800
MOV A,#0FEH
LCALL TXD28800
LCALL RXD28800
MOV A,#1DH
LCALL TXD28800
LCALL RXD28800
MOV A,#0CH
LCALL TXD28800
LCALL RXD28800
lcall delay6ms
MOV A,#49H
LCALL TXD28800
LCALL RXD28800
MOV A,r1 ;TRANSMIT ADDRESS TO MCU
LCALL txd28800
lcall rxd28800
MOV A,r2
LCALL txd28800
lcall rxd28800
MOV A,#00H
LCALL TXD28800
LCALL RXD28800
lcall delay6ms
mov a,#49h
lcall txd28800
lcall rxd28800
MOV A,#0FEH
LCALL TXD28800
LCALL RXD28800
MOV A,#1DH
LCALL TXD28800
LCALL RXD28800
MOV A,#0DH
LCALL TXD28800
LCALL RXD28800
lcall delay6ms
mov a,#49h
lcall txd28800
lcall rxd28800
MOV A,#0FEH
LCALL TXD28800
LCALL RXD28800
MOV A,#1DH
LCALL TXD28800
LCALL RXD28800
MOV A,#0CH
LCALL TXD28800
LCALL RXD28800
lcall delay6ms
mov a,#49h
lcall txd28800
lcall rxd28800
MOV A,#0FEH
LCALL TXD28800
LCALL RXD28800
MOV A,#1DH
LCALL TXD28800
LCALL RXD28800
MOV A,#00H
LCALL TXD28800
LCALL RXD28800
lcall delay6ms
INC r2
CJNE r2,#00H,EJINWEI ;判断低地址是否加到进位
INC r1
EJINWEI: DJNZ R4,EREDATAA
Eronlyr3: mov a,r6
jz Ereend
DEC R6
MOV A,R6
XRL A,#0FFH
JZ EREEND
LJMP EREDATA
NOP
Ereend:
mov a,#55h
lcall output
mov a,#0ffh ;擦除结束
lcall output
ANL P4,#0FDH
lcall delay200ms
ORL P4,#02h ;蜂鸣器
SETB CTRL ;适配器断电
lcall delayms
SETB CTRLDIR
lcall delayms
ORL P4,#04H
LJMP FUWEI
EREDATAA: LJMP EREDATA
;*************************ERASE 14400BAUD*********************************************************************************
ERA14400: mov a,#55h ;波特率配置正确
lcall output
clr rst
lcall delay15ms
setb rst
lcall delay6ms
mov r0,#08h ;8 个00 安全位
TT100: mov a,#00h
lcall txd14400
lcall rxd14400
lcall delay15ms
djnz r0,TT100
lcall delayms
lcall delayms
lcall delayms
lcall delayms
lcall delayms
lcall delayms
lcall delayms
lcall delayms
mov a,#0bbh
lcall output; 芯片测试通过
mov r1,addh
mov r2,addl
mov r6,lenh
mov r4,lenl
mov a,r4
JNZ EREDATA1
LJMP Eronlyr31
EREDATA1: lcall delay1ms
mov a,#49h
lcall txd14400
lcall rxd14400
MOV A,#0FEH
LCALL TXD14400
LCALL RXD14400
MOV A,#1DH
LCALL TXD14400
LCALL RXD14400
MOV A,#0CH
LCALL TXD14400
LCALL RXD14400
lcall delay6ms
MOV A,#49H
LCALL TXD14400
LCALL RXD14400
MOV A,r1 ;TRANSMIT ADDRESS TO MCU
LCALL txd14400
lcall rxd14400
MOV A,r2
LCALL txd14400
lcall rxd14400
MOV A,#00H
LCALL TXD14400
LCALL RXD14400
lcall delay6ms
mov a,#49h
lcall txd14400
lcall rxd14400
MOV A,#0FEH
LCALL TXD14400
LCALL RXD14400
MOV A,#1DH
LCALL TXD14400
LCALL RXD14400
MOV A,#0DH
LCALL TXD14400
LCALL RXD14400
lcall delay6ms
mov a,#49h
lcall txd14400
lcall rxd14400
MOV A,#0FEH
LCALL TXD14400
LCALL RXD14400
MOV A,#1DH
LCALL TXD14400
LCALL RXD14400
MOV A,#0CH
LCALL TXD14400
LCALL RXD14400
lcall delay6ms
mov a,#49h
lcall txd14400
lcall rxd14400
MOV A,#0FEH
LCALL TXD14400
LCALL RXD14400
MOV A,#1DH
LCALL TXD14400
LCALL RXD14400
MOV A,#00H
LCALL TXD14400
LCALL RXD14400
lcall delay6ms
INC r2
CJNE r2,#00H,EJINWEI1 ;判断低地址是否加到进位
INC r1
EJINWEI1: DJNZ R4,EREDATAA1
Eronlyr31: mov a,r6
jz Ereend1
DEC R6
MOV A,R6
XRL A,#0FFH
JZ EREEND1
LJMP EREDATA1
NOP
Ereend1:
mov a,#55h
lcall output
mov A,#0ffh ;擦除结束
lcall output
ANL P4,#0FDH
lcall delay200ms
ORL P4,#02h ;蜂鸣器
SETB CTRL ;适配器断电
lcall delayms
SETB CTRLDIR
lcall delayms
ORL P4,#04H ;中间busy灯灭
LJMP FUWEI
EREDATAA1: LJMP EREDATA1
;*****************************ERASE 8861 BAUD ****************************************
ERA8861: mov a,#55h ;波特率配置正确
lcall output
clr rst
lcall delay15ms
setb rst
lcall delay6ms
mov r0,#08h ;8 个00 安全位
TT200: mov a,#00h
lcall txd8861
lcall rxd8861
lcall delay15ms
djnz r0,TT200
lcall delayms
lcall delayms
lcall delayms
lcall delayms
lcall delayms
lcall delayms
lcall delayms
lcall delayms
mov a,#0bbh
lcall output; 芯片测试通过
mov r1,addh
mov r2,addl
mov r6,lenh
mov r4,lenl
mov a,r4
JNZ EREDATA2
LJMP Eronlyr32
EREDATA2: lcall delay1ms
mov a,#49h
lcall txd8861
lcall rxd8861
MOV A,#0FEH
LCALL TXD8861
LCALL RXD8861
MOV A,#1DH
LCALL TXD8861
LCALL RXD8861
MOV A,#0CH
LCALL TXD8861
LCALL RXD8861
lcall delay6ms
MOV A,#49H
LCALL TXD8861
LCALL RXD8861
MOV A,r1 ;TRANSMIT ADDRESS TO MCU
LCALL txd8861
lcall rxd8861
MOV A,r2
LCALL txd8861
lcall rxd8861
MOV A,#00H
LCALL TXD8861
LCALL RXD8861
lcall delay6ms
mov a,#49h
lcall txd8861
lcall rxd8861
MOV A,#0FEH
LCALL TXD8861
LCALL RXD8861
MOV A,#1DH
LCALL TXD8861
LCALL RXD8861
MOV A,#0DH
LCALL TXD8861
LCALL RXD8861
lcall delay6ms
mov a,#49h
lcall txd8861
lcall rxd8861
MOV A,#0FEH
LCALL TXD8861
LCALL RXD8861
MOV A,#1DH
LCALL TXD8861
LCALL RXD8861
MOV A,#0CH
LCALL TXD8861
LCALL RXD8861
lcall delay6ms
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -