基于单片机的自行车里程表
刘雨佳
摘 要 里程表是普遍用于远距离连续测量物体行驶速度和距离的仪表。它包含电源、霍尔传感器、驱动器和显示器3部分。随着人们对生活质量的不断追求,自行车也成为里程表的普遍试用对象,但是传统的机械式里程表功能单一,体积较大,已经不能够满足现在生活的需求。而以单片机为核心的里程表,不但可以增加一些功能,而且还能让用户清楚快捷的获取所需信息。
关键词 单片机 里程表 霍尔传感器 超速报警
中图分类号:TP391 文献标识码:A
本设计主要以AT89C51为核心,由电源稳压电路对系统供电,用霍尔传感器感应和测量速度,结合高精度的控制电路,实现了实时显示里程和速度以及超速报警等功能。硬件部分由显示模块,按键模块,主控模块,报警模块,电源模块组成。显示模块选用1602字符型液晶模块,驱动方便;主控模块主要由单片机和霍尔传感器组成,可实现传感测速,处理信息的目的;报警模块主要利用蜂鸣器实现报警;电源模块主要利用了直流稳压电源为系统供电。软件部分主要用C语言编写程序,实现对系统的控制功能。
1系统的硬件设计
本系统由显示模块,按键模块,主控模块,报警模块,电源模块组成。速度和里程由开关型霍尔传感器测量,通过按键模块设置自行车轮子的周长,轮子每转动一圈,传感器采集信号输送到单片机中,此时单片机的外中断0将产生一次中断,两个相邻下降沿信号的时间由单片机定时器1计时(设为T),可以计算出里程S=周长*所行驶的圈数,速度V=里程S/时间T。
1.1主控模块电路
AT89C51是高性能CMOS 8位单片机,其特点是它工作所需电压比较低,且有8位中央处理器和和Flash存储单元。本设计采用的是按键电平复位的方式,我们可以看到这种电路操作比较方便,而且结构比较简单,这样,在设计中,当需要数据回到初始位置时,我们可以通过按键模块,恢复初始设置,不用切断电源。一般情况下,晶振频率为12到40MHZ,考虑到既要使电路稳定,又要确保程序存储器存取速度快我们选择了12MHZ的晶振频率,同时,机器周期为1us,电容负载为30p。
1.2电源电路
首先发电机提供15V的交流电,经过整流滤波,采用恒流方式给镍氢电池组充电,再用7805给电池组稳压,给整个系统供电,包括霍尔传感器和单片机系统,我们所用的三极管为功率较高的C8050,如若经过长时间的充电,功率过低容易被电流烧坏,在电路中我们还采用5K%R的电位器用于调节充电电流,这样就避免电流过大烧坏元件。当然,实验设计过程中为了简便,我们可以不用电机。直接用4个1.5V的电池组经7805稳压后得到+5V电压给单片机系统和霍尔传感器供电。
1.3霍尔传感器
霍尔传感器是根据霍尔效应制作的一种磁场传感器霍尔效应是磁电效应的一种。霍尔于1879年在研究金属的导电机构时发现的霍尔效应,它是磁电效应的一种,也是法拉第电磁感应定理的一种延伸。经过他的不断努力和探索,后来他又发现半导体、导电流体等也有这种效应,人们就利用这种现象制成的各种霍尔元件。经过上百年的演变,人们已经可以熟练掌握并运用霍尔原理了,例如,人们可以利用它判断半导体材料的性能和参数,比如导电性能、载流子的分布情况以及它的迁移率等等。 本设计中霍尔传感器的作用就是产生脉冲信号,交由单片机处理。它是一种磁信号转化为电信号的装置。霍尔接近开关的输入量是磁感应强度B,当B值达到一定的程度时,霍尔开关内部的触发器翻转,其输出电平状态也随之翻转。
1.4显示电路
显示模块选用1602字符型液晶模块,本系统的输入模块采用中断扫描的4?矩阵键盘,它相对于发光二极管重量较轻,体积较小,相对于定式扫描,更是提高了MCU的使用效率。
1.5报警电路
本设计使用蜂鸣器来报警,蜂鸣器是一个单纯的发声元件,在其两端施加方波(无源蜂鸣器)或者直流电压(有源蜂鸣器)就可以发声。其主要参数是工作电压、发声方向、外形尺寸、驱动方式(直流/方波)、工作电流、工作频率等。这些可以根据现实需要来选择。蜂鸣器的负极性的一端联接电源负极上,另一端联接到三极管的发射极,三极管的基级由单片机的P3.2管脚通过一个与非门来控制,当P3.2管脚为高时,与非门输出低电平,三极管截止,蜂鸣器不发出声音。当P3.2管脚为低时,与非门输出高电平,三极管导通,这样蜂鸣器的电流形成回路,发出声音。
2系统的软件设计
开机后系统自检,先设置好单车轮子的周长。 之后就可以等待自行车行驶。轮子开始转圈后,霍尔传感器进行进行读取轮子圈数,将脉冲信号传送到单片机中,而后系统进行记录和计算,最后液晶显示模块将其显示出来。外中断0服务的子程序用于对输入脉冲计数,这样,就能得到轮子转圈的数。同时系统会在保存圈数值的同时保存计数值,此时显示模块根据功能选择显示相应的值。T1定时溢出中断服务子程序用于实时统计记一次数的经历时间。本系统的程序关键部分实现用内部外加中断的方法对输入脉冲信号进行测量。
3系统的测试
为了验证系統能否正常工作,我在学院400m跑道处对我的毕业设计进行了系统测试,设置里程表的初始值C=175cm,P=42km/h,经过跑道骑行一圈后,测得自行车的里程为S=405m,测量结果与实际路程有一定差距,但是已经基本实现了预定功能。经过实际的测量结果显示,测量得到的值普遍存在误差,测量值都要比准确值小。分析存在误差的原因,一是骑行路线的选择方面可能有误差,二是系统本身在测量速度时也存在误差,同时在测量里程时也采用了近似运算的方法。
参考文献
[1] 周国雄.单片机应用系统设计精讲[M].北京:中国铁道出版社,2011.
[2] 杨打生.单片机C51技术应用[M].北京:北京理工大学出版社,2011.
[3] 万隆.单片机原理与实例应用[M].北京:清华大学出版社,2011.