专利名称:具有模数转换器的单片机或微处理器的按键检测电路的制作方法
技术领域:
本实用新型涉及按键检测电路领域,具体涉及一种仅以一个单片机或微处理器 GPIO端口检测和识别多个按键的一种按键检测电路。
背景技术:
按键检测电路是电子产品中常见的一种电路,一般按键检测电路电路中,其设计 是一按键须搭配一个处理器GPIO端口,当系统需要检测多个按键时,需要占用多个处理器 GPIO 端口。当处理器的GPIO端口较少时,需要通过增加附加器件来增加可以识别的按键数。 这样增加了按键检测电路中GPIO端口的数目,从而增加了硬件成本。
实用新型内容本实用新型的目的是提供一种具有模数转换器的单片机或微处理器的按键检测 电路,采用一种具有模数转换器的单片机或微处理器,仅以一个单片机或微处理器GPIO端 口检测和识别多个按键,来减少按键检测电路中GPIO端口的使用数目,从而降低硬件成 本。本实用新型的技术方案如下一种具有模数转换器的单片机或微处理器的按键检测电路,包括有按键电路和具 有模数转换器的单片机或微处理器,其特征在于所述的按键电路与所述单片机或微处理 器的检测端相连,所述的按键电路由多个电阻和多个按键组成,其中一个电阻与一个按键 通过串联或并联的方式组成一个按键电路单元,多个按键电路单元相并联后组成所述的按 键电路。所述的具有模数转换器的单片机或微处理器的按键检测电路,其特征在于所述 单片机或微处理器的模数转换器中包含有高、低边界限制寄存器。按键电路由多个按键和多个电阻组成,通过选择适当电阻,使不同的按键按下之 后在单片机或微处理器的按键检测端口形成不同的可区分的检测电压,单片机或微处理器 内部的模数转换器把检测电压从模拟量转换成单片机或微处理器按键识别程序能够处理 的数字量,按键识别程序根据模数转换器输出的数字量对按键进行识别。单片机或微处理器还具有模数转换边界限制中断功能,即模数转换器包含一个 高、低边界限制寄存器。设置适当的边界限制寄存器值,当有按键按下时,模数转换器输出 的数字量超过边界限制寄存器值而产生中断,单片机或微处理器执行中断处理程序,即执 行按键识别程序,按键识别程序根据模数转换器输出的数字量对按键进行识别。当没有按 键按下时,模数转换器输出的数字量不会超过边界限制寄存器值。本实用新型的有益效果本实用新型采用一种具有模数转换器的单片机或微处理器,仅以一个单片机或微 处理器GPIO端口检测和识别多个按键,减少了按键检测电路中GPIO端口的使用数目,从而降低了硬件成本。
图1为能够检测单个按键按下的按键检测电路图。图2为单片机按键识别程序流程图。图3为能够检测组合按键按下的按键检测电路图。
具体实施方式
参见图1、3,一种具有模数转换器的单片机或微处理器的按键检测电路,包括有按 键电路和具有模数转换器的单片机或微处理器,按键电路与单片机或微处理器的检测端相 连,按键电路由多个电阻和多个按键组成,其中一个电阻与一个按键通过串联或并联的方 式组成一个能够检测组合按键按下的按键电路单元或能够检测单个按键按下的按键电路 单元,多个按键电路单元相并联后组成按键电路。单片机或微处理器的模数转换器中包含有高、低边界限制寄存器。
以下结合附图对本实用新型做进一步详细说明实施实例1 图1示出了检测单个按键按下的按键检测电路。该电路包括由电源VCC和电阻 Rl组成的一电源偏置电路,由电阻R2,R3,R4和按键Kl,K2,K3,K4组成的一按键电路,一 个具有模数转换的MCU (单片机)Ul。如图1所示,当没有按健按下时,检测端GPIOl的电压为电源电压VCC。当某一个 按健按下时,串联在电源上的电阻和串联在按健上的电阻构成一条回路,检测端会分得一 个稳定的直流电压,该电压的值与串联在按键上的电阻值有关,只要合理选择R1,R2,R3,R4 的阻值,就能保证不同的按健按下时,在检测端得到不同的电压。例如,选择Rl = 3R,R2 = R,R3 = 2R,R4 = 6R,R为某一电阻值,则当Kl按下时检测端电压为0V,当K2按下时检测 端电压为1/4VCC,当K3按下时检测端电压为2/4VCC,当K4按下时检测端电压为3/4VCC。单片机Ul内部的模数转换器把检测端GPIOl的检测电压从模拟量转换成数字量。 单片机Ul还具有模数转换边界限制中断功能,即模数转换器包含一个高、低边界限制寄存 器。设置适当的边界限制寄存器值,当有按键按下时,模数转换器输出的数字量超过边界限 制寄存器值而产生中断,当没有按键按下时,模数转换器输出的数字量不会超过边界限制 寄存器值。例如,在本实施中将高边界限制寄存器设置为模数转换器输出数字量的最大值, 即模数转换器输出的任何数字量都不会超过高边界限制寄存器值而产生中断,将低边界限 制寄存器设置为7/8VCC对应模数转换器输出的数字量,当没有按键按下时,单片机检测端 GPIOl的电压为VCC,模数转换器输出的数字量不低于低边界限制寄存器值。当任何一个按 键按下时,数转换器输出的数字量都会低于低边界限制寄存器值而产生中断,单片机执行 中断处理程序,即执行按键识别程序。单片机按键识别程序流程图如图2所示,按键识别程序包括以下步骤步骤a 当有按健按下时,模数转换器输出的数字量超过边界限制寄存器值而产 生中断,单片机进入中断处理程序;步骤b 根据模数转换器输出数字量判断按键值,即判断那个按键按下;
4[0025]步骤c =IOms之后再次启动模数转换;步骤d 根据模数转换器输出数字量判断按键值;步骤e 判断按键值是否与上次按键值相同,如果相同说明按键还处于按下状态, 则返回步骤c,IOms之后再次启动模数转换,如果不同说明本次按键已结束,则进入步骤f ;步骤f 判断相同按键值是否持续30ms以上,即进入中断处理程序后是否启动了 3 次以上模数转换,如果是则本次按键视为有效进入步骤g,如果不是则本次按键视为无效, 进入步骤h结束中断处理程序。步骤g 本次按键视为有效并将按键值传送给相关按键处理程序。步骤h 结束中断处理程序;当两个按键同时按键同时按下时,单片机Ul只能检测出一个按键按下,比如K2和 K3同时按下,检测端GPIOl的电压为2/4VCC,单片机只能检测出K2按键按下。在现在电子 产品中,特别是手持电子产品,经常使用到组合按键功能,即几个按键同时按下后实现某个 功能。实施实例2 图3示出了检测组合按键按下的按键检测电路。该电路包括由电源VCC和电阻 RO组成的一电源偏置电路,由电阻Rl,R2,R3和按键Kl,K2,K3组成的一按键电路,一个具 有模数转换的MCU (单片机)Ul。如图3所示,当没有按健按下时,检测端GPIOl的电压为电源电压VCC。当某一个 按健按下时,串联在电源上的电阻和串联在按健上的电阻分压,检测端会分得一个稳定的 直流电压。当多个按键同时按下,即按下组合键时,被按下的多个按键的串联电阻形成并 联电路,然后与串联在电源上的电阻分压,只要合理选择R0,Rl, R2,R3的阻值,就能保证不 同组合或单个按键按下,检测端GPIOl分压不同。例如,选择RO = R,Rl = R,R2 = 2R,R3 =3R,R为某一电阻值,则当Kl按下时检测端电压为0. 5VCC,当K2按下时检测端电压为 0. 67VCC,当Kl和K2同时按下时检测端电压为0. 4VCC,不同于Kl或者K2单独按下时检测 端电压,当Kl,K2,K3同时按下时检测端电压为0. 35VCC,不同于其他按键按下情况的端电 压值。其他不同组合或单个按键按下时,检测端GPIOl会得到不同的分压值。单片机Ul对按键检测与识别方式,与实施实例1完全相同,这里不再赘述。本实用新型已参照当前的实施方式进行了描述,但本技术领域的普通技术人员应 当认识到,上述实施方式仅用来说明本实用新型,并非用来限定本实用新型的保护范围,任 何在本实用新型的精神和原则范围之内,所做的任何修饰、等效替换、改进,均应包含在本 实用新型的权利保护范围之内。
权利要求1.一种具有模数转换器的单片机或微处理器的按键检测电路,包括有按键电路和具有 模数转换器的单片机或微处理器,其特征在于所述的按键电路与所述单片机或微处理器 的检测端相连,所述的按键电路由多个电阻和多个按键组成,其中一个电阻与一个按键通 过串联或并联的方式组成一个按键电路单元,多个按键电路单元相并联后组成所述的按键 电路。
2.根据权利要求1所述的具有模数转换器的单片机或微处理器的按键检测电路,其特 征在于所述单片机或微处理器的模数转换器中包含有高、低边界限制寄存器。
专利摘要本实用新型公开了一种具有模数转换器的单片机或微处理器的按键检测电路,包括有按键电路和具有模数转换器的单片机或微处理器,按键电路与所述单片机或微处理器的检测端相连,按键电路由多个电阻和多个按键组成,其中一个电阻与一个按键通过串联或并联的方式组成一个按键电路单元,多个按键电路单元相并联后组成按键电路。本实用新型采用一种具有模数转换器的单片机或微处理器,仅以一个单片机或微处理器GPIO端口检测和识别多个按键,减少了按键检测电路中GPIO端口的使用数目,从而降低了硬件成本。
文档编号G01R31/327GK201859203SQ201020594409
公开日2011年6月8日 申请日期2010年11月3日 优先权日2010年11月3日
发明者张肖强, 徐涵, 杨新军 申请人:中航华东光电有限公司