新闻中心

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

评论


相关推荐

技术专区

关闭