51单片机旋转编码器程序很少有用外部中断

51单片机旋转编码器程序很少有用外部中断,第1张

是的。51单片机旋转编码器程序很少用外部中断,通常采用轮询方式来读取编码器的旋转值,主要是因为对于大多数应用场景来说,编码器的旋转速度较慢,所需的处理速度较低,因此通过轮询方式读取可以满足需求。在外部中断方式下,当编码器旋转速度过快时,可能会因为中断处理时间过长导致读取的值不准确,甚至丢失转动信息,使用外部中断还需要在程序中编写中断处理函数和配置中断相关寄存器,相对来说比较繁琐。在编码器的转速较高,要求精度较高的场合,使用外部中断可以显著提升读取的准确性。

旋转编码器一般输出3路信号ABZ,AB相位差是90°

将A接到中断。当A下降沿时:B为高就是正转一步,B为低则是反转一步。

转速可以用若干步用的时间进行计算。

相对型旋转编码器:

将A、B路脉冲接入8051(或8031)单片机的脉冲输入端口。用程序读入脉冲的8种状态(即A为高电平;A非为低电平;A↑为A的上跳沿;A↓为A的下跳沿。B 类似),并有8种组合,其中四种组合表示旋转编码器正转,另四种组合表示旋转编码器反转(具体略)。

根据旋转编码器每转的编码数,以及选择的倍率(一般为4倍),计算脉冲当量(即每个脉冲对应的转角--度/脉冲)。

单片机发出读脉冲指令,计数器开始累加脉冲输入个数,直到单片机发出停止指令。由程序计算出旋转角度。

以上是由主程序读脉冲,也可以中断方式读脉冲。具体程序处理略。

绝对型旋转编码器:

将旋转编码器的编码信号通过并行口接入8051(或8031)单片机的数据输入端口。

旋转编码器每转对应n个编码,计算每度角度对应m个编码(即m=n/360)。

可通过中断方法读旋转编码器的编码。

通过两次读的编码,计算出旋转角度。

程序需要注意两点:旋转方向的处理和模数的处理。具体程序处理略。

简单叙述至此,希望能对你有所帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11335044.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存