基于MSP430G2211实现的自行车里程表.doc_第1页
基于MSP430G2211实现的自行车里程表.doc_第2页
基于MSP430G2211实现的自行车里程表.doc_第3页
基于MSP430G2211实现的自行车里程表.doc_第4页
基于MSP430G2211实现的自行车里程表.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录第一章 作品概述- 2 -第一节 作品功能和单片机介绍- 2 -第二节 设计方案- 2 -第二章 硬件系统设计- 3 -第一节 MSP430G2系列Launchpad开发板介绍- 3 -第二节 传感器介绍- 4 -第三节 显示部分电路- 6 -第四节 硬件装配调试说明- 7 -第三章 软件系统设计- 9 -第一节 程序流程图- 9 -第二节 子程序API介绍- 12 -第三节 程序调试- 13 -第四节 程序调试注意事项- 14 -第四章 总结与思考- 15 -第一章 作品概述第一节 作品功能和单片机介绍本作品以MSP430G2211单片机为核心,通过安装在车轮支架上的干簧管感应车轮转过的圈数,由MSP430单片机测出车轮转过每圈所需的时间及圈数,计算出速度和里程等结果数据,并通过点阵LCD进行显示。本作品选用MSP430G2211单片机,该单片机超低功耗,具有5种节电模式,1us内便可从待机模式唤醒,并具有一个强大的16位RISC CPU、16位寄存器和常数发生器,有助于最大限度的发挥代码效率。此单片机还具有丰富的时钟源,包括LF、OSC和VLO。它可通过串行口系统编程,无需外部编程电压,具有可编程的保密熔丝代码保护,它具有Spy-Bi-Wire仿真逻辑接口。另外它还有10位IO口、8个比较器通道和16位的Timer_A定时器,带2路捕获和比较寄存器。此单片机的IO口和Timer_A定时器都具有强大的中断能力。第二节 设计方案干簧管是一种磁敏的特殊开关。它的两个触点由特殊材料制成,被封装在真空 的玻璃管里。只要用磁铁接近它,干簧管两个节点就会吸合在一起,使电路导通;无磁铁靠近时干簧管就断开。本作品主要是利用了干簧管的这一磁效应,让干簧管一端接高电平,一端接单片机IO口。首先自行车车轮转动带动干簧管的交替的开闭,这样干簧管就会输出一个与自行车车轮转动频率相同的脉冲信号;然后单片机IO口接收到脉冲信号,利用MSP430G2211单片机的IO中断和TA定时,适当的数据处理便可测得此脉冲信号的频率,从而计算出自行车的速度和里程;最后由单片机控制液晶显示模块,将速度和里程信息在液晶上显示。系统组成结构图如图1.1所示。干簧管检测器MSP430G2211液晶显示模块图1.1 系统组成结构框图第二章 硬件系统设计第一节 MSP430G2系列Launchpad开发板介绍基于LaunchPad的MSP-EXP430G2低成本实验板是一款适用于TI最新MSP430G2xx系列产品的完整开发解决方案。其基于USB的集成型仿真器可提供为全系列MSP430G2xx器件开发应用所必需的所有软、硬件。LaunchPad具有集成的DIP目标插座,可支持多达20个引脚,从而使MSP430ValueLine器件能够简便地插入LaunchPad电路板中。此外,还可提供板上Flash仿真工具,以直接连接至PC轻松进行编程、调试和评估。LaunchPad实验板还能够对eZ430-RF2500T目标板、eZ430-Chronos手表模块或eZ430-F2012T/F2013T目标板进行编程。此外,它还提供了从MSP430G2xx器件到主机PC或相连目标板的9600波特UART串行连接。其实物图如图2.1所示。图2.1 MSP430G2系列Launchpad开发板实物图MSP-EXP430G2采用IAR EmbeddedWorkbench集成开发环境(IDE)或CodeComposerStudio(CCS)编写、下载和调试应用。调试器是非侵入式的,这使用户能够借助可用的硬件断点和单步操作全速运行应用,而不耗用任何其他硬件资源。MSP-EXP430G2LaunchPad特性: USB调试与编程接口无需驱动即可安装使用,且具备高达9600波特的UART串行通信速度 支持所有采用PDIP14或PDIP20封装的MSP430G2xx和MSP430F20xx器件 分别连接至绿光和红光LED的两个通用数字I/O 引脚可提供视觉反馈 两个按钮可实现用户反馈和芯片复位 器件引脚可通过插座引出,既可以方便的用于调试,也可用来添加定制的扩展板 高质量的20引脚DIP插座,可轻松简便地插入目标器件或将其移除第二节 传感器介绍干簧管由玻璃外壳和软磁性材料制成的簧片组成,平时两端绝缘,当有磁体接近时,在磁场作用下,两簧片磁化为N极和S极,两者相互吸合,于是电路接通。虽然红外传感器和霍尔传感器也可用于测速,且能保证不错的精度,但是本作品选用的是干簧管传感器。干簧管传感器相比于红外传感器和霍尔传感器,有很多优点,如:1. 体积小,结构简单2. 低功耗3. 超长的使用寿命4. 优越的电性能 以本作品选用干簧管为例,其参数如表2.1。Sensor Body Material 本体材质ABSFilling 填充物EpoxyMax. Contact Rating 最大功率10WMax. Switching Voltage 最大开关电压100VDCMax. Switching Current 最大开关电流0.5AMin. Breakdown Voltage 最小击穿电压250VDCMax. Release Time 释放时间0.4msMax. Operate Time 动作时间1.0msMax. Initial Contact Resistance 最大接触电阻100mMin. Insulation Resistance 最小绝缘电阻1010 表2.1 干簧管参数其具体的有效距离依干簧管型号和磁体的强度而定。以本作品所用的干簧管和直径15mm的磁铁为例,在干簧管轴线周围40mm内都为有效范围,如图2.2所示。 图2.2 干簧管结构示意图 图2.3 干簧管实物图可选各种直径的磁体,在干簧管管径相同的情况下,实测10mm磁体为30mm,5mm磁体为20mm,而管径不同的情况可能有1020%的差距。考虑到实际应用时磁体是快速掠过,有效半径会有所减少,但不会少于20mm,这个距离在安装时还是可以保证的。 此外,干簧管的结构对振动不敏感,只需软件稍加延时(50微秒),实测即使是骑自行车下楼梯时的震动强度也不会导致其误触发。因此不需要外加去抖电路,仅外加一个上拉电阻即可工作。在使用2M的上拉电阻时,通过电流仅为1.5微安,这样的微电流下,干簧管寿命可达近千万次,换算成里程为上万公里。其接口连接电路如图2.4所示。图2.4 干簧管传感器接口电路第三节 显示部分电路本作品选用12864液晶显示器进行显示,器件实物如图2.5所示。图2.5 12864液晶显示器实物图12864液晶显示器是一种具有 4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 12864, 内置 8192 个 16*16 点汉字,和128个16*8点 ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示 84 行 1616 点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。本作品选用12864液晶显示器的串行接口方式,仅需2根IO口即可完成。电路如图2.6所示:图2.6 12864液晶显示器的串行接口电路连接图第四节 硬件装配调试说明先将磁铁用螺钉螺帽固定在钢丝的X形交叉上(如只有一根钢丝,磁铁会沿钢丝晃动),干簧小盒用尼龙扎带绑定与前轮主支架上。磁铁的运动轨迹一定要垂直穿过干簧管,如水平穿过会激发簧片闭合两次造成误触发。小盒与磁铁距离保持在2cm以内,且干簧管中线附近感应特别迟钝,应避开,适合的安装位置范围如图2.7所示,具体可边调边实验。图2.7 安装位置示意图 下面是本作品安装好的照片:图2.8 硬件安装实物图第三章 软件系统设计第一节 程序流程图本作品软件程序通过IO口中断和TA计时方式,测得干簧管输出脉冲信号的频率,从而计算出速度和里程。首先进行初始化,然后进入while循环,进入LMP0模式,等待IO口中断和TA定时中断响应。1.系统初始化在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在处理器上电以后要关闭看门狗。然后配置合适的时钟,配置IO口的输入输出以及中断方式。同样也要设置TA模块的计数方式、时钟选择等。最后要对LCD进行初始化,否则无法进行正常显示。系统初始化程序流程图如图3.1所示。关闭看门狗配置时钟配置IO口配置TA模块LCD初始化初始化完毕处理器上电图3.1 系统初始化程序流程图2.TA中断首先定义一个全局变量TA_OverflowCnt,每当TA溢出中断一次,TA_OverflowCnt+。当TA_OverflowCnt大于设定的数值N时,就令速度变量Speed=0,并显示,程序流程图如图3.2所示。进入TA溢出中断TA_OverflowCnt加1TA_OverflowCntN令Speed=0,并显示中断返回YN图3.2 TA中断程序流程图TA中断部分的程序:#pragma vector=TIMERA1_VECTOR_interrupt void TA_ISR (void) switch(TAIV) case 2: break ; case 4: break ; case 10: TA_OverflowCnt+; /溢出中断 if(TA_OverflowCnt4) Speed=0; Write_Num(0x82,Speed,1); /显示速度为零,显示一位小数 break; 3.IO中断进入中断先延时判断是否是毛刺,若是毛刺则直接返回;若不是毛刺计算速度和里程,然后进行显示,并令TA_OverflowCnt=0,IO中断程序流程图如图3.3所示。IO口中断是否是毛刺计算速度和里程显示YNTA_OverflowCnt=0中断返回图3.3 IO中断程序流程图IO中断部分程序:#pragma vector=PORT1_VECTOR_interrupt void P1_ISR (void) int i; for(i=0;i600;i+); if(P1IN&BIT3)=BIT3) /若p1.3变高,判断为毛刺 P1IFG=0; return; if(P1IFG&BIT3) Speed=0; Number+; Period=TA_OverflowCnt*65536+TAR; TA_OverflowCnt=0; / TA_OverflowCnt清零 TACTL|=TACLR; /TA清零,重新计数 Speed=(long)125*100*Circle/(Period);/计算速度 Mileage=(long)Circle*Number/100; /计算里程 P1OUT=BIT0; Write_Num(0x82,Speed,1); /显示速度,1位小数 Write_Num(0x8a,Mileage,3); /显示里程,3位小数 P1IFG=0;第二节 子程序API介绍(1)函数名:void clk_init(void) 输入输出变量:无 功能:时钟配置(2)函数名:void io_init(void) 输入输出变量:无功能:IO口初始化(3)函数名:void ta_init(void) 输入输出变量:无功能:TA模块初始化(4)函数名:void lcd_init (void) 输入输出变量:无功能:LCD模块初始化(5)函数名:void wr_lcd(uchr func,uchr data) 输入输出变量:uchr func,uchr data功能:写入液晶显示地址或显示内容(6)函数名:void Write_Num(int addr,int Num,int point) 输入输出变量:int addr,int Num,int point功能:显示地址addr,显示数字Num,显示数字小数点以后int point位数字第三节 程序调试1.在CCS下编写完程序后,执行编译(Build)2.编译通过,执行Debug3.调试过程中,可在线查看变量和寄存器的值Debug窗口下,自左向右依次是去掉断点、全速运行、暂停、停止、进入、单步、汇编进入、汇编单步、返回、同步时钟、复位。在程序运行后,暂停时可以打开Watch和Regesiter窗口内观察寄存器和变量的变化。第四节 程序调试注意事项1开启ENC之后任何的初始化语句都无效,也就是说想要成功的完成初始化必须要在关闭ENC的情况下完成。2DCO可以较为精准的时钟频率只要用两句语句即可完成:BCSCTL1 |= CALBC1_1MHZ;DCOCTL |= CALDCO_1MHZ;/上面两句将内部DCO校准至1MHz3不要重复的进行液晶的刷新,要加延时。4调试过程中如果出现程序跑飞的情况要检查是否使能某模块的中断但并未使用它。第四章 总结与思考本作品通过固定在自行车轮上干簧管与MSP430G2211简单的连接,利用IO中断和TA定时,仅用了单片机的3个IO口,就实现了对自行车车速和里程的测量及显示。本作品功能实用、操作方便,且体现了MSP430超低功耗的特点。但仍有不足之处,如系统掉电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论