1、自行车测速仪论文自行车测速仪论文 摘要本课题实验主要是利用STC89C52RC、数码显示管,24C02E2PROM、霍尔传感器和加速度倾角传感器来实现自行车测速功能。通过霍尔传感器来采集信号,经过单片机处理后,由数码显示管显示其总里程,分里程,速度,加速度;信号经过加速度倾角传感器读出坡度值,并在数码显示管中显示出来;然后由数学公式计算出消耗的卡路里值。按键具有调控展现的页面,清除分里程数据,保存总里程数据的功能,利用24C02实现断电不消失的功能。发光二极管模块,利用MOS管的特性可以实现在暗处自动点亮。关键词:自行车测速仪;霍尔传感器A3144;加速度倾角传感器MMA7455;12864L
2、CD11 绪论从保护环境和经济条件许可等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。目前市面上电动自行车的速度表和里程表都是机械的,看起来不够直观与方便。如果能用LED直接显示出来里程数或速度值,就可节省用户的时间及精力处理自行车行进过程中的突发事件。1.2 红外线介绍红外线IrDA,简称IR,是一种点对点的无线通讯方式,只能进行短距离的无线数据的传输,且中间不能有障碍物。红外线又称红外光波,在电磁波谱中,光波的波长范围为0.01um 1000um;波长为0.76um 1000um的光波为红外光(线),红外线遥控是利用近红外光传送遥控指令的,波长为0.76um 1.5um;用近红
3、外作为遥控光源,是因为目前红外发射器件与红外接收器件的发光与受光峰值波长一般为0.8um 0.94um,在近红外光波段内,二者的光谱正好重合,能够很好地匹配,可以获得较高的传输效率及较高的可靠性。目前红外线得到了很普片的应用,如红外线鼠标,红外线打印机,红外线键盘等等。 目录设计要求设计方案.1芯片的选择 .2霍尔传感器与单片机的通信 .312864液晶屏与单片机 .4单片机与24C02 .5单片机与MMA7455 .6单片机下载程序 总体方案.工作原理 .总体设计系统硬件设计.STC89C52RC单片机最小系统 .各部分电路电路图.整体电路 系统软件设计.主程序流程参考文献附录 设计要求1.
4、1 发光二极管模块在暗处自动点亮功能。1.2 利用霍尔传感器采集信号,由单片机处理后控制外围设备工作。1.3 利用单片机控制12864液晶屏显示。1.4 将指定的数据放入24C02中,达到断电不丢失的效果。1.5 用Keil uVision3编写C程序,利用单片机最小系统烧写程序到单片机。 设计方案2.1 芯片的选择自行车测速仪按系统功能实现要求,决定控制系统采用STC89C52RC单片机,采集信号的霍尔传感器采用A3144,保存信息的E2PROM 24C02,计算倾角的加速度倾角传感器MMA7455,用于显示的12864液晶。2.2 霍尔传感器与单片机之间的通信将霍尔传感器的信号输出端和单片
5、机的某一个I/O口相连(本板子中使用P23),通过检测P23电平的下降沿和上升沿来编写程序,以达到计数的功能。2.3 12864液晶屏与单片机将12864液晶屏按照其操作指南正确连接在电路中,编写程序,由单片机控制12864液晶显示各种数据。2.4 单片机与24C02程序编写中,要求保存功能的按键按下时,总里程的数据写入到24C02芯片中,达到断电不丢失的功能。将24C02按照操作手册正确连接到电路中,由单片机控制,当检查到按键按下时,执行程序:经总里程数据写入24C02中,保存起来。2.5 单片机与MMA7455此模块是用集成工艺制作好的商品。按照操作手册正确连接到电路中,根据芯片资料和示例
6、程序可以使其输出角度值,然后在12864中显示出来。2.6单片机下载程序利用单片机最小系统和串口(配合MAX232转电平芯片),借助STC下载器完成程序的烧写。3 总体方案3.1 工作原理该设计能实时地将所测的速度与累计里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率(传感器将不同车速转变成不同频率的脉冲信号)实时地测量出来,考虑到信号的衰减、干扰等影响,在信号送入单片机前应对其进行放大整形,然后通过单片机计算出速度和里程,再将所得的数据存储到串口数据存储器,并由LED显示模块交替显示所测速度与里程。本设计的里程数的算法是一种大概的算法(假设在一定时间内自行车是匀速行进,平均速度与时
7、间的乘积即为里程数)。设计时,应综合考虑测速精度和系统反应时间。本设计用测量脉冲频率来计算速度,因而具有较高的测速精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之内,相对于整个里程来说不是很大。为了保证系统的实时性,系统的速度转换模块和显示数据转BCD码模块都采用快速算法。另外,还应尽量保证其他子模块在编程时的通用性和高效性。本设计的速度和里程值采用6位显示,并包含两个小数位。3.2 系统概述本系统由信号预处理电路、单片机AT89C2051、系统化LED显示模块、串口数据存储电路和系统软件组成。其中信号预处理电路包含信号放大、波形变换和波形整形。对待测信号进行放大的目的是降低对
8、待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的TTL信号;通过单片机的设置可使内部定时器T1对脉冲输入引脚T0进行控制,这样能精确地算出加到T0引脚的单位时间内检测到的脉冲数;设计中速度显示采用LED模块,通过速度换算得来的里程数采用I2C总线并通过E2PROM来存储,既节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程。系统的原理框图如图1所示。图1 系统的原理框图3.3 设计总体框图4 系统的硬件设计4.0 单片机AT89C51简介4.0.1 主要特性 在本设计中,是以AT89C51单片机为核心的。AT89C51单片机是由ATMEL公司推出
9、的AT89系列的单片机。AT89C2051是一种带2K字节闪烁可编程可擦除片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。引脚排练如图3-1所示。它的性能与主要特点如下:(1) 与MCS-51微控制器产品系列兼容。(2) 片内有4KB可在线重复编程的快闪擦写存储器(Flash Memory)。(3) 存储器可循环写入/擦除1000次。 图4-1 AT89C51引
10、脚排列图(4) 宽工作电压范围:Vcc可为2.7V-6V。(5) 1288位内部RAM。 (6) 32条可编程I/O线。(7) 两个16位定时器/计数器。(8) 中断结构具有5个中断源和2个优先级。(9) 可编程全双工串行通道。(10) 空闲状态维持低功耗和掉电状态保存存储内容。4.0.2 管脚说明主要引脚的具体描述如下;Vcc: 电源。提供掉线、空闲、正常+5V工作电压。Vss(GND): 接地。P0口: P0口可以作普通的双向I/O口使用,也可以在访问外部存储器时用作低8位地址线和数据总线。P1口: P1口是一个内部提供上拉电阻的8位双向I/O口,向P2口管脚写入1后,被内部上拉为高电平可
11、用作输入口,当作为输入脚时,被外部拉低的P1口会因为内部上拉而输出电流。P1口还具备第二功能。P2口: P2口是一个内部提供上拉电阻的8位双向I/O口,向P2口管脚写入1后,被内部上拉为高电平可用作输入口,当作为输入脚时,被外部拉低的P2口会因为内部上拉而输出电流。在访问外部程序存储器和外部数据存储器时,可作为地址总线的高位字节。P3口:也是一个双向功能口既可以作普通输入输出口使用,也可以按每一位的定义实现第二功能操作。P3口的第二功能如表1.1所示。口 线第二功能信 号 名 称 P3.0 RXD串行输入口 P3.1 TXD串行输出口 P3.2 /INT0 外部中断0 P3.3 /INT1 外
12、部中断1 P3.4 T0 定时器/计数器0 P3.5 T1 顶时器/计数器1 P3.6 /WR外部数据存储器写选通 P3.7 /RD 外部数据存储器读选通 表1.1RST: 复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,因此它可用作对外部输出的脉冲或用于定时目的。/PSEN: 外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号
13、将不出现。/EA/VPP: 当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1: 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2: 来自反向振荡器的输出。4.1 脉冲发生源 本设计采用了ST1101红外光电传感器,进行非接触式检测。当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时,传感器将会输出一个低电平,而当没有物体挡在中间时则输出为高电平,从而形成一个脉冲。
14、该系统在自行车后轮的轴处保持着与轮子旋转切面平行的方向延伸附加一个铝盘,在这个铝盘的边沿处挖出若干个圆形过孔,把传感器的检测部分放在圆孔的圆心位置。每当铝盘随着后轮旋转的时候,传感器将向外输出若干个脉冲。把这些脉冲通过一系列的波形整形成单片机可以识别的TTL电平,即可算出轮子即时的转速。铝盘的圆孔的个数决定了测量的精度,个数越多,精度越高。这样就可以在单位时间内尽可能多地得到脉冲数,从而避免了因为两个过孔之间的距离过大,而车子正好在过孔之间或者是在下个过孔之前停止了,造成较大的误差。本设计在铝盘过孔的设计上采用11个过孔,从而留下了10个同等的间距。这样在以后的软件设计中能够较为方便的计算出速
15、度里程。脉冲发生源的硬件结构图如图2所示。图2 脉冲发生源硬件结构图(左为正视图,右为侧视图)4.2 信号预处理电路如图3所示,系统的信号预处理电路由二级电路构成,第一级是由开关三极管组成的零偏置放大器,采用开关三极管可以保证放大器具有良好的高频响应。当输入信号为零或负电压时,三极管截止,电路输出高电平;而当输入信号为正电压时,三极管导通,此时输出电压随着输入电压的上升而下降,这使得速度里程表既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。由于放大器的放大功能降低了对待测信号的幅度要求,因此,系统能对任意大于0.5V的正弦波和脉冲信号进行测量。预处理电路的第二级采用带施密特触发器的反
16、相器DM74LS14来把放大器生成的单相脉冲转换成与COMS电平相兼容的方波信号(如图4所示),同时将输出信号加到单片机的P3.4口上。图3 信号预处理电路图图4 施密特触发器对脉冲的整形 利用施密特触发器状态转换过程中的正反馈作用,可以把边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号。输入的信号只要幅度大于VT+,即可在施密特触发器的输出端得到同等频率的矩形脉冲信号。从传感器得到的矩形脉冲经传输后往往发生波形畸变。当传输线上的电容较大时,波形的上升沿将明显变坏;当传输线较长,而且接受端的阻抗与传输线的阻抗不匹配时,在波形的上升沿和下降沿将产生振荡现象;当其他脉冲信号通过导线间的分布电容
17、或公共电源线叠加到矩形脉冲信号时,信号上将出现附加的噪声。无论出现上述的那一种情况,都可以通过用施密特反相触发器整形而得到比较理想的矩形脉冲波形。只要施密特触发器的VT+和VT-设置得合适,均能受到满意的整形效果。4.3 STC89C52RC单片机最小系统4.3.1最小系统包括晶体振荡电路、复位开关和电源部分。4.4各部分电路4.4.1 主要控制部分(STC89C52RC)4.4.2 12864液晶部分4.4.3 24C02部分电路4.4.4 串口及MAX232部分4.4.5 霍尔传感器部分4.4.6 发光二极管独立显示模块4.5 整体电路系统的软件设计1. 系统软件框图如图8所示,本系统软件
18、采用模块化设计方法。整个系统由初始化模块、频率测量模块、速度,里程计算模块、数据转码模块、速度显示模块、里程显示模块、数据存储,读取模块、定时器中断服务模块以及其他功能模块组成图8 系统软件框图2. 数据处理待测信号经预处理电路后加至单片机的P3.4(T0)引脚可为单片机测量信号频率提供有效的输入信号。单片机通过检测P3.4引脚电平来决定是否启动测量频率程序。当该引脚为高电平时,系统处于等待状态,要一直到该引脚出现低电平时才开始测频率。我们可从硬件的铝盘上知道两个过孔之间在圆周上的距离。而这个距离M正好为计算速度和距离起到了基本的数据储备作用。同时可以从TL0寄存器知道在两秒内单片机检测到的N
19、个脉冲。而MN所得到的正是这两秒内铝盘在圆周上所走得距离S。(此时假设在这个两秒内车子是匀速前进的),距离S除以2s的时间,就可以大概的算出这2s内铝盘的线速度。再根据铝盘与自行车的轮子保持着一样的角速度,得到铝盘的线速度与轮子线速度的关系,从而算出自行车在这2s的平均速度。至于里程的计算,根据速度计算的分析,在得到2s内铝盘在其圆周上走过的距离后。根据它与自行车轮子的圆周走过的距离有一定比例关系(通过两者角速度一样的算法)可以通过单片机的算出自行车在这两秒内走过的路程S1。把这个路程S1与存储器原来的里程数相加即可得到目前的总里程数。通过单片机计算出来的速度和里程的数据,必须通过BCD码的转换才能输出给显示模块。总里程数的显示是设定出现在电动自行车开动,单片机开机经过初始化后显示出来,这样以来用户可以清楚的知道自己的车子已经运行了多少公里了。而速度的显示则是在计算出速度里程后立刻显示出来,体现实时性。参考文献 1 沈红卫 基于单片机结构的智能系统设计与实现 电子工业出版社2 黄惠媛 单片机原理与接口技术 海洋出版社3 周平 伍云辉 单片机应用技术 电子科技大学出版社4 吴金戌 沈金阳 郭庭吉 8051单片机实践与应用 清华大学出版社5 黄正谨等 电子设计竞赛赛题解析 东南大学出版社 附录程序
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1