单片机在零转速表中的应用

来源:本站
导读:目前正在解读《单片机在零转速表中的应用》的相关信息,《单片机在零转速表中的应用》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机在零转速表中的应用》的详细说明。
简介:这里介绍一种简单且不需使用外部计数器就可高精度超低频测量转速的方法。即用AT89C2051单片机内部的T0计数器作为转速基本频率时基计数器,用软件模拟1个进位计数器,这样不仅可以使用较高的计数频率来测量较低的转速,而且允许小于232次数的进位。从而实现了高精度、超低频率的测量。

“零转速”是汽轮发电机组在开、停车时,为防止转子因受热不均而发生轴弯曲事故,所采用的一种特定慢转的转速,也称为盘车转速。由于该转速非常低,通常只有每分钟几转,所以称为“零转速”。汽轮机停车时,当转子转速下降到与预置的零转速值相一致时,零转速表自动地将盘车电机投入,使盘车齿轮正确地啮合上正在降速的转动轴,使其不至于立刻停下来,以达到盘车的作用。

转速的测量方法有很多种,常用的有测频法和测周法。测频法适用于测量高、中转速;测周法适用于测量低转速。零转速表主要用于测量低转速,所以采用测周法。在实际应用中,为了获得较高的测量精度和较低的转速测量范围,大多数转速表都使用了单片机,但由于单片机内部计数器结构的限制,其计数器可计数的最高频率为1/24fosc2时钟频率。因此,在测量长周期(低转速)时,使用1个计数器计数会出现多次溢出的情况。鉴于这种情况,很多低频转速表在使用较高的计数频率时,常采用多级计数器串联技术来解决单个计数器的溢出问题。如用外部计数器8253(或8254)芯片,将其内部的2~3个计数器相互串联起来,形成32位或64位计数器,以此获得转速高精度测量值。这种方法虽然可行,但系统硬件结构较为复杂,且进位次数也有限制,溢出时的进位频率点很难处理好。这里介绍一种简单且不需使用外部计数器就可高精度超低频测量转速的方法。即用AT89C2051单片机内部的T0计数器作为转速基本频率时基计数器,用软件模拟1个进位计数器,这样不仅可以使用较高的计数频率来测量较低的转速,而且允许小于232次数的进位。从而实现了高精度、超低频率的测量。

1零转速表的基本测量方法

目前国内电厂多数都使用有60个齿的测速齿轮来测量转子的转速。当汽轮机转子旋转一圈时,可以产生60个脉冲,此时脉冲周期可通过单片机的内部计数器T0对时基信号τ0进行计数得出。若计数器的计数为N,则脉冲周期为T=N×τ0,脉冲频率单片机在零转速表中的应用,由汽轮机大轴的转动周期T=

单片机在零转速表中的应用

由上式看出,转速和频率具有共同的量纲,转速值即为频率值。故可直接用测量周期的方法来测量低转速。

测量转速时,其准确度主要由2项误差来决定,一项是时基误差,另一项是量化±1误差。对于时基误差来说,主要决定于所选用单片机定时器的脉冲周期,当需要高精度的定时器时,应尽量选频率较高的晶体。在用AT89C2051单片机组成的测量系统中,采用12 MHz频率的晶体,其计数速率为1 MHz,输入脉冲的周期τ0=1 ms。当时基误差小于量化±1误差1个或2个数量级时,准确度主要由量化±1误差来决定。测周法测量的相对误差为:

单片机在零转速表中的应用

对于给定的时间脉冲周期,当被测信号频率低时,计数器示值N越大,r就越小;反之则测量的相对误差就大。例如,当晶体的晶振频率为12 MHz,基准时钟τ0为1μs,在测量转速满度值1 000 r/min时,计数器示值为1 000,其精度为0.1% ,随着转速的降低,精度也就越高。所以测周法适用于低频信号测量。

2零转速表的硬件电路设计

AT89C2051是一种高性能、低价格的单片机,引脚和指令系统与8031单片机完全兼容,而且片内有2 k字节的闪速存储器。除没有P0口、P2口之外,具有8031所有的功能和结构,1片AT89C2051相当于8031、373、2716组成的最少系统,而其引脚只有20个。所以在测量任务单一的应用中,AT89C2051完全可以替代8031单片机,因此用他作为零转速表的核心电路,具有电路简单、系统可靠、体积小和成本低等优点。零转速表的硬件电路设计原理图如图1所示,电路主要由AT89C2051单片机、输入信号整形电路、MC14499显示驱动电路、E2PROM静态数据存储电路和MAX706“看门狗”等电路组成。

单片机在零转速表中的应用

如图1所示,转速信号经U1施密特电路整形,再经U2分频电路进行二分频之后,得到转速测量周期,以此周期的上升沿作为AT89C2051的内部计数器T0计数的开始信号,在整个高电平期间,T0计数器对时钟信号计数,当信号变为低电平(下降沿)时,产生中断请求,关闭定时器/计数器T0/C0,以此获得一个测量周期值,见图2所示。

单片机在零转速表中的应用

图1中的B1、B2、B3、B4是4位LED数码显示器,他和MC14499芯片共同组成了转速显示电路,以此来实现4·1/2位的转速显示。MC14499显示驱动芯片具有串行输入接口,用他并可直接驱动4位数码管显示器,其CPU控制方式有2种,I/O口控制方式和串行口控制方式,在零转速表中是采用I/O口控制方式。通过将AT89C2051单片机的P1口模拟为串行口,直接与MC14499串口连接,用软件实现串行输出操作。P14为使能信号EN,P15为时钟信号CLK,P16为串行数据DIN。AT89C2051单片机从模拟串口DIN输出数据时,发送顺序为从数据低位到高位处理。MC14499一次可接收20串行输入数据,如图3所示,前四位为4个LED显示器的小数点选择位,相应位为“1”时小数点显示,为“0”时熄灭,后16位是4个LED显示器的BCD码输入数据。由图1看出,显示的最大数为19999。若要显示4位半转速1XXX.X,则首位1由LED的A段与B段相连而成,然后再与第4位的Dp连接,最后连接到MC14499的Dp端。首位的COM端与第1位的COM端相连,共同作为第1位的位控制端,当小数点选择位为0011,即显示1XXX.X。

在零转速表的面板上设有4个独立的报警设定按键(S1、S2、S3、S4),他直接由AT89C2051微处理器P1口的4根I/O线组成,用于零转速报警值(例:为3.0r/min或0.25r/min)的设置。为了保证设定值在断电的情况下不丢失,选用2 k位的串行E2EPROM-24LC02B芯片,他的使用方法同显示芯片一样可直接连在AT89C2501的P3口上,同样也用软件来模拟串行输出操作,实现设定值的在线修改和存储。

为了提高该转速表的抗干扰能力,选用了带看门狗定时器和低压检测的低功耗μP监控芯片MAX706。MAX706芯片内部看门狗定时器的输入WDI,可接到AT89C2051单片机I/O口,当系统受到干扰,程序走飞或进入死循环时,系统不能向WDI端输入小于1.6 s周期的脉冲时,WDO输出的低电平通过与非门接到AT89C2051的RESET端,使系统复位,并重新启动系统。另外,当系统电源降至4.4 V以下时,MAX706芯片的RES复位端变为低电平,单片机复位,直到VCC升到4.4 V以上,RES仍保持低电平200 ms以后再复位至高电平,保证系统的可靠复位。MAX706芯片的看门狗定时器输出端WDO和复位端RES接到同一个与非门上,只要有一个为低,系统立即进入复位状态,从而提高了系统的安全性和可靠性。

单片机在零转速表中的应用

3零转速表的软件设计

零转速表的转速测量和报警功能均用软件完成。首先,将AT89C2051单片机内部定时/计数器T0和T1都设置为16位计数方式,用T0计数器作为零转速时基脉冲计数器,当计数器T0溢出时,产生中断进位信号,同时复位T0计数器,并重新开始计数。在中断服务程序中,使用RAM单元作模拟32位进位计数器,记录T0计数器溢出的次数。例:n=0.01r/min,F=0.01 Hz,N=100 000 000个数,而T0满时为216=65536,软计数器在RAM单元中若占用2个单元为216,则N最大可计232=4 294 967 296;其次,将AT89C2051中的T1计数器设计为20 ms的定时器,用于定时扫描键盘和刷新转速显示。

零转速表主程序和中断服务程序的功能框图如图4、图5、图6、图7所示。在主程序中首先进行初始化,将有关定量单元清零复位,然后设置定时/计数器的工作方式,并开中断,当转速信号上升沿来临时,启动计数器T0,开始对基准时间计数;当转速信号变为低电平时(下降沿口触发)关闭T0,并对计数值进行计算,送显示。主程序框图如图4所示。3个中断服务程序的功能是:定时、键盘扫描;读计数值;记录计数器溢出次数。中断服务程序框图如图5、图6、图7所示。

单片机在零转速表中的应用

单片机在零转速表中的应用

4 结束语

本仪器采用软件模拟进位计数器的方法,解决计数器进位的溢出问题,在实际应用中获得了较好的测量效果。另外,在显示和数据存储器的接口上都采用了串口方式,从而减少了CPU I/O口数量,使得该仪器的电路设计简明,结构小巧紧凑,工作稳定可靠。

提醒:《单片机在零转速表中的应用》最后刷新时间 2024-03-14 00:51:49,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机在零转速表中的应用》该内容的真实性请自行鉴别。