欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 討論一下51單片機的IIC通信的應答信號與非應答信號 [打印本頁]

作者: xzf586    時間: 2018-8-16 14:14
標題: 討論一下51單片機的IIC通信的應答信號與非應答信號
按照多數教材的理解,應答信號應該是這樣:當發送器發送8位數據以后,要發送一個應答信號,個人理解:此處應該是發送一個“要求接收器回復一個應答信號的信號”,有點拗口,可能更加準確些!也就是發送器拉高SDA,然后等待接收器能否拉低SDA信號,能夠拉低SDA,就是回復發生器的應答信號,發送器收到此信號后,繼續發送;如果接收器不能拉低SDA,那發送器就認為是無應答信號,停止工作,也就是釋放總線。發生器等待應答信號期間,SCL應該是高電平!雖然單片機模擬對應答信號要求不是很高,一般都可以工作,但是看了不少程序,總覺得不太符合。不知道上面理解的對不對,歡迎指正!
作者: woshige    時間: 2018-8-16 15:16
最近剛學完iic,如果不糾結概念的話應該就是,發送完數據等待應答信號,接收到應答就繼續執行,非應答就結束,樓主不說的話還真沒有細細研究
作者: xzf586    時間: 2018-8-16 15:28
woshige 發表于 2018-8-16 15:16
最近剛學完iic,如果不糾結概念的話應該就是,發送完數據等待應答信號,接收到應答就繼續執行,非應答就結 ...

如果只看參考程序,有時候還真的沒有在意
作者: 達達達    時間: 2018-8-16 17:43
最近用軟件模擬過IIC通信,寫應答信號庫函數的時候,主機釋放SDA總線也就是把電平拉高,在下一個時鐘周期讀SDA總線然后返回SDA的值就行了,并沒有發送“要求接收器回復一個應答信號的信號”。
作者: 726434632    時間: 2018-8-17 10:32
我一般都是主機模擬應答信號,不管從機。只要從機沒壞,都能工作
作者: xzf586    時間: 2018-9-15 08:17
我們編寫程序,利用proteus仿真,一般都是主機拉低SDA,代替從機回復的應答信號,實際硬件這個SDA的拉低應該由從機完成,所以在這個問題上,大家容易混淆,到底這個應答信號是誰發出的!
作者: ciyu    時間: 2018-9-15 10:11
感覺沒必要這么復雜吧!單片機向I2C發送數據完成后,接收器產生一個應答動作,并且通過I2C總線發送一個應答信號給單片機
作者: Y_G_G    時間: 2018-9-23 15:19
IIC其實很簡單的,讓我這個小白來告訴你吧
IIC的主要信號就是三個:啟動信號,停止信號,應該信號
啟動和停止信號:在任何時候都可以產生
應該信號:在發送或者接收完成8個位之后的第9個位來產生.0為應答,1為不應答,向器件寫入數據時,應答信號由接收器產生,從器件讀出數據時,應答信號由單片機產生
以51讀寫24C01為例:
向24C01寫入時,先寫入啟動信號,然后寫入地址(8個位),在第9個位的時候,SDA線要為高電平(釋放SDA線),接下來,單片機要不斷的讀取SDA線,當寫入完成時,24C01會把SDA線拉低,就表示已經寫入完成了.
讀出數據時:先是一個啟動信號,然后寫入要讀取的地址,再寫入一個啟動信號,然后單片機就開始讀取SDA的電平數據了,在讀取完8個位之后,在第9個位的時候,單片機要把SDA拉低(0),再給24C01一個時候,等于是告訴24C01已經接收到完整的8個位了




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1