peter_wjp 发表于 2015-6-22 16:35:40

51单片机处理编码器信号

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

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

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

硬件软件都可以改动。

谢谢!

lcw_swust 发表于 2015-6-22 17:23:58

楼主先把自己的程序和电路发上来吧
编码器应该不会占用太多时间,频率5KHZ也不至于使得7段数码管闪烁

RAMILE 发表于 2015-6-22 21:20:54

使用软件定时中断,然后采样判断就足够应付5KHz的频率

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

单片机工作频率要足够高,普通8952没戏

mangocity 发表于 2015-6-24 11:03:38

参考帖子
http://www.amobbs.com/forum.php?mod=viewthread&tid=5597405
最后跟帖里的 PDF 文件。

peter_wjp 发表于 2015-7-11 23:24:47

RAMILE 发表于 2015-6-22 21:20
使用软件定时中断,然后采样判断就足够应付5KHz的频率

设计一个4倍采样的定时采样程序以20KHz的中断速率采 ...

我也觉得,目前用的比较熟悉的是STC的单片机
页: [1]
查看完整版本: 51单片机处理编码器信号