[发明专利]一种可避免事件遗漏的按键去抖检测方法在审
申请号: | 201410371985.9 | 申请日: | 2014-07-31 |
公开(公告)号: | CN104184479A | 公开(公告)日: | 2014-12-03 |
发明(设计)人: | 刘明;单洪朋;赵莹;陈乃澍 | 申请(专利权)人: | 山东神戎电子股份有限公司 |
主分类号: | H03M11/20 | 分类号: | H03M11/20 |
代理公司: | 济南泉城专利商标事务所 37218 | 代理人: | 褚庆森 |
地址: | 250101 山东省济南市高新开*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 避免 事件 遗漏 按键 检测 方法 | ||
1.一种可避免事件遗漏的按键去抖检测方法,设按键的抖动时间范围为 ms~ms,主程序包括按键检测子程序和其它子程序,按键检测子程序的执行周期为ms,其它子程序的执行周期为ms;其特征在于:按键检测子程序中按键状态的延时通过执行次的按键检测子程序和其它子程序来实现,程序的执行次数满足:<<;在连续执行了次按键检测子程序和其它子程序,按键的闭合或断开状态均保持一致时,才认为按键成功地闭合或断开。
2.根据权利要求1所述的可避免事件遗漏的按键去抖检测方法,其特征在于,通过以下具体步骤来实现:
a).定义变量,设变量temp_pre、temp_cur分别存储所有按键的前一状态值和当前状态值,key_deley_count用于存储按键检测子程序和其它子程序的执行次数,key_deley_count的初始值为零;key_flag_pre[m]为m个按键的前一状态数组,key_flag_cur[m]为m个按键的当前状态数组;
b).读按键状态,读入按键状态值,并将其存入temp_cur中;
c).判断是否有按键按下,判断按键的当前状态值temp_cur与前一状态值temp_pre是否相等,如果相等,则程序执行次数key_deley_count执行自动加1操作,如果不相等,则将程序执行次数key_deley_count置零;执行步骤d);
d).更新前一状态值,令temp_pre=temp_cur,以更新前一状态值;
e).判断延时是否结束,判断程序执行次数key_deley_count的值是否达到次,如果达到次,则表明延时结束,执行步骤f);如果没有达到次,则执行步骤g);
f).更新按键当前状态数组,改变数组key_flag_cur[m]中状态发生改变按键的值,以区分状态发生改变与未发生改变的按键;执行步骤g);
g).按键按下判断,通过前一状态数组key_flag_pre[m]、当前状态数组key_flag_cur[m]中每个按键的状态值,判断是否存在“前一状态为释放状态,当前状态为被按下状态”的按键,如果存在,则表明该按键处于按下状态,执行该按键被按下时的相应处理;如果不存在,则表明没有按键被按下;执行步骤h);
h).按键保持按下的判断,判断是否存在“前一状态被按下,当前状态被按下” 的按键,且按键的这一状态保持的时间段达到了设定时间段,如果存在,则表明该按键处于保持按下状态,执行按键被保持按下时的相应处理;如果不存在,则表明没有按键处于保持按下状态;执行步骤i);
i).按键释放判断,通过前一状态数组key_flag_pre[m]、当前状态数组key_flag_cur[m]中每个按键的状态值,判断是否存在“前一状态为被按下状态,当前状态为释放状态”的按键,如果存在,则表明该按键处于释放状态,执行该按键释放时的相应处理;如果不存在,则表明没有被释放;执行步骤j);
j).更新前一状态数组中的数值,将前一状态数组key_flag_pre[m]中每个按键的状态值,依次更换为当前状态数组key_flag_cur[m]中相应按键的状态值,以实现当前状态数组的更新;执行步骤k);
k).执行主程序中的其它子程序,以避免事件的遗漏;
l).返回步骤b)。
3.根据权利要求2所述的可避免事件遗漏的按键去抖检测方法,其特征在于:所述按键的抖动时间范围取为:5ms~10ms,步骤h)中所述的设定时间段取为1s。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东神戎电子股份有限公司;,未经山东神戎电子股份有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410371985.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:民航收信机的静音方法和系统
- 下一篇:一种基于阻变器件的模数转换电路