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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 模擬I2C總線多主節(jié)點通信原理簡介

          模擬I2C總線多主節(jié)點通信原理簡介

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

          MOV B,#37H

          本文引用地址:http://www.ex-cimer.com/article/154009.htm

            WWAIT1: JB SCL,WWAIT1;等待SCL為低

            JC WR1;判斷是發(fā)送“1”還是發(fā)送“0”

            SETB SDA;發(fā)送“1”

            AJMP COM

            WR1:  CLR SDA;發(fā)送“0”

            COM:  DJNZ R0,WWAIT2;判斷是否發(fā)送完畢

            WWAIT3: JNB SCL,WWAIT3;發(fā)送完畢等待應(yīng)答信號

            WWAIT4: JB SCL,WWAIT4

            WWAIT5: JNB SCL,WWAIT5

            CLR ACK

            JB  SDA,ST0

            SETB ACK

            ST0:  RET;返回

            WWAIT2: JNB SCL,WWAIT2;等待SCL為高

            SJMP WAGAIN

            從的讀字節(jié)同時判斷是否有起始信號的子程序。如果有起始信號,則轉(zhuǎn)為寫字節(jié)子程序:

            SRDBYTE:MOV R0,#08H

            SETB 20H;設(shè)置標志位判斷是讀還是寫

            SETB SDA;釋放

            RWAITJ: JNB SCL,RWAITJ;等待SCL為高

            MOV C,SDA;從上讀取數(shù)據(jù)

            RRC A;存入累計器

            DEC R0

            MOV C,ACC.7;判斷是否為起始信號

            JNC RWAITJ1;為低繼續(xù)讀取數(shù)據(jù)

            REWAIT: JNB SCL,RWAITJ1;開始判斷是否為起始信號

            JB  SDA,REWAIT

            CLR 20H;是,則清標志位并返回

            AJMP SjRDOUT

            RWAITJ1:JB SCL,RWAITJ1;等待SCL為低

            RWAITJ3:JNB SCL,RWAITJ3;等待SCL為高

            MOV C,SDA

            RRC A

            DJNZ R0,RWAITJ2

            SjRDOUT:RET

            RWAITJ2:JB SCL,RWAITJ2;等待SCL為低繼續(xù)讀數(shù)據(jù)

            SJMP RWAITJ3

            5 總結(jié)

            根據(jù)協(xié)議中的仲裁,提出的基于延時比較的多主的方法,不僅能夠體現(xiàn)了總線的高效性,而且還具有良好的擴展性。它使普通不具有接口的MCU可以應(yīng)用在多主的系統(tǒng)中,既增加了普通MCU的使用范圍,又突破了I2C總線的應(yīng)用局限性,為I2C總線的推廣起到了積極的作用


          上一頁 1 2 3 下一頁

          評論


          相關(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); })();