打印

求助:I2C程序问题求助

[复制链接]
1150|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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也可以是嘛?
望各位指教,谢谢。

IMG_20120130_171827.jpg (1.02 MB )

IMG_20120130_171827.jpg

相关帖子

沙发
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行!

使用特权

评论回复
5
lost1421| | 2012-1-31 17:56 | 只看该作者

使用特权

评论回复
6
ningling_21| | 2012-1-31 23:21 | 只看该作者
楼上正解,LZ没看懂芯片资料...

使用特权

评论回复
7
leshak|  楼主 | 2012-2-1 18:11 | 只看该作者
嗯,了解了。我刚起步单片机,所以基础比较薄弱,呵呵。多向各位高手学习和讨教。谢谢你们。

使用特权

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

本版积分规则

101

主题

522

帖子

4

粉丝