找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9013|回复: 6
打印 上一主题 下一主题
收起左侧

求助proteus仿真i2C通信出现问题

[复制链接]
跳转到指定楼层
楼主
ID:40668 发表于 2012-6-10 22:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

 

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

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

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



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:40668 发表于 2012-6-10 22:31 | 只看该作者
对了,这个程序主要是验证24C02的存储功能,单片机与24C02tongguo i2C通信,当单片机每上电一次或复位一次,单片机就往24C02里加1,然后24C02再通过i2c与单片机通信,把存储的值返回给单片机,并用数码管显示。。。
回复

使用道具 举报

板凳
ID:136743 发表于 2016-8-23 15:06 | 只看该作者
boasing 发表于 2012-6-10 22:31
**** 作者被禁止或删除 内容自动屏蔽 ****

我感觉只是初始化要一分钟 后来就是正常
回复

使用道具 举报

地板
ID:164146 发表于 2018-3-14 19:21 | 只看该作者
读取数据的时候,不要停止信号,每次开始读数据的时候加上开始信号
回复

使用道具 举报

5#
ID:164146 发表于 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_(); }
回复

使用道具 举报

6#
ID:701852 发表于 2020-4-15 11:36 | 只看该作者
实物上没问题
回复

使用道具 举报

7#
ID:997423 发表于 2021-12-28 21:44 | 只看该作者
你把接受里的iic_stop删了试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表