论坛风格切换切换到宽版
  • 2931阅读
  • 2回复

那位有关于EEPROM的详细资料 [复制链接]

上一主题 下一主题
离线BD2BE
 
发帖
246
只看楼主 倒序阅读 0楼 发表于: 2003-12-28
那位有关于eeprom的详细资料。越详细越好。或有有关eeprom知识的书籍也行。
离线ljchip
发帖
459
只看该作者 1楼 发表于: 2003-12-29
;****************************************************************
; eeprom page write subprogram                              *
; for 24c32 to 24c64                                    *
; call format: wrtepr(rwaddr,r3,txdata...)                  *
; input: 首地址waddr,写字节数r3,写数据r0首地址...                  *
; return:                                          *
; output: null                                          *
; note: using -- r0,r2,r3,acc,                              *
;             rwaddr,txdata...                        *
;****************************************************************
eprpagewrt:      ;mov      r0, #txdata+0
           lcall      eprstart
           ;mov      a, eeprompage
           ;rl      a
           ;orl      a, #0a0h
           mov      a, #0a0h
           lcall      wrtaccdata
           lcall      testack
           mov      a, rwaddr+0            ; high addr.
           lcall      wrtaccdata
           lcall      testack
           mov      a, rwaddr+1            ; low addr.
           lcall      wrtaccdata
           lcall      testack
wrtnextpagebtye:
           mov      a, @r0
           lcall      wrtaccdata
           lcall      testack
           inc      rwaddr
           inc      rwaddr
           inc      r0
           djnz      r3, wrtnextpagebtye
           lcall      eprover
           lcall      delay5ms
           lcall      delay5ms
           ret

;****************************************************************
; eeprom read subprogram                              *
; for 24c00 to 24c16                                    *
; call format: readepr      ; 参数:r3读字节数,rwaddr                  *
; return:                                          *
; note: using -- r0,r2,r3,r4,r5                              *
;             rwaddr,acc                              *
;             不更改rwaddr的值.                        *
;****************************************************************
readepr:      lcall      eprstart
           ;mov      a, eeprompage
           ;rl      a
           ;orl      a, #0a0h
           mov      a, #0a0h
           lcall      wrtaccdata
           lcall      testack
           mov      a, rwaddr+0      ; high addr.
           lcall      wrtaccdata
           lcall      testack
           mov      a, rwaddr+1      ; low addr.
           lcall      wrtaccdata
           lcall      testack
           lcall      eprstart
           ;mov      a, eeprompage
           ;rl      a
           ;orl      a, #0a1h
           mov      a, #0a1h
           lcall      wrtaccdata
           lcall      testack
           mov      r0, ar5      ;#eepromdata+0
ff5:            setb      bioeepromsda
           clr      a
           clr      c
           lcall      readtoacc
           mov      @r0, a
           lcall      wrtack
           inc      r0
           djnz      r3, ff5
           setb      bioeepromsda
           clr      a
           clr      c
           lcall      readtoacc
           mov      @r0, a
           lcall      eprover
           ret

;----------------------------------------
testack:      setb      bioeepromsda
           nop      ; 22.1184 mhz.
           setb      boeepromscl
           nop      ; 22.1184 mhz.
           clr      boeepromscl
           ret

;----------------------------------------
wrtack:            clr      bioeepromsda
           nop
           setb      boeepromscl
           nop
           clr      boeepromscl
           ret

;----------------------------------------
eprstart:      setb      bioeepromsda
           nop
           setb      boeepromscl
           nop
           clr      bioeepromsda
           nop
           clr      boeepromscl
           ret

;----------------------------------------
eprover:      clr      boeepromscl
           nop
           clr      bioeepromsda
           nop
           setb      boeepromscl
           nop
           setb      bioeepromsda
           ret

;----------------------------------------
readtoacc:      mov      r4, #08d
ff4:            setb      boeepromscl
           nop
           jnb      bioeepromsda, $+4
           setb      c
           clr      boeepromscl
           rlc      a
           djnz      r4, ff4
           ret

;----------------------------------------
wrtaccdata:      rlc      a
           mov      r2, #08d
ee1:            clr      bioeepromsda
           jnc      $+4                  ; c bit read.
           setb      bioeepromsda
           nop
           setb      boeepromscl
           nop
           clr      boeepromscl
           rlc      a
           djnz      r2, ee1
           ret
离线BA3CE
发帖
1652
只看该作者 2楼 发表于: 2004-01-03
您密切注视本版,我这几天将闪速存储器资料提供给大家!