英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

标题: PIC16C54 RB5按键在1秒之内连续按键处理?? [打印本页]

作者: winnie    时间: 2009-3-21 14:31
标题: PIC16C54 RB5按键在1秒之内连续按键处理??
想用PIC16C54 RB5为按键,在1秒之内,当按1下的时候,执行A事件,当连续按2下的时候,执行B事件,当连续按3下的时候,执行C事件,该怎么来做软件可以实现这个功能?
作者: winnie    时间: 2009-3-21 14:31
设置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对应的功能。




欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://www.enroobbs.com/) Powered by Discuz! X3.2