【设计】毕业论文基于单片机的电子车速里程表的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【关键字】设计
编号:____________
审定成绩:____________
毕业设计(论文)
设计(论文)题目:基于单片机的电子车速里程表的设计
单位(系别):自动化系
学生姓名:
专业:电气工程及其自动化
班级:
学号:
指导教师:
答辩组负责人:
填表时间:20 15 年 6 月
重庆邮电大学移通学院教务处制
重庆邮电大学移通学院毕业设计(论文)任务
书
设计(论文)题目基于单片机的电子车速里程表的设计
学生姓名系别自动化系专业电气工程及其自动化班级七班
指导教师职称副教授联系电话
备注:此任务书由指导教师填写,并于毕业设计(论文)开始前下达给学生。
摘要
自行车自1868年引入我国已有一百多个年头。
随着国内人均GDP的增长,自行车从普通的运输、代步工具发展成为人们休闲娱乐与锻炼的首选。
自行车凭借着高科技带来的高配置和它自身的优势,逐渐的又吸引了大家的眼球。
随着周边环境的破坏污染,自行车必然会有着大好的发展空间。
人们可以通过一些简单的仪器仪表了解实时里程、速度。
可是现在的汽车或者摩托车的仪表片都是机械式的,不方便驾驶员直接捕捉信息。
所以在此次设计中我们将想办法把速度时间等数据通过LED显示出来。
本论文主要阐述一种基于单片机的自行车速度/里程计的设计。
以AT89C51单片机为核心,采用ITR-9707光电传感器测转,A T24C02 实现在系统掉电的时候保存里程信息。
通过频率测量模块和转换模块将数据递给MCS,再通过数据存取模块与LED 模块显示速度和里程。
完成此次的测量显示。
文章详细介绍了自行车速度/里程计的硬件电路和软件设计。
在设计硬件电路的时候,将光电传感器采集的脉冲信号给单片机处理并显示出来。
在此还增加了时间显示功能和超速报警功能。
软件系统设计部分采用C++软件对每一个模块进行编程。
最终达到设计目的。
【关键词】:里程速度光电传感器单片机
ABSTRACT
Bicycle has been introduced to our country more than one hundred years since 1868. As the growth of the domestic per capital the GDP, the bicycle is not only the universal tool of transportation and substitute for walking, but becomes the first choice of entertainment and exercising. Bicycle with high-tech brings high configuration and its own advantages, gradually attracted everybody's eyes again. With the destruction of the surrounding environment, bicycle is bound to have good development space. But now the car or motorcycle instrument are mechanical, the driver could not directly capture information. So we will think of some way to put speed in the design time, such as data displayed by LED.
In these paper, the bicycle speed/mileage design based on the Hall element is Single Chip Microcomputer. By AT89C51 as kernel, using ITR-9707 Photoelectric sensor to measure revolution, the measure and statistic are achieved. The range information are saved by AT24C02 when the power is off. The date through frequency measurement module and data conversion module be passed to the MCS, and then the speed and mileage were displayed by access module and LED module. Complete the measurement display.
In this article, the hardware circuit and software design of bicycle mileage/speed instrument are introduced in detail. About the hardware, the pulse number is transmitted of one second of the bicycle into Single Chip Microcomputer system. Then the signal processed by Single Chip Microcomputer system is sent to display scream. And an increase of time display and speed alarm. Software system design part adopts C++ software for programming each module. Finally, we can achieve the design purpose.
【Key words】: Mileage speed Photoelectric sensor Single Chip Microcomputer
目录
第四节数据存取模块..................................................................................... - 16 -
一、AT24C02简要介绍................................................................................. - 16 -
二、工作方式.................................................................................................. - 16 - 第五节显示模块............................................................................................. - 16 -
一、外界芯片74LS245/74HC138 ................................................................. - 16 -
二、工作原理.................................................................................................. - 17 -
第六节超速报警电路模块............................................................................. - 17 - 第七节其他模块............................................................................................. - 17 -
一、时钟电路的设计...................................................................................... - 17 -
二、工作电源的设计...................................................................................... - 18 -
三、开关电路的设计...................................................................................... - 18 - 第四章系统的软件设计..................................................................................... - 19 - 第一节测量算法概述..................................................................................... - 19 - 第二节中断子程序的设计............................................................................. - 19 - 第三节数据处理程序设计............................................................................. - 20 -
一、里程计算服务程序.................................................................................. - 20 -
二、速度计算服务程序.................................................................................. - 22 - 第四节显示服务程序的设计......................................................................... - 22 - 第五章系统可靠性设计和功能实现................................................................. - 24 - 第一节硬件系统的可靠性设计方法............................................................. - 24 - 第二节软件系统的可靠性设计..................................................................... - 24 - 第三节功能实现............................................................................................. - 26 - 结论..................................................................................................................... - 26 - 致谢..................................................................................................................... - 27 - 参考文献................................................................................................................. - 28 - 附录..................................................................................................................... - 29 -
一、英文原文..................................................................................................... - 29 -
二、英文翻译..................................................................................................... - 33 -
三、电路图......................................................................................................... - 36 -
四、PCB图 ........................................................................................................ - 37 -
五、源程序.................................................................................错误!未定义书签。
前言
在人们不断的创新下,越来越多的高科技产品和技术被更新。
但是某些技术的更新换代并非全是好事,带来的则是人们的过度消费和产品的非高品质,在生产和生态环境之间得不到平衡。
人们自我保护意识越来越强,对产品安全性能要求也越来越高,这是未来科技发展必须考虑的因素之一。
但是要想长久的发展,必须还得重视对生态环境的保护,“保护环境,使用清洁能源”逐渐成为当今世界的主题。
自行车凭借着高科技带来的高配置和它自身的优势,逐渐的又吸引了大家的眼球。
随着越来越多的人对环境的重视,相信自行车也会得到越来越多的人的亲睐。
第一章计速里程表概述
第一节课题研究背景
随着人们不断地创新发展,越来越多以前只能在想象中或者在电视机里面出现的东西出现在我们的日常生活。
一个国家要有大的发展,工业发展至关重要,而与工业息息相关的则是交通运输。
随着第一辆内燃机驱动三轮汽车的问世,很快将全世界带入了汽车社会。
由于汽车发展速度过快,而人们又不能够很好地解决发展过快导致的一些遗留问题,两者之间不能协调。
在各个发达国家,许多城市要求限购、限行。
我国的北京、成都、浙江等地,也逐一的加入限购、限行的的队伍中。
在这种大环境下,无疑是给了清洁环保的自行车行业一个证明自身价值和发展机会。
而21世纪的人们也不仅仅满足于自行车的代步功能。
在功能上,除了代步,更有锻炼、比赛、娱乐等功能。
为了赢得大众的亲睐,开发商引入了速度显示,时间显示,里程显示,超速报警,更有甚者GPS导航系统都可以安装实现。
一定意义上可以和现在的汽车媲美,除了动力方式上的不一样。
因为这些功能的引入,大众可以更直观方便的使用。
特别是运动员可以通过这些功能实时了解掌控情况,分析过程和结果,调整自身训练节奏。
随着控制要求的增加,单片机内部数据总线也在不断增加,以达到控制要求。
在90年代消费电子产品的大量增加的刺激下,16位的单片机也逐步被新出现的32位的单片机所取代。
而工控领域也正是看中了单片机的小体积、低功耗、易扩展、性价比高等特点,将其作为设备控制的首选。
MCS也因此占领了当时的
主流市场。
我们日常所用的家电、手机、计算机等里面都配置的有单片机芯片,可见它应用之广泛功能之强大。
此次设计我们选用的就是单片机。
第二节车速里程表的发展
一、传统车速里程表
(一)原理
以前的车速表和里程表都是机械式的,全机械式的,由各个零部件构成的。
车速表主要由齿轮、钢丝缆、磁铁、游丝和指针组成。
变速器的齿轮通过软轴钢丝缆与软轴的另一端的罩圈内的磁铁相连,磁铁带动游丝,游丝带动指针。
汽车不动的时候指针是置零的,当汽车行驶带动此轮转动以后,指针也被带动从而现实显示当前的速度。
对于里程表,它是利用表盘转动实现里程累加,而不是指针。
通过传动齿轮与蜗杆啮合使计数机鼓轮转动,它的特点是如果上一级转了10圈,那么下一级只转了1圈。
(二)优劣势
这种传统的机械式里程表为人们提供了一个速度里程的参考值,在一定程度上确实保障了司机的驾驶安全。
但由于全是机械式的,日常磨损误差较大,而且不好保养。
变速器齿轮高速运转时,通过软轴带动罩圈磁铁,由于软轴的迟滞性,使实时速度产生误差显示不准确。
如果汽车使用不当或者不保养,超出钢丝缆所能承受的极限拉力,会造成钢丝缆断裂,使速度表功能失效。
也就是不耐用,特别是摩托车的仪表盘,我深有体会。
人们的出行受到了一定程度的限制。
所以近年也渐渐地退出了市场。
二、电子车速里程表
(一)原理
其原理是利用传感器输入给MCS的脉冲数从而计算出当下的速度和里程。
在车轮上变速箱蜗轮组件的蜗杆上安装电磁式或者光电式的传感器,变速箱内的齿轮带动传感器内的磁钢作圆周运动,单位是N/周。
速度通过光电传感器或者霍尔传感器向MCS发送的脉冲信号经微控制器处理后显示出来,根据汽车行驶时间计算出行程。
(二)优劣势
与传统的速度里程表比较,电子式的核心部分是用传感器替代了有日常损耗的软轴,解决了由于传统车速里程表指针不稳定,摆动过大和软轴钢丝易因疲劳断裂等缺点所带来的不方便的问题。
相比之下,比指针显示速度更直接明了。
但也有不好的地方,因为传感器与被动轮直接接触,所以传感器易损坏。
同样的,有机械磨损,就会减少传感器的正常工作时间。
本次设计采用的时光电式脉冲传感器。
第三节设计的主要任务和内容
电子测速仪,顾名思义就是由车速表、里程表、显示这三部分组成,本课题研究的主要内容是以MCS为主,以光电传感器和显示器为辅,基于光电脉冲信号的速度里程测量仪。
通过软件C++和protel的辅助,达到显示速度、里程、行驶时间,显示总里程、阶段里程,显示当前车速以及车速报警的目的。
通过此次的设计,必须掌握传感器脉冲的计算原理,以及protel DXP的使用和单片机C语言编程。
通过对每个功能模块的理解剖析,设计出符合题目要求的电路原理图以及源代。
第二章系统控制方案设计
第一节设计任务的分析与实现
一、任务分析
本次设计主要根据三个原则来的,及“简易、直观、可靠性高”。
为了使单片机能够更多的应用在复杂、体积要求较高的工业设备中,单片机把CPU和更多的外围设备集成在一个芯片上,使其更好更快的适应设备环境。
分析此次的任务要求,完全可以通过一个单片机,一个脉冲发生装置,一个显示器即可完成。
单片机发展至今已经很成熟,体积小、价格低、功能强、功耗低、扩展灵活、微型化已经是现有单片机共有的特性。
因为此次任务的里程和时间是通过单片机软件程序直接计算得出的,所以简化了硬件电路。
体积小和低损耗也大大满足了本次设计特殊使用场合和条件的要求。
如今的传感器,在灵敏度、精度控制和抗外界环境干扰能力等方面做得越来越好。
因为是利用传感器采集来的脉冲数来计算速度的,因此测量误差较低。
实际中的误差控制在几米内,比较整个行程来说,误差不大。
而数据读取采用的是LED直接显示,用户可以直接读取数据,作出判断,更方便省时。
通过它们的搭配将计算机技术和控制技术结合在了一起,完成整个测量系统,满足“简易、直观、可靠性”的要求。
二、实现方法
设计中的最核心部分是将采集的信号给单片机经过计算得出我们想要的数据。
我们面临的主要问题是怎么实现这个过程。
也就是怎么采集信号,怎么将信号递给单片机,单片机要怎么识别信号,单片机怎么将这些信号怎么计算显示。
我们在下面一一分析解决这些问题。
在采集信号部分在这里不多介绍,在后面的文章中有讲到,主要讲后面的部分。
我们先不考虑外界环境的干扰,传感器正常工作,将获取到的车速信息转换成脉冲,通过外围电路传递给单片机。
但是单片机是并不能够识别这些信号的,而且在传送的整个过程当中,容易被外界的干扰信号,致其衰减。
要做的第一步是将脉冲信号放大,目的是当信号受到干扰导致信号波形幅值变小时依然能够被检测出来。
因为单片机并不能识别这样的信号,所以要通过处理将现有的放大信号转换为单片机能够识别的TTL电平信号。
这里简单的介绍一下TTL信号,TTL
电平信号可直接与集成电路连接而不需要价格昂贵的线路驱动器以及接收器电路。
再者,计算机处理器控制的设备内部的数据传输是在高速下进行的,而TTL 接口的操作恰能满足这个要求。
因为TTL 电平信号使用二进制规则进行换算的(输入电压为正,等价于逻辑“1”,为负或者0,等价于逻辑“0”),满足设备内部之间的通信标准。
所以我们这里也采用这项技术将其转换为单片机可是别的逻辑信号。
再通过软件程序对信号进行分析整理计算,通过显示电路,就可以得到我们要的数据了。
系统的整个流程图如图2.1所示。
图2.1
第二节 AT89C51标准功能有,4K 字节Flash 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU 的工作,但允许RAM ,定时/计数器,串行通信口及中断系统继续工作。
掉电时保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
引脚图如图2.2所示。
图2.2 A T89C51芯片引脚图
第三章系统的硬件电路设计
第一节频率测量模块
一、光电传感器的测量原理
(一)传感器的工作原理
常见的红外线光电开关有对射式和反射式两种,这里就对反射式就不多讲了。
对射式光电开关是通过对射式本身的发射器向本身的接收器发送红外线信号完成触点动作的,通过阻隔红外线信号来控制触点的开和关。
换而言之,回到本次设计中来,我们采用的是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
(二)中断允许控制
中断事件发生,请求执行对应中断模块服务程序时,如果此中断源被系统设置成中断允许时,CPU可能会响应。
因为当系统正在响应高优先级的中断时,同优先级和低优先级的中断源是被屏蔽的,CPU不会马上响应。
如果中断源被设置成了中断屏蔽,那么不管有没有中断请求,CPU都不会响应。
中断源有两种状态,允许或屏蔽。
IE(寄存器)各位对中断源状态控制定义如表3.2所示。
(三)优先级控制
每一个中断源都是由高优先级和低优先级控制的,通过设置IP(寄存器)各位来控制优先级,IP各位定义如下表3.3所示。
表3.3 中断优先权寄存器IP
(四)中断响应
1. 中断响应的条件
⑴总中断允许开关接通;
⑵该中断源发出中断请求;
⑶该中断源中断允许位置1;
⑷没有同级或者更高级的中断正被服务。
2. 中断响应过程
其流程图如图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 其中M1、M0为工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择,选择情况如表3.5所示。
表3.5 定时/计数器的工作方式
① C/T:定时或计数方式选择位。
当C/T=1时工作于计数方式;当C/T=0时工作于定时方式。
②GATE:门控位。
如果GATE=1,芯片外部中断请求信号引脚INT0控制定时器/计数器T0的启动,芯片外部中断请求信号引脚INT1控制定时器/计数器T1的启动,只有向外部中断请求信号引脚INT0或INT1输入高电平时,MCS 才开始启动计数。
如果GATE=0,定时/计数器T0、T1的启动与外部中断请求信号引脚INT0和INT1无关。
一般情况下GATE=0。
第四节数据存取模块
一、AT24C02简要介绍
AT24C02是电可擦除PROM,采用了256×8-bit的组织结构以及两线串行接口。
电压可允许低至1.8V,待机电流和工作电流分别为1μA和1mA。
AT24C02具有页写能力,每页为8bit。
通过I2C(两线式串行总线)与单片机通信。
有2K 的储存空间。
引脚功能介绍如表3.6所示。
二、工作方式
传感器将采集来的经信号整形以后传送给单片机,单片机通过软件程序运算得出里程数,通过AT24C02实现数据的存取。
在存取之前CPU都会给AT24C02一个确认信号,在存储数据过程中,一旦信号确认,MCS就会通过SCL口将自身存储单元的数据传给AT24C02的内部地址。
当要提取总里程时,MCS要给外部存储器一个读信号,一经确定,就会通过SDA口从AT24C02的地址单元中取出数据,累加显示。
电路图如图3.6所示。
图3.6 数据存取模块电路图
第五节显示模块
一、外界芯片74LS245/74HC138。