51单片机处理编码器信号

2020-01-20 18:56发布

各位大神,
最近在自学51单片机,现在遇到处理编码器信号,计算出速度并且通过脉冲数计算出距离。
目前我自己的方案是:
1. 编码器A相接单片机外部中断,B相接普通IO,主要是采样A相脉冲,B相用来判定方向。
2. 内部定时器每100ms统计下脉冲数然后计算出速度
3. 驱动7段数码管显示出实时速度 (通过扫描方式驱动)

现在问题就是由于使用的编码器频率很高,达到5KHZ,然后导致单片机一直在响应外部中断,7段数码管显示闪烁很厉害。

现在想办法去优化编码器的处理方式,释放单片机做更多事情,大家有什么好的建议呀?

硬件软件都可以改动。

谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
lcw_swust
1楼-- · 2020-01-21 00:56
楼主先把自己的程序和电路发上来吧
编码器应该不会占用太多时间,频率5KHZ也不至于使得7段数码管闪烁
RAMILE
2楼-- · 2020-01-21 05:50
使用软件定时中断,然后采样判断就足够应付5KHz的频率

设计一个4倍采样的定时采样程序以20KHz的中断速率采样编码器输入,读取AB相信号,查表做出判断,然后返回

单片机工作频率要足够高,普通8952没戏
mangocity
3楼-- · 2020-01-21 10:58
参考帖子
http://www.amobbs.com/forum.php?mod=viewthread&tid=5597405
最后跟帖里的 PDF 文件。
peter_wjp
4楼-- · 2020-01-21 15:04
 精彩回答 2  元偷偷看……

一周热门 更多>