标题: 求助proteus仿真i2C通信出现问题 [打印本页]

作者: boasing    时间: 2012-6-10 22:26
标题: 求助proteus仿真i2C通信出现问题

求助论坛里的各位大神,在仿真单片机通过I2C与24C02通信出现问题

 

在仿真时,51单片中外接AT24C02提示这个警告:[I2CMEM]stop condition whilst memory is transmitting data is unreliable。

原理图和C语言程序都在附件里,,

仿真的原理图和c代码.rar (16.45 KB, 下载次数: 78)




作者: boasing    时间: 2012-6-10 22:31
对了,这个程序主要是验证24C02的存储功能,单片机与24C02tongguo i2C通信,当单片机每上电一次或复位一次,单片机就往24C02里加1,然后24C02再通过i2c与单片机通信,把存储的值返回给单片机,并用数码管显示。。。
作者: lmy    时间: 2016-8-23 15:06
boasing 发表于 2012-6-10 22:31
**** 作者被禁止或删除 内容自动屏蔽 ****

我感觉只是初始化要一分钟 后来就是正常
作者: maomao12    时间: 2018-3-14 19:21
读取数据的时候,不要停止信号,每次开始读数据的时候加上开始信号
作者: maomao12    时间: 2018-3-14 19:27
在发送停止信号之前,发送一个应答 void Master_ACK24C02() {         _24C02_SCL = 0; // 拉低时钟总线允许SDA数据总线上的数据变化         _nop_(); // 让总线稳定         _24C02_SDA = 1;         //发送非应答         _nop_();//让总线稳定         _24C02_SCL = 1;//拉高时钟总线 让从机从SDA线上读走 主机的应答信号         _nop_();         _24C02_SCL = 0;//拉低时钟总线, 占用总线继续通信         _nop_();         _24C02_SDA = 1;//释放SDA数据总线。         _nop_(); }
作者: 13487086265    时间: 2020-4-15 11:36
实物上没问题
作者: Murasamekiss    时间: 2021-12-28 21:44
你把接受里的iic_stop删了试试




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1