打印
[51单片机]

中颖单片机类EEPROM 读写,ERASE

[复制链接]
1587|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yhchen2001|  楼主 | 2018-4-18 17:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今年刚用了一款中颖单片机,4051A, 看了DATASHEET ,对类EEPROM 的读写,ERASE ,描述不是很清楚,也没有范例,这里给大家列一下读写,ERASE 类EEPROM 的范例,有用到的可以参考一下了!

1. 读EEPROM ONE BYTE
ee_read_onebyte:
        mov                FLASHCON,#0x01
        mov                XPAGE,#0X00
        clr                a
        mov                DPTR,#08h        ; 读EEPROM ADDR 0X08 的DATA
        movc        a,@A+DPTR               ; 读回的DATA 放在A
        mov                FLASHCON,#00H
        ret

2. ERASE EEPROM ONE BLOCK
;FLASH_FLAG 检查是为了防止出错而设置的检查.
ee_erase_oneblock:
        clr                EA
        mov                FLASHCON,#01H
        mov                XPAGE,#00H
        mov                IB_CON1,#0xE6
        mov                IB_CON2,#0x05
        mov                IB_CON3,#0x0A
        mov                IB_CON4,#0x09
        mov                a,flash_flag                              ; CALL 这个之前,赋值FLASH_ERASE_FLAG给FLASH_FLAG
        cjne        a,#FLASH_ERASE_FLAG, erase_erro       
        mov                IB_CON5,#0x06
        nop
        nop
        nop
        nop
erase_erro:
        mov                flash_flag,#00h       
        mov                FLASHCON,#00H
        mov                XPAGE,#00H
        setb        EA
        ret       

3. WRITE ONE BYTE
;FLASH_FLAG 设置的理由和上面ERASE 部分的理由一样.
ee_write_onebyte:
        clr                EA
        mov                FLASHCON,#01
        mov                XPAGE,#00H
        mov                IB_CON1,#0x6E
        mov                IB_CON2,#0x05
        mov                IB_CON3,#0x0A
        mov                IB_CON4,#0x09
        mov                a,flash_flag
        cjne        a,#FLASH_WRITE_FLAG, write_erro       
        mov                IB_CON5,#0x06
        nop
        nop
        nop
        nop
write_erro:
        mov                flash_flag,#00h       
        mov                FLASHCON,#00H
        mov                XPAGE,#00H
        setb        EA
        ret               

以上的写法都经过调试,可以使用 ,但可能有些地方不完整或别的,只是给大家做个参考用.如果有什么建议,大家可以提出来.
有个注意的地方就是,类EEPROM 每次去写,都要先做ERASE 动作.

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

354

帖子

2

粉丝