基于单片机的转速表设计2.doc_第1页
基于单片机的转速表设计2.doc_第2页
基于单片机的转速表设计2.doc_第3页
基于单片机的转速表设计2.doc_第4页
基于单片机的转速表设计2.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成都理工大学工程技术学院毕业论文基于单片机的转速表设计作者姓名:邹光明专业名称:自动化指导教师:杨明 讲师基于单片机的转速表设计摘要随着现代科学技术的发展,计量技术相应地也得到迅速发展。在这个领域中,数字仪表越来越现实它的优越性和生命力:精度高、速度快、便于记录、控制和传递,因而数字式仪表得到了广泛的应用。在转速计量方面,数字转速表更是一种理想的测量仪器。随着微型计算机的广泛应用,特别是高性能价格比的单片机的出现,以单片机为核心的数字转速表更是得到了广泛应用。本文便是运用AT89C51单片机控制的数字式转速表。电机在运行过程中,需要对其进行监控,转速是一个必不可少的参数。数字式转速表就是对电机转速进行测量,并可以和PC机进行通信,显示电机的转速,并观察电机运行的基本情况。本设计主要用AT89C51作为控制核心,由霍尔传感器,LED数码显示管,施密特触发器等构成。充分发挥单片机的性能。本文重点是数字转速表的硬件电路和软件设计。本设计优点是电路较简单、功能完善、测量速度快、精度高、控制系统可靠,性价比较高等特点。关键字:AT89C51 转速表 数字- 41 -AbstractWith the development of modern,measurement technology has been rapid development. In this area,the digital instrument is more realistc its superiority and vitality: high precison, fast, easy to record, easy to control and transmission, so the digital instrument has been used widely. In the measurement of motor speed,digital tachometer is an ideal measuring instruments. With the extensive application of micro-computer, especially the emergence of single-chip, high performance and low cost, making the digital tachometer has been widely applied as the microcontroller core.This article, we use the AT89C51 microcontroller to control the digital tachometer. During operation, the motor needs to be monitoring, speed is an essential parameter. Digital tachometer to measure motor speed, and can communicate with a PC, display the motor speed, and observe the motor running.This design with AT89C51 as control core, by the Hall sensor, LED digital display tube, the composition of the Schmitt trigger,and so on. Give full play to the performance of the microcontroller. This article focuses on the hardware and software design of the digital tachometer.The advantage of a simple hardware and software capabilities improve, measuring speed, high precision and control system reliable, cost-effective and so on.Keywords: AT89C51,Tachometer,Digital目录摘要IAbstractII目录III前言11 转速表原理21.1转速表原理分析21.2转速计算及误差分析21.3转速测量41.4本章小结52 单片机介绍62.1 AT89C51简介62.2 AT89C51引脚说明72.3其他功能92.4本章小结93 硬件电路103.1转速信号获取电路103.2信号处理电路123.2.1放大整形电路123.2.2施密特触发器133.3显示电路143.3.1键盘接口143.3.2显示器接口153.3.3 LED显示器183.3.4 LED工作原理193.4直流稳压电路203.5报警电路203.6本章小结214 软件设计224.1主程序框图224.2按键程序框图234.3显示程序框图254.4报警子程序框图264.5本章小结26结论27致谢28参考文献29附录一:系统总图30附录二:主程序31附录三:按键程序37附录四:显示程序39附录五:报警子程序41前言转速表是机械行业必备的仪器之一,在自动化生产设备和旋转运动装置中应用十分广泛。它可以用来测定电机的转速、线速度或频率。常用于电机、电扇、造纸、塑料、化纤、洗衣机、汽车、飞机、轮船等制造业。目前广泛使用的普通式转速表,其电路结构比较复杂,稳定性差,成本高,抗干扰能力差,测量精度与范围不能兼顾,而且采样的时间常,难以测得瞬时转速,更不具备如转速值的永久存储、报警值设置,定时打印等功能。随着大规模集成电路的发展,微型计算机的应用愈来愈广泛,愈来愈深入。其中单片机构成的嵌入式系统已经愈来愈受到人们的关注。现在可以毫不夸张的说:没有微型计算机的仪器不能称为先进的仪器。嵌入式系统正是为了适应这一领域的需要而发展起来的一门新技术。单片机嵌入式系统是内部含有微型计算机用于完成智化功能的电子系统。它是先进的半导体技术、计算机技术和信息技术与各个行业的具体应用相结合的产物。它最大的特点是它的“嵌入”性,也就是它“嵌入”到仪器仪表的内部,使用者甚至感觉不到它的存在,但它却在那里“默默”地工作。它的优点是体积小、成本低、功能强、智能化。将单片机嵌入到转速表内可以很大程度上改善转速表的稳定性、抗干扰能力、体积、功能、测量精度与范围等性能。转速表性能的提高对机械行业的其他领域的发展起到不可忽视的促进作用。本设计就是以单片机为核心的数字式转速表,转速表要显示转速要解决很多问题,比如信号数据采集、数据计算、数据传送、数据显示等。本设计通过由传感器、放大电路、整形电路和单片机等组成的测量电路进行数据采集,通过设计软件进行计算、控制。所得转速由串行口送出到LED数码管组成的4位静态显示电路,用以显示转速。另外还有转速超限报警功能,用与单片机输入输出口连接的控制键输入转速上限,当所测量的转速超过这个值时,发出报警声音。实现人机对话。这次所设计出来的转速表的测量范围是09999r/min,相对误差小于0.3%,能自动变换周期,且具有声光报警功能。1 转速表原理1.1转速表原理分析目前常用的转速测量方法有M法、T法、M/T法。M法(即测频法)是指在固定的时间内测出转速传感器输出的脉冲个数。经分析得知,M法在测高速时相对误差较小。T法(即测周期法)是指在转速传感器输出脉冲周期内对时钟信号进行计数,测出转速脉冲周期,进而计算出转速。经分析得知,T法在测低速时相对误差较小。M/T法是指在M法基础上吸取了T法之优点而形成的。其测速过程是:在转速传感器输出脉冲是上升沿到来时启动定时(定时时间为Tc),同时计传感器输出脉冲个数和时钟脉冲个数,定时时间到,先停止对传感器输出脉冲的计数,待下一个传感器输出脉冲上升沿到来时在停止对时钟脉冲的计数,由记录的两脉冲m1和m2求出转速。假定旋转体每转一周,转速传感器输出p个脉冲,又设转速N,时钟频率为f0,则 (1-1)通过式(1-1)可方便地计算出转速,因为不存在误差,的最大误差为一个时钟,所以M/T法测速时的相对误差为: (1-2)在式(1-2)中,由于m2通常较大,固相对误差较小,即该测量方法精度较高,在本转速表设计中,我采用的是M/T法。为了减少误差,在转速小于3600rpn时采用T法计算转速,而大于3600rpn就进行M法计算转速。1.2转速计算及误差分析根据转速、周期、频率之间的关系可知 (1-3) (1-4) (1-5)式中,被测转速,r/min;转速信号周期,s;转速信号频率,Hz;计算脉冲的周期,又称时基,本仪表Tc=4us;将式(1-5)带入(1-3)得 (1-6)用十六进制数表示为式中N已存入75H、74H、73H单元。利用除法子程序,即可求出转速。下边计算该系统的相对误差。分别对式(1-3)和式(1-5)求微分 (1-7) (1-8)将式(1-7)代入(1-8),得 (1-9)式中,N-量化误差,N=1个计数脉冲,又已知时基Tc=4us,故 (1-10)由式(1-10)可知,相对误差与频率成正比,即相对误差随转速的升高而升高。因此,为了提高测量精度,高转速时需要连续测量数个周期。本设计中为4个周期,即测得的N为4个周期内的总和,所以 (1-11) (1-12)用十六进制数表示,为对式(1-12)进行微分因此可求出高速测量时的相对误差同样,代入Tc=4us,N=1个脉冲,则 (1-13)将式(1-13)与(1-10)比较可知,采用多周期测量相对精度大大提高。例如,当n=3000r/min时,由式(1-10)可求出,其相对误差为当n=6000r/min时,由式(1-12)计算出相对误差为该仪表设置的临界转速为3662r/min,其对应的每周期计数脉冲个数。开机时,首先按低转速测量,然后判转速n是高于还是低与3662r/min。若低于此临界值,则仍按低速测量,若高于它,便主动转入高转速测量,即连续测量4个周期。1.3转速测量由式(1-6)和(1-12)可知,只要能够求出脉冲个数N,即可求出转速。为了得到计数脉冲,可以采用门控方式的硬件技术方法,也可以采用中断方式的软件计数方法。门控方式计数:由AT89C51定时器/计数器T0工作原理可知,当其工作在计数方式时,只要T0口上有负跳变,计数器就加1。CPU在每个周期的S5P2状态时,采样T0,所以需要2个机器周期才能识别一个T0的负跳变,即T0的周期至少应等于2倍机器周期。若晶振频率为6MHz,6分频后得到ALE信号,鼓ALE周期为1us,机器周期为2us。由此可知,最低计数脉冲周期Tc为4us,可由ALE信号经74LS74中的两个D触发器4分频后取得。中断方式计数:高转速时为了连续测量4个输入周期,可以采用中断方式计数。在初始化或前一次测量结束时,单片机禁止“外部中断0”和“定时器0溢出中断”。设置“外部中断0”为负跳沿触发方式,设定“计数器0”为非门控计数方式,然后等待中断。外部中断负脉冲一到,立即启动“计数器0”工作,对T0的4us计数脉冲进行计数。计到4个测量周期时,停止“计数器0”工作,禁止外“中断”,恢复测量周期常数3,并计得的脉冲数存入相应单元。门控方式和中断方式计数,有效的解决了精度测量输入脉冲周期和高低量程自动切换问题,测得计数脉冲个数后,即可转入计算转速n的子程序,计算结果的BCD码相应的存入4个存储单元,以备显示。1.4本章小结通过对转速表原理、计算、误差、转速测量等的分析,我们可以对本转速表的相关原理有一定了解:(1)本转速表采用M/T法进行转速测量。在转速小于3600转时采用T法,转速大于3600转时用M法。(2)该仪表设置的临界转速为3662r/min,其对应的每周期计数脉冲个数。开机时,首先按低转速测量,然后判转速n是高于还是低与3662r/min。(3)门控方式和中断方式计数,有效的解决了精度测量输入脉冲周期和高低量程自动切换问题,测得计数脉冲个数后,即可转入计算转速n的子程序,计算结果的BCD码相应的存入4个存储单元,以备显示。2 单片机介绍2.1 AT89C51简介该仪表机采用的是美国ATMEL公司生产的一种高性能、低功耗、带有4K字节闪烁存储器的8位CMOS单片机(AT89C51)。它与MCS-51系列单片机的软硬件完全兼容。内部4K字节的存储器既有EPROM的可编能力。又有E2PROM的电擦除特性;既有RAM的访问速度(约60ns),又有三级加密功能。工作时,AT98C51的T0用于记录转速脉冲信号,T1用于内部时钟计数,P1.7用作T0、T1计数器的门空信号,以提高测量精度。AT89C51模块组成及功能:AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本如图2.1所示:图2.1 AT89C51引脚图AT89C51的主要功能特性: 兼容MCS51指令系统 4k可反复擦写(1000次) 32个双向I/O口 可编程UARL通道 两个16位可编程定时/计数器 全静态操作0-24MHz 1个串行中断 1288bit内部RAM 两个外部中断源 共6个中断源 可直接驱动LED 3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能2.2 AT89C51引脚说明AT89C51的引脚可分为端口、控制和电源三类。1)端口线:AT89C51共有四个I/O端口,分别为P0、P1、P2、P3都是双向的,且每个端口都有锁存器和8条线。P0口有三个功能:外部扩充存储器时当作数据总线(D0-D7) ;外部扩充存储器时当作地址总线(A0-A7);不扩充时可做一般I/O使用,但内部无上拉电阻。在Flash编程时,P0口接收指令字节而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。P1口是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉倒高电位,这时可用作输入口。P1做输入口使用时,因为内部有上拉电阻那些被外不信号拉低的引脚会输出一个电流(IL)。对Flash编程和校验程序时,P1口接收低8位地址。P2口有两个功能:扩充外部存储器时当作地址总线(A8-A15) ;做一般I/O 使用,其内部有上拉电阻。对Flash编程和校验程序时,P2口接收高8位地址。和一些控制信号。P3口有两个功能:做一般I/O 使用,其内部有上拉电阻;特殊功能,具体由特殊寄存器来设置如下表4.1所示。对Flash编程和校验程序时,P3口接收一些控制信号。表2.1 P3第二功能定义端口引脚说明P3.0(串行输入口)P3.1(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4(定时器0 外部计数输入)P3.5(定时器1 外部计数输入)P3.6(外部数据存储器写选通输出)P3.7(外部数据存储器读选通输出)2)控制线:ALE/PROG地址锁存允许/编程线:地址锁存使能信号端,其功能有三:AT89C51外接RAM/ROM:ALE接地址锁存器8282、8212 的STB 脚,74373的EN 脚。当CPU对外部存储器进行存取时,用以锁住地址的低位地址;AT89C51未外接RAM/ROM:在系统中未使用外部存储器时,ALE 脚也会有1/6石英晶体的振荡频率,可作为外部时钟;在烧写EPROM时ALE作为烧写时钟的输入端。EA/VPP允许访问片内/外存储器/编程电源线:其接高电平时,CPU读取内部程序存储(ROM);当读取内部程序存储器超过0FFFH 时,在扩充外部ROM条件下自动读取外部ROM。PSEN片外ROM选通线:程序存储使能端。 XTAL1片内振荡器反相放大器和时钟发生线路的输入端。使用片内振荡器时,连接外部石英晶体和微调电容。XTAL2片内振荡器反相放大器的输入端,当使用片内振荡器时,外接石英晶体和微调电容。RST/VPD复位/备用电源线:RST接高电平,使AT89C51处于复位(即初始化)工作方式。RST/VPD还可以作为备用电源输入端。当主电源VCC降低到规定电平以下时,RST/VPD线上的备用电源自动投入,以保证片内的RAM中信息不丢失。3)电源线:VCC为+5伏电源线,VSS为接地线。2.3其他功能芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.4本章小结通过对AT89C51单片机的介绍,我们单片机的基本结构有所了解,也可以得出他的特点:(1)功能齐全,应用可靠,抗干扰能力强。有40个引脚,有控制线、端口线、电源线,且有些引脚具有第二功能,使其功能等都更加强大(2)发展迅速,前景广阔,易于普及。单片机的P口都是准双向口为用户留有更多的选择。别且他还有芯片擦除功能,使得数据的写入读取更加方便3 硬件电路本转速表硬件电路框图如图3.1所示。该电路由转速信号获取电路、功能按键、LED显示、报警电路和单片机等几部分组成。图 3.1 转速表硬件电路框图3.1转速信号获取电路转速信号一般是不能直接得到的,所以要把转速信号输入到单片机中,首先要把转速信号提取出来,一般转速信可以号采用传感器来得到。常用的传感器有霍尔传感器和光电传感器。霍尔传感器是靠磁性感应来采集脉冲的,使用时间长了会出现磁性变小的情况,影响脉冲的采样精度。而光电传感器则不存在这种情况。本次设计就选用了光电传感器。(1)光电传感器光电传感器是一种应用非常广泛的器件,有各种各样的类型,如透射式、反射式等,其基本原理基本相同,都是当发射管光照射到接收管时,接收管导通,反之关断。以透射式为例,其原理图如图3.2所示。图3.2 透射式光电传感器当不透光的物体挡住发射与接收之间的间隙时,开关管关断,否则打开。根据这一特性可以制作一个遮光叶片安装在转轴上,当扇叶经过时,产生脉冲信号。当叶片数较多时,旋转一周可以获得多个脉冲信号。(2)传感器电路图3.3所示为本转速表传感器电路。图3.3 传感器电路由于红外光不可见,无法用肉眼识别发光信号是否在工作,故将红外线的输出回路串接了一个普通光电二极管作为判别光源发生回路是否为通路。所选用的红外二极管IR3401,在正向工作电流为20mA时,其导通电压为1.2-1.5V,所选用的发光二极管的正向压降一般为1.5-2.0V,电流为10-20Ma。R的计算公式为:计算得:Rmin=425;Rmin=465。设定中所选阻值为430(RminRRmax)。转速传感器输出电压幅度在0-1.6mV呈正弦波变化,由此可见,红外线接收三极管的光信号转化为电信号的电压Uo很微弱(一般为mV量级),需要进行信号处理。具体的处理电路将在后面介绍。3.2信号处理电路经过传感器取得的转速信号其信号强度、波形类型可能都是不能被单片机直接接收的,所以取得的信号要经过处理才能输入到单片机中。3.2.1放大整形电路由传感器得到的信号要经过处理才能发送到单片机中,信号一般要经过放大整形处理,本转速表选用LM393对输出的信号进行放大整形。整形电路的主要作用是将正弦波信号转化为矩形脉冲信号,正弦波信号电压的最大幅值约为4.8V,最小幅值为0V。其整形电路如图3.4所示。图3.4 放大整形电路3.2.2施密特触发器数字系统中,矩形脉冲在传输中经常发生波形畸变,出现上升沿和下降沿不理想的情况,这时可用施密特触发器进行整形,获得较理想的矩形脉冲。1)施密特触发器结构图3.5 555定时器施密特触发器是脉冲波形变换中经常使用的当输入电压大于电路导通电压时,输出维持于一个恒定的电压值,当输入电压低于电路截止电压时,输出维持于另一个恒定的电压值。将555 定时器高触发端TH和低触发端TR连接起来作为信号输入端,即可构成施密特触发器,其实际接线如图3.6所示:图3.6施密特触发器实际接线图2)施密特触发器工作原理(a)上升过程:在图3.6中R1取2.4K,R2取2K,Vco端经0.01uf电容旁路接地。电源电压5V。由于比较器C1、C2的参考电压不同,因而基本RS触发器的置0信号(=0)和置1信号(=0)必然发生在输入信号的不同电平,因此输出电压v0由高变低和由低变高所对应的vi值亦不相同。首先来分析首先分析vi从0开始升高的过程。由图1可知:当vi1/3Vcc时,= 1,= 0,Q = 1,Q = 0,故;当1/3Vccvi2/3Vcc以后,=0,=1,Q=1,Q=0,故不变;当vi上升到2/3Vcc时,电路的输出状态跃迁;当vi再增大时,对电路的输出状态没有影响。(b)下降的过程:当vi高电平逐渐下降且1/3Vccvi2/3Vcc时,=1,基本RS触发器保持原状态不变,Q=0,Q=1,输出v0 =VOL不变;当vi1/3Vcc时,=1,=0,Q=1,Q=0,输出;当vi下降到1/3Vcc时,电路输出状态又一次跃迁:施密特触发器的下限阈值电压。(c)回差电压为:根据上面分析由图3.6接成施密特触发器后,用低频信号发生器输出的正弦波信号作为vi,频率在2kHz左右,用双踪示波器在vi和vo端观测波形,其输出端vo输出为矩形波。调节电源电压,矩形波前后沿将随着变化。3.3显示电路3.3.1键盘接口键盘是一组开关的集合,是单片机系统中最常用的输入设备之一。键盘可以分为独立联接式和矩阵式两类,每一类按其译码方法又都可分为编码及非编码两种形式。编码键盘程序设计简单,但硬件电路复杂,价格较高;非编码键盘用软件来实现识别键、编码转换、去抖等功能,硬件电路简单,价格便宜。现代微机系统中广泛采用非编码键盘,采用行扫描法识别按下的按键。在本次设计中我采用的是独立联接式非编码键盘。这是最简单的键盘结构,每一键互相独立地各自接通一条输入数据线,如图3.7所示。任何一个键按下时,与之相联的输入数据线即被置0(低电平),而平时该线为1(高电平)。要判别是否有键按下,用单片机的位处理指令,十分简单。图3.7 独立联接式非编码键盘在这次系统设计当中,我预先设置了6个按键,1键作为数据写入,2实现1功能,3#号键作为左移功能,4键实现报警取消功能键,5#键作为所存的峰值复位,6#作为显示峰值转速,为系统将来可能进一步的完善作准备。3.3.2显示器接口在单片机系统中,最常用的两种显示器是发光二极管显示器(LED)和液晶显示器(LCD)。本次设计,我采用发光二极管显示器。七段LED有共阴极与共阳极两种。为了在七段LED上显示字母或数字,必须将其转换可通过硬件译码或软件来实现。本系统的输出部分就是LED显示驱动。驱动电路的主要作用是将从单片机传送出来的脉冲进行功率驱动,以便于在数码管上显示。它由集成电路MC14499和74LS06来担当。MC14499是MOTOROLA公司的高集成度LED显示驱动器,采用动态扫描方式显示驱动4个LED数码管。它集锁存、译码、驱动、扫描、时钟于一体。(它包括1个20位移位寄存器、1個锁存器、1個多路输出器)。它所需的辅助电路简单,在单片机数据传送时采用串行同步方式。用MC14499组成的单片机的显示电路,具有占用单片机软件资源小,不再外加电路即可于单片机协调工作,使用灵活方便,电路简单可靠,无需外加驱动器等特点。(1)引脚排列如图3.8所示。图3.8 MC14499引脚图(2)引脚说明:VDD:正电源端;VSS:电源地;ag:七段显示输出;dp:小数点显示输出;:4个位选通端;OSC:晶振输入端,外接电容,片內可产生200800Hz的扫描信号;D:串行数据输入端;CLK:时钟输入端,作为串行数据接收的同步信号;EN:使能端,为低电平时,允许MC14499接收串行输入数据;为高电平时,片内移位寄存器将数据送入锁存器中锁存。MC14499每次接收20位串行输入数据,前4位为4个LED的小数点选择位,后16位是4个LED的BCD码输入数据,一帧数据的传输格式如下3.1表所示:表3.1 MC14499 一帧数据表20 19 18 1716 15 14 1312 11 10 987654321LSB MSBIV段码LSB MSBIII段码LSB MSB II段码LSB MSBI段码LSB MSB小数点选择一帧数据输入完后,便被锁存起来,供4位LED显示使用,CPU只提供显示用的数据,数据的显示則是由MC14499对各位进行动态扫描实现,扫描频率由OSC端外接电容決定。MC14499的BCD码显示字节如表3.2所示:表3.2 MC14499的BCD码显示表BCD码显示字节BCD码显示字节00000100080001110019001021010A001131011I010041100II010151101U011061101-011171111熄灭由于MC14499的这4个位选通端必须通过一个反相驱动器后才能控制4个LED,所以在这次设计中我使用的是集电极开路高压输出的六反相缓冲器/驱动器74LS06,其引脚排列如图3.9所示。如图3.9 74LS06的引脚排列其管脚1,3,5,9,11,13为输入端;管脚2,4,6,8,10,12为输出端。74LS06输出低电平电流为40mA,为了能够驱动4个显示器,限流电阻的大小要配备合适。电源电压是5V,一个发光二极管的管压降约为1.2V,经过计算,限流电阻选1K左右合适。在串行口方式下,AT89C51单片机的串行输出端TXD提供时钟信号,串行口输入端RXD输出串行数据,选定P1口或P3口任意一根I/O线以提供MC14499所需的使能信号。在串行口方式下,应将AT89C51单片机串行口的工作方式置为0方式。串行口方式特别适合于系统硬件无相互间通道的情况。在该控制方式下应注意:AT89C51单片机串行口输出数据时,发送顺序为从数据低位到高位,而MC14499将BCD码数据译为十进制数时,却是将原数据的低位作为高位处理的,如将某次数据的最后八位10001001B(84H)送入MC14499时,从低位到高位被分布于其移位寄存器的1320单元中,即最低位0在13单元,最高位1在20单元,MC14499进行译码时,却是将0作为最高位,1作为最低位处理时,于是成为00100001B(21H),即段码3数据为0010B,显示器显示“2”,段码4数据为0001B,显示器显示“1”因此,必须将欲显示的压缩BCD码进行循环位移(即将最低位移至最高位,第二位移至第七位,其余以次类推)后再送入MC14499,以保证显示的正确性。MC14499 每次可接收的串行数据最多为20位,而AT89C51单片机由于8位机,每次送出的数据并非一定是20位,特别是在串行口控制方式下,串行口每次送出数据为8位,因此MC14499每次接收的数据必然多于或少于20位。当AT89C51单片机送出的数据多于20位时,MC14499接收的将是最后20位数据,20位以前多余的数据在移位过程中被后来的数据挤出;当AT89C51单片机送出的数据少于20位时,MC14499在接收移位过程中将保留一部分移位寄存器中原来的数据。AT89C51单片机每次发送完数据后,必须将MC14499使能端置位。这是因为MC14499进行译码输出的并非是其移位寄存器内的数据,而是其锁存器内的数据。将使能端置位有两个作用:第一,禁止MC14499再接收外来数据;第二,将移位寄存器内的数据送入锁存器中,以提供译码输出。3.3.3 LED显示器常用的LED显示器有LED状态显示器(俗称发光二极管)、LED七段显示器(俗称数码管)和LED十六段显示器。发光二极管可显示两种状态,用于系统状态显示;数码管用于数字显示;LED十六段显示器用于字符显示。本节只介绍LED七段显示器。通过数码管显示的数字来获取信息,加直观、快捷。其结构如图3.10所示: 图3.10 数码管结构图3.3.4 LED工作原理共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。为了在七段LED显示器上显示不同的数字或字符,首先要把数字或字符转换成相应的段码,字符数据字与LED段码各代码位的对应关系如表3.3所示:表3.3字符与LED段码对应关系数据字D7D6D5D4D3D2D1D0LED段dpgfedcba3.4直流稳压电路目前+5V直流稳压电源的工作电路均采用集成三端稳压器7805构成。集成三端稳压器因其稳压精度高、工作稳定可靠、外围电路简单、容易设计和制作、体积小、重量轻、成本低、维修简单等优点,所以在各种电源电路中得到了普遍的应用。7805集成三端稳压器的典型应用电路如图3.11所示,这是一个输出+5V直流的稳压电路。IC采用集成三端稳压器7805,C1、C2分别为输入端和输出端滤波电容,RL为负载电阻。其正常工作时,最大输出电流可达1A,当交流电网电压在220V上下波动10%,环境温度在1030度范围内。图3.11 集成三端稳压电路3.5报警电路在AT89C51单片机的P1.1口上接上一个报警电路。如图3.12所示,单片机P1.1口发出一串脉冲信号,经共射集复合放大电路放大后,使PS导通,发生振动;单片机没有脉冲信号时,电路工作为稳定状态(即不工作)。就这样SP两端形成振荡回路,发出报警声音。通过按键取消报警声,结束后又恢复稳态,等待下一串脉冲信号的到来。图3.12系统报警电路3.6本章小结本章主要对转速表硬件电路进行了分析设计,通过分析设计知道本转速表能够显示转速其主要过程为:光电传感器获取信号后,通过LM393、施密特触发器组成的信号处理电路处理得到能被单片机接收读取的脉冲信号,然后单片机通过门控、中断等计数方式计数脉冲,通过计算得到转速,再通过显示器接口驱动LED显示出相应的转速。当然,由于数码管、单片机、触发器等的电源要求,数码管个数限制等原因,报警电路、直流稳压电源电路本次设计也考虑进去了。4 软件设计AT89C51单片机,其指令系统与MCS-51完全兼容,首先是要对AT89C51进行初始化。初始化内容包括定时器、中断系统及各个单元内容的初始化。然后是进行键盘扫描,看是否有键按下,并判断出是哪一个键被按下,如果有,则进入到键处理程序;如果没有,则进入到主程序中,开始对脉冲信号进行采样、处理。这里是程序设计的关键,为了能够在定时条件下及时进行两种检测方式的转换,以减小对速度采样的影响,我是先按照M法进行采样和最后的速度计算处理,然后与我预先设定的转速大小进行比较判断,若小于或等于预先设定的转速,则认为电机处于低速运行,采用门控方式计数脉冲,程序进入显示部分;若大于预先设定的转速,说明电机正处于高速运行状态,还用门控法测量转速肯定是无法保证我最后的测量精度,此时应该采用采用中断方式计数脉冲,返回重新按中断法进行采样和最后的速度计算处理,然后程序再进入显示部分。4.1主程序框图本系统主程序流程如图所示。其功能是通过计数脉冲个数,通过单片机内部计算后,输入到显示器上显示转速。在运行中又加入了报警系统,和功能键,使整个系统智能化。如图4.1所示:图4.1主程序框图4.2按键程序框图功能按键的作用就是置入报警初值,KEY1、KEY2、KEY3、KEY4、KEY5、分别实现“报警值置入”、“+1”、“左移一位”、“完成报警值置入”、“解除报警信号”。图4.2按键程序框图4.3显示程序框图图4.3显示程序框图4.4报警子程序框图图4.4报警子程序框图4.5本章小结AT89C51软件编写前要对包括定时器、中断系统及各个单元内容的初始化。然后是进行键盘扫描,看是否有键按下,并判断出是哪一个键被按下,如果有,则进入到键处理程序;如果没有,则进入到主程序中,开始对脉冲信号进行采样、处理。在进行相关计算处理。最后程序再进入显示部分。结论通过各方面努力,本次毕业设计任务基本完成。转速表的转速信号获取电路、功能按键、显示部分、报警电路等功能均已实现,单片机能够测量出电机的转速并能显示在LED数码管上;测量范围在0r/min-9999r/min,精度在0.01%,都达到了较理想的状态。因为软件系统是AT89C51单片机内部运行的,所以要对整个系统初始化(设置输入首地址,脉冲技术初始化,报警系统初始化,功能按键初始化)。由于本系统采用5V直流电源供电,光电感器要选用工作电压的范围包含5V电压的可以省去再用一个电源的麻烦,单片机等都是工作在TTL电平的,光电感器输出的波形应为TTL电平,以便单片机能够识别。数码管要采用共阴数码管,因为数码管的灌电流可以大些达到几十毫安,但是拉电流比较小,采用共阳数码管可能因为电流过小而数码管不能点亮数码管。在设计中遇到很多我在平时学习没有掌握好的知识,模拟电子技术和数字电子技术,在单片机方面有有串行口应用和定时计数器的使用,还要对单片机整个系统进行抗干扰和调试处理。最重要的是单片机的程序设计(即汇编语言)。通过此次设计使我对以前学过的知识得到了重新的认识,利用毕业设计出现的问题然后结合书本知识解决问题,我觉得这种学习知识的方法能很效的掌握知识,我也应该通过这种理论联系实践的方法学习书本知识,这样才能更合理的、更科学的学习知识。通过查找资料然后通过老师、朋友的帮助,逐步对此毕业设计有了清晰的设计方案,我同时也更深的了解自己大学所学的知识,我也了解了自己所学的专业知识在以后工作方面的作用,也对自己找工作明确了方向。此设计的另一个目的是让我们更好学会学习,自己去发现问题,然后通过查找资料,通过请教各方前辈讨,最终应用到实践中,这也是以后工作或学习的重要方法。致谢经过几个月的忙碌,本次毕业设计已接近尾声,通过本次设计,我锻炼了自己的独立动手能力,同时也认识到了自己的不足,在此我要感谢帮组过我的人。首先,我要感谢指导老师杨明老师。虽然杨老师平日工作繁忙,但还是给我重要的指导,设计中的很多错误都是他细心的帮我找出来的,他的指导给了我明确的目标,启发了我的思路。其次,我最要感谢的是我的实习领导鞠福刚老师,我毕业设计的每个阶段,他都给了我细心的指导和帮助。最后,还要感谢我的同事和同学,在毕业设计期间,他们给了我不少建议和帮助。参考文献1 张毅刚.单片机原理及应用M. 北京:高等教育出版社,2010.2 张娟.protel电路设计教程M. 北京:清华大学出版社,2010.3 周定颐.电机及电力拖动M. 北京:机械工业出版社,2010.4 王兆安.电力电子技术M. 北京:机械工业出版社,2010.5 王学文.传感器原理及应用M. 北京:航空航天大学出版社,2008.6 王建.实用单片机技术M. 辽宁:辽宁科学技术出版社,2012.7 陈伯时.电力拖动自动控制系统M. 北京:机械工业出版社,2003.8 于永权.ATMEL89系列单片机应用技术M. 北京:航空航天大学出版社,2005.9 严东海.电子技术课程实验与设计指导Z. 乐山:成都理工大学工程技术学院电子技术实验室,2005.10 徐爱钧.智能化测量控制仪表原理与设计M. 北京:航空航天大学出版社,1995.11 袁凡.基于单片机的数显转速表J. 学术2010年第五期:69-70.12 吴晓男.飞机数显转数表设计J. 电子产品世界2011年第8期:48-59.13 王红军.多功能数字转速表设计及实现J. 电脑知识与技术2009年第32期:9071-9074.14 刘遥生.单片机数显转速表设计与制作J. 电子制作2009年02期:9-12.15 江祥贤.多用途单片机数显表J. 电子与自动化1994年第1期:19-22.附录一:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论