51单片机检测鼠标滚轮(旋转编码器)成功~采用外部中断模式未添加其他器件

2020-01-12 17:15发布

RT
接线很简单,公共端接地,其他两个引脚A,B分别接到P3.2和P3.3通过10K电阻上啦,因为这个小编码器中午被我拆开了一次,所以有点不大灵敏,不过调调音量这类的功能应该没问题,回头在对火个废鼠标试试。
只发中断程序吧,显示用的12864
//定义了一个char全局变量b最大计数到255
//AA--P3.2
//BB--P3.3
void ini0() interrupt 0
{
  IE0=0;
  EX0=0;
  delayms(15);
if (AA==0)
  {
   if(BB==0) //如果旋转方向和计数方向相反修改此处
   {
    b++;
    if(b>255){b=0;}
    }
   else  
   {
    b--;
    if(b<0){b=0;}
   }
  }
  EX0=1;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
29条回答
ahamao
1楼-- · 2020-01-14 22:07
滚轮硬件设计上面,最好加上104滤波
ahamao
2楼-- · 2020-01-15 03:04
滚轮软件上要注意倍频
mii
3楼-- · 2020-01-15 08:24
这种方式在低速应用下是可以,不过也得在硬件上做一消抖电容,要不然整个稳定性在会变差。如果再深入做一个带加速,或一个高精度编码开关时,这些考虑的事更多。所以一个看似简单,做起来也不容易
auto01
4楼-- · 2020-01-15 12:56
关注一下,鼠标的滚轮还可以当编码器?
Anqi90
5楼-- · 2020-01-15 17:29
 精彩回答 2  元偷偷看……
mook_dj
6楼-- · 2020-01-15 17:49
Ian11122840 发表于 2010-11-7 10:25
我前两天用cpld也做了个编码器,
是用在大型机器上的,要求来回转一个星期都不能丢步!…
看你的程序用着玩 ...

个人觉得像鼠标的滚轮就是编码器这一类编码器,只是应用在一般的场合,当然不能应用在严格的工业场所,就所电脑鼠标用硬件驱动,对于快速转向就经常出现丢步现象。

其它的精密的编码器我没没用过,就没发言权了。

一周热门 更多>