新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MSP430單片機(jī)的虛擬I2C總線軟件包VIIC_M1.0

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

作者: 時(shí)間:2012-06-27 來(lái)源:網(wǎng)絡(luò) 收藏
圖一
圖二



三、應(yīng)用界面

1、發(fā)送N字節(jié)數(shù)據(jù)——從當(dāng)前地址開(kāi)始
;發(fā)送的數(shù)據(jù)在MTD中

;數(shù)列格式: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;發(fā)送字節(jié)數(shù)
CALL I2C_WR_Nbyte;從當(dāng)前地址開(kāi)始寫(xiě)
2、接收N字節(jié)數(shù)據(jù)——從指定地址開(kāi)始讀
;接收的數(shù)據(jù)在MRD中
;
;數(shù)列格式: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 ;接收字節(jié)數(shù)
CALL #I2C_RD_Nbyte ;從當(dāng)前地址開(kāi)始讀
3、接收N字節(jié)——從指定地址開(kāi)始讀
;接收的數(shù)據(jù)存放在MRD中
;
;數(shù)列格式: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:寫(xiě),A0=A1=A2=0
MOV.b #N,Num_byt ;接收字節(jié)數(shù)
MOV #Subaddr,I2C_R_Addr ;字節(jié)地址送入暫存單元
CALL #I2C_R_Addr ;發(fā)送字節(jié)地址
MOV.b #CODE+SLAR/W,SLA;SLAR/W=1:讀,A0=A1=A2=0
CALL #I2C_RD_Nbyte
4、發(fā)送N字節(jié)——從指定地址開(kāi)始寫(xiě)

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

后記:

1、如果使用MSP430中別的I/O端口,只需要在模擬時(shí)序子程序中改動(dòng)相應(yīng)的積存器即可。本例中時(shí)鐘線使用TP口,是因?yàn)樗鼮檩敵隹?,在程序中可以?jié)省指令。
對(duì)于24系列的其他芯片,由于容量不同,請(qǐng)?zhí)貏e注意其字節(jié)地址是1個(gè)字節(jié)還是2個(gè)字節(jié)。本例的24LC65字節(jié)地址就是2個(gè)字節(jié)的。
2、MSP430系列的單片機(jī)本人是初學(xué)使用,程序雖經(jīng)初步調(diào)試通過(guò),輕易拋出,主意在為引玉之磚,作為學(xué)習(xí)的一點(diǎn)體會(huì)。缺點(diǎn)和錯(cuò)誤在所難免,望各位不吝指教。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉