《摩托车测速表的设计(共19页).doc》由会员分享,可在线阅读,更多相关《摩托车测速表的设计(共19页).doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 专业课程设计 课程设计任务书20102011学年第 二 学期 一周分散,第 18 周20周集中 题目摩托车测速表的设计内容及要求(1) 利用光电转换器实现车轮转速的测量(2) 利用单片机实现速度的计算和显示(3) 测速范围:1 80 KM/小时(4) 显示精度:1KM显示器单片机信号处理光电检测进度安排1、分散阶段:根据指导教师布置的题目,查资料,确定设计方案,画出电路图。2、第18周:软件编程,进行模块训练。3、第1920周:完成课题的设计、制作、调试,专业课程设计测试及上交报告。学生姓名: 指导时间指导地点:E 楼 404 室任务下达2011 年 6 月 15
2、日任务完成2011 年 7 月 8 日考核方式1.评阅 2.答辩 3.实际操作 4.其它指导教师系(部)主任注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。摘 要摩托车等交通工具成为了当代人出行不可少的代步工具,像这种以车轮转动前进的交通工具在行驶中不免要有时速表。以便于司机掌握车子的速度。本课题主要研究转速的测量。通用于各类需要测转速的环境中。转速是各类车轮运行过程中的一个重要监测量,目前国内外常用的转速测量方法有离心式转速表测速法、闪光测速法、光电码盘测速法和霍尔元件测速法等。本文介绍了一种基
3、于AT89S52单片机的光电开关转速测量系统的设计。系统采用对射式光电开关产生与齿轮相对应的脉冲信号,使用AT89S52单片机采样脉冲信号并计算每分钟内脉冲信号的数目,即电机对应的转速值,最终系统通过数码管实时显示电机的转速值。经过仿真测试和软硬件系统的搭建,本系统满足设计要求,且结构简单、实用。系统在降低测速器成本,提高测速稳定性及可靠性等方面有一定价值,具有广泛的应用前景。关键字:光电开关、转速测量、单片机目 录前言45814181920212223前 言随着科技的飞速发展,计算机应用技术日益渗透到社会生产生活的各个领域,而单片机的应用则起到了举足轻重的作用。单片机又称单片微控制器,就是把
4、一个计算机系统集成到一个芯片上。它完整地包含了计算机内部的CPU(运算器、控制器)、程序存储器(相当于计算机的硬盘)、数据存储器(相当于计算机的内存)、输入输出端口等。虽然它的运算速度无法和计算机相比,但在一些实际的控制应用场合已经足够使用了。对于高等院校电子类和计算机类的学生,学习单片机是很重要的,而进行应用单片机的课程设计更是重中之重,将所学理论知识应用到实际,使更加全面的了解和掌握单片机的应用。在工程实践中,经常会遇到各种需要测量转速的场合,例如在车轮、发动机、电动机、机床主轴等旋转设备的试验运转和控制中,常需要分时或连续测量、显示其转速及瞬时速度。为了能精确地测量转速,还要保证测量的实
5、时性,要求能测得瞬时转速。本文提出一种基于STC89C52单片机实施电机转速测量的方法,利用光电开关采集脉冲信号,通过定时计数算法程序,将转速结果实时显示出来。第一章 系统方案的选择与论证1.1系统设计内容与要求 (5) 利用光电转换器实现车轮转速的测量(6) 利用单片机实现速度的计算和显示(7) 测速范围:1 80 KM/小时(8) 显示精度:1KM1.2 系统总体设计1.2.1 系统基本设计方案根据设计要求,我们可以把整个方案设计为光电检测模块、信号处理模块和7279显示模块。其各模块之间的关联如图1.1所示:信号处理单片机光电检测显示器图1.1测速系统基本模块框图1.2.2 方案比较与论
6、证车轮光敏三极管 信号转换7279显示单片机处理光敏二极管图1.2方案一方框图方案一:包括传感器、处理器和显示3个部分。其方框图如图1.2所示。在该方案中传感器是由红外发光二极管,和红外光敏三极管构成。测速的过程为:在车轮的转轴上安装一个圆盘,并在圆盘的边缘处开多个孔让二极管发出的红外光刚好可以通过。在圆盘的上下方分别安装好发光二极管和光敏三极管,当车轮转动时就可以通过圆盘来改变光敏三极管接收的光线,从而产生点位信号的变化,这样就构成了一个收发检测系统,可以检测车轮的转速。运用的原理和光电耦合器是相同的。车轮霍尔传感器信号转换 7279显示单片机处理图1.3方案二方框图方案二:由传感器、处理器
7、和显示3个部分几部分组成,但所选择的传感器类型不同,其方框图如图1.3所示。此方案的测速系统主要是由开关型霍尔传感器以及磁钢构成,由它们来检测车轮的转速。工作方式为:将磁钢安装在车轮的转轴上,而霍尔传感器则放在转轴的旁边,霍尔传感器连接在电路中,当磁钢随转轴经过霍尔传感器时,由开关型霍尔传感器的工作原理知,此时将输出一个低电平信号;而当磁钢离开霍尔传感器后,又将输出一个高电平。这样通过高低电平的转换,将其送入单片机后就可以测量它的转速。2.3 方案选择两个方案的主体电路相同,只是传感器的选择不同。而选择开关型光电传感器作为此次课程设计的光电检测模块的设计方案。有以下几个原因:(1)光电开关原理
8、简单,电路十分简易。(2)霍尔传感器价格昂贵,库房没有。(3)用光电开关作为传感器时出现问题也易于调试。鉴于以上考虑,最终选定方案二为本次课程设计方案。1.2.3 设计方案确定通过以上综合分析可以看出,方案一具有本次课程设计综合设计的优点,因此摩托车测速系统模型采用方案一来设计。即:单片机:标准STC89C52光电检测:用发光二极管和光电三极管模拟速度显示:采用单片机最小系统板上的7279接数码管实现第二章 系统硬件单元电路设计2.1 主控制系统主控制器采用STC89C52,是一款性能稳定的8位单片机。单片机的T0口作为外部中断口来计外部传感电路产生的脉冲个数,P1口的P1.0-P1.3口外接
9、7279显示模块。具体设计电路图见方案一的附录图1所示。2.2 最小控制系统 单片机最小系统电路如图2.1所示,由主控器STC89C52、时钟电路和复位电路三部分组成。单片机STC89C52作为核心控制器控制着整个系统的工作,而时钟电路负责产生单片机工作所必需的时钟信号,复位电路使得单片机能够正常、有序、稳定地工作。本系统设计的52最小系统板操作简单,使用方便,在PC机上编好程序后,经过编程器生成Hex文件后,然后用PC机串口通过STC-ISC程序下载软件能够非常方便地将程序烧到单片机中。图2.1 最小系统板电路2.2.1 时钟电路 单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一
10、拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。本设计中此采用内部时钟方式,如图2.2所示,以石英晶体振荡器和两个片电容组成外部振荡源。片内的高增益反相放大器通过XTAL1、XTAL2外接,作为反馈元件的片外晶体振荡器与电容组成的并联谐振回路构成一个自激振荡器,向内部时钟电路提供振荡时钟。振荡器的频率取决于晶振的振荡频率,振荡频率范围为1.212MHz。工程应用时通常采用6MHz或12MHz。图中X1为12MHz,电容C2、C4为33pF,它们一起构成此单片机的自激振荡器。 图2.2 时钟电路连接图2.2.2 复位电路单片机的RST引脚为复位(Re
11、set)端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的低电平,就可以实现系统复位,使单片机回到初始状态。如图2.3所示,本设计采用手动复位,用一个电容与一个10K电阻串联组成,电阻接VCC,电容接地,RESET脚接在它们中间,RC选择10uF,按键与200R电阻串联,在电容两端并联,就成了按键复位电路,未上电时,RST端为高电平,只要按下这个按键,RST端转换为低电平,经过两个机器周期后,单片机就能复位。图2.3 AT89S52单片机处理电路2.3 光电脉冲产生模块光电开关主要采用了光电传感器的基本特性设计而成。当有光照射时,二极管PN结附近受光子轰击,使被束缚在价带中的电子获得能量
12、,迁跃到导带成为自由电子,同时价带中产生自由空穴,这些电子空穴对,对多数载流子影响不大,而对少数载流子来说,其数目大大增加,在反向电压的作用下,反向饱和漏电流增大,这时相当于光敏二极管导通,并且光照度愈大,光电流也愈大;当无光照射时,电路中仅有很小的反向饱和漏电流,二极管截止。OPTOISO1为光电传感器使用VCC=5V电源(如图2.4),可以安装在车轮处。当出租车在行进过程中,则车轮就会不断对它遮挡,从而产生一系列脉冲。而74LS14是作为反相器的功能来使用,可以使OUT口输出的脉冲符合TTL电平,直接可输入到89C52的T0口。设计中以光电开关作为传感器元件,并且在实现阶段用函数信号发生器
13、模拟光电传感器实现计程脉冲的形成。图2.4 光电脉冲的转换电路2.4速度显示模块本设计选用HD7279来显示电路。HD7279A是一种管理键盘和LED显示器的专用智能控制芯片。HD7279的引脚图如图2.5。HD7279是一片具有串行接口的,可同时驱动8位共阴极数码管的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示,键盘接口的全部功能。而且HD7279内部含有译码器,可直接接受BCD码或16进制码,并同时具有两种译码方式。此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。本次设计主要使用到闪烁控制指令、读键盘控制指令等。图2.5 7279显示电路引
14、脚说明:VDD: 正电源CS: 片选DATA: 串行数据输入输出端KEY: 按键有效输出端SG-SA: 段g段a驱动电路DP: 小数点驱动输出DIG0-7: 数位07驱动输出RC: RC振荡器连接端VSS: 地CLK: 时钟输出端CLK0: 振荡输出端RES: 复位端DIG0DIG7和SASG同时还分别是64键盘的列线和行线端口,完成对键盘的监视,译码和键值的识别。在88阵列中每个键的键码是用十六进制表示的,可用读键盘数据指令读出,其范围是00H3FH。 HD7279与微处理器仅需4条接口线,其中CS为片选信号(低电平有效)。当微处理器访问HD7279(读键号或写指令)时,应将片选端置为低电平
15、。DATA为串行数据端,当向HD7279发送数据时,DATA为输入端;当HD7279输出键盘代码时,DATA为输出端。CLK为数据串行传送的同步时钟输入端,时钟的上升沿表示数据有效。KEY为按键信号输出端,在无键按下时为高电平;而有键按下时此引脚变为低电平并且一直保持到键释放为止。RC引脚用于连接HD7279的外接振荡元件,其典型值R=1.5k,C=15pF。RESET为复位端。该端口由低电平变成高电平并保持25ms即复位结束。通常,该端口接+5V即可。DIG0DIG7分别为8个LED管的位驱动输出端。SASG分别为LED数码管的A段G段的输出端。DP为小数点的驱动输出端。HD7279片内具有
16、驱动电路,它可以直接驱动1英寸及以下的LED数码管,使外围电路变得简单可靠。A-G和DP为显示数据,分别对应7段LED数码管的各段。当对应的数据位为1时,该段点亮,为0时则不亮。此指令灵活,通过造字形表,可以显示用户所需的字符。字形码表如表2.1所示:显示字符显示码显示字符显示码07EH65FH130H770H26DH87FH379H97BH433HF47H55BH表2.1 字形码表第三章 系统软件设计系统软件采用汇编语言,在Windows xp环境下采用KeiluVision2进行编写,对AT89C52进行编程以实现各项功能。本控制系统控制程序主要分为以下几个模块:主程序、中断子程序、显示子
17、程序。3.1 主程序流程图主程序主要负责总体程序管理,实现人机交互设定。主程序开始时将完成程序的初始化,包扩内存的规划、定时器的工作模式、中断方式等的设定,然后直接调用各个功能模块子程序。本系统采用STC89C52中的T0定时器和T1计数器配合使用对转速脉冲定时计数。计数器T1工作于计数状态对外部脉冲进行计数;T0工作为定时器方式每次定时10ms。本设计程序编程的思想就是在给定的10ms之内,用单片机自带的计数器T1对外部脉冲进行计数。其主程序流程图如图3.1所示:Y平显示数据关闭计数器T1处理TH1,TH0 数据T0count =100等待50ms 开启计数器T1开启定时T0N平初始化T0,
18、T1开始图3.1 主程序流程图3.2 T0中断子程序流程图 T0定时中断程序主要是完成10ms的定时任务,并且对变量buf_min进行加一处理,其中在对T0进行赋初值时,选择为10236而不是10000。主要是c语言在经过反汇编后,一条c语句将会编译成几条语句,这样就增加了指令执行的时间,使定时产生误差,而在经过多次调试后,选择10236为T0初值是最接近10ms的。其程序流程框图如图3.2所示:Y进入定时中断关闭定时器T0开启定时器T0T0count加1TH0,TL0赋值退出中断图3.2 T0中断子程序流程图3.3 脉冲计数处理子程序流程图将定时器设置为方式1,对外部脉冲进行计数,并判断ti
19、me0_int的值。当time0_int =1时,将脉冲的数值由十六进制转换成十进制,按转速转换公式转换后,载入数据缓冲区。其程序流程图如图3.3所示:开始初始化计数器T1计数脉冲按公式:转速=60*脉冲数/(齿轮数*T)计算数据time0_int =1?数据缓冲区 图3.3 脉冲计数处理流程图3.4 7279速度显示子程序流程图定时器设置为方式1,定时10ms。当定时达到10ms时,产生中断,对数码管进行刷新,显示转速,并使时间计数标志T加1。当时间计数标志T=500时,使time0_int置1,取出计数器在此时间内计算的脉冲数,通过转速计算程序计算得出转速值后,存入数据缓冲区,供7279数
20、码管显示使用。流程图见图3.4:初始化定时10ms?T=500?time0_int =1数据缓冲区显示时间计数清零T=0产生定时中断开始时间计数T0count 图3.4 7279速度显示流程图第四章 系统测试及性能分析 测试时按硬件电路测试和软件程序的测试两个大块,其中软件程序测试包括7279显示程序和脉冲计数程序两个部分。 4.2 硬件电路的测试 硬件电路的测试主要包括光电开关调试和电压反相器调试。这些测试主要是在焊接电路板的整个过程当中进行,以便确保每一个电路元件都能工作正常。4.2 软件程序测试4.2.1 7279显示程序 不通过T0中断检测脉冲个数,直接给T0count赋值,依据给T0
21、count赋不同的值观察7279连接的数码管上是否按赋的初值显示出来。通过多次给T0count赋不同的值,从而判断显示模块是否出现问题。测试完7279之后,通过这种方法还可用于对数值计算处理模块进行调试。4.2.2脉冲计数模块程序当7279显示程序测试无误之后,就可以对脉冲计数模块进行调试了。因为显示已经没有问题,通过用信号发生器给T0端口送入不同频率的脉冲,可观察数码管的显示是否正确。调试过程中出现的误差,可以依据误差的大小给予补偿。4.3 性能分析 本系统以STC89C52单片机为核心,开发程序调试阶段采用Keil软件进行编程及修改。设计的摩托车测速系统可用于各种汽车速度及电机转速的测量。
22、显示采用7279连接数码管显示,当超出量程后还会显示F作为提示,就像汽车超速提示一样,具有同样的功能。该系统功能基本达到设计要求,具有很好的应用范围。第五章 总结经过将近两个星期的设计和调试,摩托车测速系统的设计基本完成。其功能基本符合任务书的要求,在做完此次课程设计时,由于时间和自己知识储备不足等多种原因,该课设所设计的系统还是存在很多的不足之处,敬请老师批评指正。在本次课程设计中,介绍了一种基于STC89C52单片机的摩托车测速系统,该测速系统采用光电传感器敏感速率信号,具有频率响应快、抗干扰能力强等特点。光电传感器的输出信号经信号处理后,通过单片机对连续脉冲记数来实现转速测控,并且充分利
23、用了单片机的内部资源,有很高的性价比。经过测试并对误差进行分析发现,该系统的测量误差几乎为0,并且在测量范围内转速越高测量精度越高。所以该系统在一般的转速检测和控制中均可应用。虽然本次课程设计此课题对硬件要求不高,主要是对于脉冲信号的处理、计算及显示。但为了让光电传感部分测量的更加精确。也让我们查找了很多资料,通过反相器可以让输出脉冲更加规范。速度显示用到了7279显示模块,但我们几乎都不会对显示部分进行编程,在这里让我们调试了很长时间才弄出来。通过软件的调试,我发现程序中利用子程序的编程会让程序不仅易读,而且易于调试。通过本次课程设计,我对单片机的工作原理和应用有了深入的理解,掌握了单片机系统软硬件设计的基本方法,对一个课题如何画流程图,编写程序等有了一定的认识。使我深刻体会到单片机技术应用领域的广泛,也让我了解到单片机技术对当今人们生活的重要性。最后,在本课设的过程中,杨炎老师给了我们给了精心的指导和帮助,在次,表示真诚的谢意! 专心-专注-专业
限制150内