电子设备的按键检测电路及按键检测方法_2

文档序号:9721072阅读:来源:国知局
r>[0030]图3为本发明电子设备的键检测方法较佳实施例的流程示意图。
[0031]本发明的目的、功能特点及优点的实现,将结合实施例,并参照附图作进一步说明。
【具体实施方式】
[0032]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0033]本发明提供一种电子设备的键检测电路。
[0034]参照图1,图1为本发明电子设备的键检测电路较佳实施例的电路结构示意图。
[0035]本发明较佳实施例中,所述按键检测电路包括电源输入端VIN、按键模块10和主控制器20 ;所述按键模块10的输入端与所述电源输入端VIN连接,所述按键模块10的输出端与所述主控制器20的按键检测端DET2连接,所述主控制器20的电源检测端DET1与所述电源输入端VIN连接。
[0036]所述主控制器20用于对所述电源输入端VIN输入的电源电压和所述按键模块10输出的按键电压进行检测,获取实际电源电压和实际按键电压,将所述实际电源电压、所述实际按键电压分别转换为对应的实际电源ADC值和实际按键ADC值,根据所述实际电源ADC值与标准电源ADC值的比值,以及标准最小按键ADC值和标准最大按键ADC值动态调整所述按键模块10中每一按键对应的电压检测范围,并根据所述实际按键ADC值和所述电压检测范围检测出被按下的按键。
[0037]需要说明的是,标准电源ADC值是根据标准电源电压为3.3V时所计算得的ADC值,假设ADC值采用8位二进制值表示,以3.3V为最大值,则3.3V对应的ADC值为255,该标准电源ADC值被预置于微控制器22中;标准最小按键ADC值和标准最大按键ADC值是根据上拉电阻RD1和检测电阻的阻值,以及标准电源电压为3.3V时所计算得的每一按键的电压检测范围中最小值与最大值对应的ADC值。
[0038]在本实施例中,电源输入端VIN用于输入外部电源提供的电源电压VCC,例如,预设的标准电源电压为3.3V,本领域技术人员应当知晓,电源供电时其电源电压VCC存在±10%的偏移,即对于3.3V的电源电压,电源电压偏移范围是-0.33?0.33V,从而主控制器20对电源输入端VIN输入的电源电压进行检测时,检测到的实际电源电压不一定是标准电源电压3.3V,可能是2.97?3.63V中任意一个电压值。当按键模块10中无按键被按下或有按键被按下时,按键模块10均输出一按键电压,主控制器20对按键模块10输出的按键电压进行检测,获取实际按键电压。
[0039]主控制器20将检测到的实际电源电压、实际按键电压分别转换为对应的实际电源ADC值和实际按键ADC值,根据实际电源ADC值与标准电源ADC值的比值,以及标准最小按键ADC值和标准最大按键ADC值动态调整按键模块10中每一按键对应的电压检测范围,并根据实际按键ADC值和所述电压检测范围检测出被按下的按键。从而在电源输入端VIN输入的电源电压出现偏移或者主控制器20的内部器件自身因素而使得主控制器20检测到的实际电源电压与标准电源电压存在偏差时,主控制器20根据检测到的实际电源电压重新给每一按键设置对应的电压检测范围,从而主控制器20可以根据检测到的实际按键电压和重新调整的电压检测范围检测出被按下的按键,即当主控制器20检测到的实际按键电压位于某一按键的电压检测范围,主控制器20确定该按键被按下,而不受其它按键的电压检测范围的影响导致误判断,从而能够提高按键检测的精度,而且由于主控制器20能够动态调整每一按键设置对应的电压检测范围,因此在按键数量增多时也能够准确判断是哪一个按键被按下,并正确相应被按下的按键,从而能够避免由于误判断和误响应而导致按键功能错位。
[0040]再参照图2,图2为图1中主控制器20内部的电路结构示意图。
[0041]如图2所示,所述主控制器20包括模数转换单元21和微控制器22。
[0042]其中,模数转换单元21用于对所述实际电源电压进行AD转换,将所述实际电源电压转换相应数字量的实际电源ADC值,并对所述实际按键电压进行AD转换,将所述实际按键电压转换为相应数字量的实际按键ADC值。
[0043]微控制器22用于读取所述实际电源ADC值,根据所述实际电源ADC值和标准电源ADC值的比值,获取电源偏移量,并根据每一按键的标准最小按键ADC值和所述电源偏移量,获取每一按键的实际最小按键ADC值,根据每一按键的标准最大按键ADC值和所述电源偏移量,获取每一按键的实际最大按键ADC值,根据每一按键的实际最小按键ADC值和实际最大按键ADC值确定每一按键的电压检测范围;读取所述实际按键ADC值,当所述实际按键ADC值位于某一按键的实际最小按键ADC值和标准最大按键ADC值之间时,确定该按键被按下。
[0044]微控制器22根据所述实际电源ADC值和标准电源ADC值的比值,获取电源偏移量的过程具体为:微控制器22将所述实际电源ADC值与标准电源ADC值作除法运算,其中,实际电源ADC值作为除数,标准电源ADC值作为被除数,将实际电源ADC值与标准电源ADC值的比值作为电源偏移量。例如,实际电源ADC值记为VCC1,标准电源ADC值记为VCC2,电源偏移量记为 Offset,则 Offset = VCC1/VCC2。
[0045]微控制器22根据每一按键的标准最小按键ADC值和所述电源偏移量,获取每一按键的实际最小按键ADC值,根据每一按键的标准最大按键ADC值和所述电源偏移量,获取每一按键的实际最大按键ADC值的过程具体为:微控制器22将每一按键的标准最小按键ADC值与所述电源偏移量作乘法运算,将每一按键的标准最小按键ADC值与电源偏移量的乘积作为每一按键的实际最小按键ADC值;微控制器22将每一按键的标准最大按键ADC值与所述电源偏移量作乘法运算,将每一按键的标准最大按键ADC值与电源偏移量的乘积作为每一按键的实际最大按键ADC值。
[0046]例如,第η按键的标准最小按键ADC值记为StandardMIN_Keyn,第η按键的实际最小按键ADC值记为ActualMIN_Keyn,第η按键的标准最大按键ADC值记为StandardMAX_Keyn,第η按键的实际最大按键ADC值记为ActualMAX_Keyn,则ActualMIN_Keyn =StandardMIN_Keyn*Offset,ActualMAX_Keyn = StandardMAX_Keyn*Offset,其中,n 为大于或等于1的正整数。
[0047]将第η按键的实际最小按键ADC值ActualMIN_Keyn转换为第η按键的相应的实际最小按键电压VMIN_Keyn,将第η按键的实际最大按键ADC值ActualMAX_Keyn转换为第η按键的相应的实际最大按键电压VMAX_Keyn,从而,第η按键的电压检测范围是VMIN_Keyn?VMAX_Keyn,因此当主控制器20中微控制器22检测到第η按键的实际按键电压位于VMIN_Keyn?VMAX_Keyn之间时,微控制器22确定是该第η按键被按下;当微控制器22检测到实际按键电压没有位于VMIN_Keyn?VMAX_Keyn之间时,微控制器22检测出没有按键被按下。
[0048]具体地,如图2所示,所述模数转换单元21包括第一分压电阻RS1、第二分压电阻RS2、第三分压电阻RS3、第四分压电阻RS4、第一比较器U1、第二比较器U2、第一基准电压输入端Vrefl和第二基准电压输入端Vref2。
[0049]所述第一分压电阻RS1的一端作为所述主控制器20的电源检测端DET1,与所述电源输入端VIN连接,所述第一分压电阻RS1的另一端经由所述第二分压电阻RS2接地;所述第一比较器U1的同相输入端与所述第一分压电阻RS1和第二分压电阻RS2的公共端连接,所述第一比较器U1的反相输入端与所述第一基准电压输入端Vrefl连接,所述第一比较器U1的输出端与所述微控制器22的第一检测端ADC1连接。
[0050]所述第三分压电阻RS3的一端作为所述主控制器20的按键检测端DET2,与所述按键模块10的输出端连接,所述第三分压电阻RS3的另一端经由所述第四分压电阻RS4接地;所述第二比较器U2的同相输入端与所述第三分压电阻RS3和第四分压电阻RS4的公共端连接,所述第二比较器U2的反相输入端与所述第二基准电压输入端Vref2连接,所述第二比较器U2的输出端与所述微控制器22的第二检测端ADC2连接。
[0051]如图1所示,所述按键模块10包括上拉电阻RD1和至少一按键单元,每一所述按键单元包括一按键和检测电阻。按键模块10可以包括η个按键单元,η为大于或等于1的正整数,如图1中,示出了第一按键单元包括按键Κ1和检测电阻RK1,第二按键单元包括按键Κ2和检测电阻RK2,第三按键单元包括按键Κ3和检测电阻RK3,……,第η按键单元包括按键Κη和检测电阻RKn。
[0052]所述上拉电阻RD1的第一端与所述电源输入端VIN连接,所述上拉电阻RD1的第二端与所述检测电阻的第一端连接,所述检测电阻的第二端与所述按键的第一端连接,所述按键的第二端接地,所述上拉电阻RD1和所述检测电阻的公共端与所述主控制器20的按键检测端DET2连接。
[0053]具体地,每一所述按键单元还包括第一静电防护器件和第二静电防护器件;所述第一静电防护器件与所述检测电阻并联,所述第二静电防护器件与所述按键并联。如图1中,示出了第一按键单元包括第一静电防护器件F1
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1