求助:I2C程序问题求助

[复制链接]
 楼主| leshak 发表于 2012-1-30 17:45 | 显示全部楼层 |阅读模式
线路如附件(LAYOUT还没学会,望谅解,另外发帖的时候有截图功能嘛?)
51单片机和I2C器件的数据读写部分程序如下(只截取有疑问的程序段)

AT24CXX写字节程序:
    NOP
    ACCALL MEM_START;  给AT24CXX开始信号, MEM_START是I2C的开始信号程序
    MOV A,#0A0H;   ------------“写”命令+片选地址信息
    ACALL WR1;----------------写入以上信息。 WR1写数据程序
   .......
疑问: MOV A,#0A0H,看程序AT24CXX的地址是0A0H,这个0A0H如何得到的呢?我看了下IC资料好像没有这方面的描述

读字节程序
    MOV   R1,#00H;     待读数据的地址
    MOV   R0,#127;    读取127个字节
    MOV   DPTR,#5000H;要写到RAM的地址
   .....
疑问:MOV   DPTR,#5000H;用51的DPTR16位寄存器作为RAM数据存放地址,这个#5000H是随机定义的嘛?换个其他数据,如#4999H也可以是嘛?
望各位指教,谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
NE5532 发表于 2012-1-30 19:55 | 显示全部楼层
1.是I2C协议里的从器件地址,24C的数据手册里写了的,只是Bit3..1要看硬件片选端,Bit0要看读写方向罢了。
2.这是51的RAM地址,根据应用来定位置,可以改的。
hotpower 发表于 2012-1-30 20:04 | 显示全部楼层
简单
sjc_sugar 发表于 2012-1-31 17:34 | 显示全部楼层
疑问1: MOV A,#0A0H; mov a,#0b1100xxxw;xxx表示电路图上A2A1A0连接方式,w=0表示写器件,w=1读器件;
疑问2:MOV   DPTR,#5000H;外部RAM地址,注意别使用已用过的外部jiu行!
lost1421 发表于 2012-1-31 17:56 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ningling_21 发表于 2012-1-31 23:21 | 显示全部楼层
楼上正解,LZ没看懂芯片资料...
 楼主| leshak 发表于 2012-2-1 18:11 | 显示全部楼层
嗯,了解了。我刚起步单片机,所以基础比较薄弱,呵呵。多向各位高手学习和讨教。谢谢你们。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

522

帖子

4

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