版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、VIIC_M1.0软件包的组成根据归一化设计的要求,主方式下虚拟I2CC总线由下列10个子程序组成:1、时序模拟子程序4个I2C_sta,I2C _stop,I2C _mack ,I2C _mnack 2、操作模拟子程序3个I2C_ackn,I2C _wr_byte,I2C _rd_byte3、数据读写子程序3个I2C_wr_nbyte,I2C _rd_nbyte,I2C_wr_addr二、应用对象1、MSP430单片机MSP430单片机为低功耗的16位单片机,有MSP430X11、MSP430X112、MSP430X1101、MSP430X13X、MSP430X14X、MSP430X31
2、X/32X/33X、MSP430X41X等型号,每种芯片都有丰富的I/O端口。本设计采用芯片为MSP430E325(1)虚拟I2C总线所使用的I/O端口数据线(SDA)使用的是通用端口P0中的P0.7,该端口为输入/输出双向口,有输入寄存器(P0IN)、输出寄存器(P0OUT)及方向寄存器(P0DIR)等寄存器,通过字节指令访问。时钟线(SCL)使用的是通用定时器/端口TP中的TP.1,该端口为输出口,有定时器/端口控制寄存器(TPCTL)、定时器/端口数据寄存器(TPD)及定时器/端口允许寄存器(TPE)等,通过字节指令访问。(2)运行时所使用的时钟频率MSP430E325运行时用两个时钟:
3、辅助时钟(ACLK)和主时钟(MCLK)。当采用32768KHz的晶体振荡器,并且系统时钟控制寄存器采用缺省值时,主时钟的频率为1.049MHz。若主时钟的频率不是1.049MHz,请适当调整程序中nop的个数。2、EEPROM器件(1)EEPROM器件本例使用的EEPROM器件为24LC65(MICROCHIP)。24LC65容量为8KB,其中的字节地址为13位,分两个字节:SUBADDR_H为高5位地址 SUBADDR_L为低8位地址;24LC65的封装引脚如图1所示:(2)24LC65的数据格式A、当前地址写:S,SLA+W,A,DATA1,A,DTA2,A.,DATAn,A,PB、当前
4、地址读:S,SLA+R,A,DATA1,A,DTA2,A.,DATAn,/A,PC、指定地址写:S,SLA+W,A,subaddr_H,A,subaddr_L,A,DATA1,A,DATA2,A,.,DATAn,A,PD、指定地址读:S,SLA+R,A,subaddr_H,A,subaddr_L,A,DATA1,A,DATA2,A,.,DATAn,/A,P其中:SLA+W,SLA+R,subaddr_H,subaddr_L为主控器件发出的数据S,A,/A,P为主控器件发出的信息DATA1,DATA2,.,DATAn为被控器件发给主控器件的数据A 为被控器件发给主控器件的信息(3)24LC65与
5、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=0MOV.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,
6、.,DATAn,/A,PMOV.b #CODE+SLAR/W,SLA;SLAR/W=1,A0=A1=A2=0MOV.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=0MOV.b #N,Num_byt ;接收字节数MOV #Subaddr,I2C_R_Addr ;字
7、节地址送入暂存单元CALL #I2C_R_Addr ;发送字节地址MOV.b #CODE+SLAR/W,SLA;SLAR/W=1:读,A0=A1=A2=0CALL #I2C_RD_Nbyte4、发送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=0MOV #N,Num_byt ;发送字节数MOV #Subaddr,I2C_R_Addr ;字节地址送入暂存单元CALL #I2C_WR_Addr ;发送字节地址CALL
8、 #WR_Nbyte后记:1、如果使用MSP430中别的I/O端口,只需要在模拟时序子程序中改动相应的积存器即可。本例中时钟线使用TP口,是因为它为输出口,在程序中可以节省指令。对于24系列的其他芯片,由于容量不同,请特别注意其字节地址是1个字节还是2个字节。本例的24LC65字节地址就是2个字节的。2、MSP430系列的单片机本人是初学使用,程序虽经初步调试通过,轻易抛出,主意在为引玉之砖,作为学习的一点体会。缺点和错误在所难免,望各位不吝指教。 I2C总线软件包程序清单 下载通用MSP430I2C程序(清风徐徐)/=/通用MSP430I2C程序/收藏:清风徐徐/QQ:78779514/EM
9、AIL:XSL88888TOM.com/2004.2.4/=/#include MSP430x14x.h/P3.2SCL/P3.3SDA#define SDA_1P3OUT |=BIT3/SDA = 1#define SDA_0P3OUT &= BIT3/SDA = 0#define SCL_1P3OUT |=BIT2/SCL = 1#define SCL_0P3OUT &= BIT2/SCL = 0#define DIR_INP3DIR &= BIT3;SDA_1/I/O口为输入#define DIR_OUTP3DIR |=BIT3/I/0口为输出#define SDA_IN(P3IN 3)
10、 & 0x01)/Read SDAunsigned int a50;static void Delay(unsigned int n)unsigned int i;for (i=0; in; i+) ;void Init(void)SCL_1;Delay(5);SDA_1;Delay(5);void Start(void)SDA_1;Delay(5);SCL_1;Delay(5);SDA_0;Delay(5);SCL_0;Delay(5);void Stop(void)SDA_0;Delay(5);SCL_1;Delay(5);SDA_1;Delay(5);void WriteByte(uns
11、igned char WriteData)unsigned char i;for (i=0; i 7) & 0x01) = 0x01)SDA_1;elseSDA_0;Delay(5);SCL_1;WriteData = WriteData 1;Delay(5);SCL_0;SDA_1;Delay(5);Delay(5);unsigned char ReadByte(void)unsigned char i;unsigned char TempBit= 0;unsigned char TempData = 0;SCL_0;Delay(5);SDA_1;for (i=0; i8; i+)Delay
12、(5);SCL_1;Delay(5);DIR_IN;if (SDA_IN = 0x01 /*sda=1*/)TempBit = 1;elseTempBit = 0;DIR_OUT;TempData = (TempData 1) | TempBit;SCL_0;Delay(5);return(TempData);void ReceiveAck(void)unsigned char i = 0;SCL_1;Delay(5);DIR_IN;while (SDA_IN = 0x01 /*sda=1*/) & (i 255)/*调试方便,可以不要*/)i+;DIR_OUT;SCL_0;Delay(5);
13、void Acknowledge(void)SCL_0;Delay(5);DIR_OUT;SDA_0;SCL_1;Delay(5);SCL_0;unsigned int ReadWord(unsigned char unit/*address*/)unsigned char HighData = 0;unsigned char LowData= 0;unsigned intTempData = 0;Start();WriteByte(0xa0);ReceiveAck();WriteByte(unit);ReceiveAck();Start();WriteByte(0xa1);ReceiveAc
14、k();LowData= ReadByte();Acknowledge();HighData = ReadByte();Stop();TempData = (HighData 8) + LowData;Delay(1000);return(TempData);void ReadWords(unsigned char unit/*address*/)unsigned char i;unsigned char HighData = 0;unsigned char LowData= 0;unsigned intTempData = 0;Start();WriteByte(0xa0);ReceiveAck();WriteByte(unit);ReceiveAck();Start();WriteByte(0xa1);ReceiveAck();for (i=0; i49; i+)LowData= ReadByte();Acknowledge();HighData = ReadByte();Acknowledge();ai= (HighData 8) + LowData;Lo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第六章平行四边形教案
- C语言专升本教案
- 《网络综合布线系统工程技术实训教程(第5版)》 课件全套 王公儒主 第1-15章 网络综合布线系统工程技术- 综合布线系统工程管理
- DB11T 1004-2013 房屋建筑使用安全检查技术规程
- 医疗服务流程信息化
- 旅游景区非招投标采购管理指南
- 疾病防控院墙施工合同
- 农民工薪资支付法律咨询
- 贷款承诺书模板:二手房按揭指南
- 网络口碑营销策略
- GB/T 625-2024化学试剂硫酸
- 综合办公楼装修改造工程施工组织设计方案
- 中央空调年度维保方案
- 尊重学术道德遵守学术规范学习通超星期末考试答案章节答案2024年
- 2024年新华社招聘笔试参考题库附带答案详解
- 2024年全国统一高考数学试卷(新高考Ⅱ)含答案
- 2024年中小学学生防范电信网络诈骗知识竞赛题库及答案
- 24春国家开放大学《学前儿童美术教育活动指导》期末大作业参考答案
- (正式版)QBT 8027-2024 家用和类似用途电动洗鞋烘鞋机
- 八年级语文期中考试成绩分析及教学反思(3篇)
- 数字化时代背景下教师角色的思考
评论
0/150
提交评论