新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 8051單片機的I2C接口并行擴展

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

        作者: 時間:2012-04-05 來源:網絡 收藏

        3.2 方式控制字

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

        21.gif

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

        M1M0:當S=1時的4種工作方式:
        ①I2C總線未連接,要進行寫操作。
        ②I2C總線未連接,要進行讀操作。
         ?、跧2C總線已連接,換一個I2C器件或換新地址,要進行寫操作。
         ?、躀2C總線已連接,換一個I2C器件或換新地址,要進行讀操作。

        S:工作控制位。當S=0時,關閉I2C總線,其他情況S=1。

        DZS:指明8051對I2C器件讀寫的地址數。具體為:
        0:8051對I2C器件內單字節地址讀寫?! ?br />1:8051對I2C器件內雙字節地址讀寫。

        3.3 I2C模塊對I2C傳輸協議的實現

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

        I2C模塊實現I2C數據傳輸協議。start信號為1時,啟動數據傳輸;write信號為1時,向I2C器件寫數據,read信號為1時,向I2C器件讀數據。

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

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

        8051向控制寄存器CI0寫控制字,實現對I2C的編程控制;向數據寄存器CI1寫數據,實現對I2C接口的數據傳輸。

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

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

        ①寫控制字W1;②當bz=1時寫器件內地址第1字節;③當bz=1時寫器件內地址第2字節…;④當bz=1時寫第1字節…。

        I2C的操作:

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阳朔县| 淳化县| 旬邑县| 潢川县| 友谊县| 西安市| 林甸县| 固始县| 石嘴山市| 怀仁县| 吴桥县| 利津县| 霍邱县| 齐齐哈尔市| 涟水县| 榆社县| 镇康县| 邹城市| 霞浦县| 卢龙县| 罗平县| 乐昌市| 正定县| 江门市| 二手房| 东莞市| 海城市| 和平县| 肇源县| 兴义市| 刚察县| 沈阳市| 崇明县| 隆回县| 额敏县| 疏附县| 黄龙县| 屏山县| 永福县| 美姑县| 新宁县|