|
发表于 2017-8-30 08:30:38
|
显示全部楼层
把这段代码放到程序的循环或计时器中可判断编码器的旋转和按键状态,然后执行类似按键的操作就可以了(不带按键的编码器没有按键功能,如需更多功能还要考虑转动快慢、按键长按或短按等,需要增加对应代码)。
sbit RA = P1^5; //飞梭接口A
sbit RB = P1^6; //飞梭接口B
sbit KEY = P1^7; //飞梭按键接口
unsigned char r; //编码器返回值:0-无动作,1-向左转,2-向右转,3-按键被按下
bit en; //已旋转标志
if(RB==0&&RA==1&&r==0)en=1; //已转动
if(RB==0&&RA==0&&en==1)en=0,r=1; //向左转
if(RB==1&&RA==1&&en==1)en=0,r=2; //向右转
if(KEY==0&&r==0)r=3; //按键按下
if(r==1){执行按键1操作}
if(r==2){执行按键2操作}
if(r==3){执行按键3操作}
r=0; //执行完操作键值清0
|
|