检测按键输入的方法和装置制造方法及图纸

技术编号:4251135 阅读:192 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种检测按键输入的方法和装置,涉及按键输入检测领域,为消除按键抖动引起的按键输出信号不稳定的技术问题而发明专利技术。该方法包括:每一采样周期采集一次按键输入状态,生成3个相邻采样周期的按键输入状态,分别为:Kinput(n)、Kinput(n-1)以及Kinput(n-2);如果Kinput(n-2)、Kinput(n-1)和Kinput(n)中的至少两个都为没有按键按下,则当前采样周期的按键输出状态Koutput(n)为:没有键值输出。本发明专利技术实现方法简单。

【技术实现步骤摘要】

本专利技术涉及按键输入检测领域,特别是指一种检测按键输入的方法和装置
技术介绍
按键在电路设计中经常会用到,例如,应用于固定电话、移动电话、电脑、或单片机 中。以单片机为例,单片机控制系统中大多使用控制键来实现控制功能。通过按键的按下 或者抬起,输出按键信号。组成键盘的按键有触点式和非触点式两种,对于机械式触点,当 机械触点断开、闭合时,会有抖动。因此按键的按下与抬起都会有10 20ms的抖动毛剌存 在,这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全可以感应到的,因为计 算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个 漫长的时间了。只按了一次按键,计算机却已执行了多次中断的过程,现有技术的算法会 将机械抖动作为一次按键输入,如果执行的次数正好是奇数次,那么运算结果是正确的,如 果执行的次数是偶数次,那运算结果就不对了 。因此造成按下按键时有时有按键输出,有时 没有按键输出,输出的按键信号不稳定。
技术实现思路
本专利技术要解决的技术问题是提供一种能够消除机械抖动的检测按键输入的方法 和装置。 为解决上述技术问题,本专利技术的实施例提供技术方案如下 —方面,提供一种检测按键输入的方法,包括 每一采样周期采集一次按键输入状态,生成3个相邻采样周期的按键输入状 态,分别为当前采样周期的按键输入状态Kinput(n)、所述当前采样周期的前一采样 周期的按键输入状态Kinput(n-l)以及前一采样周期的前一采样周期的按键输入状态 Ki即ut(n-2); 如果Kinput (n-2) 、 Kinput (n-l)和Kinput (n)中的至少两个都为没有按键按下, 则当前采样周期的按键输出状态Koutput(n)为没有键值输出; 如果Kinput (n-2) 、 Kinput (n_l) 、 Kinput (n)中的至少两个为有按键按下且按下 的键值都不相同,则当前采样周期的按键输出状态Koutput(n)为没有键值输出; 如果Kinput (n-2) 、 Kinput (n_l) 、 Kinput (n)中的至少两个为有按键按下且至少 两个按下的键值相同,则当前采样周期的按键输出状态Koutput(n)为有键值输出且输出 的键值为相同的所述键值。 所述按键输入状态为没有按键按下或有按键按下; 所述按键输出状态为没有键值输出或有键值输出。 所述的检测按键输入的方法,还包括 比较所述当前采样周期的按键输出状态Koutput(n)和前一个采样周期的按键输 出状态Koutput(n-l),生成比较结果; 根据所述比较结果,生成当前采样周期的按键状态变化Sstatus(n); 根据所述当前采样周期的按键状态变化Sstatus(n),输出按键处理控制信号。 所述根据所述比较结果,生成当前采样周期的按键状态变化Sstatus(n)的步骤包括 如果当前采样周期的按键输出状态Koutput(n)和前一个采样周期的按键输出状 态Koutput (n-1)都为没有键值输出时,则所述当前采样周期的按键状态变化Sstatus (n) 为持续没有按下按键; 如果当前采样周期的按键输出状态Koutput (n)和前一个采样周期的按键输出状 态Koutput (n-1)都为有键值输出时,则所述当前采样周期的按键状态变化Sstatus (n)为 持续按下按键; 如果当前采样周期的按键输出状态Koutput (n)为有键值输出,前一个采样周期 的按键输出状态Koutput (n-1)为没有键值输出,则所述当前采样周期的按键状态变化 Sstatus (n)为抬起按键; 如果当前采样周期的按键输出状态Koutput (n)为没有键值输出,前一个采样周 期的按键输出状态Koutput (n-1)为有键值输出,则所述当前采样周期的按键状态变化 Sstatus (n)为按下按键。 所述根据所述当前采样周期的按键状态变化Sstatus (n),输出按键处理控制信号 的步骤为 如果所述当前采样周期的按键状态变化Sstatus (n)为持续没有按下按键,则不 输出按键处理控制信号; 如果所述当前采样周期的按键状态变化Sstatus (n)为持续按下按键、抬起按键或按下按键,则输出按键处理控制信号。 另一方面,提供一种检测按键输入的装置,包括 采集单元,用于每一采样周期采集一次按键输入状态,生成3个相邻采样周期的 按键输入状态,分别为当前采样周期的按键输入状态Kinput (n)、当前采样周期的前一采 样周期的按键输入状态Kinput(n-l)以及前一采样周期的前一采样周期的按键输入状态 Kinput(n_2); 按键输出状态生成单元,用于如果Kinput (n-2) 、 Kinput (n_l)和Kinput (n)中的至少两个都为没有按键按下,则当前采样周期的按键输出状态Koutput (n)为没有键值输出; 如果Kinput (n_2) 、 Kinput (n_l) 、 Kinput (n)中的至少两个为有按键按下且按下的键值都不相同,则当前采样周期的按键输出状态Koutput (n)为没有键值输出; 如果Kinput (n_2) 、 Kinput (n_l) 、 Kinput (n)中的至少两个为有按键按下且至少两个按下的键值相同,则当前采样周期的按键输出状态Koutput (n)为有键值输出且输出的键值为相同的所述键值。 所述的检测按键输入的装置,还包括 比较单元,用于比较所述当前采样周期的按键输出状态Koutput (n)和前一个采 样周期的按键输出状态Koutput (n-1),生成比较结果; 按键状态变化生成单元,用于根据所述比较结果,生成当前采样周期的按键状态 变化Sstatus (n);6 输出单元,用于根据所述当前采样周期的按键状态变化Sstatus(n),输出按键处 理控制信号。 所述按键状态变化生成单元具体为 如果当前采样周期的按键输出状态Koutput(n)和前一个采样周期的按键输出状 态Koutput (n-1)都为没有键值输出时,则所述当前采样周期的按键状态变化Sstatus (n) 为持续没有按下按键; 如果当前采样周期的按键输出状态Koutput (n)和前一个采样周期的按键输出状 态Koutput (n-1)都为有键值输出时,则所述当前采样周期的按键状态变化Sstatus (n)为 持续按下按键; 如果当前采样周期的按键输出状态Koutput (n)为有键值输出,前一个采样周期 的按键输出状态Koutput (n-1)为没有键值输出,则所述当前采样周期的按键状态变化 Sstatus (n)为抬起按键; 如果当前采样周期的按键输出状态Koutput (n)为没有键值输出,前一个采样周 期的按键输出状态Koutput (n-1)为有键值输出,则所述当前采样周期的按键状态变化 Sstatus (n)为按下按键。 所述输出单元具体为 如果所述当前采样周期的按键状态变化Sstatus (n)为持续没有按下按键,则不 输出按键处理控制信号; 如果所述当前采样周期的按键状态变化Sstatus (n)为持续按下按键、抬起按键 或按下按键,则输出按键处理控制信号。 所述按键输入状态为本文档来自技高网...

【技术保护点】
一种检测按键输入的方法,其特征在于,包括:每一采样周期采集一次按键输入状态,生成3个相邻采样周期的按键输入状态,分别为:当前采样周期的按键输入状态Kinput(n)、所述当前采样周期的前一采样周期的按键输入状态Kinput(n-1)以及前一采样周期的前一采样周期的按键输入状态Kinput(n-2);如果Kinput(n-2)、Kinput(n-1)和Kinput(n)中的至少两个都为没有按键按下,则当前采样周期的按键输出状态Koutput(n)为:没有键值输出;如果Kinput(n-2)、Kinput(n-1)、Kinput(n)中的至少两个为有按键按下且按下的键值都不相同,则当前采样周期的按键输出状态Koutput(n)为:没有键值输出;如果Kinput(n-2)、Kinput(n-1)、Kinput(n)中的至少两个为有按键按下且至少两个按下的键值相同,则当前采样周期的按键输出状态Koutput(n)为:有键值输出且输出的键值为相同的所述键值。

【技术特征摘要】
一种检测按键输入的方法,其特征在于,包括每一采样周期采集一次按键输入状态,生成3个相邻采样周期的按键输入状态,分别为当前采样周期的按键输入状态Kinput(n)、所述当前采样周期的前一采样周期的按键输入状态Kinput(n-1)以及前一采样周期的前一采样周期的按键输入状态Kinput(n-2);如果Kinput(n-2)、Kinput(n-1)和Kinput(n)中的至少两个都为没有按键按下,则当前采样周期的按键输出状态Koutput(n)为没有键值输出;如果Kinput(n-2)、Kinput(n-1)、Kinput(n)中的至少两个为有按键按下且按下的键值都不相同,则当前采样周期的按键输出状态Koutput(n)为没有键值输出;如果Kinput(n-2)、Kinput(n-1)、Kinput(n)中的至少两个为有按键按下且至少两个按下的键值相同,则当前采样周期的按键输出状态Koutput(n)为有键值输出且输出的键值为相同的所述键值。2. 根据权利要求1所述的检测按键输入的方法,其特征在于, 所述按键输入状态为没有按键按下或有按键按下;所述按键输出状态为没有键值输出或有键值输出。3. 根据权利要求2所述的检测按键输入的方法,其特征在于,还包括比较所述当前采样周期的按键输出状态Koutput(n)和前一个采样周期的按键输出状 态Koutput (n-1),生成比较结果;根据所述比较结果,生成当前采样周期的按键状态变化Sstatus(n); 根据所述当前采样周期的按键状态变化Sstatus(n),输出按键处理控制信号。4. 根据权利要求3所述的检测按键输入的方法,其特征在于,所述根据所述比较结果, 生成当前采样周期的按键状态变化Sstatus(n)的步骤包括如果当前采样周期的按键输出状态Koutput (n)和前一个采样周期的按键输出状态 Koutput (n-1)都为没有键值输出时,则所述当前采样周期的按键状态变化Sstatus(n)为 持续没有按下按键;如果当前采样周期的按键输出状态Koutput (n)和前一个采样周期的按键输出状态 Koutput (n-1)都为有键值输出时,则所述当前采样周期的按键状态变化Sstatus(n)为持 续按下按键;如果当前采样周期的按键输出状态Koutput (n)为有键值输出,前一个采样周期 的按键输出状态Koutput (n-1)为没有键值输出,则所述当前采样周期的按键状态变化 Sstatus(n)为抬起按键;如果当前采样周期的按键输出状态Koutput (n)为没有键值输出,前一个采样周 期的按键输出状态Koutput (n-1)为有键值输出,则所述当前采样周期的按键状态变化 Sstatus(n)为按下按键。5. 根据权利要求4所述的检测按键输入的方法,其特征在于,所述根据所述当前采样 周期的按键状态变化Sstatus(n),输出按键处理控制信号的步骤为如果所述当前采样周期的按键状态变化Sstatus(n)为持续没有按下按键,则不输出 按键处理控制信号;如果所述当前采样周期的按键状态变化Sstatus(n)为持续按下按键、抬起按键或按 下按键,则输出按键处理控制信号...

【专利技术属性】
技术研发人员:艾国
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利