IIC其實(shí)很簡(jiǎn)單的,讓我這個(gè)小白來(lái)告訴你吧
IIC的主要信號(hào)就是三個(gè):啟動(dòng)信號(hào),停止信號(hào),應(yīng)該信號(hào)
啟動(dòng)和停止信號(hào):在任何時(shí)候都可以產(chǎn)生
應(yīng)該信號(hào):在發(fā)送或者接收完成8個(gè)位之后的第9個(gè)位來(lái)產(chǎn)生.0為應(yīng)答,1為不應(yīng)答,向器件寫入數(shù)據(jù)時(shí),應(yīng)答信號(hào)由接收器產(chǎn)生,從器件讀出數(shù)據(jù)時(shí),應(yīng)答信號(hào)由單片機(jī)產(chǎn)生
以51讀寫24C01為例:
向24C01寫入時(shí),先寫入啟動(dòng)信號(hào),然后寫入地址(8個(gè)位),在第9個(gè)位的時(shí)候,SDA線要為高電平(釋放SDA線),接下來(lái),單片機(jī)要不斷的讀取SDA線,當(dāng)寫入完成時(shí),24C01會(huì)把SDA線拉低,就表示已經(jīng)寫入完成了.
讀出數(shù)據(jù)時(shí):先是一個(gè)啟動(dòng)信號(hào),然后寫入要讀取的地址,再寫入一個(gè)啟動(dòng)信號(hào),然后單片機(jī)就開始讀取SDA的電平數(shù)據(jù)了,在讀取完8個(gè)位之后,在第9個(gè)位的時(shí)候,單片機(jī)要把SDA拉低(0),再給24C01一個(gè)時(shí)候,等于是告訴24C01已經(jīng)接收到完整的8個(gè)位了 |