⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mc68hc08as20.asm

📁 本程序实现了对MOTOROLA08AS20单片机EEPROM的访问
💻 ASM
📖 第 1 页 / 共 5 页
字号:
            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 + -