基于MSP430单片机的虚拟I2C总线软件包VIIC_M1.0

上传人:飞*** 文档编号:47155875 上传时间:2018-06-30 格式:PDF 页数:4 大小:22.57KB
返回 下载 相关 举报
基于MSP430单片机的虚拟I2C总线软件包VIIC_M1.0_第1页
第1页 / 共4页
基于MSP430单片机的虚拟I2C总线软件包VIIC_M1.0_第2页
第2页 / 共4页
基于MSP430单片机的虚拟I2C总线软件包VIIC_M1.0_第3页
第3页 / 共4页
基于MSP430单片机的虚拟I2C总线软件包VIIC_M1.0_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于MSP430单片机的虚拟I2C总线软件包VIIC_M1.0》由会员分享,可在线阅读,更多相关《基于MSP430单片机的虚拟I2C总线软件包VIIC_M1.0(4页珍藏版)》请在金锄头文库上搜索。

1、基于 MSP430 单片机的虚拟I2C 总线软件包VIIC_M1.0 一、 VIIC_M1.0 软件包的组成根据归一化设计的要求,主方式下虚拟I2CC 总线由下列10 个子程序组成:1、时序模拟子程序4 个I2C_sta,I2C _stop,I2C _mack ,I2C _mnack 2、操作模拟子程序3 个I2C_ackn,I2C _wr_byte,I2C _rd_byte 3、数据读写子程序3 个I2C_wr_nbyte,I2C _rd_nbyte,I2C_wr_addr 二、应用对象1、MSP430 单片机MSP430 单片机为低功耗的16 位单片机,有MSP430X11 、MSP430

2、X112 、MSP430X1101、MSP430X13X 、MSP430X14X 、MSP430X31X/32X/33X 、MSP430X41X 等型号,每种芯片都有丰富的I/O 端口。本设计采用芯片为MSP430E325 (1)虚拟 I2C 总线所使用的I/O 端口数据线( SDA)使用的是通用端口P0 中的 P0.7,该端口为输入/输出双向口,有输入寄存器(P0IN)、输出寄存器(P0OUT)及方向寄存器(P0DIR)等寄存器,通过字节指令访问。时钟线( SCL)使用的是通用定时器/端口 TP 中的 TP.1,该端口为输出口,有定时器/端口控制寄存器(TPCTL )、定时器 /端口数据寄存

3、器( TPD)及定时器 /端口允许寄存器(TPE)等,通过字节指令访问。(2)运行时所使用的时钟频率MSP430E325 运行时用两个时钟:辅助时钟(ACLK )和主时钟( MCLK )。当采用32768KHz 的晶体振荡器,并且系统时钟控制寄存器采用缺省值时,主时钟的频率为1.049MHz 。若主时钟的频率不是1.049MHz ,请适当调整程序中nop 的个数。2、EEPROM 器件(1)EEPROM 器件本例使用的EEPROM 器件为 24LC65(MICROCHIP )。 24LC65 容量为 8KB,其中的字节地址为13 位,分两个字节:SUBADDR_H为高 5 位地址SUBADDR

4、_L 为低 8 位地址; 24LC65 的封装引脚如图1 所示:(2)24LC65 的数据格式A、当前地址写:S,SLA+W ,A,DATA1 ,A,DTA2 ,A.,DATAn ,A,P B、当前地址读:S,SLA+R ,A,DATA1 ,A,DTA2 ,A.,DATAn ,/A,P C、指定地址写:S,SLA+W ,A,subaddr_H,A,subaddr_L,A,DATA1,A,DATA2,A,.,DATAn,A,P D、指定地址读:S,SLA+R ,A,subaddr_H,A,subaddr_L,A,DATA1,A,DATA2,A,.,DATAn,/A,P 其中: SLA+W,SLA

5、+R,subaddr_H,subaddr_L为主控器件发出的数据S,A,/A,P 为主控器件发出的信息DATA1 ,DATA2 ,.,DATAn 为被控器件发给主控器件的数据A 为被控器件发给主控器件的信息(3)24LC65 与 MSP430-325 的连接如图2 所示图一图二三、应用界面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

6、;发送字节数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

7、,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,su

8、baddr_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 系列的单片机本人是初学使用,程序虽经初步调试通过,轻易抛出,主意在为引玉之砖,作为学习的一点体会。缺点和错误在所难免,望各位不吝指教。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号