单片机操作旋转编码器

单片机操作旋转编码器

ID:47440484

大小:184.37 KB

页数:3页

时间:2020-01-11

单片机操作旋转编码器_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《单片机操作旋转编码器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、最近做了一个关于旋转编码器的项目,在网上查阅了很多资料,然后又是进行了诸多的实验,分享给大家。1旋转编码器原理(借用一下别的文档里的图片)5脚的旋转编码开关具有左转,右转,按下三个功能。2脚接地,1,3脚接上拉电阻。4脚,5脚是按下功能的两个脚,可以根据需求自己接线。检查方向时,通常采用两种做法(1)中断法:获取A或B的上升沿或下跳沿,在中断程序中,检测此时另外一相的电平。例如上图中,A相上跳沿,B相为低电平则为顺时针转动;B相为高电平二者为逆时针方向转动。(2)电平法:同时检测A相和B相的电平,当出现A,B不相同时,则能判定发生

2、了转动,根据前一时刻A相和B相的电平,则能判断出转动的方向。2硬件电路本设计在PIC16单片机上进行开发,采用中断法。旋转编码开关输出上拉,之后采用RC滤波器对信号进行先一步滤波,此处的RC滤波器的元器件大小可以适当调整。中断源采用的是捕捉模块(CCP2)的捕捉中断(外部中断用于别处)。3C代码中断响应函数:voidinterruptISR(void){if(CCP2IF){CCP2IF=0;Change();}//程序中CCP2设置成捕捉下跳沿}voidChange(){unsignedintt2=2000;if(RC3)//高

3、电平{while((!RC1)&&(t2--))//等待RC1的低电平持续完{Delay();}if(!RC3)//判断此时RC3的电平,以确认转动发生{//增或减操作}else{while((!RC1)&&(t2--))//等待RC1的低电平持续完{Delay();}if(RC3)//判断此时RC3的电平,以确认转动发生{//增或减操作}}}4注意事项:滤波电路,延迟时间等均需要根据具体的旋转开关进行调整。一般的单片机程序中,并不建议在中断中添加延迟函数,但应视具体情况而定。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。