一种键盘输入的方法及装置
技术领域
本发明涉及电子设备技术领域,尤其是涉及一种键盘输入的方法及装置。
背景技术
现有的键盘控制装置大都沿用比较传统的方法:
1)基于电平检测的方法,为每个按键分配一个I/O口,实时检测每个I/O电平状态是否发生跳变,识别哪个键被按下;为一组按键分配一组I/O,使用I/O口的行列交错扫描方式,通过行扫描和列扫描来识别键盘控制。
该方法虽然通过行列扫描实现键控,但也要浪费处理器不少的I/O资源,如16个键盘要耗费8个I/O口,无法解决处理器I/O口使用紧张的现状。
2)基于脉冲长度的方法,只要复用一根I/O口实现键盘控制。
该方法虽然无论多少个按键,只使用处理器的一个I/O口,但为每个按键分配一个脉冲长度,需要精准的外部定时器,或者通过外部MCU的处理,这样加大了应用成本,设计也变得更加复杂。
3)基于触摸屏输入的方法,实现人机互动。
该方法对键盘控制提出了更高的要求,不但触摸感要符合人性化,而且要配备可触摸液晶屏,造价昂贵,只能适用于高端的嵌入式产品,无法满足大量消费性电子产品的应用需求。
发明内容
本发明所要解决的技术问题是:处理器I/O口使用紧张且成本较高。
为解决上述技术问题,本发明采用如下技术方案:
一种键盘输入的方法,所述方法包括以下步骤:
步骤S1:当键盘阵列中不同的按键被按下,通过单一复用的I/O总线产生与所述按键对应的模拟电流;
步骤S2:对所述模拟电流按一定的采样间隔进行采样并量化;
步骤S3:处理器对所述量化结果进行消除抖动处理,消除抖动处理后的量化样本均值存储于处理器的内存中;
步骤S4:所述处理器通过判断所述量化样本均值落入的量化区间,从而识别被按下的按键。
进一步,在上述键盘输入的方法中,所述步骤S1中的键盘阵列中不同的按键连接有对应的电阻。
进一步,在上述键盘输入的方法中,所述步骤S2具体包括:所述模拟电流通过外置的A/D转换器转换成相应的数字信号,或所述模拟电流通过内置于处理器的A/D模块处理转换成相应的数字信号。
进一步,在上述键盘输入的方法中,所述步骤S3具体包括:对所述量化结果去除偏离方差较大的不平稳的数据即消除抖动,由消除抖动处理后的量化样本得到量化样本均值并将其存储于处理器的内存中。
进一步,在上述键盘输入的方法中,所述步骤S4具体包括:
S401:所述处理器中预设有多个量化区间,所述多个量化区间对应于不同的按键;
S402:所述处理器通过判断所述量化样本均值落入的量化区间,从而识别被按下的按键。
本发明还提供一种键盘输入的装置,包括工作电源、键盘及设于所述键盘上的多个按键,所述键盘输入的装置还包括与键盘上的多个按键通过单一复用的I/O总线相连的处理器,当所述键盘中不同的按键被按下,通过单一复用的I/O总线产生与所述按键对应的模拟电流,所述模拟电流通过采样量化并由所述处理器进行消除抖动处理,得到量化样本均值并存储于处理器的内存中;所述处理器通过判断所述消除抖动后的量化样本均值落入的量化区间,从而识别被按下的按键。
进一步,在上述键盘输入的装置中,所述键盘中不同的按键连接有对应的电阻,当所述键盘中不同的按键被按下,使得所述不同的按键对应的电阻连通工作电源,以产生与所述按键对应的模拟电流。
进一步,在上述键盘输入的装置中,所述键盘输入的装置还包括一连接于处理器与键盘之间的外置A/D转换器,用于将所述模拟电流通过模数转换成相应的数字信号。
进一步,在上述键盘输入的装置中,所述处理器内置有A/D转换模块,所述多个按键通过单一复用的I/O总线连接处理器的A/D转换模块,用于将所述模拟电流通过模数转换成相应的数字信号。
进一步,在上述键盘输入的装置中,所述处理器还包括:数字信号处理模块及按键判断识别模块,所述数字信号处理模块用于对所述摸拟电流进行采样量化,再对所述量化结果进行消除抖动处理,由消除抖动处理后的量化样本得到量化样本均值;所述按键判断识别模块用于判断所述消除抖动后的量化样本均值落入的量化区间,从而识别被按下的按键。
本发明一种键盘输入方法及装置需要复用一根I/O口实现键盘控制,设计简洁、算法简单且成本较低。
附图说明
图1为本发明键盘输入的方法一实施例的流程示意图;
图2为图1中步骤S4的流程示意图;
图3为图1中采样量化的示意图;
图4为本发明键盘输入的装置一实施例的结构示意图;
图5为本发明键盘输入的装置另一实施例的结构示意图。
具体实施方式
下面结合附图详细说明本发明一种键盘输入的方法及装置的优选实施例。
请参阅图1,图1为本发明键盘输入的方法实施例的流程示意图。本发明键盘输入方法包括以下步骤:
步骤S1:当键盘阵列中不同的按键被按下,通过单一复用的I/O总线产生与所述按键对应的模拟电流;
步骤S2:对所述模拟电流按一定的采样间隔进行采样并量化;
步骤S3:处理器对所述量化结果进行消除抖动处理,消除抖动处理后的量化样本均值存储于处理器的内存中;
步骤S4:处理器通过判断所述量化样本均值落入的量化区间,从而识别被按下的按键。
其中,所述步骤S1中,所述键盘阵列中不同的按键连接有对应的电阻,当键盘阵列中不同的按键被按下,使得所述不同的按键对应的电阻连通工作电源,以产生与所述按键对应的模拟电流。
请参阅图4及图5,所述步骤S2具体包括:
1)所述模拟电流通过外置的A/D转换器转换成相应的数字信号:
MCU定时地查询一下A/D转换器,探测一下是否有新的A/D转换值,即探测一下是否有键按下,若无键按下,则退出,若有键按下,则在规定的采样间隔下,MCU通过控制口线控制A/D转换器,使其产生若干个对模拟电流的A/D转换结果,并记录于处理器缓冲区中;
2)或者所述模拟电流通过内置于处理器的A/D模块处理转换成相应的数字信号:
若有键按下,内置A/D转换模块自动产生中断,控采样间隔连续采集模拟电流并量化,其量化结果记录于处理器缓冲区中。
所述步骤S3具体包括:
对所述量化结果去除偏离方差较大的不平稳的数据即消除抖动,由消除抖动处理后的量化样本得到量化样本均值并将其存储于处理器的内存中。
请参阅图2及图3,所述步骤S4具体包括:
S401:所述处理器中预设有多个量化区间(x,x+d),所述多个量化区间对应于不同的按键;
S402:所述处理器通过判断所述量化样本均值落入的量化区间,从而识别被按下的按键。
本发明一种键盘输入方法通过单一复用的I/O总线产生与不同按键对应的模拟电流,并经过数模转化及消除抖动被处理器(MCU)识别,从而只需要单个I/O总线实现键盘不同按键的输入,键盘网络只需要处理器(MCU)提供单一的I/O口就可以实现人机交互。
请参阅图4及图5,本发明还提供一种键盘输入的装置,包括工作电源1、键盘10及设于键盘10上的多个按键2,所述键盘输入装置还包括与键盘10上的多个按键2通过单一复用的I/O总线相连的处理器3(MCU),当所述键盘10中不同的按键2被按下,通过单一复用的I/O总线产生与所述按键2对应的模拟电流,所述模拟电流通过采样量化并由所述处理器3进行消除抖动处理,得到量化样本均值并存储于处理器3的内存中;所述处理器3通过判断所述消除抖动后的量化样本均值落入的量化区间,从而识别被按下的按键2。
所述键盘10中不同的按键2连接有对应的电阻4,当所述键盘10中不同的按键2被按下,使得所述不同的按键2对应的电阻4连通工作电源1,以产生与所述按键对应的模拟电流。所述键盘10可依A/D转换精度灵活扩展不同数目的按键个数。
作为本发明的一实施例,本发明的键盘输入装置还包括一外置的A/D转换器5,其连接于处理器3与键盘10之间,用于将所述模拟电流通过模数转换成相应的数字信号。所述模拟电流由键盘10流入A/D转换器5并转换成相应的数字信号,所述数字信号通过处理器3的摸拟串口接收,在控制信号引脚的协同作用下,所述处理器3在有按键按下的情况下,产生中断并依采样间隔得到若干个A/D转换值。
作为本发明的另一实施例,本发明的键盘输入装置中的处理器3内置有A/D转换模块32,所述多个按键2通过单一复用的I/O总线连接处理器3的A/D转换模块32,所述模拟电流通过直接联接到处理器A/D转换的输入引脚。当有如果有键被按下,所述处理器3内置的A/D转换模块32产生中断,让CPU获取内置A/D转换器模数转换结果。
所述处理器3还包括有数字信号处理模块34及按键判断识别模块36,所述数字信号处理模块34用于对所述摸拟电流进行采样量化,再对所述量化结果进行消除抖动处理,由消除抖动处理后的量化样本得到量化样本均值;所述按键判断识别模块36用于判断所述消除抖动后的量化样本均值落入的量化区间,从而识别被按下的按键。
相比于现有技术,本发明一种键盘输入方法及装置简化了布线的密度,只占用了处理器的一个I/O口资源,解决了处理器I/O口使用紧张的问题;而且算法简单、成本较低,对于内置A/D转换的处理器,只要有键被按下,就会产生中断,从而提高了处理器的实时性,减少CPU工作的负荷,对于外置A/D的控制装置,系统只需要查询一下是否有信号产生,不像传统的办法需要扫描了多次,使得需要键盘的电子产品设计更简洁,算法更简单,提高了电子产品应用的可扩展性和可靠性
综上所述,本发明一种键盘输入的方法及装置需要复用一根I/O口实现键盘控制,设计简洁、算法简单且成本较低。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。