毕业论文基于单片机的电子车速里程表的设计.docx
《毕业论文基于单片机的电子车速里程表的设计.docx》由会员分享,可在线阅读,更多相关《毕业论文基于单片机的电子车速里程表的设计.docx(54页珍藏版)》请在冰豆网上搜索。
毕业论文基于单片机的电子车速里程表的设计
毕业论文基于单片机的电子车速里程表的设计
编号:
____________
审定成绩:
____________
毕业设计(论文)
设计(论文)题目:
基于单片机的电子车速里程表的设计
单位(系别):
自动化系
学生姓名:
专业:
电气工程及其自动化
班级:
学号:
指导教师:
答辩组负责人:
填表时间:
2015年6月
重庆邮电大学移通学院教务处制
ABSTRACT
Bicyclehasbeenintroducedtoourcountrymorethanonehundredyearssince1868.AsthegrowthofthedomesticpercapitaltheGDP,thebicycleisnotonlytheuniversaltooloftransportationandsubstituteforwalking,butbecomesthefirstchoiceofentertainmentandexercising.Bicyclewithhigh-techbringshighconfigurationanditsownadvantages,graduallyattractedeverybody'seyesagain.Withthedestructionofthesurroundingenvironment,bicycleisboundtohavegooddevelopmentspace.Butnowthecarormotorcycleinstrumentaremechanical,thedrivercouldnotdirectlycaptureinformation.Sowewillthinkofsomewaytoputspeedinthedesigntime,suchasdatadisplayedbyLED.
Inthese paper,thebicyclespeed/mileagedesignbasedontheHallelementisSingleChipMicrocomputer.ByAT89C51askernel,usingITR-9707Photoelectricsensortomeasurerevolution,themeasureandstatisticareachieved.TherangeinformationaresavedbyAT24C02whenthepowerisoff.ThedatethroughfrequencymeasurementmoduleanddataconversionmodulebepassedtotheMCS,andthenthespeedandmileageweredisplayedbyaccessmoduleandLEDmodule.Completethemeasurementdisplay.
Inthisarticle,thehardwarecircuitandsoftwaredesignofbicyclemileage/speedinstrumentareintroducedindetail.Aboutthehardware,thepulsenumberistransmittedofonesecondofthebicycleintoSingleChipMicrocomputersystem.ThenthesignalprocessedbySingleChipMicrocomputersystemissenttodisplayscream.Andanincreaseoftimedisplayandspeedalarm.SoftwaresystemdesignpartadoptsC++softwareforprogrammingeachmodule.Finally,wecanachievethedesignpurpose.
【Keywords】:
MileagespeedPhotoelectricsensorSingleChipMicrocomputer
前言
在人们不断的创新下,越来越多的高科技产品和技术被更新。
但是某些技术的更新换代并非全是好事,带来的则是人们的过度消费和产品的非高品质,在生产和生态环境之间得不到平衡。
人们自我保护意识越来越强,对产品安全性能要求也越来越高,这是未来科技发展必须考虑的因素之一。
但是要想长久的发展,必须还得重视对生态环境的保护,“保护环境,使用清洁能源”逐渐成为当今世界的主题。
自行车凭借着高科技带来的高配置和它自身的优势,逐渐的又吸引了大家的眼球。
随着越来越多的人对环境的重视,相信自行车也会得到越来越多的人的亲睐。
第一章计速里程表概述
第一节课题研究背景
随着人们不断地创新发展,越来越多以前只能在想象中或者在电视机里面出现的东西出现在我们的日常生活。
一个国家要有大的发展,工业发展至关重要,而与工业息息相关的则是交通运输。
随着第一辆内燃机驱动三轮汽车的问世,很快将全世界带入了汽车社会。
由于汽车发展速度过快,而人们又不能够很好地解决发展过快导致的一些遗留问题,两者之间不能协调。
在各个发达国家,许多城市要求限购、限行。
我国的北京、成都、浙江等地,也逐一的加入限购、限行的的队伍中。
在这种大环境下,无疑是给了清洁环保的自行车行业一个证明自身价值和发展机会。
而21世纪的人们也不仅仅满足于自行车的代步功能。
在功能上,除了代步,更有锻炼、比赛、娱乐等功能。
为了赢得大众的亲睐,开发商引入了速度显示,时间显示,里程显示,超速报警,更有甚者GPS导航系统都可以安装实现。
一定意义上可以和现在的汽车媲美,除了动力方式上的不一样。
因为这些功能的引入,大众可以更直观方便的使用。
特别是运动员可以通过这些功能实时了解掌控情况,分析过程和结果,调整自身训练节奏。
随着控制要求的增加,单片机内部数据总线也在不断增加,以达到控制要求。
在90年代消费电子产品的大量增加的刺激下,16位的单片机也逐步被新出现的32位的单片机所取代。
而工控领域也正是看中了单片机的小体积、低功耗、易扩展、性价比高等特点,将其作为设备控制的首选。
MCS也因此占领了当时的主流市场。
我们日常所用的家电、手机、计算机等里面都配置的有单片机芯片,可见它应用之广泛功能之强大。
此次设计我们选用的就是单片机。
第二节车速里程表的发展
一、传统车速里程表
(一)原理
以前的车速表和里程表都是机械式的,全机械式的,由各个零部件构成的。
车速表主要由齿轮、钢丝缆、磁铁、游丝和指针组成。
变速器的齿轮通过软轴钢丝缆与软轴的另一端的罩圈内的磁铁相连,磁铁带动游丝,游丝带动指针。
汽车不动的时候指针是置零的,当汽车行驶带动此轮转动以后,指针也被带动从而现实显示当前的速度。
对于里程表,它是利用表盘转动实现里程累加,而不是指针。
通过传动齿轮与蜗杆啮合使计数机鼓轮转动,它的特点是如果上一级转了10圈,那么下一级只转了1圈。
(二)优劣势
这种传统的机械式里程表为人们提供了一个速度里程的参考值,在一定程度上确实保障了司机的驾驶安全。
但由于全是机械式的,日常磨损误差较大,而且不好保养。
变速器齿轮高速运转时,通过软轴带动罩圈磁铁,由于软轴的迟滞性,使实时速度产生误差显示不准确。
如果汽车使用不当或者不保养,超出钢丝缆所能承受的极限拉力,会造成钢丝缆断裂,使速度表功能失效。
也就是不耐用,特别是摩托车的仪表盘,我深有体会。
人们的出行受到了一定程度的限制。
所以近年也渐渐地退出了市场。
二、电子车速里程表
(一)原理
其原理是利用传感器输入给MCS的脉冲数从而计算出当下的速度和里程。
在车轮上变速箱蜗轮组件的蜗杆上安装电磁式或者光电式的传感器,变速箱内的齿轮带动传感器内的磁钢作圆周运动,单位是N/周。
速度通过光电传感器或者霍尔传感器向MCS发送的脉冲信号经微控制器处理后显示出来,根据汽车行驶时间计算出行程。
(二)优劣势
与传统的速度里程表比较,电子式的核心部分是用传感器替代了有日常损耗的软轴,解决了由于传统车速里程表指针不稳定,摆动过大和软轴钢丝易因疲劳断裂等缺点所带来的不方便的问题。
相比之下,比指针显示速度更直接明了。
但也有不好的地方,因为传感器与被动轮直接接触,所以传感器易损坏。
同样的,有机械磨损,就会减少传感器的正常工作时间。
本次设计采用的时光电式脉冲传感器。
第三节设计的主要任务和内容
电子测速仪,顾名思义就是由车速表、里程表、显示这三部分组成,本课题研究的主要内容是以MCS为主,以光电传感器和显示器为辅,基于光电脉冲信号的速度里程测量仪。
通过软件C++和protel的辅助,达到显示速度、里程、行驶时间,显示总里程、阶段里程,显示当前车速以及车速报警的目的。
通过此次的设计,必须掌握传感器脉冲的计算原理,以及protelDXP的使用和单片机C语言编程。
通过对每个功能模块的理解剖析,设计出符合题目要求的电路原理图以及源代。
第二章系统控制方案设计
第一节设计任务的分析与实现
一、任务分析
本次设计主要根据三个原则来的,及“简易、直观、可靠性高”。
为了使单片机能够更多的应用在复杂、体积要求较高的工业设备中,单片机把CPU和更多的外围设备集成在一个芯片上,使其更好更快的适应设备环境。
分析此次的任务要求,完全可以通过一个单片机,一个脉冲发生装置,一个显示器即可完成。
单片机发展至今已经很成熟,体积小、价格低、功能强、功耗低、扩展灵活、微型化已经是现有单片机共有的特性。
因为此次任务的里程和时间是通过单片机软件程序直接计算得出的,所以简化了硬件电路。
体积小和低损耗也大大满足了本次设计特殊使用场合和条件的要求。
如今的传感器,在灵敏度、精度控制和抗外界环境干扰能力等方面做得越来越好。
因为是利用传感器采集来的脉冲数来计算速度的,因此测量误差较低。
实际中的误差控制在几米内,比较整个行程来说,误差不大。
而数据读取采用的是LED直接显示,用户可以直接读取数据,作出判断,更方便省时。
通过它们的搭配将计算机技术和控制技术结合在了一起,完成整个测量系统,满足“简易、直观、可靠性”的要求。
二、实现方法
设计中的最核心部分是将采集的信号给单片机经过计算得出我们想要的数据。
我们面临的主要问题是怎么实现这个过程。
也就是怎么采集信号,怎么将信号递给单片机,单片机要怎么识别信号,单片机怎么将这些信号怎么计算显示。
我们在下面一一分析解决这些问题。
在采集信号部分在这里不多介绍,在后面的文章中有讲到,主要讲后面的部分。
我们先不考虑外界环境的干扰,传感器正常工作,将获取到的车速信息转换成脉冲,通过外围电路传递给单片机。
但是单片机是并不能够识别这些信号的,而且在传送的整个过程当中,容易被外界的干扰信号,致其衰减。
要做的第一步是将脉冲信号放大,目的是当信号受到干扰导致信号波形幅值变小时依然能够被检测出来。
因为单片机并不能识别这样的信号,所以要通过处理将现有的放大信号转换为单片机能够识别的TTL电平信号。
这里简单的介绍一下TTL信号,TTL电平信号可直接与集成电路连接而不需要价格昂贵的线路驱动器以及接收器电路。
再者,计算机处理器控制的设备内部的数据传输是在高速下进行的,而TTL接口的操作恰能满足这个要求。
因为TTL电平信号使用二进制规则进行换算的(输入电压为正,等价于逻辑“1”,为负或者0,等价于逻辑“0”),满足设备内部之间的通信标准。
所以我们这里也采用这项技术将其转换为单片机可是别的逻辑信号。
再通过软件程序对信号进行分析整理计算,通过显示电路,就可以得到我们要的数据了。
系统的整个流程图如图2.1所示。
波行变换
放大器
数字存储电路
单片机
LED显示
图2.1过程流程图
第二节主控单片机AT89C51
AT89C51标准功能有,4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电时保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
引脚图如图2.2所示。
图2.2AT89C51芯片引脚图
第三章系统的硬件电路设计
第一节频率测量模块
一、光电传感器的测量原理
(一)传感器的工作原理
常见的红外线光电开关有对射式和反射式两种,这里就对反射式就不多讲了。
对射式光电开关是通过对射式本身的发射器向本身的接收器发送红外线信号完成触点动作的,通过阻隔红外线信号来控制触点的开和关。
换而言之,回到本次设计中来,我们采用的是ITR-9707对射式光电传感器。
当发射器和接收器之间刚好被我们的铝盘隔开时,接收器没有采集到对应的信号,传感器将会输出一个低电平。
当发射器向接收器发送的信号刚好透过铝盘上的小孔,没有被隔开时,传感器会输出一个高电平,从而形成一个脉冲。
我们就是利用这个脉冲计算得出数据的。
(二)测量系统描述
对于脉冲信号采集这部分,只需利用一块铝盘和传感器就可以完成。
铝盘与车后轮固定在一起,与自行车的转轴垂直。
在后轮转动的时侯铝盘也要跟着转动。
该铝盘上挖有小孔,其目的就是在自行车转动的时候让传感器产生脉冲,再经过波形整形,整形成单片机可识别的TTL信号。
小孔孔径应该比红外线宽度略大。
为了保证整套系统的准确性,原则上是铝盘外围的小孔数量越多越好,传感器可以捕捉到更多的脉冲信号。
穿孔数量越多,它们之间的距离越小。
可以有效地避免停车时因为孔距而隔断红外线信号所带来的误差。
在此次任务中选用的是11个过孔的铝盘,测量系统描述图如图3.1所示。
图3.1测量系统描述结构图
二、信号的转换
(一)放大部分
信号放大部分采用的是开关三极管组成的零偏置放大器。
当输入端为低电压时,由于基极没有电流流过,所以集电极也不会有电流流过。
致使连接于集电极端的负载也没电流,此时三极管处于截止区,由于上拉电阻的存在,电路输出高电平。
反之则三极管导通。
输出电压随着输入电压的上升而下降。
一般为了能够确保三极管工作在截止区,通常会使工作电压小于0.3V,也就是说系统能对任意大于0.3V的正弦波和脉冲信号进行测量。
(二)信号整形部分
此处将运用带施密特触发器的反相器DM74LS14将放大信号转换为TTL信号,将其加到单片机的P3.4口上。
施密特触发器有一个正向的阀值电压和一个负向的阀值电压。
在输入脉冲信号的波形中,一个周期内的输入电压幅值单调递增部分,只要达到了正向阀值电压,则输出电压就会发生突变;在输入电压幅值单调递减部分,只要输入电压达到负向阀值电压,则输出电压也会发生突变。
在这个过程中,输出电压有一个滞后现象,刚好适用于我们初始化电路中的延时过程。
通过输出电压的突变可以将三角波和正弦波转化为矩形波,实现波形转换。
在矩形波传输过程中往往会发生波形畸变、振荡、附加噪声等状况,都可以用DM74LS14通过整形得到理想的矩形脉冲。
电路原理图如图3.2所示。
图3.2信号转换电路图
第二节初始化模块
一、初始化的概述
系统初始化也可以说成是对系统的复位,复位电路就是为了防止系统出现死机和程序飞走的状况的状况而设计的,为系统提供了保障。
也相当于是对单片机的重启过程,实际中我要重新测量,清空MCS里面的数据的时后就可以复位。
另一方面,复位电路给了单片机一个延时,为了让刚上电的单片机电压稳定。
因为在上电的那一瞬间,电压有一个直线上升阶段,不能直接跳变到5V,单片机有会一个几毫秒的延迟。
二、电路原理说明
复位部分,可以通过手动复位来实现,也可以通过上电复位来实现。
我们一般采用的都是手动复位。
上电复位顾名思义就是通电以后就复位了,此处电容的作用也主要在此。
根据电容电流超前电压的特性,在通电的一瞬间,给单片机RST引脚一个高电平,使其复位,单片机也完成了上电复位功能。
伴随着时间,电容的两端会不断地储存异种电荷,充电时间完成时,C7两端的等量异种电荷会形成与电源电压相等的电压。
此时是不会有电流通过C7的。
当按钮按下时,整个回路接通,电容一端的负电荷会向另一端移动,最终与正电荷相互抵消完成放电。
即使在整个行车过程中不按按钮,由于电容自身容抗的存在会消耗掉一部分功率,使得电容两端的电压不等于电源电压,从而形成压差。
当我们复位以后,再次开启电源电压,由电容电流超前电压的特性,只要有压差存在,上电以后还是可以根据上电复位的原理对MCS瞬间复位。
在行驶过程中我们都通过按钮复位,复位电路图如图3.3所示。
图3.3初始电路原理图
第三节定时/中断服务模块
一、中断基本概念
中断系统被广泛的应用在各个控制程序系统中,以下谈谈我个人对中断的理解分析。
一个成熟的控制系统都是由几大模块共同“拼凑”完成的。
这样做使控制任务更加简单明了,可以帮助我们分析完成对外部电路部分的设计和对软件编程部分的设计。
但所有的模块并不是依次完成的,有些模块是用来处理紧急情况,有些模块是为了实现系统的实时性。
对于这一部分模块的执行,就是靠我们的中断系统来完成的。
当这些问题产生了需要我们去执行这些“备用”的模块时,系统会产生一个中断源。
当CPU接收到被允许的中断请求以后,系统会停止当前模块的程序任务,将当前的断点地址存起来,去执行该情况下对应模块所对应的服务程序。
服务程序完成以后,系统会自动的回到起初中断的地方,继续完成前面没有完成的程序。
这整个过程就称为系统的中断。
二、MCS-51单片机的中断系统
整个系统分为中断源、中断允许控制、优先级控制和中断响应这几个部分,下面我们一一对这几个部分进行介绍。
(一)中断源
总的来说,MCS-51系列单片机提供5个硬件中断源,(52子系列提供6个中断源)。
其中包括了外部中断源INT0(P3.2);外部中断源INT1(P3.3),定时/计数器T0的溢出中断TF0和TF1;定时/计数器T1的溢出中断TF0和TF1;1个串行口发送RI和TI中断。
定时/计数器控制寄存器TCON各位定义如下表3.1所示。
表3.1定时/计数器控制寄存器TCON
D7
D6
D5
D4
D3
D2
D1
D0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
溢出T1
启动
溢出T0
定时器启动
外部中断1
触发方式1
外部中断0
触发中断0
P3.2/P3.3=0,则IE0/IE1置1,请求中断
IT0/IT1=1,则为边沿触发
P3.2/P3.3=1,则IE0/IE1清零
IT0/IT1=0,则为电平触发
(二)中断允许控制
中断事件发生,请求执行对应中断模块服务程序时,如果此中断源被系统设置成中断允许时,CPU可能会响应。
因为当系统正在响应高优先级的中断时,同优先级和低优先级的中断源是被屏蔽的,CPU不会马上响应。
如果中断源被设置成了中断屏蔽,那么不管有没有中断请求,CPU都不会响应。
中断源有两种状态,允许或屏蔽。
IE(寄存器)各位对中断源状态控制定义如表3.2所示。
表3.2中断允许寄存器IE
D7
D6
D5
D4
D3
D2
D1
D0
EA
ES
ET1
EX1
ET0
EX0
中断允许总控位
串行口中断允许位
T1溢出中断允许位
INT1中断允许位
T0溢出中断允许位
INT0中断允许位
EA=0,屏蔽中断;EA=1,开中断
ES=0,禁止中断;ES=1,允许中断
ET1=0,禁止T1中断;ET1=1,允许T1中断
EX1=0,禁止INT1中断;EX1=1,允许INT1中断
ET0=0,禁止T0中断;ET0=1,允许T0中断
EX0=0,禁止INT0中断;EX0=1,允许INT0中断
(三)优先级控制
每一个中断源都是由高优先级和低优先级控制的,通过设置IP(寄存器)各位来控制优先级,IP各位定义如下表3.3所示。
表3.3中断优先权寄存器IP
D7
D6
D5
D4
D3
D2
D1
D0
PS
PT1
PX1
PT0
PX0
串行口的中断优先级控制器
T1的中断优先级控制器
外部中断INT1的中断优先级控制器
T0的中断优先级控制器
外部中断INT0的中断优先级控制器
(四)中断响应
1.中断响应的条件
总中断允许开关接通;
该中断源发出中断请求;
该中断源中断允许位置1;
没有同级或者更高级的中断正被服务。
2.中断响应过程
其流程图如图3.4所示。
中断服务子程序入口
关中断
保护现场
开中断
中断处理
关中断
现场恢复
开中断
中断返回
图3.4中断流程图
三、单片机定时/计数功能介绍
MCS-51系列中51子系列有两个16位的可编程定时/计数器:
定时/计数器T0和定时/计数器T1;52子系列有三个,比51子系列多一个定时/计数器T2。
根据要求,通过C++编程,使定时/计数器T0,T1完成整个系统中定时部分和计数部分的定时计数。
它的结构图如图3.5所示。
图3.5定时/计数器T0、T1结构框图
定时/计数器的核心是16位加法计数器,在图中用特殊功能寄存器TH0、TL0及TH1、TL1表示。
TH0是定时/计数器T0的高8位,TL0是定时/计数器T0低8位。
TH1是定时/计数器T1的高8位,TL1是定时/计数器T1的低8位。
定时/计数器T0和T1通过设定控制寄存器TCON来实现启动、停止的控制,通过设定方式寄存器TMOD来确定工作方式的。
方式寄存器TMOD的格式如表3.4所示。
表3.4定时/计数器的方式寄存器TMOD
T1方式字段
T0方式字段
D7
D6
D5
D4
D3
D2
D1
D0
GATE
C/
M1
M0
CATE
C/T
M1
M2
其中M1、M0为工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择,选择情况如表3.5所示。
表3.5定时/计数器的工作方式
M0
M1
工作方式
方式说明
0
0
0
13位定时/计数器
0
1
1
16位定时/计数器
1
0
2
8位自动重置定时/计数器
1
1
3
两个8位定时/计数器(只有T0有)
C/T:
定时或计数方式选择位。
当C/T=1时工作于计数方式;