|
1.I2C簡(jiǎn)單介紹
I2C(Inter-Integrated Circuit)總線(xiàn)是一種由PHILIPS公司開(kāi)發(fā)的兩線(xiàn)式串行總線(xiàn),用于連接微控制器及其外圍設(shè)備。I2C總線(xiàn)產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開(kāi)發(fā),如今主要在服務(wù)器管理中使用,其中包括單個(gè)組件狀態(tài)的通信。 I2C總線(xiàn)最主要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。是一種多主機(jī)總線(xiàn);當(dāng)主機(jī)競(jìng)爭(zhēng)時(shí),有主機(jī)沖裁機(jī)制。
2.I2C總線(xiàn)原理
I2c總線(xiàn)只有兩根雙向信號(hào)線(xiàn),一根是數(shù)據(jù)線(xiàn)SDA,另一根是時(shí)鐘線(xiàn)SCL。
I2C通過(guò)上拉電阻接正電源。當(dāng)總線(xiàn)處于空閑狀態(tài)下,兩條信號(hào)線(xiàn)為高電平。連接到總線(xiàn)任意一個(gè)器件輸出為低電平,都會(huì)使總線(xiàn)的信號(hào)變低,即每個(gè)器件的SDA和SCL都是線(xiàn)“與”關(guān)系。
3.I2C傳輸規(guī)范
<1>數(shù)據(jù)位的有效性
I2C總線(xiàn)進(jìn)行數(shù)據(jù)傳送時(shí),時(shí)鐘信號(hào)為高電平期間,數(shù)據(jù)線(xiàn)上的數(shù)據(jù)必須保持穩(wěn)定,只有時(shí)鐘線(xiàn)上的信號(hào)為低電平期間,數(shù)據(jù)線(xiàn)上的高電平和低電平狀態(tài)才允許變化。
<2>起始信號(hào)和終止信號(hào)
起始信號(hào):當(dāng) SCL 為高電平時(shí),SDA 由高變低。
終止信號(hào):當(dāng) SCL 為高電平時(shí),SDA 由低變高。
4.I2C總線(xiàn)傳輸格式
發(fā)送到SDA線(xiàn)上的每個(gè)字節(jié)必須是8位,每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制,每個(gè)字節(jié)后必須跟一個(gè)ACK應(yīng)答位,數(shù)據(jù)從最高有效位(MSB)開(kāi)始傳輸。
以上是對(duì)IIC總線(xiàn)大致介紹,下面回到我們藍(lán)橋杯單片機(jī)開(kāi)發(fā)的正題上來(lái)。
一.I2C驅(qū)動(dòng)程序(包含六個(gè)函數(shù))
1.起始信號(hào) 2.產(chǎn)生應(yīng)答 3.停止信號(hào) 4.等待應(yīng)答 5.發(fā)送數(shù)據(jù) 6.接收數(shù)據(jù)其中設(shè)備地址為PCF8591(可以自行修改,僅供參考之用)
讀操作地址為:0x91 寫(xiě)操作地址:0x90
若使用24C02 EEPROM 時(shí),相應(yīng)設(shè)備地址:
讀操作地址為:0xA1 寫(xiě)操作地址:0xA0
[注意]
要在主函數(shù)中讀取相應(yīng)通道 電位器 Rb2 接AIN3 : 0X03
光敏傳感器接AIN1: 0X01
---------------------
|
|