法2:硬件组成和波形如所示,当Q=1时8253计数,Q=0时停止计数。原理在此不再详述。
方法3:上述方法1和方法2由于只使用一块8253芯片,在Q=1时8253进行计数,而在Q=0时停止计数,并且8253不能立即启动计数。
在AT89C2051在中断服务程序中读取8253计数器1和计数器2的计数值,重新设定内部定时器的初值和8253计数器1和计数器2的计数初值,重新启动T0和发出测速启动信号后并在CP下一个脉冲上升沿的作用下Q变为高电平后,8253才重新开始计数,因此8253总要有计数的停止时间,这样降低了转速的采样频率。为了实现快速测量,特作改进,硬件组成和波形如所示。
可见,使用了两块8253芯片交替工作,当一块8253正在计数时,CPU在CP2下降沿(即单稳电路由暂稳态结束恢复到稳态的下降沿)作用下产生外部中断请求,在中断服务程序中根据P1.1的状态判断当前是哪一个计数器在工作,从而读取刚刚停止工作的另一块芯片在上一采样周期的计数值,并重新设置其计数初值,为下一采样周期的重新计数作好准备,这样可以快速实现电机瞬时值的测量。
在采样定时器发出的采样脉冲信号上升沿的作用下Q0置1,则D1=1.在四倍频脉冲信号的上升沿的作用下,Q1置1,而Q1为单稳电路的触发信号,Q1的上升沿触发单稳电路工作,单稳电路输出脉冲的下降沿有3个作用:触发器G1和G0清零;产生INT0的外部中断请求;使触发器G2产生翻转,切换18253和28253的工作。
软件设计方法3的主程序和T0以及外部中断0中断服务程序的框如示。由于8253为减法计数器,初始化时设其定时器1和定时器2的计数初值均为OFFFFH,这样当计数结束后,将定时器中的计数结果读出取反,即可得到mp和mc的值。PSW.5为用户标志,初始化为0,当产生外部中断,在中断服务程序中读取8253的计数值后,使PSW.5置1,从而在主程序中根据PSW.5的状态来处理新的计数值。
结束语本文介绍的转速测量方法简单,实用可靠,满足了工作要求。