找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 784|回复: 3
收起左侧

51单片机采集编码器信号,感觉读的脉冲数不对

[复制链接]
ID:1003526 发表于 2022-1-27 14:48 | 显示全部楼层 |阅读模式
编码器连接单片机的IO口,编码器单周脉冲是720个,但是手动转编码器一周采集到的信号才100多个。
是不是单片机的循环速率太低,让单片机跑一个自加程序,用LCD1602显示数值,感觉数值自加的速率很慢。
如果是这个原因,有什么办法可以提高程序的运行速度。
回复

使用道具 举报

ID:883242 发表于 2022-1-27 20:11 | 显示全部楼层
编码器应该使用外部中断来实现,你该不会是用了查询端口状态来做的吧?
回复

使用道具 举报

ID:1003526 发表于 2022-1-28 14:51 | 显示全部楼层
Hephaestus 发表于 2022-1-27 20:11
编码器应该使用外部中断来实现,你该不会是用了查询端口状态来做的吧?

确实不是用中断做的,是使用51的P2口做的,我以为指令的执行速度够快是可以用查询端口做的,能不能详细说一下为什么查询端口做不成。
回复

使用道具 举报

ID:161164 发表于 2022-1-29 10:29 | 显示全部楼层
你的LCD是不断更新的吧?
LCD的显示函数是很耗时间滴
你试试在程序底加一段IO口取反代码
如:
Void main()
{
While(1)
{
//你的代码

P17 = !P17;
}
}
然后看看P17口的输出频率就能大致知道一次循环要多久
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表