新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 8051單片機的I2C接口并行擴展

8051單片機的I2C接口并行擴展

作者: 時間:2012-04-05 來源:網(wǎng)絡(luò) 收藏

3.2 方式控制字

8051向控制寄存器CI0寫控制字,實現(xiàn)對的編程控制。CI0的控制字格式如下所示:

21.gif

A2,A1,A0位:對與8051相連的器件組的片選(器件地址)。對應(yīng)不同值時選擇不同的器件通信?! ?p>R/W:用來控制8051對器件的讀寫操作。1表示8051對I2C器件讀數(shù)據(jù);0表示8051對I2C器件寫數(shù)據(jù)。

M1M0:當(dāng)S=1時的4種工作方式:
①I2C總線未連接,要進(jìn)行寫操作。
②I2C總線未連接,要進(jìn)行讀操作。
  ③I2C總線已連接,換一個I2C器件或換新地址,要進(jìn)行寫操作。
  ④I2C總線已連接,換一個I2C器件或換新地址,要進(jìn)行讀操作。

S:工作控制位。當(dāng)S=0時,關(guān)閉I2C總線,其他情況S=1。

DZS:指明8051對I2C器件讀寫的地址數(shù)。具體為:
0:8051對I2C器件內(nèi)單字節(jié)地址讀寫?! ?br />1:8051對I2C器件內(nèi)雙字節(jié)地址讀寫。

3.3 I2C模塊對I2C傳輸協(xié)議的實現(xiàn)

根據(jù)I2C數(shù)據(jù)傳輸協(xié)議,時鐘為高電平時,數(shù)據(jù)線由高電平向低電平跳變,啟動I2C數(shù)據(jù)傳輸。然后每到來一個時鐘脈沖,傳送一位串行數(shù)據(jù),第8個脈沖到來后,已完成一個字節(jié)的傳輸,第9個脈沖時,發(fā)送應(yīng)答信號。寫數(shù)據(jù)時,I2C器件收到數(shù)據(jù),發(fā)送應(yīng)答信號;讀數(shù)據(jù)時,8051收到數(shù)據(jù),發(fā)送應(yīng)答信號。數(shù)據(jù)傳送過程中,時鐘為高電平期間,數(shù)據(jù)線上的內(nèi)容保持不變。數(shù)據(jù)傳送完畢,應(yīng)答結(jié)束后,需要用停止信號停止數(shù)據(jù)傳輸,時鐘高電平時,數(shù)據(jù)線由低電平向高電  55平跳變來實現(xiàn)此停止信號。

I2C模塊實現(xiàn)I2C數(shù)據(jù)傳輸協(xié)議。start信號為1時,啟動數(shù)據(jù)傳輸;write信號為1時,向I2C器件寫數(shù)據(jù),read信號為1時,向I2C器件讀數(shù)據(jù)。

讀寫過程中,輸出標(biāo)志位flag、計數(shù)器dcnt,控制en的兩位矢量,從而控制并串轉(zhuǎn)換寄存器和串并轉(zhuǎn)換寄存器的并入、移位、保持、清零操作。停止信號為1時,結(jié)束數(shù)據(jù)傳輸。

3.4 芯片的工作原理與控制過程

8051向控制寄存器CI0寫控制字,實現(xiàn)對I2C的編程控制;向數(shù)據(jù)寄存器CI1寫數(shù)據(jù),實現(xiàn)對I2C接口的數(shù)據(jù)傳輸。

當(dāng)bz=1時,8051才對數(shù)據(jù)寄存器讀寫,而每次讀寫后接口電路自動將bz置0,在接口電路完成有關(guān)操作等待8051的讀寫時將bz置1。

(1)I2C總線未連接,要進(jìn)行寫操作。8051的操作:

①寫控制字W1;②當(dāng)bz=1時寫器件內(nèi)地址第1字節(jié);③當(dāng)bz=1時寫器件內(nèi)地址第2字節(jié)…;④當(dāng)bz=1時寫第1字節(jié)…。

I2C的操作:

當(dāng)接收到該控制字W1后操作為:①置bz=1,啟動I2C總線;②根據(jù)控制字中的器件地址發(fā)出第1個字節(jié)(器件選擇、寫);③發(fā)送器件內(nèi)地址,置bz=1;④發(fā)送數(shù)據(jù)內(nèi)容,置bz=1…。



關(guān)鍵詞: 擴展 并行 接口 I2C 單片機

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉