基于单片机的转速表设计.docx
- 文档编号:3458419
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:31
- 大小:367.45KB
基于单片机的转速表设计.docx
《基于单片机的转速表设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的转速表设计.docx(31页珍藏版)》请在冰豆网上搜索。
基于单片机的转速表设计
基于单片机的转速表设计与实现
摘要
单片机又称单片微控制器(MCU),它把一个计算机系统集成到一个芯片上。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
本文便是运用AT89C51单片机控制的转速表设计。
电机在运行过程中,需要对其进行监控,转速是一个必不可少的参数。
数字式转速表就是对电机转速进行测量,并可以和PC机进行通信,显示电机的转速,并观察电机运行的基本情况。
本设计主要是运用了AT89C51作为控制核心,由霍尔传感器,LED数码显示管,施密特触发器等构成。
充分发挥单片机的性能。
本设计优点是电路较简单、功能完善、测量速度快、精度高、控制系统可靠,性价比较高等特点。
关键字:
AT89C51单片机转速测量霍尔传感器
Abstract
Single-chip,alsoknownassingle-chipmicrocontroller(MCU),itisacomputersystemintegratedintoachip.It’ssmallsize,lightweight,cheap,forthelearning,applicationanddevelopmentoffacilitiesprovided.
Thisarticle,weusetheAT89C51microcontrollertocontrolthedigitaltachometer.Duringoperation,themotorneedstobemonitoring,speedisanessentialparameter.Digitaltachometertomeasuremotorspeed,andcancommunicatewithaPC,displaythemotorspeed,andobservethemotorrunning.ThisdesignwithAT89C51ascontrolcore,bytheHallsensor,LEDdigitaldisplaytube,thecompositionoftheSchmitttrigger,andsoon.Givefullplaytotheperformanceofthemicrocontroller.
Theadvantageofasimplehardwareandsoftwarecapabilitiesimprove,measuringspeed,highprecisionandcontrolsystemreliable,cost-effectiveandsoon.
Keywords:
AT89C51TachometerDigital;speedsmeasure;Hallelement
1引言
随着现代科学技术特别是微型计算机的高速发展,计量技术相应地也得到迅速发展,单片微机技术也得到了飞速发展。
单片机在我国大规模的应用已有十余年历史,单片机技术的研究和推广正方兴未艾。
对转速表的要求越来越高。
转速表性能的提高对机械行业的其他领域的发展起到不可忽视的促进作用。
在这个领域中,数字仪表越来越现实它的优越性和生命力:
精度高、速度快、便于记录、控制和传递,因而数字式仪表得到了广泛的应用。
在转速计量方面,数字转速表更是一种理想的测量仪器。
它可以用来测定电机的转速、线速度或频率。
常用于电机、电扇、造纸、塑料化纤、洗衣机、汽车、飞机、轮船等制造业。
目前广泛使用的普通式转速表,其电路结构比较复杂,稳定性差,成本高,抗干扰能力差,测量精度与范围不能兼顾,而且采样的时间常,难以测得瞬时转速,更不具备如转速值的永久存储、报警值设置,定时打印等功能。
随着大规模集成电路的发展,微型计算机的应用愈来愈广泛,愈来愈深入。
其中单片机构成的嵌入式系统已经愈来愈受到人们的关注。
随着科学技术的迅速发展,转速测量仪表已步入现代化、电子化的行列。
过去曾经使用过的接触式测量仪表,如离心式转速表、磁性转速表、微型发电机转速表及钟表是定时转速表,均已先后受到冷落;而利用已知频率的闪光与被测轴转速同步的方法来测速的闪光测速仪,虽属非接触式仪表,目前仍有应用,但也退居次要地位。
代之而起的是非接触式的电子与数字化的测速仪表。
这类转速仪表大多具有体积小、重量轻、读数准确、使用方便等优点,容易实现电脑荧屏显示和打印输出,能够连续的反映转速变化,既能测定发动机稳定情况下的平均转速,也能够用来在足够小的时间间隔这一特定条件下测定发动机的瞬时转速。
转速测量的应用系统在工业生产、科技教育、民用电器等各领域的应用极为广泛,往往成为某一产品或控制系统的核心部分,其各种参数在不同的应用中有其侧重,但转速测量系统作为普遍的应用在国民经济发展中,有重要的意义。
目前广泛使用的普通式转速表,其电路结构比较复杂,稳定性差,成本高,抗干扰能力差,测量精度与范围不能兼顾,而且采样的时间常,难以测得瞬时转速,更不具备如转速值的永久存储、报警值设置,定时打印等功能。
转速表性能的提高对机械行业的其他领域的发展起到不可忽视的促进作用。
因此,研究单片机转速表的设计是很重要的。
本设计就是以单片机为核心的数字式转速表,转速表要显示转速要解决很多问题,比如信号数据采集、数据计算、数据传送、数据显示等。
本设计通过由传感器、放大电路、整形电路和单片机等组成的测量电路进行数据采集,通过设计软件进行计算、控制。
所得转速由串行口送出到LED数码管组成的4位静态显示电路,用以显示转速。
另外还有转速超限报警功能,用与单片机输入输出口连接的控制键输入转速上限,当所测量的转速超过这个值时,发出报警声音。
实现人机对话。
这次所设计出来的转速表的测量范围是0~9999r/min,相对误差小于±0.3%,能自动变换周期,且具有声光报警功能。
2转速表原理
2.1转速表基本原理
目前常用的转速测量方法有M法、T法、M/T法。
M法(即测频法)是指在固定的时间内测出转速传感器输出的脉冲个数。
经分析得知,M法在测高速时相对误差较小。
T法(即测周期法)是指在转速传感器输出脉冲周期内对时钟信号进行计数,测出转速脉冲周期,进而计算出转速。
经分析得知,T法在测低速时相对误差较小。
M/T法是指在M法基础上吸取了T法之优点而形成的。
其测速过程是:
在转速传感器输出脉冲是上升沿到来时启动定时(定时时间为Tc),同时计传感器输出脉冲个数和时钟脉冲个数,定时时间到,先停止对传感器输出脉冲的计数,待下一个传感器输出脉冲上升沿到来时在停止对时钟脉冲的计数,由记录的两脉冲m1和m2求出转速。
假定旋转体每转一周,转速传感器输出p个脉冲,又设转速N,时钟频率为f0,则
(2-1)
通过式(2-1)可方便地计算出转速,因为
不存在误差,
的最大误差为一个时钟,所以M/T法测速时的相对误差为:
(2-2)
在式(2-2)中由于m2通常较大,固相对误差较小,即该测量方法精度较高,在本转速表设计中,我采用的是M/T法。
为了减少误差,在转速小于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个计数脉冲,又已知时基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)计算出相对误差为
该仪表设置的临界转速为3662r/min,其对应的每周期计数脉冲个数。
开机时,首先按低转速测量,然后判转速n是高于还是低与3662r/min。
若低于此临界值,则仍按低速测量,若高于它,便主动转入高转速测量,即连续测量4个周期。
2.3转速测量
由式(2-6)、(2-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个存储单元,以备显示。
3硬件电路
3.1单片机概述
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
该仪表机采用的是美国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存储器可有效地降低开发成本如图3.1所示:
图3.1AT89C51引脚图
AT89C51的主要功能特性:
·兼容MCS—51指令系统·4k可反复擦写(>1000次)
·32个双向I/O口·可编程UARL通道
·两个16位可编程定时/计数器·全静态操作0-24MHz
·1个串行中断·128
8bit内部RAM
·两个外部中断源·共6个中断源
·可直接驱动LED·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的输出缓冲器可驱动4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉倒高电位,这时可用作输入口。
P1做输入口使用时,因为内部有上拉电阻那些被外不信号拉低的引脚会输出一个电流(IL)。
对Flash编程和校验程序时,P1口接收低8位地址。
P2口有两个功能:
①扩充外部存储器时当作地址总线(A8-A15);做一般I/O使用,其内部有上拉电阻。
对Flash编程和校验程序时,P2口接收高8位地址。
和一些控制信号。
P3口有两个功能:
①做一般I/O使用,其内部有上拉电阻;②特殊功能,具体由特殊寄存器来设置如下表3.1所示。
对Flash编程和校验程序时,P3口接收一些控制信号。
表3.1P3第二功能定义
端口引脚
说明
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片内振荡器反相放大器的输入端,当使用片内振荡器时,外接石英晶体和微调电容。
3.2复位电路
计算机在启动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。
AT89C51单片机复位电路是指单片机的初始化操作。
单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
复位电路的基本功能是:
系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
单片机的复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。
复位电路通常采用上电自动复位、按钮复位和按钮脉冲复位。
AT89C51单片机有一个复位引脚RST,它是史密特触发输入(对于CHMOS单片机,RST引脚的内部有一个拉低电阻),当振荡器起振后该引脚上出现2个机器周期(即24个时钟周期)以上的高电平,使器件复位,只要RST保持高电平,AT89C51保持复位状态。
此时ALE、PSEN、P0、P1、P2、P3口都输出高电平。
RST变为低电平后,退出复位,CPU从初始状态开始工作。
单片机采用的复位方式是采用芯片TCM812进行复位。
TCM812是高性价比的系统监控电路,用于对数字系统的电源电压VDD进行监控,并在必要时向主处理器提供复位信号。
提供的手动复位输入可以替代复位监控器,适合使用按键来复位。
无需外部元件。
该器件由SOT-143方式封装,工作温度范围为-40℃至+85℃。
其引脚如下:
图3.2TCM812芯片的引脚图
TCM812芯片的引脚功能:
(1)GND地
(2)RESET当VDD低于复位电压门限值和VDD恢复上升到高于复位电压门限值之后的140ms(最小值)内,RESET推挽输出保持高电平。
(3)MR手动复位输入,当MR低于VIL时产生复位。
(4)VDD电源电压
由于TCM812芯片的特点,本设计中采用该芯片进行复位,其电路图如下:
图3.3复位电路
3.3显示电路
显示电路采用LED数码管显示,LED(Light-EmittingDiode)是一种外加电压从而渡过电流并发出可见光的器件。
LED是属于电流控制器件,使用时必须加限流电阻。
LED有单个LED和八段LED之分,也有共阴和共阳两种。
3.3.1LED显示器的结构及其工作原理
常用的七段显示器的结构如图3-13所示。
发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。
1位显示器由八个发光二极管组成,其中七个发光二极管a~g控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。
此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。
才能显示出正确的数字来,如图3.4所示,为七段数码管的管脚图。
图3.4七段发光显示器的结构
LED数码管通过点亮特定的字段来显示数字或符号。
共阴与共阳七段LED数码管的显示字符与对应的显示段码如下表所示,共阳七段数码管的段码刚好是共阴七段数码管段码的反码。
表3.2共阴极七段LED数码管和共阳极七段LED数码管的显示段码表
LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。
A.静态显示驱动
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O口进行驱动,或者使用如BCD码二-十进位器进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5×8=40根I/O口来驱动,要知道一个89C51单片机可用的I/O口才32个呢。
故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。
B.动态显示驱动
数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,."的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
3.3.2显示器接口
在单片机系统中,最常用的两种显示器是发光二极管显示器(LED)和液晶显示器(LCD)。
本次设计,我采用发光二极管显示器。
七段LED有共阴极与共阳极两种。
为了在七段LED上显示字母或数字,必须将其转换可通过硬件译码或软件来实现。
本系统的输出部分就是LED显示驱动。
驱动电路的主要作用是将从单片机传送出来的脉冲进行功率驱动,以便于在数码管上显示。
它由集成电路MC14499和74LS06来担当。
MC14499是MOTOROLA公司的高集成度LED显示驱动器,采用动态扫描方式显示驱动4个LED数码管。
它集锁存、译码、驱动、扫描、时钟于一体。
(它包括1个20位移位寄存器、1個锁存器、1個多路输出器)。
它所需的辅助电路简单,在单片机数据传送时采用串行同步方式。
用MC14499组成的单片机的显示电路,具有占用单片机软件资源小,不再外加电路即可于单片机协调工作,使用灵活方便,电路简单可靠,无需外加驱动器等特点。
(1)引脚排列如图3.5所示。
图3.5MC14499引脚图
(2)引脚说明:
VDD:
正电源端;VSS:
电源地;a~g:
七段显示输出;dp:
小数点显示输出;Ⅰ~Ⅳ:
4个位选通端;OSC:
晶振输入端,外接电容,片內可产生200~800Hz的扫描信号;D:
串行数据输入端;CLK:
时钟输入端,作为串行数据接收的同步信号;EN:
使能端,为低电平时,允许MC14499接收串行输入数据;为高电平时,片内移位寄存器将数据送入锁存器中锁存。
MC14499每次接收20位串行输入数据,前4位为4个LED的小数点选择位,后16位是4个LED的BCD码输入数据,一帧数据的传输格式如下表3.3所示:
表3.3MC14499一帧数据表
20191817
16151413
1211109
8 7 6 5
4 3 2 1
LSB MSB
IV段码
LSBMSB
III段码
LSBMSB
II段码
LSBMSB
I段码
LSB MSB
小数点选择
一帧数据输入完后,便被锁存起来,供4位LED显示使用,CPU只提供显示用的数据,数据的显示則是由MC14499对各位进行动态扫描实现,扫描频率由OSC端外接电容決定。
MC14499的BCD码显示字节如表3.4所示:
表3.4MC14499的BCD码显示表
BCD码
显示字节
BCD码
显示字节
0000
0
1000
8
0001
1
1001
9
0010
2
1010
A
0011
3
1011
I
0100
4
1100
II
0101
5
1101
U
0110
6
1101
-
0111
7
1111
熄灭
由于MC14499的Ⅰ~Ⅳ这4个位选通端必须通过一个反相驱动器后才能控制4个LED,所以在这次设计中我使用的是集电极开路高压输出的六反相缓冲器/驱动器74LS06,其引脚排列如图3.6所示。
如图3.674LS06的引脚排列
其管脚1,3,5,9,11,13为输入端;管脚2,4,6,8,10,12为输出端。
74LS06输出低电平电流为40mA,为了能够驱动4个显示器,限流电阻的大小要配备合适。
电源电压是5V,一个发光二极管的管压降约为1.2V,经过计算,限流电阻选1K左右合适。
在串行口方式下,AT89C51单片机的串行输出端TXD提供时钟信号,串行口输入端RX
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 转速表 设计