PIC16C54 RB5按键在1秒之内连续按键处理??
想用PIC16C54 RB5为按键,在1秒之内,当按1下的时候,执行A事件,当连续按2下的时候,执行B事件,当连续按3下的时候,执行C事件,该怎么来做软件可以实现这个功能? 设置3个标志位,分别作为第一,二,三次按下标志down_1,down_2,down_3当有键按下的时候:
down_2为1吗?
是:则down3=1, ...
否:down_1为1吗?
是:则down2=1, ...
否:则down_1=1,同时启动定时器,定时1秒
当定时器定时1秒到:按照down_3 , down_2, down_1的优先顺序判断这些标志位,
就可以正确知道应该执行哪一个功能。
注:上面的方法没有检测按键是否释放,因为有的人就是喜欢按住你的按键,舍不得放开,呵呵;按照上面的思路,
如果按住键不放、单击一下然后又按住不放、双击后又按一次不放开,都会使down_1,down_2,down_3 被相继置位,1秒后肯定执行down_3对应的功能。
页:
[1]