標題: 求助proteus仿真i2C通信出現(xiàn)問題 [打印本頁]
作者: boasing 時間: 2012-6-10 22:26
標題: 求助proteus仿真i2C通信出現(xiàn)問題
求助論壇里的各位大神,在仿真單片機通過I2C與24C02通信出現(xiàn)問題
在仿真時,51單片中外接AT24C02提示這個警告:[I2CMEM]stop condition whilst memory is transmitting data is unreliable。
原理圖和C語言程序都在附件里,,
仿真的原理圖和c代碼.rar
(16.45 KB, 下載次數(shù): 78)
2012-6-10 22:26 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者: boasing 時間: 2012-6-10 22:31
對了,這個程序主要是驗證24C02的存儲功能,單片機與24C02tongguo i2C通信,當單片機每上電一次或復位一次,單片機就往24C02里加1,然后24C02再通過i2c與單片機通信,把存儲的值返回給單片機,并用數(shù)碼管顯示。。。
作者: lmy 時間: 2016-8-23 15:06
我感覺只是初始化要一分鐘 后來就是正常
作者: maomao12 時間: 2018-3-14 19:21
讀取數(shù)據(jù)的時候,不要停止信號,每次開始讀數(shù)據(jù)的時候加上開始信號
作者: maomao12 時間: 2018-3-14 19:27
在發(fā)送停止信號之前,發(fā)送一個應答 void Master_ACK24C02() { _24C02_SCL = 0; // 拉低時鐘總線允許SDA數(shù)據(jù)總線上的數(shù)據(jù)變化 _nop_(); // 讓總線穩(wěn)定 _24C02_SDA = 1; //發(fā)送非應答 _nop_();//讓總線穩(wěn)定 _24C02_SCL = 1;//拉高時鐘總線 讓從機從SDA線上讀走 主機的應答信號 _nop_(); _24C02_SCL = 0;//拉低時鐘總線, 占用總線繼續(xù)通信 _nop_(); _24C02_SDA = 1;//釋放SDA數(shù)據(jù)總線。 _nop_(); }
作者: 13487086265 時間: 2020-4-15 11:36
實物上沒問題
作者: Murasamekiss 時間: 2021-12-28 21:44
你把接受里的iic_stop刪了試試
| 歡迎光臨 (http://www.denmoz.com/bbs/) |
Powered by Discuz! X3.1 |