新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 红桥区| 宁陵县| 钟祥市| 任丘市| 高密市| 安陆市| 林西县| 江油市| 庆安县| 大埔区| 广丰县| 子洲县| 方城县| 本溪| 济阳县| 仁化县| 彝良县| 汽车| 托克托县| 滨州市| 丹巴县| 雅安市| 庆城县| 临洮县| 都匀市| 固原市| 太仆寺旗| 铅山县| 崇文区| 浪卡子县| 清远市| 舒城县| 阿荣旗| 井研县| 建昌县| 咸阳市| 讷河市| 陆川县| 丰宁| 贵溪市| 大姚县|