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

下载本文档

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

文档简介

1、中北大学信息商务学院2015届毕业设计说明书 基于单片机的转速表设计与实现摘 要 单片机又称单片微控制器(MCU),它把一个计算机系统集成到一个芯片上。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 本文便是运用AT89C51单片机控制的转速表设计。电机在运行过程中,需要对其进行监控,转速是一个必不可少的参数。数字式转速表就是对电机转速进行测量,并可以和PC机进行通信,显示电机的转速,并观察电机运行的基本情况。本设计主要是运用了AT89C51作为控制核心,由霍尔传感器,LED数码显示管,施密特触发器等构成。充分发挥单片机的性能。本设计优点是电路较简单、功能完善、测量速度快、精

2、度高、控制系统可靠,性价比较高等特点。关键字:AT89C51单片机 转速测量 霍尔传感器- IV -AbstractSingle-chip, also known as single-chip microcontroller (MCU), it is a computer system integrated into a chip. Its small size, light weight, cheap, for the learning, application and development of facilities provided.This article, we use the A

3、T89C51 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

4、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. The advantage of a simple hardware and software capabilities improve, measuring speed, high precision and control system reliable, c

5、ost-effective and so on.Keywords: AT89C51 Tachometer Digital;speeds measure; Hall element 目录1 引 言11.1本课题研究意义11.2国内外研究现状11.3本课题研究的目的22 转速表原理32.1 转速表基本原理32.2 转速计算及误差分析42.3 转速测量63 硬件电路73.1 单片机概述73.2 复位电路113.3 显示电路133.4 报警电路184 软件设计204.1 主程序框图204.2 按键程序框图214.3 显示程序框图234.4 报警子程序框图24结论25参考文献26致谢27附录一:系统总图

6、28附录二 仿真图29附录三:PCB图30附录四:主程序31中北大学信息商务学院2015届毕业设计说明书1 引 言1.1本课题研究意义随着现代科学技术特别是微型计算机的高速发展,计量技术相应地也得到迅速发展,单片微机技术也得到了飞速发展。单片机在我国大规模的应用已有十余年历史,单片机技术的研究和推广正方兴未艾。对转速表的要求越来越高。转速表性能的提高对机械行业的其他领域的发展起到不可忽视的促进作用。在这个领域中,数字仪表越来越现实它的优越性和生命力:精度高、速度快、便于记录、控制和传递,因而数字式仪表得到了广泛的应用。在转速计量方面,数字转速表更是一种理想的测量仪器。它可以用来测定电机的转速、

7、线速度或频率。常用于电机、电扇、造纸、塑料化纤、洗衣机、汽车、飞机、轮船等制造业。目前广泛使用的普通式转速表,其电路结构比较复杂,稳定性差,成本高,抗干扰能力差,测量精度与范围不能兼顾,而且采样的时间常,难以测得瞬时转速,更不具备如转速值的永久存储、报警值设置,定时打印等功能。随着大规模集成电路的发展,微型计算机的应用愈来愈广泛,愈来愈深入。其中单片机构成的嵌入式系统已经愈来愈受到人们的关注。1.2国内外研究现状随着科学技术的迅速发展,转速测量仪表已步入现代化、电子化的行列。过去曾经使用过的接触式测量仪表, 如离心式转速表、磁性转速表、微型发电机转速表及钟表是定时转速表,均已先后受到冷落;而利

8、用已知频率的闪光与被测轴转速同步的方法来测速的闪光测速仪,虽属非接触式仪表,目前仍有应用,但也退居次要地位。代之而起的是非接触式的电子与数字化的测速仪表。这类转速仪表大多具有体积小、重量轻、读数准确、使用方便等优点,容易实现电脑荧屏显示和打印输出,能够连续的反映转速变化,既能测定发动机稳定情况下的平均转速,也能够用来在足够小的时间间隔这一特定条件下测定发动机的瞬时转速。转速测量的应用系统在工业生产、科技教育、民用电器等各领域的应用极为广泛,往往成为某一产品或控制系统的核心部分,其各种参数在不同的应用中有其侧重,但转速测量系统作为普遍的应用在国民经济发展中,有重要的意义。1.3本课题研究的目的目

9、前广泛使用的普通式转速表,其电路结构比较复杂,稳定性差,成本高,抗干扰能力差,测量精度与范围不能兼顾,而且采样的时间常,难以测得瞬时转速,更不具备如转速值的永久存储、报警值设置,定时打印等功能。转速表性能的提高对机械行业的其他领域的发展起到不可忽视的促进作用。因此,研究单片机转速表的设计是很重要的。本设计就是以单片机为核心的数字式转速表,转速表要显示转速要解决很多问题,比如信号数据采集、数据计算、数据传送、数据显示等。本设计通过由传感器、放大电路、整形电路和单片机等组成的测量电路进行数据采集,通过设计软件进行计算、控制。所得转速由串行口送出到LED数码管组成的4位静态显示电路,用以显示转速。另

10、外还有转速超限报警功能,用与单片机输入输出口连接的控制键输入转速上限,当所测量的转速超过这个值时,发出报警声音。实现人机对话。这次所设计出来的转速表的测量范围是09999r/min,相对误差小于±0.3%,能自动变换周期,且具有声光报警功能。2转速表原理2.1 转速表基本原理目前常用的转速测量方法有M法、T法、M/T法。M法(即测频法)是指在固定的时间内测出转速传感器输出的脉冲个数。经分析得知,M法在测高速时相对误差较小。T法(即测周期法)是指在转速传感器输出脉冲周期内对时钟信号进行计数,测出转速脉冲周期,进而计算出转速。经分析得知,T法在测低速时相对误差较小。M/T法是指在M法基础

11、上吸取了T法之优点而形成的。其测速过程是:在转速传感器输出脉冲是上升沿到来时启动定时(定时时间为Tc),同时计传感器输出脉冲个数和时钟脉冲个数,定时时间到,先停止对传感器输出脉冲的计数,待下一个传感器输出脉冲上升沿到来时在停止对时钟脉冲的计数,由记录的两脉冲m1和m2求出转速。假定旋转体每转一周,转速传感器输出p个脉冲,又设转速N,时钟频率为f0,则 (2-1)通过式(2-1)可方便地计算出转速,因为不存在误差,的最大误差为一个时钟,所以M/T法测速时的相对误差为: (2-2)在式(2-2)中由于m2通常较大,固相对误差较小,即该测量方法精度较高,在本转速表设计中,我采用的是M/T法。为了减少

12、误差,在转速小于3600rpn时采用T法计算转速,而大于3600rpn就进行M法计算转速。2.2 转速计算及误差分析根据转速、周期、频率之间的关系可知 (2-3) (2-4) (2-5)式中,被测转速,r/min;转速信号周期,s;转速信号频率,Hz;计算脉冲的周期,又称时基,本仪表Tc=4us;将式(2-5)带入(2-3)得 (2-6)用十六进制数表示为式中N已存入75H、74H、73H单元。利用除法子程序,即可求出转速。下边计算该系统的相对误差。分别对式(2-3)和式(2-5)求微分 (2-7) (2-8)将式(2-7)代入(2-8),得 (2-9)式中,N-量化误差,N=±1个

13、计数脉冲,又已知时基Tc=4us,故 (2-10)由式(2-10)可知,相对误差与频率成正比,即相对误差随转速的升高而升高。因此,为了提高测量精度,高转速时需要连续测量数个周期。本设计中为4个周期,即测得的N为4个周期内的总和,所以 (2-11) (2-12)用十六进制数表示,为对式(2-12)进行微分因此可求出高速测量时的相对误差同样,代入Tc=4us,N=±1个脉冲,则 (2-13)将式(2-13)与(2-10)比较可知,采用多周期测量相对精度大大提高。例如,当n=3000r/min时,由式(21-10)可求出,其相对误差为当n=6000r/min时,由式(2-12)计算出相对误

14、差为该仪表设置的临界转速为3662r/min,其对应的每周期计数脉冲个数。开机时,首先按低转速测量,然后判转速n是高于还是低与3662r/min。若低于此临界值,则仍按低速测量,若高于它,便主动转入高转速测量,即连续测量4个周期。2.3 转速测量由式(2-6)、(2-12)可知,只要能求出脉冲个数N,即可求出转速。为了得到计数脉冲,可采用门控方式的硬件技术方法,也可采用中断方式的软件计数方法。门控方式计数:由AT89C51定时器/计数器T0工作原理可知,当其工作在计数方式时,只要T0口上有负跳变,计数器就加1。CPU在每个周期的S5P2状态时,采样T0,所以需要2个机器周期才能识别一个T0的负

15、跳变,即T0的周期至少应等于2倍机器周期。若晶振频率为6MHz,6分频后得到ALE信号,鼓ALE周期为1us,机器周期为2us。由此可知,最低计数脉冲周期Tc为4us,可由ALE信号经74LS74中的两个D触发器4分频后取得。中断方式计数:高转速时为了连续测量4个输入周期,可以采用中断方式计数。在初始化或前一次测量结束时,单片机禁止“外部中断0”和“定时器0溢出中断”。设置“外部中断0”为负跳沿触发方式,设定“计数器0”为非门控计数方式,然后等待中断。外部中断负脉冲一到,立即启动“计数器0”工作,对T0的4us计数脉冲进行计数。计到4个测量周期时,停止“计数器0”工作,禁止外“中断”,恢复测量

16、周期常数3,并计得的脉冲数存入相应单元。门控方式和中断方式计数,有效解决了精度测量输入脉冲周期和高低量程自动切换问题,测得计数脉冲个数后,即可转入计算转速n的子程序,计算结果的BCD码相应的存入4个存储单元,以备显示。3 硬件电路3.1 单片机概述 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。该仪表机采用的是美国ATMEL公司生产的一种高性能、低功

17、耗、带有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可以按照常规方法进行编程

18、,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本如图3.1所示: 图3.1 AT89C51引脚图AT89C51的主要功能特性: · 兼容MCS51指令系统 · 4k可反复擦写(>1000次) · 32个双向I/O口 · 可编程UARL通道 · 两个16位可编程定时/计数器 · 全静态操作0-24MHz · 1个串行中断 · 1288bit内部RAM · 两个外部中断源 · 共6个中断源 · 可直接驱动LED

19、· 3级加密位 · 低功耗空闲和掉电模式 · 软件设置睡眠和唤醒功能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的输出缓冲

20、器可驱动4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉倒高电位,这时可用作输入口。P1做输入口使用时,因为内部有上拉电阻那些被外不信号拉低的引脚会输出一个电流(IL)。对Flash编程和校验程序时,P1口接收低8位地址。P2口有两个功能:扩充外部存储器时当作地址总线(A8-A15) ;做一般I/O 使用,其内部有上拉电阻。对Flash编程和校验程序时,P2口接收高8位地址。和一些控制信号。P3口有两个功能:做一般I/O 使用,其内部有上拉电阻;特殊功能,具体由特殊寄存器来设置如下表3.1所示。对Flash编程和校验程序时,P3口接收一些控制信号。 表3.1 P3第二功能定义端口引脚说

21、明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石英晶体的振荡频率,可作为外部时钟;在

22、烧写EPROM时ALE作为烧写时钟的输入端。EA/VPP允许访问片内/外存储器/编程电源线:其接高电平时,CPU读取内部程序存储(ROM);当读取内部程序存储器超过0FFFH 时,在扩充外部ROM条件下自动读取外部ROM。PSEN片外ROM选通线:程序存储使能端。 XTAL1片内振荡器反相放大器和时钟发生线路的输入端。使用片内振荡器时,连接外部石英晶体和微调电容。XTAL2片内振荡器反相放大器的输入端,当使用片内振荡器时,外接石英晶体和微调电容。3.2 复位电路计算机在启动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。AT89C51单片机

23、复位电路是指单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。单片机的复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复

24、位电路采样一次。复位电路通常采用上电自动复位、按钮复位和按钮脉冲复位。AT89C51单片机有一个复位引脚RST,它是史密特触发输入(对于CHMOS单片机,RST引脚的内部有一个拉低电阻),当振荡器起振后该引脚上出现2个机器周期(即24个时钟周期)以上的高电平,使器件复位,只要RST保持高电平,AT89C51保持复位状态。此时ALE、PSEN、P0、P1、P2、P3口都输出高电平。RST变为低电平后,退出复位,CPU从初始状态开始工作。单片机采用的复位方式是采用芯片TCM812进行复位。 TCM812是高性价比的系统监控电路,用于对数字系统的电源电压VDD 进行监控,并在必要时向主处理器提供复位

25、信号。提供的手动复位输入可以替代复位监控器,适合使用按键来复位。无需外部元件。该器件由SOT-143方式 封装,工作温度范围为-40 至+85。其引脚如下:图3.2 TCM812芯片的引脚图TCM812芯片的引脚功能:(1)GND 地(2)RESET 当VDD 低于复位电压门限值和VDD恢复上升到高于复位电压门限值之后的140 ms(最小值)内,RESET推挽输出保持高电平。 (3)MR 手动复位输入,当MR 低于VIL 时产生复位。 (4)VDD 电源电压 由于TCM812芯片的特点,本设计中采用该芯片进行复位,其电路图如下:图3.3 复位电路3.3 显示电路显示电路采用LED数码管显示,L

26、ED(Light-Emitting Diode)是一种外加电压从而渡过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流电阻。LED有单个LED和八段LED之分,也有共阴和共阳两种。3.3.1 LED显示器的结构及其工作原理常用的七段显示器的结构如图3-13所示。发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。1位显示器由八个发光二极管组成,其中七个发光二极管ag控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。此外,要画出电路图,首先还要搞清楚他的引脚图的分布

27、,在了解了正确的引脚图后才能进行正确的字型段码编码。才能显示出正确的数字来,如图3.4所示,为七段数码管的管脚图。图3.4 七段发光显示器的结构LED数码管通过点亮特定的字段来显示数字或符号。共阴与共阳七段LED数码管的显示字符与对应的显示段码如下表所示,共阳七段数码管的段码刚好是共阴七段数码管段码的反码。表3.2 共阴极七段LED数码管和共阳极七段LED数码管的显示段码表LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。A静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都

28、由一个单片机的I/O口进行驱动,或者使用如BCD码二-十进位器进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5×840根I/O口来驱动,要知道一个89C51单片机可用的I/O口才32个呢。故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。B动态显示驱动  数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,. "的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单

29、片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。3.3.2 显示器接口 在单片机系统中,最常用的两种显示器是发光二极管显示器(LED)和液晶显示器(LCD)。本次设计,我采用发光二极管显示器。七段LED有共阴极与共阳极两种。为了在七段LED上显示字母或数字,必须将其转换可通过硬件译码或软件来实现。本系统的输出部分就是LED显示驱动。驱动电路的主要作用是将从单片机传送出来的脉冲进行功率驱动,以便于在数码管上显示。它由集成电路MC14

30、499和74LS06来担当。MC14499是MOTOROLA公司的高集成度LED显示驱动器,采用动态扫描方式显示驱动4个LED数码管。它集锁存、译码、驱动、扫描、时钟于一体。(它包括1个20位移位寄存器、1個锁存器、1個多路输出器)。它所需的辅助电路简单,在单片机数据传送时采用串行同步方式。用MC14499组成的单片机的显示电路,具有占用单片机软件资源小,不再外加电路即可于单片机协调工作,使用灵活方便,电路简单可靠,无需外加驱动器等特点。(1)引脚排列如图3.5所示。图3.5 MC14499引脚图(2)引脚说明:VDD:正电源端;VSS:电源地;ag:七段显示输出;dp:小数点显示输出;:4个

31、位选通端;OSC:晶振输入端,外接电容,片內可产生200800Hz的扫描信号;D:串行数据输入端;CLK:时钟输入端,作为串行数据接收的同步信号;EN:使能端,为低电平时,允许MC14499接收串行输入数据;为高电平时,片内移位寄存器将数据送入锁存器中锁存。MC14499每次接收20位串行输入数据,前4位为4个LED的小数点选择位,后16位是4个LED的BCD码输入数据,一帧数据的传输格式如下表3.3所示:表3.3 MC14499 一帧数据表20 19 18 1716 15 14 1312 11 10 987654321LSB MSBIV段码LSB MSBIII段码LSB MSB II段码LS

32、B MSBI段码LSB MSB小数点选择一帧数据输入完后,便被锁存起来,供4位LED显示使用,CPU只提供显示用的数据,数据的显示則是由MC14499对各位进行动态扫描实现,扫描频率由OSC端外接电容決定。MC14499的BCD码显示字节如表3.4所示:表3.4 MC14499的BCD码显示表BCD码显示字节BCD码显示字节00000100080001110019001021010A001131011I010041100II010151101U011061101-011171111熄灭由于MC14499的这4个位选通端必须通过一个反相驱动器后才能控制4个LED,所以在这次设计中我使用的是集电极

33、开路高压输出的六反相缓冲器/驱动器74LS06,其引脚排列如图3.6所示。如图3.6 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方式

34、。串行口方式特别适合于系统硬件无相互间通道的情况。在该控制方式下应注意:AT89C51单片机串行口输出数据时,发送顺序为从数据低位到高位,而MC14499将BCD码数据译为十进制数时,却是将原数据的低位作为高位处理的,如将某次数据的最后八位10001001B(84H)送入MC14499时,从低位到高位被分布于其移位寄存器的1320单元中,即最低位0在13单元,最高位1在20单元,MC14499进行译码时,却是将0作为最高位,1作为最低位处理时,于是成为00100001B(21H),即段码3数据为0010B,显示器显示“2”,段码4数据为0001B,显示器显示“1”因此,必须将欲显示的压缩BCD

35、码进行循环位移(即将最低位移至最高位,第二位移至第七位,其余以次类推)后再送入MC14499,以保证显示的正确性。MC14499 每次可接收的串行数据最多为20位,而AT89C51单片机由于8位机,每次送出的数据并非一定是20位,特别是在串行口控制方式下,串行口每次送出数据为8位,因此MC14499每次接收的数据必然多于或少于20位。当AT89C51单片机送出的数据多于20位时,MC14499接收的将是最后20位数据,20位以前多余的数据在移位过程中被后来的数据挤出;当AT89C51单片机送出的数据少于20位时,MC14499在接收移位过程中将保留一部分移位寄存器中原来的数据。AT89C51单

36、片机每次发送完数据后,必须将MC14499使能端置位。这是因为MC14499进行译码输出的并非是其移位寄存器内的数据,而是其锁存器内的数据。将使能端置位有两个作用:第一,禁止MC14499再接收外来数据;第二,将移位寄存器内的数据送入锁存器中,以提供译码输出。3.4报警电路在AT89C51单片机的P1.1口上接上一个报警电路。如图3.7所示,单片机P1.1口发出一串脉冲信号,经共射集复合放大电路放大后,使PS导通,发生振动;单片机没有脉冲信号时,电路工作为稳定状态(即不工作)。就这样SP两端形成振荡回路,发出报警声音。通过按键取消报警声,结束后又恢复稳态,等待下一串脉冲信号的到来。图3.7 系

37、统报警电路4 软件设计硬件电路完成以后,进行系统软件设计。首先要分析系统对软件的要求,然后进行软件的总体的设计,包括程序的总体设计和对程序的模块化设计。按整体功能分为多个不同的模块,单独设计、编程、调试,然后将各个模块装配联调,组成完整的软件。根据设计的要求,单片机的任务是:内部进行计数,在计算出速度后显示。软件编程用C语言完成的,需要能掌握C语言,还要熟练AT89C51单片机。从程序流程图、编写程序、编译,到最后的调试,是很复杂的。4.1 主程序框图本系统主程序流程如图所示。其功能是通过计数脉冲个数,通过单片机内部计算后,输入到显示器上显示转速。在运行中又加入了报警系统,和功能键,使整个系统

38、智能化。如图4.1所示:图4.1 主程序框图4.2 按键程序框图功能按键的作用就是置入报警初值,KEY1、KEY2、KEY3、KEY4、KEY5、分别实现“报警值置入”、“+1”、“左移一位”、“完成报警值置入”、“解除报警信号”。图4.2 按键程序框图4.3 显示程序框图图4.3 显示程序框图4.4 报警子程序框图图4.4报警子程序框图结论通过各方面努力,本次毕业设计任务基本完成。在设计中遇到很多我在平时学习没有掌握好的知识,模拟电子技术和数字电子技术,在单片机方面有有串行口应用和定时计数器的使用,还要对单片机整个系统进行抗干扰和调试处理。最重要的是单片机的程序设计。通过此次设计使我对以前学

39、过的知识得到了重新的认识,我觉得这种学习知识的方法能很效的掌握知识,我也应该通过这种理论联系实践的方法学习书本知识,这样才能更合理的、更科学的学习知识。在此次毕业设计中遇到的问题,通过查找资料然后请教老师、同学,逐步对此毕业设计有了清晰的设计方案,我同时也更深的了解自己大学所学的知识,我也了解了自己所学的专业知识在以后工作方面的作用,也对自己找工作明确了方向。另外,由于时间关系和能力的局限性,错误之处难免,还请老师体谅。参考文献1 张毅刚.单片机原理及应用M. 北京:高等教育出版社,2010.2 张娟.protel电路设计教程M. 北京:清华大学出版社,2010.3 周定颐.电机及电力拖动M.

40、 北京:机械工业出版社,2010.4 王兆安.电力电子技术M. 北京:机械工业出版社,2010.5 王学文.传感器原理及应用M. 北京:航空航天大学出版社,2008.6 王建.实用单片机技术M. 辽宁:辽宁科学技术出版社,2012.7 严东海.电子技术课程实验与设计指导Z. 乐山:成都理工大学工程技术学院电子技术实验室,2005.8 袁凡.基于单片机的数显转速表J. 学术2010年第五期:69-70.9 吴晓男.飞机数显转数表设计J. 电子产品世界2011年第8期:48-59.10 刘遥生.单片机数显转速表设计与制作J. 电子制作2009年02期:9-12.11 祥贤.多用途单片机数显表J.

41、电子与自动化1994年第1期:19-22.12 潘永雄.新编单片机原理与应用,西安:西安电子科技大学出版社,200313 徐爱钧.智能化测量控制仪表原理与设计M. 北京:航空航天大学出版社,1995.14 谷金花;基于霍尔传感器的转速测量系统设计J;大众科技;2007年05期15 许戴铭;基于单片机与霍尔传感器的转速测量设计J;价值工程;2012年08期 致谢经过这几个月的忙碌,本次毕业设计将近尾声。通过本次设计,锻炼了我独立动手能力,并且也认识到了自己所学知识的不足,所以在这我必须感谢帮助过我的人。首先,我要感谢指导老师张伦老师。虽然张老师平时工作比较繁忙,但还总是抽时间给我重要的

42、指导,细心的帮我指出我在设计中所犯的错误,他的指导让我更加明确了目标最后,我还要感谢的是我的同学们,在我做毕业设计的每个阶段,她们都给了我细心的指导和帮助。附录一:系统总图附录二 仿真图 附录三:PCB图 附录四:主程序#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit COUNT_IN=P32;/定义1602相关管脚sbit rs=P27;sbit en=P26;/按键定义sbit add=P33;sbit dec=P34;sbit BUZZ=P10;uint count,m,n;un

43、signed long RPM;long shangxian=10000;bit flag;uchar code tab1=" VH: r/min " /一行显示的固定字符uchar code tab2=" RV: r/min "/转速显示的固定字符void delay(uint x)uint i,j;for(i=0;i<x;i+)for(j=0;j<110;j+);void init()IT0=1;/INT0负跳变触发 TMOD=0x01;/定时器工作于方式1TH0=0xfc; /1msTL0=0x18;EA=1; /CPU开中断总允许ET

44、0=1;/开定时中断EX0=1;/开外部INTO中断 TR0=1;/启动定时/*液晶写入指令函数与写入数据函数,以后可调用*/void write_1602com(uchar com)/*液晶写入指令函数*rs=0;/数据/指令选择置为指令P0=com;/送入数据delay(1);en=1;/拉高使能端,为制造有效的下降沿做准备delay(1);en=0;/en由高变低,产生下降沿,液晶执行命令void write_1602dat(uchar dat)/*液晶写入数据函数*rs=1;/数据/指令选择置为数据P0=dat;/送入数据delay(1);en=1; /en置高电平,为制造下降沿做准备

45、delay(1);en=0; /en由高变低,产生下降沿,液晶执行命令void lcd_init()/*液晶初始化函数*uchar a;write_1602com(0x38);/设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据write_1602com(0x0c);/开显示不显示光标write_1602com(0x06);/整屏不移动,光标自动右移write_1602com(0x01);/清显示write_1602com(0x80);/显示固定符号从第一行第1个位置之后开始显示for(a=0;a<16;a+)write_1602dat(tab1a);/向液晶屏写固定符号部分w

46、rite_1602com(0x80+0x40);/显示固定符号写入位置,从第2个位置后开始显示for(a=0;a<16;a+)write_1602dat(tab2a);/写显示固定符号void display()uchar gw,sw,bw,qw,ww;if(RPM<=99999) /范围内时ww=RPM/10000;qw=RPM%10000/1000;bw=RPM%1000/100;/取得百位sw=RPM%100/10;/取得十位数字gw=RPM%10;/取得个位数字write_1602com(0x80+0x40+5);if(ww=0)write_1602dat(' &#

47、39;);elsewrite_1602dat(0x30+ww);if(ww+qw)=0)write_1602dat(' ');elsewrite_1602dat(0x30+qw);if(ww+qw+bw)=0)write_1602dat(' ');elsewrite_1602dat(0x30+bw);if(ww+qw+bw+sw)=0)write_1602dat(' ');elsewrite_1602dat(0x30+sw);write_1602dat(0x30+gw);/数字+30得到该数字的LCD1602显示码else /超过范围时显示-write_1602com(0x80+0x40+2);write_1602dat('-');write_1602dat('-');write_1602dat('-');write_1602dat('-');write_1602dat

温馨提示

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

评论

0/150

提交评论