按键电路、矩阵按键电路和矩阵按键电路的按键识别方法与流程

文档序号:17179041发布日期:2019-03-22 20:45阅读:1227来源:国知局
按键电路、矩阵按键电路和矩阵按键电路的按键识别方法与流程

本申请涉及模数转换按键技术领域,特别是涉及一种按键电路、矩阵按键电路和矩阵按键电路的按键识别方法。



背景技术:

传统方式的按键电路是n个电阻依次首尾串联;首端的电阻一端连接电阻,一端连接电源,末端的电阻一端连接电阻,一端接地;每个开关的一端连接在一个电阻的后面,空置的另一端并联在一起,作为输出端连接ad(analogtodigital,模数转换)采样模块,通过ad采样模块采集电压值,根据采集的电压值计算和判断开关按键的按键情况。

由于各个开关空置的另一端并联在一起,作为输出端连接ad采样模块,ad采样模块采集的是开关所处的电位值。在同时按下两个开关时,例如,同时按下首端的电阻和末端的电阻所连接的开关,首端的电阻连接开关处的电位值和末端的电阻连接开关处的电位值,会由于各个开关空置的另一端并联在一起的原因,上述两个电位值叠加在一起后输入ad采样模块。叠加后的电位值难以区分,此时,ad采样模块采集的电位值无法区分单个开关或多个开关闭合的电压,根据ad采样模块采集的电位值所判断的按键情况会产生误判。

因此,传统方式的按键电路在多键同时按下会产生误判。



技术实现要素:

基于此,有必要针对上述传统的按键电路在多键同时按下会产生误判的技术问题,提供一种按键电路、矩阵按键电路和矩阵按键电路的按键识别方法。

一种按键电路,包括n个采样电阻、n个开关和限流电路;

n个采样电阻依次首尾串联,各采样电阻分别与一一对应的各开关并联,n为大于1的正整数;

首端电阻的一端与第二电阻连接,首端电阻的另一端与参考电源连接,尾端电阻的一端与第n-1电阻连接,尾端电阻的另一端与模数转换器的采集端口连接,其中,首端电阻、第二电阻、第n-1电阻和尾端电阻分别为n个采样电阻依次首尾串联后依次序排列的第一个采样电阻、第二个采样电阻、第n-1个采样电阻和第n个采样电阻;

尾端电阻的另一端还与限流电路的一端连接,限流电路的另一端接地。

在一个实施例中,限流电路包括限流电阻,限流电阻一端与尾端电阻的另一端连接,限流电阻的另一端接地。

在一个实施例中,首端电阻的阻值为r,第二电阻的阻值为a×r,第i电阻的阻值为ai-1×r,第n-1电阻的阻值为an-2×r,尾端电阻的阻值为an-1×r,其中,r为正数,a为大于1的正整数,i为小于或等于n的正整数,n为大于1的正整数。

在一个实施例中,限流电阻的阻值为an×r,r为正数,a为大于1的正整数,n为大于1的正整数。

在一个实施例中,a为2。

在一个实施例中,限流电路还包括滤波电容,滤波电容的一端与尾端电阻的另一端连接,滤波电容的另一端接地。

一种矩阵按键电路,包括按键电路、第一开关电路、第二开关电路和列键盘;

按键电路的首端电阻通过第一开关电路与参考电源连接,第一开关电路的输入端和输出端分别与所说参考电源和按键电路的首端电阻的另一端连接;

列键盘包括m个列键盘采样电阻、m个列键盘开关,m个列键盘采样电阻依次首尾串联,各列键盘采样电阻分别与一一对应的各列键盘开关并联,列键盘首端电阻的一端与第二列电阻连接,列键盘首端电阻的另一端与第二开关电路的输出端连接,第二开关电路的输入端与参考电源连接,列键盘尾端电阻的一端与第m-1列电阻连接,列键盘尾端电阻的另一端与模数转换器的采集端口连接,其中,列键盘首端电阻、第二列电阻、第m-1列电阻和列键盘尾端电阻分别为m个列键盘采样电阻依次首尾串联后依次序排列的第一个列键盘采样电阻、第二个列键盘采样电阻、第m-1个列键盘采样电阻和第m个列键盘采样电阻,其中,m为大于1的正整数;

第一开关电路的控制端和第二开关电路的控制端分别与控制器连接。

在一个实施例中,m为小于或等于n的正整数,列键盘首端电阻的阻值为r,第二列电阻的阻值为a×r,第j列电阻的阻值为aj-1×r,第m-1列电阻的阻值为am-2×r,列键盘尾端电阻的阻值为am-1×r,其中,r为正数,a为大于1的正整数,j为小于或等于m的正整数。

在一个实施例中,第一开关电路包括mos管开关电路,第二开关电路包括mos管开关电路。

在一个实施例中,mos管开关电路包括mos管和上拉电阻,上拉电阻的一端与参考电源连接,上拉电阻的另一端与mos管的控制端连接。

在一个实施例中,控制器包括译码器。

基于矩阵按键电路的一种矩阵按键电路的按键识别方法,包括以下步骤:

控制第一开关电路导通,控制第二开关电路开路,采集模数转换器的采集端口的第一通道采样值;

根据key_val_1=((ad_ref×an)/ad_val_1)-an计算第一通道按键值,其中,key_val_1为第一通道按键值,ad_ref为模数转换器的满偏值,模数转换器的满偏值为模数转换器的测量值范围的最大值,ad_val_1为第一通道采样值,a为首端电阻和第二电阻之间等比电阻的等比值,an为限流电阻与首端电阻的阻值的比值;

控制第一开关电路开路,控制第二开关电路导通,采集模数转换器的采集端口的第二通道采样值;

根据key_val_2=((ad_ref×an)/ad_val_2)-an计算第二通道按键值,其中,key_val_2为第二通道按键值,ad_ref为模数转换器的满偏值,模数转换器的满偏值为模数转换器的测量值范围的最大值,ad_val_2为第二通道采样值;

根据第一通道按键值的a进制数获取第一通道按键状态,根据第二通道按键值的a进制数获取第二通道按键状态;

将第一通道按键状态和第二通道按键状态作为矩阵电路按键状态,输出矩阵电路按键状态,并执行控制第一开关电路导通,控制第二开关电路开路,采集模数转换器的采集端口的第一通道采样值的步骤。

上述按键电路、矩阵按键电路和矩阵按键电路的按键识别方法,n个采样电阻依次首尾串联,首端电阻还与参考电源连接,尾端电阻还接地,各开关分别与一一对应的各采样电阻并联,通过闭合任意一个开关可以对接入参考电源与地线之间任意一个电阻进行短路;尾端电阻的另一端与模数转换器的采集端口连接,模数转换器可以采集导通电阻所获得的电压,模数转换器所采集的电压为各个导通电阻对应电压值的总和,根据模数转换器所采集的电压可以计算导通电阻的阻值,根据导通电阻的阻值可以判断电阻被短路的情况,根据电阻被短路的情况可以判断开关的闭合情况,根据电阻值判断开关的闭合情况,使得开关之间的闭合不存在冲突,避免出现按键情况误判。

附图说明

图1为一个实施例中按键电路的结构示意图;

图2为一个实施例中限流电路的结构示意图;

图3为一个实施例中矩阵按键电路的结构示意图;

图4为一个实施例中矩阵按键电路的按键识别方法的流程示意图;

图5为另一个实施例中按键电路的结构图;

图6为另一个实施例中按键电路的模拟实验示意图;

图7为另一个实施例中按键电路的软件实现流程图;

图8为另一个实施例中矩阵按键电路的结构示意图;

图9另一个实施例中矩阵按键电路的软件实现流程图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

在一个实施例中,如图1所示,图1为一个实施例中按键电路的结构示意图,其中,r1、r2、ri、rn-1和rn分别为首端电阻、第二电阻、第i个采样电阻、第n-1电阻和尾端电阻,k1、k2、ki、kn-1和kn分别为首端电阻、第二电阻、第i个采样电阻、第n-1电阻和尾端电阻一一对应并联的开关,vcc为参考电源,z为限流电路。本实施例中提供了一种按键电路,包括n个采样电阻、n个开关和限流电路;

n个采样电阻依次首尾串联,各采样电阻分别与一一对应的各开关并联,n为大于1的正整数;

首端电阻的一端与第二电阻连接,首端电阻的另一端与参考电源连接,尾端电阻的一端与第n-1电阻连接,尾端电阻的另一端与模数转换器的采集端口连接,其中,首端电阻、第二电阻、第n-1电阻和尾端电阻分别为n个采样电阻依次首尾串联后依次序排列的第一个采样电阻、第二个采样电阻、第n-1个采样电阻和第n个采样电阻;

尾端电阻的另一端还与限流电路的一端连接,限流电路的另一端接地。

上述按键电路,n个采样电阻依次首尾串联,首端电阻还与参考电源连接,尾端电阻还接地,各开关分别与一一对应的各采样电阻并联,通过闭合任意一个开关可以对接入参考电源与地线之间任意一个电阻进行短路;尾端电阻的另一端与模数转换器的采集端口连接,模数转换器可以采集导通电阻所获得的电压,模数转换器所采集的电压为各个导通电阻对应电压值的总和,根据模数转换器所采集的电压可以计算导通电阻的阻值,根据导通电阻的阻值可以判断电阻被短路的情况,根据电阻被短路的情况可以判断开关的闭合情况,根据电阻值判断开关的闭合情况,使得开关之间的闭合不存在冲突,避免出现按键情况误判。

例如,在首端电阻和尾端电阻分别对应的两个开关同时闭合,模数转换器获得的目标电压值为限流电路的电压,参考电源的参考电压值与目标电压值的差值为第二电阻至第n-1电阻对应电压值的总和,由于限流电阻、第二电阻至第n-1采样电阻的目标电流相同,由目标电压值和限流电阻的阻值可以计算出目标电流,根据目标电流以及参考电源的参考电压值与目标电压值的差值,计算第二电阻至第n-1采样电阻的阻值总和,通过阻值总和与各个采样电阻的阻值比较,可以判断出首端电阻和尾端电阻的短路情况,从未可以准确地判断出按键情况,避免出现按键情况误判。

例如,首端电阻、第二电阻至尾端电阻以及限流电阻的电阻值之间存在等比数列关系,该等比数列关系的公比可以为n或1/n,其中n为大于1的正整数,以便于后续计算和区分电阻值。

在一个实施例中,如图2所示,图2为一个实施例中限流电路的结构示意图,其中r0为限流电阻,限流电路包括限流电阻,限流电阻一端与尾端电阻的另一端连接,限流电阻的另一端接地。

上述按键电路,通过尾端电阻通过限流电阻接入地线,可以保障模数转换器对尾端电阻处采集的电压值不为零,避免所有采样电阻在同时按下后出现电路短路的情况,电路短路容易使得按键情况出现误判。

在一个实施例中,首端电阻的阻值为r,第二电阻的阻值为a×r,第i电阻的阻值为ai-1×r,第n-1电阻的阻值为an-2×r,尾端电阻的阻值为an-1×r,其中,r为正数,a为大于1的正整数,i为小于或等于n的正整数,n为大于1的正整数。

上述按键电路,可以采样电阻的阻值之间为等比数列,通过计算出导通电阻的阻值后,可以导通电阻的阻值与采样阻值的组合情况进行对比,可以获取导通电阻的导通情况,利用a进制可以快速地且准确地区分采样电阻被导通的情况,可以快速且准确地获取正确的按键情况。

例如,当n=4,a=3时,r=1/3ω,首端电阻的电阻值为1ω,第二电阻的电阻值为3ω,第三电阻的电阻值为9ω,尾端电阻为27ω,首端电阻、第二电阻、第三电阻和尾端电阻相对于首端电阻的倍数分别为1倍、3倍、9倍和27倍。当模数转换器获得电压值并计算导通电阻相对于首端电阻的导通电阻倍数,根据导通电阻倍数的三进制数据可以快速判断。在首端电阻的开关闭合时,首端电阻被短路,第二电阻、第三电阻和尾端电阻导通,计算获得导通电阻的总电阻值为39ω,导通电阻倍数为39,39的三进制数为1110,该三进制数的从右向左的第一位至第四位分别对应首端电阻、第二电阻、第三电阻和尾端电阻,该三进制数的右边第一位数为0代表首端电阻被短路,该三进制数的右边第二位数至第四位数字分别为1,分别代表第二电阻、第三电阻和尾端电阻在按键电路中导通。当多个开关同时闭合时,如第二电阻和第三电阻对应的开关闭合时,导通电阻的电阻值之和为28ω,相应的导通电阻倍数为28,28的三进制数为1001,1001则可以清楚地显示首端电阻和尾端电阻导通,第二电阻和第三电阻被短路。因此上述按键电路,由于采样电阻电阻值之间存在n倍的等比数列的关系,因此对计算后的导通电阻总阻值进行a进制的处理,可以快速地区分采样电阻被导通的情况。

在一个实施例中,限流电阻的阻值为an×r,r为正数,a为大于1的正整数,n为大于1的正整数。

上述按键电路,模数转换器具有一定的采样精度,限流电阻与尾端电阻之间形成n倍的关系,尾端电阻处所采集的电压值与n的倍数有关系,不同按键情况之间的电压值相差精度接近的电压值,可以有利于匹配模数转换器的精度,以便于提高获取导通电阻总阻值的准确性,即导通电阻阻值的准确性,从而提高判断按键情况的准确性,避免误判。

在一个实施例中,a为2。

上述按键电路,二进制在大量硬件和io接口中的应用最广泛,在采样电阻的电阻值之间使用2作为等比数列的公比,有利于快速使用二进制的数值进行按键情况的判断,减少计算的占用的硬件资源和提高计算速度,提高按键情况判断的响应,提高效率,降低成本。

在一个实施例中,如图2所示,c0为滤波电容,限流电路还包括滤波电容,滤波电容的一端与尾端电阻的另一端连接,滤波电容的另一端接地。

上述按键电路,尾端电阻还通过滤波接地线,可以减少按键抖动带来的误差,同时可以避免因开关在闭合或断开时产生电流的冲击对案件电路带来的冲击,可以对按键电路进行滤波保护。

在一个实施例中,如图3所示,图3为一个实施例中矩阵按键电路的结构示意图,其中,r1、r2、ri、rn-1和rn分别为首端电阻、第二电阻、第i个采样电阻、第n-1电阻和尾端电阻,k1、k2、ki、kn-1和kn分别为首端电阻、第二电阻、第i个采样电阻、第n-1电阻和尾端电阻一一对应并联的开关,r1、r2、ri、rm-1和rm分别为列键盘首端电阻、第二列电阻、第i个列键盘采样电阻、第m-1列电阻和列键盘尾端电阻,k1、k2、ki、km-1和km分别为列键盘首端电阻、第二列电阻、第i个列键盘采样电阻、第m-1列电阻和列键盘尾端电阻一一对应并联的开关,cwc1和cwc2分别为第一开关电路和第二开关电路,vcc为参考电源,z为限流电路。本实施例中一种矩阵按键电路,包括按键电路、第一开关电路、第二开关电路和列键盘;

按键电路的首端电阻通过第一开关电路与参考电源连接,第一开关电路的输入端和输出端分别与所说参考电源和按键电路的首端电阻的另一端连接;

列键盘包括m个列键盘采样电阻、m个列键盘开关,m个列键盘采样电阻依次首尾串联,各列键盘采样电阻分别与一一对应的各列键盘开关并联,列键盘首端电阻的一端与第二列电阻连接,列键盘首端电阻的另一端与第二开关电路的输出端连接,第二开关电路的输入端与参考电源连接,列键盘尾端电阻的一端与第m-1列电阻连接,列键盘尾端电阻的另一端与模数转换器的采集端口连接,其中,列键盘首端电阻、第二列电阻、第m-1列电阻和列键盘尾端电阻分别为m个列键盘采样电阻依次首尾串联后依次序排列的第一个列键盘采样电阻、第二个列键盘采样电阻、第m-1个列键盘采样电阻和第m个列键盘采样电阻,其中,m为大于1的正整数;

第一开关电路的控制端和第二开关电路的控制端分别与控制器连接。

第一开关电路和第二开关电路是可控的开关电路。控制器可以是io控制电路。

上述矩阵按键电路,第一开关电路的控制端和第二开关电路的控制端分别与控制器连接,可以通过控制器对按键电路和列键盘依次进行采集电压值,可以进行轮询采集计算,即可得到所有按键的按键状态,而且按键电路和列键盘都可以根据电阻值判断开关的闭合情况,使得开关之间的闭合不存在冲突,避免出现按键情况误判。

在一个实施例中,m为小于或等于n的正整数,列键盘首端电阻的阻值为r,第二列电阻的阻值为a×r,第j列电阻的阻值为aj-1×r,第m-1列电阻的阻值为am-2×r,列键盘尾端电阻的阻值为am-1×r,其中,r为正数,a为大于1的正整数,j为小于或等于m的正整数。

上述矩阵按键电路,列键盘采样电阻的阻值之间为等比数列,通过计算出导通电阻的阻值后,可以导通电阻的阻值与采样阻值的组合情况进行对比,可以获取导通的列键盘采样电阻的导通情况,利用a进制可以快速地且准确地区分列键盘采样电阻被导通的情况,可以快速且准确地获取正确的列键盘的按键情况。

在一个实施例中,第一开关电路包括mos管开关电路,第二开关电路包括mos管开关电路。

上述矩阵按键电路,mos管开关电路是可控的开关电路,以便于可以可控制地对按键电路和列键盘进行准确的轮询采集计算,提高对按键情况判断的速度。

在一个实施例中,如图3所示,q1和q2分别为第一开关电路和第二开关电路的mos管,r1和r2分别为第一开关电路、第二开关电路的上拉电阻,mos管开关电路包括mos管和上拉电阻,上拉电阻的一端与参考电源连接,上拉电阻的另一端与mos管的控制端连接。

上述矩阵按键电路,上拉电阻可以用于确保mos管处于默认关断状态,以便于配合控制器准确进行轮询采集。

在一个实施例中,控制器包括译码器。

上述矩阵按键电路,采用成本低廉的译码器作为控制器可以降低成本。

例如译码器可以使用3-8译码器进行控制。

在一个实施例中,如图4所示,图4为一个实施例中矩阵按键电路的按键识别方法的流程示意图,本实施例中提供基于矩阵按键电路的一种矩阵按键电路的按键识别方法,以该方法应用于图3中的矩阵按键电路为例进行说明,该矩阵按键电路中z为限流电阻,r1、r2、…、ri、…、rn-1、rn和限流电阻的阻值之间形成等比数列,该等比数列的等比为a,r1、r2、…、ri、…、rn-1和rn的阻值之间形成等比数列,该等比数列的等比为a,an为限流电阻与r1的阻值的比值,即限流电阻的阻值为an×r1;cwc1为第一开关电路,第一开关电路导通时,电流通过第一通道,即电流可以向r1、r2、…、ri、…、rn-1或rn的方向流入,第一开关电路开路时,电流无法向r1、r2、…、ri、…、rn-1或rn的方向流入;cwc2为第二开关电路,第二开关电路导通时,电流通过第二通道,电流可以向r1、r2、…、ri、…、rn-1或rn的方向流入;第二开关电路断开时,电流无法向r1、r2、…、ri、…、rn-1或rn的方向流入。

矩阵按键电路的按键识别方法包括以下步骤:

步骤s410:控制第一开关电路导通,控制第二开关电路开路,采集模数转换器的采集端口的第一通道采样值。

本步骤中,控制第一开关电路导通,其他开关电路断开,可以在按键电路导通下输出模数转换器的采集端口的电压,并通过采集获得第一通道采样值,开始第一次轮询。

在本步骤之前,还可以对模数转换器进行初始化,使得模数转换器可以识别采集端口的电压并获得准确的采样值,使得模数转化器处于工作状态。还可以在此时预先测量模数转换器的满偏值。还可以针对各个开关电路的控制端预先设置高电平,以便于初始化各个开关电路的控制,使得各个开关电路进入待机状态,其中,当开关电路的控制端处于高电平时,则该开关电路处于断开状态。还可以根据开关电路的个数,设置轮询的次数,例如,在开关电路包括两个时,设置轮询的次数为2。

步骤s420:根据key_val_1=((ad_ref×an)/ad_val_1)-an计算第一通道按键值,其中,key_val_1为第一通道按键值,ad_ref为模数转换器的满偏值,模数转换器的满偏值为模数转换器的测量值范围的最大值,ad_val_1为第一通道采样值,a为首端电阻和第二电阻之间等比电阻的等比值,an为限流电阻与首端电阻的阻值的比值。

本步骤中,根据第一通道采样值计算第一通道按键值,可以完成第一次轮询。另外,考虑到可能出现的误差,可以对第一通道采样值进行舍入,例如把第一通道采样值的低位进行四入五入。

步骤s430:控制第一开关电路开路,控制第二开关电路导通,采集模数转换器的采集端口的第二通道采样值。

本步骤中,开始第二次轮询,控制第二开关电路导通,控制其他开关电路断开,可以在列键盘导通下输出模数转换器的采集端口的电压,并通过采集获得第二通道采样值。

步骤s440:根据key_val_2=((ad_ref×an)/ad_val_2)-an计算第二通道按键值,其中,key_val_2为第二通道按键值,ad_ref为模数转换器的满偏值,模数转换器的满偏值为模数转换器的测量值范围的最大值,ad_val_2为第二通道采样值。

本步骤中,根据第二通道采样值计算第二通道按键值,可以完成第二次轮询。

步骤s450:根据第一通道按键值的a进制数获取第一通道按键状态,根据第二通道按键值的a进制数获取第二通道按键状态。

本步骤中,第一通道按键值的a进制数可以反映第一通道按键状态,第二通道按键值的a进制数可以反映第二通道按键状态。

以第一通道按键值为例进行说明,第一通道按键值的a进制数的最低位用于表示按键电路的首端电阻对应的开关的状态,在a进制数的最低位为1时,代表该首端电阻在按键电路中可以导通电流,该首端电阻没有被短路,即该首端电阻对应的开关处于断开的状态,反之,在a进制数的最低位为0时,该首端电阻对应的开关处于闭合的状态。依次类推,第一通道按键值的a进制数的第二低位用于表示按键电路的第二电阻对应的开关的状态,第一通道按键值的a进制数的第i个低位用于表示按键电路的第i电阻对应的开关的状态,第一通道按键值的a进制数的第n个低位用于表示按键电路的尾端电阻对应的开关的状态。

同理地,第二通道按键值的a进制数的最低位用于表示列键盘首端电阻对应的开关的状态,第二通道按键值的a进制数的第二低位用于表示列键盘的第二列电阻对应的开关的状态,第二通道按键值的a进制数的第i低位用于表示列键盘的第i列电阻对应的开关的状态,第二通道按键值的a进制数的第m低位用于表示列键盘尾端电阻对应的开关的状态,m为不大于n的正整数。

其中,a优选为2,使用二进制可以快速匹配目前计算机的数据流的格式,提高效率。

另外,如果如果等比数列的等比值为1/a时,a为正整数时,可以适应性地将按键值的a进制数的各个低位与电阻一一对应,例如,a进制数的最低位与尾端电阻对应的开关的状态相对应,以此类推。

另外,考虑到按键抖动影响,在计算得到第一通道按键值后,还应该进行去抖操作,将该第一通道按键值与上一次计算的第一通道按键值进行比对。若相等,则判定该第一通道按键值为真,根据该第一通道按键值获得第一通道按键状态;若不相等,则判定该第一通道按键值为假,不执行根据该第一通道按键值获得第一通道按键状态的步骤,不输出第一通道按键状态,或第一通道按键状态为空。同理,在计算得到第二通道按键值后,也应该进行去抖操作,将该第二通道按键值与上一次计算的第一通道按键值进行比对,若相等,根据该第一通道按键值获得第一通道按键状态;若不相等,不输出第一通道按键状态,或第一通道按键状态为空。

步骤s460:将第一通道按键状态和第二通道按键状态作为矩阵电路按键状态,输出矩阵电路按键状态,并执行控制第一开关电路导通,控制第二开关电路开路,采集模数转换器的采集端口的第一通道采样值的步骤。

本步骤中,鉴于矩阵按键电路中包括两条通道,完成该两条通道的按键状态的识别,即完成一轮的轮询,便输出矩阵电路按键状态,并通过控制第一开关电路和第二开关电路为下一轮的轮询做准备。

另外,在矩阵按键电路中包括一条通道时或只开放一条通道时,可以不进行轮询。

另外,在矩阵按键电路中包括两条以上通道,并配备一一对应的多个开关电路,可以按照轮询的顺序控制对应顺序的开关电路导通,即导通该通道并关断其他通道,以便于获取该通道的按键状态;依次控制对应的开关电路导通,由多次的轮询组成一轮的轮询。

上述按键识别方法,经过一轮的轮询,根据第一通道采样值和第二通道采样值可以分别计算第一通道按键值和第二通道按键值,根据第一通道按键值和第二通道按键值可以分别获取第一通道按键状态和第二通道按键状态,即按键电路和列键盘的按键情况,因此可以无冲突地获取矩阵按键电路的按键状态,提高按键状态识别的准确性;且传统技术中因解决按键冲突,一轮的轮询中轮询次数多,大大降低效率,而上述方法中,因按键之间的冲突减少,可以大大降低一轮轮询中轮询的次数,大大减少一轮轮询的时间,提高按键状态识别的效率;减少一轮轮询中轮询的次数,也减少控制轮询所使用硬件的次数,可以减少硬件损坏,也降低硬件老化的速度,硬件使用寿命高,因硬件老化引起的出错率降低,提高按键状态识别的准确性。

另外,考虑到采样精度对采样结果的影响,当有n个按键接入电路时,模数转换器的电压间隔数至少为an+2;例如,a=2时,模数转换器的精度的位数至少为n+2。

在另一个实施例中,本实施例提供一种按键电路,如图5所示,图5为另一个实施例中按键电路的结构图,vcc为参考电源,gnd为参考地线,ad_key为模数转换器的输入接口,r0为限流电阻,r1~rn为采样电阻,k1~kn为开关,c0为滤波电容。

当采样电阻r1的阻值为r时,采样电阻r2的阻值应为2×r,采样电阻r3的阻值应为(22)×r,采样电阻r4的阻值应为(23)×r,如此类推,采样电阻rn的阻值应为(2(n-1))×r,而且限流电阻r0的阻值应为(2n)×r。采样电阻r1~r6可以是一个电阻或者一组通过串联或并联连接在一起的电阻,每一组的阻值必须满足要求。

在没有按键按下时,参考电压经所有采样电阻和限流电阻分压,模数转换器得到无按键时的电压值。当有按键按下时,该按键对应的电阻被短路,电路上总阻值发生改变,模数转换器得到对应的电压值。

假设参考电压vcc为vref,采样电阻r1的阻值为r0,则各采样电阻rn的阻值应为2n-1×r0,限流电阻r0的阻值为2n×r0。假设某次采集时,电路中共有k个按键,其中按键kx被按下,模数转换器采集到的采样电压为vsam,采样值为asam,模数转换器的最大精度为aref。已知采样电压vsam和参考电压vref的关系为参考电压在限流电阻和有效采样电阻的分压值。已知采样值asam和采样电压vsam的关系为最大采样精度乘以采样电压和参考电压的比。可以得到采样值asam等于最大采样精度乘以限流电阻和有效采样电阻的串联分压比。因为采样电阻的阻值具有特殊性,他们的阻值之和化为二进制时刚好使每一位对应按键的状态,该位为0时表示对应的按键被按下,该位为1时表示对应的按键没有被按下。所以通过公式2k×(aref/asam)-1获得的电阻值的二进制数,即可得到本次采集时的按键状态。

考虑到采样电阻或模数转换器引入的误差,在进行计算之前,应该先对采样值进行舍入,如把采样值的低几位“四舍五入”。

考虑到按键抖动影响,在计算得到结果后,还应该进行去抖操作,如对比上次计算值,相等则输出新键值,不相等则输出旧键值。

考虑到采样精度对采样结果的影响,当有k个按键接入电路时,模数转换器最大精度最少为k+2位,再加上用作滤波和误差计算的位数,则模数转换器最大精度应不低于k+3位。

根据上述理论计算,现进行一次模拟实验,实验条件为有且只有5个按键,参考电压为1v,限流电阻阻值为32r,采样电阻阻值分别为1r、2r、4r、8r、16r,模数转换器最大采样精度为255(8位),滤波电容值为103。如图6所示,图6为另一个实施例中按键电路的模拟实验示意图,图6为使用ms-excel做模拟实验得到的实验结果。其中按键值表示当前被按下的按键的编号,0表示没有按键被按下。实验中使用的公式如下:采样电压b0=1.00×(32/63-a0)。采样值c0=rounddown(255×b0,0)。计算结果d0=rounddown((255×32/c0)-32,0)。二进制显示e0=dec2bin(d0,8)。根据实验结果分析,二进制显示结果的低五位正好为按键值的表示状态,即0表示对应的按键被按下,1表示对应的按键没有被按下。

如图7所示,图7为另一个实施例中按键电路的软件实现流程图。经过采样、“舍入”、计算、去抖,最终得出按键状态并输出。

如图8所示,图8为另一个实施例中矩阵按键电路的结构示意图,在上述按键电路的基础上,将其参考电源vcc置换为由pmos管和普通io组成的可控参考电源。当pmos管导通时,该组按键电路通到参考电源vcc上;当pmos管关断时,该组按键电路相当于开路,不影响其他组按键电路的采样。其中r1~r4为上拉电阻,确保pmos管处于默认关断状态。所有按键电路共用同一个限流电阻r0,c0为滤波电容。每一组按键电路上同一编号位置上的采样电阻取相同的阻值,且需要符合按键电路中电阻值的比例要求。最后把控制io连接到译码器的输出端,译码器的输入端和使能端连接到单片机io口上。如图9所示,图9另一个实施例中矩阵按键电路的软件实现流程图。经过通道选择、采样、“舍入”、计算、去抖、保存,轮询得到按键状态,最终合并输出。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1