51微控制器 IIC

2021-08-25 10:31:58 字數 733 閱讀 3514

iic(inter-intergrated circuit)匯流排是一種由philips公司開發的兩線式序列匯流排。用於連線微控制器及其外圍裝置。iic只需兩根線sda(資料線),scl(時鐘)。iic支援多主控,當然,在任何時間點上只能有乙個主控,而spi是一主多從。iic各種被控制電路均併聯在這條匯流排上,每個模組和電路都有唯一的位址。spi是通過cs進行片選,有多少個spi就要占用多少口。iic匯流排在傳輸資料過程中有3個訊號,它們分別是:開始訊號,結束訊號和應答訊號。

iic匯流排的硬體結構圖:

iic支援多主和主從工作方式,通常為主從工作方式。在主從工作方式中,系統中只有乙個主器件(微控制器),其它器件都是具有iic匯流排的外圍從器件。在主從工作方式中,主器件啟動資料的傳送(發出啟動訊號),產生時鐘訊號,發出停止訊號。

這些訊號中開始訊號是必須的,結束訊號和應答訊號都可以不要。

iic匯流排進行資料傳送時,時鐘訊號為高電平期間,資料線上的資料必須保持穩定,只有在時鐘訊號為低電平期間,資料線上的高電平或低電平狀態才允許變化。

iic匯流排協議規定,每傳送乙個位元組資料後,都要有乙個應答訊號,以確定資料傳送是否被對方收到。應答訊號由接受裝置產生,在scl訊號為高電平期間,接受裝置將sda拉為低電平,表示資料傳輸正確,產生應答。

iic匯流排的時序圖:

許多微控制器並不具有iic匯流排介面,如51微控制器。

微控制器模擬iic匯流排通訊:

啟動**:

51微控制器 軟體模擬IIC

名稱 iic協議 內容 函式是採用軟體延時的方法產生scl脈衝,固對高晶振頻率要作一定的修改 本例是1us機器週期,即晶振頻率要小於12mhz include include iic.h bit ack 啟動匯流排 void iic start sda 1 傳送起始條件的資料訊號 scl 1 del...

51微控制器學習之IIC匯流排

核心思想 主機與從機之間的資訊交換。主機傳送訊息,從機要回應一下。從機傳送訊息,主機也要回應。注意點 sda線和scl線都是預設高電平。即高電平為釋放狀態。include include typedef unsigned char u8 typedef unsigned int u16 void d...

郭天祥51微控制器教程 IIC匯流排

include define uchar unsigned char sbit sda p2 0 資料匯流排 sbit scl p2 1 時鐘匯流排 void delay 大概延時5us void delay1 uchar x 這是乙個寫資料的整體過程 void wirte add uchar ad...