技术文章您的位置:网站首页 >技术文章>光电编码器输出脉冲的三种计数方法
光电编码器输出脉冲的三种计数方法
更新时间:2013-09-16   点击次数:5606次

一、用软件实现脉冲的鉴相、计数

    光电编码器输出的A向脉冲接到单片机的外部中断INT0,B向脉冲接到I/O端口P1.0。当系统工作时,首先要把INT0设置成下降沿触发,并开相应中断。当有有效脉冲触发中断时,进行中断处理程序,判别B脉冲是高电平还是低电平,若是高电平则编码器正转,加1计数;若是低电平则编码器反转,减1计数。

二、用硬件实现脉冲的鉴相、计数

    硬件计数在执行速度上有软件计数不可比拟的优势,通常采用多个可预置4位双时钟加减计数器74LS193级联组成的加减计数电路。P0-P3为计数器的4位预置数据端,与数据输入锁存器相接;Q0-Q3为计数器的4位数据输出端,与数据输出缓冲器相接;MR为清零端与上电清零脉冲相接;PL为预置允许端,由译码控制电路触发;CU为加脉冲输入端,CD为减脉冲输入端;TCU为进位输出端,TCD 为借位输出端。当CU和CD中一个输入脉冲时,另一个必须处于高电平,才能进行计数工作。而从编码器直接输出的A、B两路脉冲不符合要求,不能直接接到计数器的输入端。但我们可以利用这两路脉冲之间的相位关系对其进行鉴相后再计数。

三、利用单片机内部计数器实现可逆计数

    用纯软件计数虽然电路简单,但是计数速度慢,难以满足实时性要求,而且容易出错,用外接加减计数芯片的方法,虽然速度快,但硬件电路复杂,要做一个12位计数器需要5个外围芯片,成本也较高。那么需要用单片机内部的计数器来实现加减计数。8051片内有两个16位的定时器:定时器0和定时器1,8052还有一个定时器2,这三个定时器都可以作为计数器来用。但8051内部的计数器是加1计数器,所以不能直接应用,必须经过适当的软件编程,来实现其“减”计数功能。可以把经过D触发器之后的脉冲,即方向控制脉冲(DIR)接到单片机的外部中断INT0端,同时经过反向器后再接到另一个外部中断INT1,并且把计数脉冲A接到单片机的片内计数器T0端即可,相对外部计数芯片来说,使用这种方法电路相对要简单的多。系统工作时,先要把两个中断设置成下降沿触发,并打开相应的中断。当方向判别脉冲(DIR)由低—高跳变时,INT1中断,执行相应的中断程序,进行加计数;而当方向判别脉冲由高—低跳变时,INT0中断,执行相应的中断程序,进行“减”计数(实际是重新复值,进行加计数)。
 

网站首页 关于我们 新闻中心 产品中心 联系我们
备案号:沪ICP备09051314号-3   GoogleSitemap   技术支持:智能制造网 管理登陆
© 2018 上海德晶光电科技有限公司DECHING(www.deching.com.cn) 版权所有 总访问量:469927