关于外接EEPROM的问题

[复制链接]
4045|8
 楼主| leonest 发表于 2007-4-25 11:21 | 显示全部楼层 |阅读模式
我用51外接AT28C64B,在地址0000H-0005H烧入0.1.2.3.4.5,可写程序访问却总是得到80,C0,开始以为是硬件连错了,可用仿真器时在片外数据里可以看到数据,大家帮我看看是哪的问题呢,程序如下:
         mov dptr,#0003h     
    movx a,@dptr
    mov    23h, a
    lcall  DELAY50MS
    mov dptr,#0004h
    movx a,@dptr
    mov    24h, a
    lcall  DELAY50MS
zhlking 发表于 2007-4-25 11:35 | 显示全部楼层

你这样是访问的片内的ROM区吧!

你这样是访问的片内的ROM区吧!
lyjian 发表于 2007-4-25 12:01 | 显示全部楼层

你是外扩在RAM空间还是ROM空间

LS还要看看书。
读基本不用延时,除非你的51很快,eeprom很慢。
xwj 发表于 2007-4-25 12:31 | 显示全部楼层

LZ先搞清楚MOVX和MOVC的区别、用法再说...

 楼主| leonest 发表于 2007-4-25 12:55 | 显示全部楼层

目前先做外扩RAM,以后程序大了也做ROM,不知道可不可以

我想用EEPROM做数据存储,这样掉电了数据不丢失,EEPROM不是可以写数据的吗,只是速度慢点,这样用不知道对不对,而且现在发现先往EEPROM里写再读就能读出正确的数据了,这是为什么呢?程序如下:
         movx @dptr,a
    mov dptr,#0001h
    movx a,@dptr
    mov    21h, a
    lcall  DELAY50MS
  我的地址线A15接EEPROM的CE,所以地址是从0000H开始
 楼主| leonest 发表于 2007-4-25 13:01 | 显示全部楼层

还有我的RDPSEN过与门连到EEPROM的OE,MOVX和MOVC都能访问啊

WR接EEPROM的WE
 楼主| leonest 发表于 2007-4-27 11:22 | 显示全部楼层

我又换了个EEPROM NEC的D28C64,结果用仿真器正常读写。。。

我用AT28C64C时,不管什么值,用仿真器这能读出80,C0,直接用51什么也读不出来
我又换了个EEPROM NEC的D28C64,结果用仿真器正常读写,可直接用51就不能读了
古道热肠 发表于 2007-4-27 11:30 | 显示全部楼层

换地址空间试试

  读写EEPROM时,要确认其工作在数据空间选中的状态。仿真器可以切换,要注意选对状态,遇到这种事,最好在目标环境中烧程序试试。
 楼主| leonest 发表于 2007-4-29 10:42 | 显示全部楼层

找到问题在哪了,就是不知道怎么改:(

原来EEPROM的片选是直接接到A15上,现在把片选接地就能正常读写了,感觉是EEPROM的CE/时间太短,时序有问题就不能写了(读还是可以的),只有接地了总是选通才好用,可我总线上还有几个其他设备,这样地址冲突了,大家再帮我看看怎么能实现片选,然后还能保持足够的片选时间啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部