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

📄 serial-eeprom-example.asm

📁 serial memory rom for for atmel at89c52 or At89s52
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        mov     th1, #baud_const        orl     PCON,#10000000b  ; set double baud rate        MOV     TMOD,#00100001b  ; T0=16 bit, T1=8 bit auto reload                                 ; both are timers, software control        MOV     SCON,#01010010b  ; Set Serial for mode 1 &                                 ; Enable reception, ti=1, ri=0        ORL     TCON,#01010101b  ; Start both timers, both int are                                 ; falling edge trigger        mov     dptr, #welcome        acall   pstr        ajmp    mainwelcome:.db     "Serial EEPROM tester",13,10,13,10,0        ;********************************************************;     and here's where all the dirty work is done;********************************************************read:   ;r0 is word address to read, data is returned in        ;r2 (lsb) and r3 (msb)        clr     pre        setb    cs        nop        clr     sk        setb    di      ;the start bit        setb    sk        clr     sk        nop        setb    sk      ;another '1'        clr     sk        clr     di      ;and a '0'        setb    sk        mov     r4, #6        mov     a, r0        rl      a        rl      aread2:  rlc     a        clr     sk        mov     di, c   ;and do each address bit        setb    sk        djnz    r4, read2        clr     di          mov     r4, #8        clr     aread3:  clr     sk        nop        setb    sk        mov     c, do        rlc     a        djnz    r4, read3        mov     r3, a        mov     r4, #8        clr     aread4:  clr     sk        setb    sk        mov     c, do        rlc     a        djnz    r4, read4        mov     r2, a        clr     cs        clr     di        ret;********************************************************write:  ;r0 is word address to write, r2 (lsb) and r3 (msb)        clr     pre        setb    pe        setb    cs        nop        clr     sk        setb    di      ;the start bit        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        mov     r4, #6        mov     a, r0        rl      a        rl      awrite2: rlc     a        clr     sk        mov     di, c   ;and do each address bit        setb    sk        djnz    r4, write2        mov     a, r3        mov     r4, #8write3: clr     sk        rlc     a        mov     di, c        setb    sk        djnz    r4, write3        mov     a, r2        mov     r4, #8write4: clr     sk        rlc     a        mov     di, c        setb    sk        djnz    r4, write4        clr     di        clr     cs        nop        setb    cs        nop        nopwrite5: mov     c, do        jnc     write5        nop        clr     cs        ret;********************************************************pren:   ;enable the protection register (for next cycle)        setb    pre        setb    pe        setb    cs        nop        clr     sk        setb    di      ;the start bit        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     cs        clr     pre        ret;********************************************************prclear:        setb    pre        setb    pe        setb    cs        nop        clr     sk        setb    di      ;the start bit        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     di        clr     cs        clr     pre        nop        setb    cs        nop        nopprclr5: mov     c, do        jnc     prclr5        nop        clr     cs        ret;********************************************************prds:   ;permantly fix protect register!!!        setb    pre        setb    pe        setb    cs        nop        clr     sk        setb    di      ;the start bit        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     cs        clr     pre        nop        setb    cs        nop        nopprds5:  mov     c, do        jnc     prds5        nop        clr     cs        ret;********************************************************prwrite: ;r0 is address to write into protect register        setb    pre        setb    pe        setb    cs        nop        clr     sk        setb    di      ;the start bit        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        mov     r4, #6        mov     a, r0        rl      a        rl      aprwrt2: rlc     a        clr     sk        mov     di, c   ;and do each address bit        setb    sk        djnz    r4, prwrt2        clr     di        clr     cs        clr     pre        nop        setb    cs        nop        nopprwrt5: mov     c, do        jnc     prwrt5        nop        clr     cs        ret;********************************************************wen:    ;enable writing        clr     pre        setb    pe        setb    cs        nop        clr     sk        setb    di      ;the start bit        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     cs        clr     pre        ret;********************************************************wds:    ;disable writing        clr     pre        setb    pe        setb    cs        nop        clr     sk        setb    di      ;the start bit        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        setb    di      ;a '1'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     sk        clr     di      ;a '0'        setb    sk        clr     cs        clr     pre        ret

⌨️ 快捷键说明

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