收藏 分销(赏)

基于MSP430G2211实现的自行车里程表.doc

上传人:s4****5z 文档编号:8975393 上传时间:2025-03-10 格式:DOC 页数:15 大小:1.94MB 下载积分:10 金币
下载 相关 举报
基于MSP430G2211实现的自行车里程表.doc_第1页
第1页 / 共15页
基于MSP430G2211实现的自行车里程表.doc_第2页
第2页 / 共15页


点击查看更多>>
资源描述
目 录 第一章 作品概述 - 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  本体材质 ABS Filling  填充物 Epoxy Max. Contact Rating  最大功率 10W Max. Switching Voltage  最大开关电压 100VDC Max. Switching Current  最大开关电流 0.5A Min. Breakdown Voltage  最小击穿电压 250VDC Max. Release Time  释放时间 0.4ms Max. Operate Time  动作时间 1.0ms Max. Initial Contact Resistance  最大接触电阻 100mΩ Min. Insulation Resistance  最小绝缘电阻 1010Ω 表2.1 干簧管参数 其具体的有效距离依干簧管型号和磁体的强度而定。以本作品所用的干簧管和直径15mm的磁铁为例,在干簧管轴线周围40mm内都为有效范围,如图2.2所示。 图2.2 干簧管结构示意图 图2.3 干簧管实物图 可选各种直径的磁体,在干簧管管径相同的情况下,实测10mm磁体为30mm,5mm磁体为20mm,而管径不同的情况可能有10~20%的差距。考虑到实际应用时磁体是快速掠过,有效半径会有所减少,但不会少于20mm,这个距离在安装时还是可以保证的。 此外,干簧管的结构对振动不敏感,只需软件稍加延时(50微秒),实测即使是骑自行车下楼梯时的震动强度也不会导致其误触发。因此不需要外加去抖电路,仅外加一个上拉电阻即可工作。在使用2M的上拉电阻时,通过电流仅为1.5微安,这样的微电流下,干簧管寿命可达近千万次,换算成里程为上万公里。其接口连接电路如图2.4所示。 图2.4 干簧管传感器接口电路 第三节 显示部分电路 本作品选用12864液晶显示器进行显示,器件实物如图2.5所示。 图2.5 12864液晶显示器实物图 12864液晶显示器是一种具有 4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 128×64, 内置 8192 个 16*16 点汉字,和128个16*8点 ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示 8×4 行 16×16 点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。 本作品选用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加1 TA_OverflowCnt>N 令Speed=0,并显示 中断返回 Y N 图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_OverflowCnt>4) { Speed=0; Write_Num(0x82,Speed,1); //显示速度为零,显示一位小数 } break; } } 3.IO中断 进入中断先延时判断是否是毛刺,若是毛刺则直接返回;若不是毛刺计算速度和里程,然后进行显示,并令TA_OverflowCnt=0,IO中断程序流程图如图3.3所示。 IO口中断 是否是毛刺 计算速度和里程 显示 Y N TA_OverflowCnt=0 中断返回 图3.3 IO中断程序流程图 IO中断部分程序: #pragma vector=PORT1_VECTOR __interrupt void P1_ISR (void) { int i; for(i=0;i<600;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.编译通过,执行Debug 3.调试过程中,可在线查看变量和寄存器的值 Debug窗口下,自左向右依次是去掉断点、全速运行、暂停、停止、进入、单步、汇编进入、汇编单步、返回、同步时钟、复位。 在程序运行后,暂停时可以打开Watch和Regesiter窗口内观察寄存器和变量的变化。 第四节 程序调试注意事项 1.开启ENC之后任何的初始化语句都无效,也就是说想要成功的完成初始化必须要在关闭ENC的情况下完成。 2.DCO可以较为精准的时钟频率只要用两句语句即可完成: BCSCTL1 |= CALBC1_1MHZ; DCOCTL |= CALDCO_1MHZ;//上面两句将内部DCO校准至1MHz 3.不要重复的进行液晶的刷新,要加延时。 4.调试过程中如果出现程序跑飞的情况要检查是否使能某模块的中断但并未使用它。 第四章 总结与思考 本作品通过固定在自行车轮上干簧管与MSP430G2211简单的连接,利用IO中断和TA定时,仅用了单片机的3个IO口,就实现了对自行车车速和里程的测量及显示。本作品功能实用、操作方便,且体现了MSP430超低功耗的特点。但仍有不足之处,如系统掉电以后,里程信息也随之消失。可在单片机上加一个按键,当按键按下时,将里程信息保存到单片机FLASH中。 在本作品基础上,建议读者关于本作品功能的进一步增强进行如下思考。如:干簧管对振动的不敏感程度是否能使本作品运用于山地自行车,或者振动强度更高的场合?本作品用在汽车或其他速度较快的交通工具上,是否仍能准确测得速度和里程?是否可在本作品的基础上增加一些其他功能,如显示当前温度?并建议在功能上做如下扩展工作: 1.增加实时钟功能和骑行时间的计时与显示功能; 2.增加对骑行总时间和总里程的记录与显示功能; 3.增加对超速骑行的提示与报警功能; 4.在该装置上增加夜间骑行时的照明功能。 - 14 -
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服