基于单片机的自行车测速系统.docx
《基于单片机的自行车测速系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的自行车测速系统.docx(33页珍藏版)》请在冰豆网上搜索。
基于单片机的自行车测速系统
郑州大学
毕业设计(论文)
题目基于单片机的自行车
测速系统设计
学生姓名
指导教师
所属系
专业
年级
学号
基于单片机的自行车测速系统设计
摘要
随着科技的迅速发展,单片机的应用也越来越广泛,并带动传统控制检测技术不断更新。
现在的里程表大多是电子式的,用数码管或液晶显示器即时显示,显示更加直观。
电子式里程表采用接触车速传感器代替软轴传动,可使里程表的安装位置不受距离限制,进一步有效地克服了机械式里程表中的诸多不足。
方案采用了一种以单片机STC89C52为主控机,使用光电传感器进行自行车里程、速度测量的装置。
传感器将不同车速产生的不同频率的脉冲信号输入到单片机进行控制与计算,再采用LCD液晶显示模块进行显示,使得自行车的速度与里程数据能直观的显示给使用者。
本设计主要包括自行车轮脉冲采集、键盘输入和数据显示等部分,主程序用C语言编写,完成各项功能及数据的处理。
本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点。
并且可以进行扩充,更方便于使用者。
关键词光电传感器,单片机,液晶显示器,测速
TheDesignofbicyclespeedmeasuringsystem
basedonsinglechipmicrocomputer
ABSTRACT
Withtherapiddevelopmentoftechnology,moreandmorewidespreadapplicationofmicrocomputer,promotethetraditionalcontroldetectiontechnologyconstantlyupdated.Mostofthecurrentelectronicodometer,andwiththeLEDdigitaltubeorLCDdisplayreal-time,displaymoreintuitive.Electronicodometerflexibleshaftusingthecontactspeedsensorinsteadofdriving,mileagetablescanbeinstalledwithoutdistancelimitations,andfurthertoeffectivelyovercomethemechanicaldisadvantagesofmileageinthetable.
TheplanadoptsthesystemandconfigurationofcombiningthemicrocontrollerSTC89C52asthemaincontrolcomputer,usingthephotoelectricsensorbicycleodometer,speedmeasuringdevices.whenDifferentspeedpulsesignalsofdifferentfrequenciesproducedbysensorareinputintothemicrocontroller,afteritscalculation,liquidcrystalwilldisplaythedatas,makingthebike'sspeedanddistancedatavisuallytotheuser.
Thedesignincludesabikewheelpulseacquisition,keyboardinputanddatadisplaysection,themainprogramusingClanguage,Thispaperfirstneededto"milestones"designofequipmentindetail,ontheproblemsexistinginthedesign,explainedAndthentohardwareandsoftwaredesignandimplementationofthepartmadeearnestanalysis,Thenpresentedsystemmodelingprocessandthecorrespondingsystembasedonthismodel,thecontrolsimulation,andthesimulationresultsarecompared.
KEYWORDSodometerphotoelectricsensor,MCU,LCD,Tachometer
目录
摘要I
ABSTRACTII
1绪论1
1.1问题由来1
1.2课题现状1
1.3设计任务2
2方案论证与分析2
2.1单片机模块论证与选择2
2.2显示模块论证与选择3
2.3电源模块论证与选择3
2.4光电测速模块论证与选择3
3系统硬件设计4
3.1光电传感器模块4
3.2单片机系统部分6
3.2.1STC89C52单片机介绍6
3.2.2定时/计数器的结构及控制7
3.3单片机外围电路介绍9
3.3.1复位电路9
3.3.2晶振电路10
3.4LCD显示模块10
3.4.11602字符型LCD简介10
3.4.2LCD1602的基本参数及引脚功能11
3.5按键模块13
4系统软件设计14
4.1概述14
4.2总体程序设计14
4.3测量算法概述15
4.4中断子程序的设计16
4.5人机交互设计17
5结束语18
致谢19
参考文献20
附录1:
系统原理图21
附录2:
源程序22
1绪论
1.1问题由来
我国是人口大国,也是自行车大国,随着生活节奏的不断加快,自行车已经不仅仅是运输、代步的工具,现在则是代表着绿色、环保、节能。
因此其辅助功能也变得越来越重要。
而且人们希望自行车的娱乐、休闲、锻炼的功能越来越多,能带来大家更多的健康与快乐。
在这个背景下,自行车测速系统作为自行车的一大辅助工具迅速发展起来。
科学、美观、合理设计自行车测速计有一定的实用价值.它能合理计算出速度及公里数,使运动者运动适量,达到健康运动与代步的最佳效果。
并且随着人们生活水平的逐渐提高,人们对于生活质量的要求也日益增加,尤其是对健身的要求。
自行车在中国普遍作为代步工具。
而在国外,自行车却是一项十分受欢迎的健身运动。
因为它无污染,价位低廉,老少皆宜。
而且在运动过程中可以充分享受到大自然,对于忙碌的现代人来说,无疑是一种较好的放松方法。
在中国这种情况也在慢慢发生变化。
因此爱好自行车运动的人需要一款里程表,以知道自己的运动情况。
并根据外界条件,如温度,风速等进行适当的调节,已达到最佳运动的效果。
而对于自行车运动员来说,最为关心的莫过于一段时间内的训练效果。
因为教练要根据一段时间内运动员的训练效果进行评估,从而进行适当的调整已使运动员达到最佳的状态。
因此需要一种装置进行对训练中各种参数的测定记录。
1.2课题现状
传统的机械式车速表是由旋转磁场作用于转动盘,使转动盘连同车速表指针发生同向的偏转。
当电磁转矩与弹簧产生的阻力矩平衡时,指针偏转停留在某一角度上。
指针偏转角与车速成正比,因而可用其表示车速。
机械式车速表的缺陷是明显的。
由于表盘指针偏转程度正比于软轴的转动时产生的磁力,当转速较低的时候,磁力较小,随转速变化波动较大。
因此,低速时车速表指针摆动剧烈、测量及显示精度不高。
对于发动机后置的车辆,要将车速表指针的偏转动力由变速箱经软轴等传至驾驶室,软轴必然布置的较长,如何将这种长长的转动软轴从结构上布置妥当,肯定是一件十分困难的事情。
现在的车速表大多是电子式的,用LED数码管或LCD显示,使速度显示更加直观。
采用接触车速传感器代替软轴传动,可使车速表的安装位置不受距离限制,有效地克服了机械式车速表中的诸多不足。
电子式车速表更加智能,车速表的功能也更加人性化,如加上了里程累计、超速提醒等功能。
本设计就是针对骑自行车的人们在行进中不能很好的把握自己达到了多大的速度,行驶了多远的距离而设计的。
以往的里程表只能进行测量速度,里程,时间,温度等数据,虽然能实现很多的功能,但是其中的一些功能不适合自行车业余爱好者,浪费资源,而且性价比也低,而且也不能很好的把握当前运动量,从而不能很好的实现娱乐和锻炼的效果。
而本设计却能实现娱乐和锻炼的双重效果,而且相对业余爱好者性价比更高。
1.3设计任务
本设计要以单片机为核心,通过光电传感器来检测自行车的运转情况进而实现电动自行车的速度的测量,最后用液晶显示器直观地将速度与里程显示出来,并且可以设置车轮周长,从而达到智能化的目的。
主要设计内容:
(1)光电传感器模块设计
(2)单片机最小系统设计
(3)人机交互设计
2方案论证与分析
2.1单片机模块论证与选择
方案一:
采用型号为STC89C52的单片机作为主控制器,使用光电传感器进行测量的自行车测速系统。
STC89C52是带8K字节闪烁可编程擦除只读存储器的低电压、高性能CMOS8位微处理器【1】,且内部集成EEPROM它将多功能8位CPU和闪烁存储器组合在单个芯片中,为许多控制提供了灵活性高且价格低廉的方案。
方案二:
采用单片机C8051F060作为主控制器,使用霍尔传感器进行测量的直流电机转速测量系统。
C8051F060系列单片机是美国CYGNAL公司推出的一种与51系列单片机内核兼容的单片机。
C8051F060作为新一代8051单片机,具有功能强大、体积小、工作稳定等特点,适用于复杂控制系统。
因此选择方案一。
2.2显示模块论证与选择
方案一:
采用LED数码管动态扫描,LED数码管价格适中,亮度高,显示数字合适,但是连接复杂,耗电流大,驱动电路复杂。
方案二:
采用点阵屏显示,点阵是由八行八列的发光二极管组成,对于显示简单文字比较适合,如果显示数字则浪费资源,而且价格也相对较高。
方案三:
采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,并且连接很方便,所以在此设计中采用了LCD液晶显示屏。
因此选择方案三。
2.3电源模块论证与选择
方案一:
采用交流220V/50Hz电源转换为直流5V电源作为电源模块。
该方案实施简单,电路搭建方便,可作为单片机开发常备电源使用。
方案二:
采用干电池串并联达到5V作为电源模块。
该方案实施简单,无需搭建电路,但相对该方案不够稳定,电池耗电快,带负载后压降过高,可能无法使系统稳定持续运行。
方案三:
采用可充电锂电池结合稳压模块作为电源模块。
该方案简单易行,而且相对稳定、误差小,但该方案相对价格过高,针对该设计要求性价比低。
因此选择方案一。
2.4光电测速模块论证与选择
方案一:
采用普通红外对管【2】作为测速模块的核心,该方案体积小,,价格合理,可用于测速,但是对于体积太小的遮挡物(自行车条幅)可能会无响应。
方案二:
采用半导体激光器【3】和光敏电阻作为测速模块的核心,半导体激光器具有发射方向性好,功率大的特点,因此对体积小的物体也具有很好的响应效果。
因此选择方案二。
3系统硬件设计
本设计采用的是以半导体激光器和光敏电阻构成光电传感器,以STC89C52作为系统的主控芯片,以LCD1602液晶显示器进行显示,按键用于调整车轮周长。
图3-1为系统硬件设计框图。
图3-1系统硬件框图
3.1光电传感器模块
光电传感器是应用非常广泛的一种器件,各种各样的形式,如透射式、反射式等,基本原理就是当发射管光照射到接收管时,接收管导通,反之关断【4】。
以透射式为例,如图3-2所示,当不透光的物体挡住发射与接收之间的间隙时,开关管关断,否则打开。
为此可以制作一个遮光叶片如图3-3所示,安装在转轴上,当扇叶经过时,产生脉冲信号。
当叶片数较多时,旋转一周可以获得多个脉冲信号。
而考虑到实际可操作性以及设计要求方面,本设计采用方向性好的半导体激光器取代了传统的发光二极管,使用光敏电阻作为感光元件,从而构成透射式光电传感器。
图3-2光电传感器的原理图
图3-3遮光叶片
将光敏电阻安装在自行车前又的一侧,在同等高度的另一侧安上一个半导体激光器。
在同等高度的辐条上贴上一圈黑色材料,并在黑色材料上打上等间距的小孔,这样当小孔经过光敏电阻时,光敏电阻根据光电流的变化发出脉冲,从而测量里程。
由于单片机属于数字器件,并不能直接对光敏电阻两端的脉动电压直接处理,因此需要信号调理电路对光敏电阻两端电压进行处理,得到数字脉冲信号。
图3-4光电传感器模块
如图3-4所示,三极光9013工作在开光状态,当光信号未被遮挡时,光敏电阻阻值降到500欧姆以下,三极管发射结电压低于PN节导通电压,三极管处于截止之状态,节点P34输出高电平。
光信号被遮挡时,光敏电阻阻值上升到5K左右,三极管发射结电压高于PN节导通电压工作于饱和状态,节点P34输出低电平。
如此反复便形成了数字脉冲,便于单片机直接计数。
3.2单片机系统部分
3.2.1STC89C52单片机介绍
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
图3-5为STC89C52引脚图【5】。
图3-5STC89C52引脚图
3.2.2定时/计数器的结构及控制
定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
定时/计数器结构如图3-6所示:
图3-6定时/计数器结构图
STC89C52单片机定时/计数器的工作由两个特殊功能寄存器控制。
TMOD用于设置其工作方式;TCON用于控制其启动和中断申请【6】。
(1)工作方式寄存器TMOD
工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
其格式如表3-1:
表3-1
位号
D7
D6
D5
D4
D3
D2
D1
D0
符号
GATE
C/T
M1
M0
GATE
C/T
M1
M0
GATE:
门控位。
GATE=0时,以运行控制位TRX(X=0,1)来启动定时/计数器运行;
GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作;
C/T计数器模式和定时器模式选择位
C/T=1时,选择计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲计数;C/T=0时,选择定时器模式。
M1M0:
工作方式设置位。
定时/计数器有四种工作方式,由M1M0进行设置,其工作方式如表3-2所示:
表3-2
M1M0
工作方式
功能
00
工作方式0
13位计数器
01
工作方式1
16位计数器
10
工作方式2
自动再装入8位计数器
11
工作方式3
定时器0:
分成两个8位计数器
定时器1:
停止计数
(2)控制寄存器TCON
TCON的低4位用于控制外部中断,已在前面介绍。
TCON的高4位用于控制定时/计数器的启动和中断申请。
其格式如表3-3:
表3-3
位
D7
D6
D5
D4
D3
D2
D1
D0
字节地址:
88H
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TF1(TCON.7):
T1溢出中断请求标志位。
T1计数溢出时由硬件自动置TF1为1。
CPU响应中断后TF1由硬件自动清0。
T1工作时,CPU可随时查询TF1的状态。
所以,TF1可用作查询测试的标志。
TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。
TR1(TCON.6):
T1运行控制位。
TR1置1时,T1开始工作;TR1置0时,T1停止工作。
TR1由软件置1或清0。
所以,用软件可控制定时/计数器的启动与停止。
TF0(TCON.5):
T0溢出中断请求标志位,其功能与TF1雷同。
TR0(TCON.4):
T0运行控制位,其功能与TR1雷同。
3.2.3中断控制
CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。
各个中断控制位地址如表3-5所示【7】:
表3-5
位
7
6
5
4
3
2
1
0
字节地址:
88H
EA
ES
ET1
EX1
ET0
EX0
IE
EX0(IE.0),外部中断0允许位;
ET0(IE.1),定时/计数器T0中断允许位;
EX1(IE.2),外部中断0允许位;
ET1(IE.3),定时/计数器T1中断允许位;
ES(IE.4),串行口中断允许位;
EA(IE.7),CPU中断允许(总允许)位。
3.3单片机外围电路介绍
3.3.1复位电路
STC89C52单片机的复位输入引脚RST为单片机提供了初始化的手段。
有了它可以使程序从指定处开始执行,即从程序存储器中的0000H地址单元开始执行程序。
在89C52的时钟电路工作后,只要在RST引脚上出现两个机器周期以上的高电平时,单片机内部则初始复位。
只要RST保持高电平,则89C52循环复位。
只有当RST由高电平变成低电平以后,89C52才从0000H地址开始执行程序。
复位电路通常采用上电自动复位和按钮复位两种方式。
本系统的复位电路是采用上电自动复位的电路,如图3-7所示,是常用复位电路之一。
单片机复位通过按动按钮产生高电平复位称手动复位。
上电时,刚接通电源,电容C相当于瞬间短路,+5V立即加到RESET端,该高电平使89C51全机自动复位,这就是上电复位;若运行过程中需要程序从头执行,只需按动按钮即可。
按下按钮,则直接把+5V加到了RESET端从而复位称为手动复位。
复位后,P0到P3并行I/O口全为高电平,其它寄存器全部清零。
图3-7STC89C52复位电路
3.3.2晶振电路
晶振电路由晶振和两个负载电容组成。
晶振电路部分电路连接如图3-8所示。
图3-8晶振电路
晶振是给单片机提供工作信号脉冲的,这个脉冲就是单片机的工作速度。
比如此系统所用的12MHz晶振,单片机工作速度就是每秒12M。
在调试时要注意将PC串口波特率设为1200。
至于两个电容的大小,它是根据晶振厂家提供的晶振要求选值的,换句话说,晶振的频率就是在它提供负载电容下测得,能最大限度的保证频率值误差。
两个电容取值都是相同的,大部分在20-30pF,没有相同电容的情况下,可以用两个相差不大电容代替,但不能相差太大,容易造成谐振不平衡,容易造成停振或者干脆不起振【8】。
晶振电路在本系统中是并联方式,连接在STC89C52的XTAL1和XTAL2引脚。
3.4LCD显示模块
3.4.11602字符型LCD简介
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。
下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。
字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。
一般1602字符型液晶显示器实物如图3-9所示。
图3-91602实物图
3.4.2LCD1602的基本参数及引脚功能
(1)LCD1602类型:
LCD1602分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如图3-10所示。
图3-101602带背光与不带背光差别图
(2)LCD1602主要技术参数:
显示容量:
16×2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×4.35(W×H)mm
(3)LCD1602引脚【9】:
LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3-6。
表3-6引脚接口说明表
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
(4)其与单片机的连接如图2-14所示:
图3-111602与单片机接线图
3.5按键模块
键盘是实现人机交互的重要工具,用户可用计算机向计算机输入数据和指令,本系统采用独立键盘接口,独立式按键是指直接用I/O口线构成单个的按键电路。
每一