新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 模擬I2C總線多主節點通信原理及實現方法

        模擬I2C總線多主節點通信原理及實現方法

        作者: 時間:2010-12-14 來源:網絡 收藏

          MOV B,#37H

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

          JC WR1;判斷是發送“1”還是發送“0”

          SETB SDA;發送“1”

          AJMP COM

          WR1:  CLR SDA;發送“0”

          COM:  DJNZ R0,WWAIT2;判斷是否發送完畢

          WWAIT3: JNB SCL,WWAIT3;發送完畢等待應答信號

          WWAIT4: JB SCL,WWAIT4

          WWAIT5: JNB SCL,WWAIT5

          CLR ACK

          JB  SDA,ST0

          SETB ACK

          ST0:  RET;返回

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

          SJMP WAGAIN

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

          SRDBYTE:MOV R0,#08H

          SETB 20H;設置標志位判斷是讀還是寫

          SETB SDA;釋放

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

          MOV C,SDA;從上讀取數據

          RRC A;存入累計器

          DEC R0

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

          JNC RWAITJ1;為低繼續讀取數據

          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為低繼續讀數據

          SJMP RWAITJ3

          5 總結

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


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 高淳县| 金秀| 连州市| 栾城县| 许昌县| 黎平县| 绵竹市| 罗甸县| 建瓯市| 辉县市| 苏尼特左旗| 合阳县| 登封市| 山西省| 龙门县| 屏南县| 察隅县| 汤阴县| 迭部县| 蒙阴县| 天水市| 辰溪县| 辽阳市| 阳谷县| 凤冈县| 乌鲁木齐县| 庆元县| 广饶县| 孟州市| 东莞市| 遂平县| 兴宁市| 资中县| 当雄县| 晋宁县| 余江县| 新昌县| 琼中| 托克逊县| 阿克陶县| 光山县|