一种扩展按键接口电路及其使用方法
文献发布时间:2024-04-18 20:02:18
技术领域
本发明涉及电子电路技术领域,具体为一种扩展按键接口电路及其使用方法。
背景技术
移动终端作为消费类电子产品,用户易用性是影响其发展的一个重要因素,对移动终端来说,用户更直接的易用感受集中在用户指令的输入输出部分。高端移动终端产品纷纷采用了触摸、手写等方式作为输入,以此来实现用户指令输入的易用性。但对于低端移动终端产品而言,由于触摸屏的成本偏高,不适合应用在低端产品上,因此,全键盘便成了低端移动终端指令输入的最佳选择。
但是当前各种电子产品基本有按键作为用户的输入接口。使用少量按键最常见的做法是直接使用处理器(比如MCU)的GPIO连接按键,但这样做比较耗IO资源。很可能面临IO不够的情况。此时最常见的做法就是增加专门的GPIO扩展芯片,但这会带来成本和体积的增加,从而会影响用户的实际使用效果;鉴于此,我们提出了一种扩展按键接口电路及其使用方法。
发明内容
本发明的目的在于提供一种扩展按键接口电路及其使用方法,解决上述背景技术提出的技术问题。
为实现上述目的,本发明提供如下技术方案:一种扩展按键接口电路,包括按键拓展电路,所述按键拓展电路包括中控芯片U2,所述中控芯片U2的20端与寄存器U1的12端电连接,所述中控芯片U2的19端与寄存器U1的11端电连接,所述中控芯片U2的18端寄存器U1的14端电连接,所述寄存器U1的4端与二极管D1的正极电连接,所述二极管D1的负极通过电阻R4与按键S1的1端、3端均电连接,所述寄存器U1的5端与二极管D2的正极电连接,所述二极管D2的负极通过电阻R5与按键S2的1端、3端均电连接,所述寄存器U1的6端与二极管D3的正极电连接,所述二极管D3的负极通过电阻R6与按键S3的1端、3端均电连接,所述寄存器U1的7端与二极管D4的正极电连接,所述二极管D4的负极通过电阻R7与按键S4的1端、3端均电连接。
可选的,所述按键S1的2端与电阻R11的一端电连接,所述电阻R11的另一端接地;所述按键S2的2端与电阻R10的一端电连接,所述电阻R10的另一端接地;所述按键S3的2端与电阻R9的一端电连接,所述电阻R9的另一端接地;所述按键S4的2端与电阻R8的一端电连接,所述电阻R8的另一端接地。
可选的,所述中控芯片U2上电连接有单GPIO接双中断按键电路,所述单GPIO接双中断按键电路包括按键S10和按键S11。所述IO_KEY2端与按键S11的1端电连接,所述按键S11与电阻R2的一端电连接,所述电阻R2的另一端与VCC端电连接。
可选的,所述按键S11的1端与按键S10的1端电连接,所述按键S10的2端与电阻R1的一端电连接,所述电阻R1的另一端接地。
可选的,所述寄存器U1的6端与指示灯D5的正极电连接,所述指示灯D5的负极与电阻R12的一端电连接,所述电阻R12的另一端接地,所述寄存器U1的5端与指示灯D6的正极电连接,所述指示灯D6的负极与电阻R13的一端电连接,所述电阻R13的另一端接地,所述寄存器U1的4端与指示灯D7的正极电连接,所述指示灯D7的负极与电阻R14的一端电连接,所述电阻R14的另一端接地。
可选的,所述寄存器U1的10端和16端均与VCC端电连接,所述寄存器U1的10端与电阻R30的一端电连接,所述电阻R30的另一端通过电容C1接地,所述寄存器U1的8端接地。
可选的,所述中控芯片U2的7端接地,所述中控芯片U2的9端与电容C25和电容C24的一端均电连接,所述电容C25和电容C24的另一端均接地,所述电容C25和电容C24并联,所述中控芯片U2的9端与二极管D9的负极电连接,所述二极管D9的正极与VCC端电连接。
一种扩展按键接口电路的使用方法,所述方法包括如下步骤:
S1、在电阻值最大的通道IO_OUT4输出1,输入IO_KEY1因为R7上拉而呈现H状态;
S2、按动S1、S2、S3、S4任何一个按键,IO_KEY1因为通过按键和小电阻连接到地,而得到的电压很低,呈现L状态,H到L的跳变可触发MCU中断,实现按键的中断检测;
S3、处理器将以上拉电阻大小为次序,从大到小(首先IO_OUT4其次IO_OUT3而后IO_OUT2再是IO_OUT1)逐个启动各上拉驱动信号,如此在输入IO_KEY1上依次施加不同的上拉电阻(依次为1M|、100K、10K、1K)。同时用处理器读取输入端口IO_KEY1的状态并判断具体是哪个按键被按下。
与现有技术相比,本发明提供了一种扩展按键接口电路及其使用方法,具备以下有益效果:
该扩展按键接口电路及其使用方法,充分利用了产品中最常见的LED灯驱动电路的原有输出IO。实现了对常用电路的扩展复用,让原电路的功能得以充分利用让产品的按键扩展电路更简单且灵活。同时扩展出来的按键是中断型按键,其硬件和软件都比较简单,对处理器的资源消耗极少。
附图说明
图1为本发明按键拓展电路的结构示意图;
图2为本发明单GPIO接双中断按键电路的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1-图2所示,本发明提供一种技术方案:一种扩展按键接口电路,包括按键拓展电路,按键拓展电路包括中控芯片U2,中控芯片U2的20端与寄存器U1的12端电连接,其中,寄存器U1的型号为74HC595,中控芯片U2的型号为TX8C1260TS20。中控芯片U2的19端与寄存器U1的11端电连接,中控芯片U2的18端寄存器U1的14端电连接,寄存器U1的4端与二极管D1的正极电连接,二极管D1的负极通过电阻R4与按键S1的1端、3端均电连接,寄存器U1的5端与二极管D2的正极电连接,二极管D2的负极通过电阻R5与按键S2的1端、3端均电连接,寄存器U1的6端与二极管D3的正极电连接,二极管D3的负极通过电阻R6与按键S3的1端、3端均电连接,寄存器U1的7端与二极管D4的正极电连接,二极管D4的负极通过电阻R7与按键S4的1端、3端均电连接。
其中,按键S1的2端与电阻R11的一端电连接,电阻R11的另一端接地;按键S2的2端与电阻R10的一端电连接,电阻R10的另一端接地;按键S3的2端与电阻R9的一端电连接,电阻R9的另一端接地;按键S4的2端与电阻R8的一端电连接,电阻R8的另一端接地。
值得注意的是,中控芯片U2上电连接有单GPIO接双中断按键电路,所述单GPIO接双中断按键电路包括按键S10和按键S11,IO_KEY2端与按键S11的1端电连接,按键S11与电阻R2的一端电连接,电阻R2的另一端与VCC端电连接。按键S11的1端与按键S10的1端电连接,按键S10的2端与电阻R1的一端电连接,电阻R1的另一端接地。
此外,寄存器U1的6端与指示灯D5的正极电连接,指示灯D5的负极与电阻R12的一端电连接,电阻R12的另一端接地,寄存器U1的5端与指示灯D6的正极电连接,指示灯D6的负极与电阻R13的一端电连接,电阻R13的另一端接地,寄存器U1的4端与指示灯D7的正极电连接,指示灯D7的负极与电阻R14的一端电连接,电阻R14的另一端接地。
寄存器U1的10端和16端均与VCC端电连接,寄存器U1的10端与电阻R30的一端电连接,电阻R30的另一端通过电容C1接地,寄存器U1的8端接地。中控芯片U2的7端接地,中控芯片U2的9端与电容C25和电容C24的一端均电连接,电容C25和电容C24的另一端均接地,电容C25和电容C24并联,中控芯片U2的9端与二极管D9的负极电连接,二极管D9的正极与VCC端电连接。
其中,驱动输出电路可以使用的74HC595串并转换器实现,1个74HC595可以扩展出8个输出型GPIO。GPIO做状态指示用。在此基础上加上适当的隔离二极管,偏置电阻和按键,实现按键中断扩展功能。
上拉偏置时由隔离二极管和偏置电阻组成,各偏置电阻以10倍比值的电阻值对输入的GPIO做上拉;隔离二极管包括二极管D1、二极管D2、二极管D3以及二极管D4,偏置电阻包括电阻R4、电阻R5、电阻R6以及电阻R7。同时在每个按键后端以10倍比值的电阻对各按键做下拉,通过不同的下拉电阻搭配不同上拉电阻形成多种不同的状态从而判断实际被按下的按键。
各按键并联在MCU的输入GPIO上。运行时,处理器先将电路设置在默认状态,上拉电阻最大的通道IO_OUT4输出1,其它通道做LED状态灯循环扫描输出,控制状态灯,循环中途一定保持一次全0状态,以保证任意按键都能产生中断,并被检测,等待按键按下并产生中断。当中断触发后,再轮询输出,并监测输入GPIO判定具体的按键位置。
本实施例还提出了一种扩展按键接口电路的使用方法,包括以下步骤:
S1、在电阻值最大的通道IO_OUT4输出1,输入IO_KEY1因为R7上拉而呈现H状态;
S2、按动S1、S2、S3、S4任何一个按键,IO_KEY1因为通过按键和小电阻连接到地,而得到的电压很低,呈现L状态,H到L的跳变可触发MCU中断,实现按键的中断检测;
S3、处理器将以上拉电阻大小为次序,从大到小,IO_OUT3而后IO_OUT2再是IO_OUT1,逐个启动各上拉驱动信号,如此在输入IO_KEY1上依次施加不同的上拉电阻,依次为1M|、100K、10K、1K。同时用处理器读取输入端口IO_KEY1的状态就能判断具体是哪个按键被按下。
作为本实施例的一种应用:
驱动信号由输出型GPIO提供,用锁存器,译码器,移位寄存器等实现均可,本实施例采用了最常见的74HC595串并转换器实现,每个74HC595可以扩展出8个输出型GPIO,用于点亮数码管或LED状态灯。
按照设定的电阻值,当使用不同的上拉电阻时,按动不同的按键,激活的上/下拉电阻将对电源形成分压,而后提供给IO_KEY1引脚,按两个电阻的阻值可以计算得到IO_KEY1引脚上的电压为电源电压的百分比,以及在处理器上呈现的状态进行数据整理;处理器对H和L的判断标准通常是大于70%的IO电压为H。小于30%的IO电压为L。
设定的电阻值所测试的数据如下表:
由上表可以看出。只要将4种上拉电阻轮询检测一遍,就可以根据检测到的IO_KEY1的状态判断出具体按下的按键。逻辑如下
OUT1输出1时,检测到L。则必定是S1按下。
OUT1输出1时,检测到H;而OUT2输出时检测到L。则必定是S2按下。
OUT2输出1时,检测到H;而OUT3输出时检测到L。则必定是S3按下。
OUT3输出1时,检测到H;而OUT4输出时检测到L。则必定是S4按下。
图1中二极管是为了阻断输出为0时的状态对IO_KEY1引脚的影响。让IO_KEY1在检测时只有唯一的一个上拉。为了补偿此二极管对分压造成的影响。在处理器的GPIO电源处,有相同二极管可以将IO电压做同步降低。
如图2所示,在默认状态下,不开启MCU的内置上拉电阻,而由按键外挂的上拉电阻R2上拉输入引脚IO_KEY2。此时按动按键S10或S11都会拉低IO_KEY2,触发按键中断。进入中断程序后,开启GPIO的内置上拉,因为内置上拉电阻远小于按键连接的下拉电阻,此时若IO_KEY2依然为L,说明按下的是S11,若输入脚状态变H,说明按下的是S10。由此实现两个按键的区分。完成1个GPIO连接两个可中断型按键的功能要求。
上文一般性的对本发明做了详尽的描述,但在本发明基础上,可以对之做一些修改或改进,这对于技术领域的一般技术人员是显而易见的。因此,在不脱离本发明思想精神的修改或改进,均在本发明的保护范围之内。
- 一种电阻分压式的线控按键的检测方法和电路
- 一种APB总线slave接口扩展电路及其使用方法
- 一种APB总线slave接口扩展电路及其使用方法