一种键盘的制作方法

文档序号:6451834阅读:201来源:国知局
专利名称:一种键盘的制作方法
技术领域
本实用新型涉及一种按键信息的处理方法,尤其涉及一种键盘。
背景技术
现有使用ADC(Analog-to_Digital Converter,模/数转换器)方式的按键电路,具有硬件电路简单、按键电路与单片机连线少、能节省I/O 口、易于修改以及节省成本等优点。现在的大部分MCU(Micro Control Unit,微控制单元)都有ADC功能,只要把ADC按键电路接入到MCU的ADC接口即可,ADC按键电路的实质 是一个电阻分压器,其基本原理如图I所示。图中,送往ADC器件的电压Vadc是电阻R1、R2对电压V cc的分压值,ADC器件对V adc进行转换得到一个对应的数字量。由于每一个数字量只对应一个模拟电压,所以只要不同的按键按下就可以取得不同的分压值,通过软件对数字量的识别,进而辨别出是哪个按键按下。现有ADC按键的识别方法一般是利用求平均值的方法去识别,机械按键抖动时间的长短由按键的机械特性决定,而按键的闭合稳定时间的长短由操作人员的按键动作决定。软件每隔一段时间采样I次ADC数据并保存,共采样大于等于3次,执行数字滤波舍去最大、最小值,再对剩下的数据求平均值的方法去获得一个ADC值,利用这个值确定所按下的按键。在一般情况下,当抖动只出现在按键按下和弹起那一瞬间的时候,这种方法可以很好的解决误识别的问题。但当在按键按下并保持的闭合稳定时间内,出现了读取异常ADC值的情况,这种情况下,如果利用求得平均值的方法就很难去正确识别按键,因为读取到的异常ADC有可能比实际所按的按键ADC值大很多,例如出现2次异常读取的话,且2次ADC值(12位ADC)都比较大(如3000和3100),只去掉了一个值(去掉3100),另外一个值和其他的正常值一起求平均值(正常值为200,有6次,异常为3000,有I次,结果就是600),得到的按键ADC值可能会误差较大(600明显比正常200大很多),无法正常进行识别。因此现有技术在使用软件识别ADC按键的时候容易出现误识别的情况,尤其在一路ADC器件上有较多按键的时候,这种情况比较严重。ADC按键的ADC值出现抖动的时候一般是在刚开始和结束的时候,但当出现的误读ADC值在稳定的按键闭合期内,则不容易识另IJ,而且当误读的ADC值和正常ADC差别较大时,影响较大。综上可知,现有消除按键抖动方法在实际使用上,显然存在不便与缺陷,所以有必要加以改进。

实用新型内容有鉴于此,本实用新型提供一种键盘,其能消除按键抖动,在按键闭合稳定期内读取非正常按键采样信号值的时也能正确识别按键,同时能够提高MCU的运行效率。为了实现上述目的,本实用新型提供一种键盘,所述键盘包括键盘盘体、设于所述键盘盘体表面的按键以及位于键盘盘体内的按键电路,所述键盘还包括位于所述键盘盘体内的按键抖动消除装置,所述按键抖动消除装置与按键电路连接,所述按键抖动消除装置包括获取按键电路采样信号的采样电路;用于将该按键的按键计数次数进行累加的计数器,当所述采样电路获取的采样信号值在其中一个按键的按键参考值范围内,则将该按键的按键计数次数累加一次,所述按键参考值范围为预定义的正常采样信号取值范围,且每个按键分别对应一按键参考值范围;用于将所述计数器中按键计数次数最多的按键作为有效按键处理的处理器,所述计数器与所述采样电路以及所述处理器分别连接。根据本实用新型的键盘,若采样电路获取的采样信号值不在所述按键参考值范围内,则采样电路再次获取采样信号值,若再次获取的采样信号值不在预设的无按键时采样信号取值范围内,则作为异常跳变处理。根据本实用新型的键盘,所述采样信号值为ADC值、电压值或电流值。根据本实用新型的键盘,若所述采样电路获取的采样信号值在其中一个按键的按键参考值范围内,还包括判断按键状态变量是否标记为按键按下状态,所述按键状态变量用于标记键盘处于按键按下状态或按键未按下状态;若按键状态变量标记为按键未按下状态,则将所述按键状态变量修改标记为按键按下状态,同时按键计时开始。根据本实用新型的键盘,若所述再次获取的采样信号值在预设的无按键时采样信号取值范围内,且所述按键状态变量标记为按键按下状态则按键计时结束,同时将所述按键状态变量修改为按键未按下状态。根据本实用新型的键盘,按键计时开始后,若按键状态变量为按键按下状态,且按键计时达到预设的按键长按时间,则执行按键长按操作;按键计时结束时,按键计时到达预设的按键短按时间而未到达预设的按键长按时间,则执行按键短按操作。本实用新型的键盘包括按键消除装置,按键消除装置通过获取按键电路的信号采样值,并判断该信号采样值是否在预定义的正常采样信号取值范围内,若在该范围内,则将该信号采样值对应的按键类型变量的计数累加一次,最后经过多次采样,通过对比各按键类型变量的计数,将按键类型变量计数最多的按键作为有效按键处理。在按键按下并保持闭合稳定的时间内,出现了读取异常采样信号值的情况,也能通过判断该采样信号值是否在正常采样信号取值范围内来排除该异常采样信号值,即使该异常采样信号值在正常采样信号取值范围内,也能通过多次采样,统计按键的按键类型变量计数,将按键类型变量计数最多的按键作为有效按键处理。同时,本案采用循环方式读取按键电路信号采样值,在读取信号采样值的间隙执行程序其他功能,而未使用延时方法读取按键电路信号采样值,提高了 MCU的运行效率。借此,本实用新型能消除按键抖动,在按键闭合稳定期内读取非正常按键采样信号值的时也能正确识别按键,同时能够提高MCU的运行效率。

图I是ADC按键电路的电路原理图;图2是本实用新型一种键盘的结构原理图;图3是本实用新型的按键抖动消除装置的运行流程图;图4是本实用新型的按键抖动消除装置一种具体实现方法的流程图。
具体实施方式
为了使本实用新型的目的、技术方案及优点更加清楚明白,一下结合附图及实施例,对本实用新型进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本实用新型,并不用于限定本实用新型。如图2所示,本实用新型一种键盘100,包括键盘盘体、设于键盘盘体表面的按键10以及位于键盘盘体内的按键电路20,键盘100还包括位于键盘盘体内的按键抖动消除装置30,按键抖动消除装置30与按键电路20连接,按键抖动消除装置30包括采样电路31、计数器32以及处理器33。采样电路31用于获取按键电路20的采样信号;计数器32,用于当采样电路31获取的采样信号值在其中一个按键10的按键参考值范围内,则将该按键10的按键计数次数累加一次,按键参考值范围为预定义的正常采样 信号取值范围,且每个按键分别对应一按键参考值范围;处理器33,用于将计数器32中按键计数次数最多的按键10作为有效按键处理,计数器32与采样电路31以及处理器33分别连接。本实用新型的按键抖动消除装置的运行流程如图3所示,该方法主要包括如下步骤步骤S201,获取按键电路的采样信号值,该采样信号值为ADC值、电压值或电流值。步骤S202,判断采样信号值是否在按键参考值范围内,按键参考值范围为预定义的正常采样信号取值范围,每个按键分别对应一按键参考值范围。例如按键电路20有三个按键,三个按键A、B、C的正常采样信号取值(ADC值)范围分别为(180 200)、(210 230)、(240 260),若获取的采样信号值为500,则该采样信号值不在这三个按键的正常采样信号取值范围内,丢弃该采样信号值。步骤S203,若采样信号值在其中一个按键的按键参考值范围内,则将该按键的按键类型变量计数累加一次。按键类型变量用于记录按键的类型(如按键A、按键B或按键C)。如前所述,若采样信号值为220,该采样信号值在按键B的正常采样信号取值范围内,SP在按键B的按键参考值范围内,则将按键B的按键类型变量计数累加一次。步骤S204,多次采样后,将按键计数最多的按键作为有效按键处理。例如进行了 8次采样,其中有I次的采样信号值不在A、B、C按键的按键参考值范围内,有6次采样信号值落入按键B的按键参考值范围内,有I次采样信号值落入按键C的按键参考值范围内,则按键C的按键类型变量计数最多,将按键B作为有效按键处理。本实用新型的按键消除装置30通过获取按键电路20的信号采样值,并判断该信号采样值是否在预定义的正常采样信号取值范围内,若在该范围内,则将该信号采样值对应的按键类型变量的计数累加一次,最后经过多次采样,通过对比各按键类型变量的计数,将按键类型变量计数最多的按键作为有效按键处理。在按键按下并保持闭合稳定的时间内,出现了读取异常采样信号值的情况,也能通过判断该采样信号值是否在正常采样信号取值范围内来排除该异常采样信号值,即使该异常采样信号值在正常采样信号取值范围内,也能通过多次采样,统计按键的按键类型变量计数,将按键类型变量计数最多的按键作为有效按键处理。借此,本实用新型能消除按键抖动,在按键闭合稳定期内读取非正常按键采样信号值的时也能正确识别按键。本实用新型的按键被按下的时候,软件开始进行循环读取,每隔一段时间读取一次信号采样值,采用循环方式读取按键电路20信号采样值,在读取信号采样值的间隙执行程序其他功能,而未使用延时方法读取按键电路20的信号采样值,提高了 MCU的运行效率。优选地,在步骤S203中,“若采样信号值在其中一个按键的按键参考值范围内”之后还包括判断按键状态变量是否处于按键按下标记状态,按键状态变量用于标记键盘处于按键按下状态或按键未按下状态;若按键状态变量标记为按键未按下状态,则将按键状态变量修改标记为按键按下状态,同时按键计时开始。也即,在首次接收到正常采样信号值之前,按键状态变量标记为没有按键按下,在首次收到正常采样信号值时,将按键状态变量修改标记为有按键按下。优选地,经过步骤S202的判断,若采样信号值不在按键参考值范围内,则再次获 取采样信号值,若再次获取的采样信号值不在预设的无按键时采样信号取值范围内(包括再次获取的采样信号值在按键参考值范围内或者不在按键参考值范围内),则作为异常跳变处理;若再次获取的采样信号值在预设的无按键时采样信号取值范围内,且按键状态变量标记为按键按下状态则按键计时结束,同时将按键状态变量修改为按键未按下状态。由按键计时开始至按键计时结束为一次按键的按键过程。也即,若连续两次采集的采样信号值均不在按键参考值范围内,而且第二次采集的采样信号值在无按键时采样信号取值范围内,则说明按键结束。按键计时开始后,若按键状态变量标记为按键按下状态,且按键计时达到预设的按键长按时间,则执行按键长按操作,也即在按键按下的时间到达预设的按键长按时间前还未接收到按键结束的信息,作为按键长按处理;按键计时结束时,按键计时到达预设的按键短按时间而未到达预设的按键长按时间,则执行按键短按操作,也即从按键计时开始到按键计时结束所统计的时间只到达按键短按时间而未到达按键长按时间,作为按键短按处理。图4示出了本实用新型的按键抖动消除装置一种实施例的具体实现方法,其流程主要包括以下步骤步骤S301,读取键盘电路的ADC值,并保存到变量A中。在步骤S301之前还包括首先对各个变量进行定义定义记录键盘电路ADC值的变量A、定义记录一次完整按键过程(包括按键的按下和弹起)的标记变量BI,定义记录按键按下的标记变量B2,定义记录按下按键的按键类型变量K,记录按键时间的变量T,定义记录读取到的所有按键类型数组变量K[10],定义记录读取到的所有按键的按键次数数组变量 C[10]。步骤S302,判断变量A中保存的ADC值是否在预定义的按键ADC值范围内,是则进入步骤S303,否则进入步骤S304。该预定义的按键ADC值范围即为预定义的正常ADC取值范围。步骤S303,判断变量B2是否标记按键按下,若是则转到步骤S306,否则进入步骤S305。步骤S304,再次读取键盘电路的ADC值,并进入步骤S314。[0042]步骤S305,标记B2为按键按下状态,BI为未完成按键过程状态,记录当前按键类型,保存到变量K中,设置按键类型数组变量K[0]等于K,按键次数数组变量C[0]增加一次,此时变量T开始计时。步骤S306,判断按键类型数组变量K[0]保存的类型是否等于当前按下的按键类型K,是则进入步骤S307,否则进入步骤S308。步骤S307,按键次数数组变量C[0]增加一次,步骤S308,保存当前按下的按键类型K到按键类型数组变量K[I]中,当前按键类型K对应的按键次数数组变量C[l]增加一次。步骤S309,判断C[0]是否大于C[l],是则进入步骤S310 ;若否则进入步骤S311。步骤S310,置K等于K[0],K有效。K有效则将K作为有效按键处理。步骤S311,判断C[0]是否小于C[l],是则进入步骤S312 ;否则说明C[0]等于C[l],并进入步骤S313。步骤S312,置K等于K[1],K有效。步骤S313,置K为无效值。步骤S314,判断再次读取的ADC值是否在预设的无按键时ADC值范围内,是则进入步骤S315,否则回到步骤S301。本步骤主要用于为了判断不在范围的ADC值是异常跳变还是正常按键放开导致。步骤S315,判断B2是否为按下状态,是则进入步骤S316,否则回到步骤S301。步骤S316,将BI标记为一次完整的按键过程,并将B2标记为按键未按下状态,变量T结束计时。步骤S317,判断K是否有效,是则进入步骤S318,否则回到步骤S301。步骤S318,判断是否满足B2为按下状态,并且T已经到达了长按状态的时间;或者当B2为未按下状态,T到达了短按状态的时间。是则进入步骤S319,否则回到步骤S301。步骤S319,执行按键长按或者按键短按处理,并进入步骤S320。步骤S320,置BI为一次完整按键过程,置B2为未按下状态,置K为无效值,变量T清空。从上述流程可以看出,按键被按下的时候,开始进行循环读取,每隔一段时间读取一次ADC值,并定义一个变量对读取到的ADC值进行计数,这个计数是通过比对当前读取到的ADC值所对应的按键类型和之前读取的ADC值所对应的按键类型进行判断,如果当前读取ADC值对应的按键类型与之前读取的ADC值对应的按键类型一致,则将该按键的按键类型变量计数次数进行一次累加,否则加入到新的按键类型变量中。当按键被释放的时候,对进行计数的几个变量进行对比,次数最多的那个即为当前按下的正确按键,如果次数都相等,则不进行处理。出现读取异常ADC值的情况,也能通过判断该ADC值是否在正常ADC值取值范围内来排除该异常ADC值,即使该ADC值在正常采样信号取值范围内,也能通过多次采样,统计按键类型变量K的计数次数,将按键类型变量K计数次数最多的按键作为有效按键处理。采用循环方式读取按键电路20的信号采样值,可以在读取信号采样值的间隙执行程序其他功能,而未使用延时方法读取按键电路20信号采样值,提高了 MCU的运行效率。综上所述,本实用新型的键盘包括按键消除装置,按键消除装置通过获取按键电路的信号采样值,并判断该信号采样值是否在预定义的正常采样信号取值范围内,若在该范围内,则将该信号采样值对应的按键类型变量的计数累加一次,最后经过多次采样,通过对比各按键类型变量的计数,将按键类型变量计数最多的按键作为有效按键处理。在按键按下并保持闭合稳定的时间内,出现了读取异常采样信号值的情况,也能通过判断该采样信号值是否在正常采样信号取值范围内来排除该异常采样信号值,即使该异常采样信号值在正常采样信号取值范围内,也能通过多次采样,统计按键的按键类型变量计数,将按键类型变量计数最多的按键作为有效按键处理。同时,本案采用循环方式读取按键电路信号采样值,在读取信号采样值的间隙执行程序其他功能,而未使用延时方法读取按键电路信号采样值,提高了 MCU的运行效率。借 此,本实用新型能消除按键抖动,在按键闭合稳定期内读取非正常按键采样信号值的时也能正确识别按键,同时能够提高MCU的运行效率。当然,本实用新型还可有其他多种实施例,在不背离本实用新型精神及其实质的情况下,熟悉本领域的技术人员当可根据本实用新型作出各种相应的改变和变形,但这些相应的改变和变形都应当属于本实用新型所附的权利要求的保护范围。
权利要求1.一种键盘,其特征在于,包括键盘盘体、设于所述键盘盘体表面的按键以及位于键盘盘体内的按键电路,所述键盘还包括位于所述键盘盘体内的按键抖动消除装置,所述按键抖动消除装置与按键电路连接,所述按键抖动消除装置包括 获取按键电路采样信号的采样电路; 用于将该按键的按键计数次数进行累加的计数器,当所述采样电路获取的采样信号值在其中ー个按键的按键參考值范围内,则将该按键的按键计数次数累加一次,所述按键參考值范围为预定义的正常采样信号取值范围,且每个按键分别对应ー按键參考值范围; 用于将所述计数器中按键计数次数最多的按键作为有效按键处理的处理器,所述计数器与所述采样电路以及所述处理器分别连接。
2.根据权利要求I所述的键盘,其特征在于,所述采样信号值为ADC值、电压值或电流 值。
专利摘要本实用新型涉及一种电子产品,尤其涉及一种键盘,其包括键盘盘体、设于所述键盘盘体表面的按键以及位于键盘盘体内的按键电路,所述键盘还包括位于所述键盘盘体内的按键抖动消除装置,按键抖动消除装置与按键电路连接,按键抖动消除装置包括采样电路、计数器以及处理器,计数器分别与采样电路以及处理器连接。借此,本实用新型能消除按键抖动,在按键闭合稳定期内读取非正常按键采样信号值的时也能正确识别按键,同时能够提高MCU的运行效率。
文档编号G06F3/02GK202404527SQ20112042657
公开日2012年8月29日 申请日期2011年10月31日 优先权日2011年10月31日
发明者张 林 申请人:深圳市大富科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1