新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于MSP430單片機的虛擬I2C總線軟件包VIIC_M1.0

        基于MSP430單片機的虛擬I2C總線軟件包VIIC_M1.0

        作者: 時間:2012-06-27 來源:網絡 收藏
        圖一
        圖二



        三、應用界面

        1、發送N字節數據——從當前地址開始
        ;發送的數據在MTD中
        ;
        ;數列格式:S,SLA+W,subaddr_H,A,subaddr_L,A,DATA1,A,DATA2,A...,DATAn,A,P
        ;MOV.b #CODE,SLA;I2C_R_R/W=0;A0=A1=A2=0
        MOV.b #N,Num_byt;發送字節數
        CALL I2C_WR_Nbyte;從當前地址開始寫
        2、接收N字節數據——從指定地址開始讀
        ;接收的數據在MRD中
        ;
        ;數列格式:S,SLA+W,A,subaddr_H,A,subaddr_L,A,
        S,SLA+R,A,DATA1,A,DATA2,A,...,DATAn,/A,P
        MOV.b #CODE+SLAR/W,SLA
        ;SLAR/W=1,A0=A1=A2=0
        MOV.b #N,Num_byt ;接收字節數
        CALL #I2C_RD_Nbyte ;從當前地址開始讀
        3、接收N字節——從指定地址開始讀
        ;接收的數據存放在MRD中

        ;數列格式:S,SLA+W,A,subaddr_H,A,subaddr_L,A,
        ;S,SLA+R,A,DATA1,A,DATA2,A,...,DATAn,/A,P
        ;
        MOV.b #CODE,SLA
        ;SLAR/W=0:寫,A0=A1=A2=0
        MOV.b #N,Num_byt ;接收字節數
        MOV #Subaddr,I2C_R_Addr ;字節地址送入暫存單元
        CALL #I2C_R_Addr ;發送字節地址
        MOV.b #CODE+SLAR/W,SLA;SLAR/W=1:讀,A0=A1=A2=0
        CALL #I2C_RD_Nbyte
        4、發送N字節——從指定地址開始寫

        ;數列格式:S,SLA+W,A,Subaddr_H,A,subaddr_L,A,DATA1,A,DATA2,A,...,DATAn,A,P
        ;
        MOV.b #CODE,SLA;SLAR/W=0:寫,A0=A1=A2=0
        MOV #N,Num_byt ;發送字節數
        MOV #Subaddr,I2C_R_Addr ;字節地址送入暫存單元
        CALL #I2C_WR_Addr ;發送字節地址
        CALL #WR_Nbyte

        后記:

        1、如果使用MSP430中別的I/O端口,只需要在模擬時序子程序中改動相應的積存器即可。本例中時鐘線使用TP口,是因為它為輸出口,在程序中可以節省指令。
        對于24系列的其他芯片,由于容量不同,請特別注意其字節地址是1個字節還是2個字節。本例的24LC65字節地址就是2個字節的。
        2、MSP430系列的單片機本人是初學使用,程序雖經初步調試通過,輕易拋出,主意在為引玉之磚,作為學習的一點體會。缺點和錯誤在所難免,望各位不吝指教。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 翼城县| 舟山市| 自贡市| 吴江市| 千阳县| 常德市| 高雄县| 沛县| 清新县| 广灵县| 固镇县| 神木县| 微博| 二连浩特市| 铜山县| 五河县| 马山县| 邹平县| 颍上县| 永安市| 崇明县| 涿州市| 万山特区| 丹凤县| 华容县| 北安市| 台中市| 惠来县| 山阴县| 区。| 洪湖市| 双江| 吉首市| 清水县| 恩平市| 得荣县| 彰化县| 阜平县| 龙泉市| 县级市| 麻栗坡县|