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

📄 mc68hc08as20.asm

📁 本程序实现了对MOTOROLA08AS20单片机EEPROM的访问
💻 ASM
📖 第 1 页 / 共 5 页
字号:
           ORL  P4,#02h       ;蜂鸣器

           SETB   CTRL             ;适配器断电
           lcall  delayms
           SETB    CTRLDIR
           lcall  delayms
            ljmp fuwei


;*******************READ8861baud**************************************************************************

read8861:
             mov  a,#55h            ;波特率配置正确
            lcall  output


            clr   rst
            lcall  delay15ms
            setb  rst
            lcall  delay15ms

           mov   r0,#08h
tx300:
            mov a,#00h
           lcall  txd8861
           lcall  rxd8861
           lcall  delay15ms
           djnz   r0,tx300



           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 DPTR,#0000H

            mov    a,r4
            jz     ronlyr33
REDATA3:    lcall  delay2ms
            mov    a,#4ah
            lcall   txd8861
            lcall   rxd8861
            lcall   delay35us

            MOV    A,r1     ;TRANSMIT ADDRESS TO MCU
            LCALL  txd8861
            lcall  rxd8861
             lcall  delay35us
            lcall  delay35us

             MOV    A,r2
            LCALL  txd8861
            lcall  rxd8861
            lcall  delay35us

            LCALL  rxd8861    ;RECEIVE DATA FROM MCU
            mov    datas,a

            mov    a,datas
            MOVx   @dptr,a
            INC    dptr
            INC    r2
            CJNE   r2,#00H,JINWEI4  ;判断低地址是否加到进位
            INC    r1

JINWEI4:   DJNZ   R4,REDATA3

ronlyr33:    mov    a,r6
            jz     reend3
            DEC    R6
            MOV    A,R6
            XRL    A,#0FFH
            JZ    REEND3
            LJMP  REDATA3
            NOP
reend3:      nop

;transmit the datas from mcu to pc

           MOV   DPTR,#0000H        ; transmit the datas from mcu to pc
           mov   r6,lenh
           mov   r4,lenl
           mov   a,r4
           jz    tonlyr33
TDATA3:
           MOVx   A,@dptr
           LCALL  OUTPUT
           INC    dptr
           DJNZ   R4,TDATA3

          ;MOV    R4,#00H
tonlyr33:   mov    a,r6
           jz     tend3
           DEC    R6
           MOV    A,R6
           XRL    A,#0FFH
           JZ     TEND3
           LJMP   TDATA3

            NOP

tend3:     ORL P4,#04H               ;中间灯灭

           ANL  P4,#0FDH
           lcall delay200ms
           ORL  P4,#02h       ;蜂鸣器

           SETB   CTRL             ;适配器断电
           lcall  delayms
           SETB    CTRLDIR
           lcall  delayms
            ljmp fuwei


;*********************READ  4430baud*******************************************************************
read4430:
             mov  a,#55h            ;波特率配置正确
            lcall  output


            clr   rst
            lcall  delay15ms
            setb  rst
            lcall  delay15ms

           mov   r0,#08h
tx400:
            mov a,#00h
           lcall  txd4430
           lcall  rxd4430
           lcall  delay15ms
           djnz   r0,tx400



           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 DPTR,#0000H

            mov    a,r4
            jz     ronlyr34
REDATA4:    lcall  delay2ms
            mov    a,#4ah
            lcall   txd4430
            lcall   rxd4430
            lcall  delay35us

            MOV    A,r1     ;TRANSMIT ADDRESS TO MCU
            LCALL  txd4430
            lcall  rxd4430
            lcall  delay35us
            lcall  delay35us

             MOV    A,r2
            LCALL  txd4430
            lcall  rxd4430
            lcall  delay35us

            LCALL  rxd4430    ;RECEIVE DATA FROM MCU
            mov    datas,a

            mov    a,datas
            MOVx   @dptr,a
            INC    dptr
            INC    r2
            CJNE   r2,#00H,JINWEI5  ;判断低地址是否加到进位
            INC    r1

JINWEI5:   DJNZ   R4,REDATA4

ronlyr34:    mov    a,r6
            jz     reend4
            DEC    R6
            MOV    A,R6
            XRL    A,#0FFH
            JZ    REEND4
            LJMP  REDATA4
            NOP
reend4:      nop

;transmit the datas from mcu to pc

           MOV   DPTR,#0000H        ; transmit the datas from mcu to pc
           mov   r6,lenh
           mov   r4,lenl
           mov   a,r4
           jz    tonlyr34
TDATA4:
           MOVx   A,@dptr
           LCALL  OUTPUT
           INC    dptr
           DJNZ   R4,TDATA4

          ;MOV    R4,#00H
tonlyr34:   mov    a,r6
           jz     tend4
           DEC    R6
           MOV    A,R6
           XRL    A,#0FFH
           JZ     TEND4
           LJMP   TDATA4

            NOP

tend4:    ORL P4,#04H               ;中间灯灭

           ANL  P4,#0FDH
           lcall delay200ms
           ORL  P4,#02h       ;蜂鸣器

           SETB   CTRL             ;适配器断电
           lcall  delayms
           SETB    CTRLDIR
           lcall  delayms
             ljmp fuwei

;*********************READ用专用串口配置的波特率子程序*********************

autotrxd:   mov  a,#55h            ;波特率配置正确
            lcall  output


            clr   rst
            lcall  delay15ms
            setb  rst
            lcall  delay6ms

           mov   r0,#08h               ;8 个00 安全位
txd00:
            mov a,#00h
           lcall  txdbaud
           lcall  rxdbaud
           lcall  delay15ms
           djnz   r0,txd00



           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 DPTR,#0000H

            mov    a,r4
            jz     ronlyr31
REDATA1:    lcall  delay2ms
            mov    a,#4ah
            lcall   txdbaud
            lcall   rxdbaud
            lcall   delay35us

            MOV    A,r1     ;TRANSMIT ADDRESS TO MCU
            LCALL  txdbaud
            lcall  rxdbaud
            lcall  delay35us
            lcall  delay35us

            MOV    A,r2
            LCALL  txdbaud
            lcall  rxdbaud
            lcall  delay35us

            LCALL  rxdbaud    ;RECEIVE DATA FROM MCU
            mov    datas,a

            mov    a,datas
            MOVx   @dptr,a
            INC    dptr
            INC    r2
            CJNE   r2,#00H,JINWEI2  ;判断低地址是否加到进位
            INC    r1

JINWEI2:   DJNZ   R4,REDATA1

ronlyr31:   mov    a,r6
            jz     reend1
            DEC    R6
            MOV    A,R6
            XRL    A,#0FFH
            JZ    REEND1
            LJMP  REDATA1
            NOP
reend1:      nop

;transmit the datas from mcu to pc

           MOV   DPTR,#0000H        ; transmit the datas from mcu to pc
           mov   r6,lenh
           mov   r4,lenl
           mov   a,r4
           jz    tonlyr31
TDATA1:
           MOVx   A,@dptr
           LCALL  OUTPUT
           INC    dptr
           DJNZ   R4,TDATA1

tonlyr31:   mov    a,r6
           jz     tend1
           DEC    R6
           MOV    A,R6
           XRL    A,#0FFH
           JZ     TEND1
           LJMP   TDATA1

            NOP


tend1:     mov  dptr,#0ff04h   ;中间灯灭
           mov   a,#01h
           movx  @dptr,a
           mov  dptr,#0ff05h     ;control=0,断电
           mov   a,#00h
           movx  @dptr,a
            ljmp fuwei

LOOP:      ORL P4,#04H   ;中间灯灭

           ANL  P4,#0FDH
           lcall delay200ms
           ORL  P4,#02h       ;蜂鸣器

           SETB   CTRL             ;适配器断电
           lcall  delayms
           SETB    CTRLDIR
           lcall  delayms
            ljmp  fuwei  ;the end of read 08az32 and 08as32


pintest:
          ANL P4,#0FBH

          MOV C,BPBACK
          RLC A
          MOV C,IRQBACK
          RLC A
          RLC A
          RLC A
          MOV C,HIGHBACK
          RLC A
          MOV C,LOWBACK
          RLC A
          MOV C,RST
          RLC A
          MOV pins,A
          ORL A,#9eH
          CPL A
          JZ  pinpass

          MOV A,#0AAH
          LCALL OUTPUT
          MOV A,pins
          lcall output

          ANL P4,#0f7H                ;点亮红灯
          ORL P4,#04H                 ;置灭绿灯
          ANL  P4,#0FDH
          lcall delay200ms
       ;   lcall delay200ms
          ORL  P4,#02h
          lcall delay200ms
          ;lcall delay200ms
          ANL  P4,#0FDH
          lcall delay200ms
          ;lcall delay200ms
          ORL  P4,#02h
          lcall delay200ms
          ;lcall delay200ms
          ANL  P4,#0FDH
          lcall delay200ms
          ;lcall delay200ms
          ORL  P4,#02h
          lcall delay200ms
          ;lcall delay200ms              ;蜂鸣器 响3次

          ljmp fuwei
pinpass:
          MOV A,#55H
          LCALL OUTPUT
          MOV A,#0FFH
          LCALL OUTPUT
          RET
;**************************************DELAY  INPUT OUTPUT TXD RXD I/0TXD RXD**************************************************

;all delays********************************************************************************
DELAY90US:  MOV  R3,#03H ;3个30.1us
D90us1:     MOV  R7,#63H
D90us2:     DJNZ R7,D90us2  ;3个机器周期
             DJNZ R3,D90us1
             RET


DELAY300US:  MOV  R3,#0AH ;10个30.1us
D300us1:     MOV  R7,#63H
D300us2:     DJNZ R7,D300us2  ;3个机器周期
             DJNZ R3,D300us1
             RET

delay1ms:    mov  r3,#64h    ;100个10us delay
d1ms1:       mov  r7,#20h   ;10us delay
d1ms2:       djnz  r7,d1ms2
             djnz  r3,d1ms1
             ret

delay2ms:    mov  r3,#0c8h    ;200个10us delay
d2ms1:       mov  r7,#20h   ;10us delay
d2ms2:       djnz  r7,d2ms2
             djnz  r3,d2ms1
             ret

delay3ms:   mov  r3,#28h    ;40个75us delay
d3ms1:      mov  r7,#0f9h   ;75us delay
d3ms2:      djnz  r7,d3ms2
            djnz  r3,d3ms1
            ret


delay6ms:   mov  r3,#50h    ;80个75us delay
d6ms1:      mov  r7,#0f9h   ;75us delay
d6ms2:      djnz  r7,d6ms2
            djnz  r3,d6ms1
            ret

delay200ms: mov del,#65
d200ms3:    mov  r3,#69h     ;200个25us delay
d200ms1:    mov  r7,#100h   ;75us delay
d200ms2:     djnz  r7,d200ms2
            djnz  r3,d200ms1
            djnz  del,d200ms3
            ret

delay100ms: mov del,#47
d100ms3:    mov  r3,#69h     ;200个25us delay
d100ms1:    mov  r7,#100h   ;75us delay
d100ms2:     djnz  r7,d100ms2
            djnz  r3,d100ms1
            djnz  del,d100ms3
            ret

delay15ms:    mov  r3,#0c8h     ;200个25us delay
d15ms1:       mov  r7,#0f9h   ;75us delay
d15ms2:       djnz  r7,d15ms2
              djnz  r3,d15ms1
              ret

delayms:     mov  r3,#0ffh    ;255个76.5us delay   19.5ms
dns1:        mov  r7,#0ffh    ;76.5us delay
dns2:        djnz  r7,dns2
             djnz  r3,dns1
             ret




 ;*******************from wangqi txd rxd to pc******************
      MOV DPTR,#8000H
shou100:
       MOV R5,#00h
txX:   lCALL input
       MOVx @dptr,a
       INC dptr
       DJNZ R5,TXX
       RET

fa100:
        MOV DPTR,#8000H
        MOV R5,#00H
TX:     SETB qtxd
        ACALL DELAY
        MOVX A,@DPTR
        ACALL OUTPUT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -