<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          8051單片機(jī)的I2C接口并行擴(kuò)展

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

          3.2 方式控制字

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

          21.gif

          A2,A1,A0位:對(duì)與8051相連的器件組的片選(器件地址)。對(duì)應(yīng)不同值時(shí)選擇不同的器件通信。  

          R/W:用來(lái)控制8051對(duì)器件的讀寫(xiě)操作。1表示8051對(duì)I2C器件讀數(shù)據(jù);0表示8051對(duì)I2C器件寫(xiě)數(shù)據(jù)。

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

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

          DZS:指明8051對(duì)I2C器件讀寫(xiě)的地址數(shù)。具體為:
          0:8051對(duì)I2C器件內(nèi)單字節(jié)地址讀寫(xiě)。  
          1:8051對(duì)I2C器件內(nèi)雙字節(jié)地址讀寫(xiě)。

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

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

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

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

          3.4 芯片的工作原理與控制過(guò)程

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

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

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

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

          I2C的操作:

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



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();