打印

关于外接EEPROM的问题

[复制链接]
3004|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的区别、用法再说...

使用特权

评论回复
5
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开始

使用特权

评论回复
6
leonest|  楼主 | 2007-4-25 13:01 | 只看该作者

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

WR接EEPROM的WE

使用特权

评论回复
7
leonest|  楼主 | 2007-4-27 11:22 | 只看该作者

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

我用AT28C64C时,不管什么值,用仿真器这能读出80,C0,直接用51什么也读不出来
我又换了个EEPROM NEC的D28C64,结果用仿真器正常读写,可直接用51就不能读了

使用特权

评论回复
8
古道热肠| | 2007-4-27 11:30 | 只看该作者

换地址空间试试

  读写EEPROM时,要确认其工作在数据空间选中的状态。仿真器可以切换,要注意选对状态,遇到这种事,最好在目标环境中烧程序试试。

使用特权

评论回复
9
leonest|  楼主 | 2007-4-29 10:42 | 只看该作者

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

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

使用特权

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

本版积分规则

5

主题

14

帖子

0

粉丝