一种实时检测按键触发状态的按键电路、游戏手柄和方法
【专利摘要】本发明公开了一种实时检测按键触发状态的按键电路、游戏手柄和方法。该按键电路能够检测2N个按键的触发状态,包括:MCU、计数器、数据选择器、或门电路和包含2N个按键的按键单元,其中,N为大于或等于2的正整数。该游戏手柄包括该按键电路。该方法包括:控制MCU输出触发信号触发计数器,使计数器输出N位地址选择信号;将N位地址选择信号输入到数据选择器,使数据选择器选择出与之对应的按键状态信号;将该按键状态信号输入到MCU中进行检测。本发明的技术方案在仅使用MCU的三个输入输出端口的情况下,能够实现对若干按键触发状态的实时有效检测,节省了MCU的I/O端口资源,降低了电路生产成本,提高了电路工作效率。
【专利说明】一种实时检测按键触发状态的按键电路、游戏手柄和方法
【技术领域】
[0001]本发明涉及电路设计领域,具体涉及一种实时检测按键触发状态的按键电路、游戏手柄和方法。
【背景技术】
[0002]按键电路是微控制单元MCU应用系统中最主要的人机交互输入方式,其合理的设计,不仅可以节省系统的设计成本,更可以使仪器设备的操作变得更为简单、方便,很大程度上提闻系统综合性能。
[0003]目前最常见的按键电路大致分为两种:一对一连接和矩阵式连接。一对一连接就是一个按键直接对应一个MCU的输入端口,这样的电路简单直接,在按键数量较少端口数量富裕时可以直接使用,但在按键数量较多时会占用大量的MCU的I/O端口资源,造成系统工作效率的降低;矩阵式连接是指将按键按行列矩阵的方式排列,其中每一行公用一根行线,每一列公用一根列线,设矩阵式连接的行数为X,列数为y,按键数和所需端口数分别用Ns和NI/0表不,有:
[0004]Ns = x*y
[0005]NI/0 = x+y
[0006]可以看出,与一对一的直接连接方式相比,矩阵式连接所占用的端口数有了相当的减少。如果按键电路需要16个按键,按一对一方式连接的话需要16个端口,而按矩阵式连接只需要8个端口。
[0007]即便如此,按键电路的矩阵式连接越来越无法满足高速发展的电子信息技术对端口资源的需求,如何最大限度地减少按键电路对I/O端口的占用,以及如何通过简化程序处理过程减少按键电路对存储器和运算资源的占用,是当前的研究热点之一。
【发明内容】
[0008]鉴于上述问题,本发明提供了一种实时检测按键触发状态的按键电路、游戏手柄和方法,以解决上述问题或者至少部分地解决上述问题。
[0009]依据本发明的一个方面,提供了一种实时检测按键触发状态的按键电路,该按键电路能够检测2N个按键的触发状态,该按键电路包括:微控制单元MCU、计数器、数据选择器、或门电路和包含2N个按键的按键单元,N为大于或等于2的正整数;
[0010]所述微控制单兀MCU的第一输入输出端与所述或门电路的输出端相连,所述微控制单元MCU的第二输入输出端与所述数据选择器的输出端相连,以及所述微控制单元MCU的第三输入输出端与所述计数器的输入端相连;
[0011]所述计数器包括N位输出端,该N位输出端与所述数据选择器的地址选择端以及所述或门电路的输入端相连;
[0012]所述数据选择器为1/2n数据选择器,其2n个输入端与所述2N个按键一一对应相连。
[0013]可选地,所述计数器包括:N-1个触发器;
[0014]所述N-1个触发器的输入端均接高电平;
[0015]所述N-1个触发器依次串联,其中上一个触发器的输出端与相邻下一个触发器的触发端相连,串联的第一个触发器的触发端与所述微控制单元MCU的第三输入输出端相连;
[0016]由所述微控制单元MCU的第三输入输出端和所述N-1个触发器的输出端构成所述计数器的N位输出端。
[0017]可选地,所述触发器为JK触发器;或者,所述触发器为T触发器。
[0018]可选地,所述按键单元进一步包括:2n个上拉电阻;
[0019]所述2N个上拉电阻的一端接高电平,其另一端与所述数据选择器的2Nf输入端--对应相连。
[0020]依据本发明的另一个方面,提供了一种游戏手柄,该游戏手柄包括所述按键电路。
[0021]依据本发明的又一个方面,提供了一种实时检测按键触发状态的方法,该方法能够检测到2N个按键的触发状态,该方法包括:
[0022]控制微控制单元MCU的第三输入输出端输出触发信号;
[0023]利用该触发信号触发计数器,使计数器输出N位地址选择信号;
[0024]将N位地址选择信号输入到数据选择器,使数据选择器根据该N位地址选择信号选择出与之对应的按键状态信号;
[0025]将该按键状态信号输入到微控制单元MCU的第二输入输出端,进行检测。
[0026]可选地,所述计数器输出N位地址选择信号包括:N-1个触发器输出N-1个输出信号;
[0027]将所述N-1个触发器均设置为高电平输入;
[0028]将所述N-1个触发器依次串联,其中,利用上一个触发器的输出信号触发相邻下一个触发器,并且利用所述微控制单元MCU的第三输入输出端输出的触发信号触发串联的第一个触发器;
[0029]由所述触发信号和所述N-1个输出信号构成所述计数器输出的N位地址选择信号。
[0030]可选地,该方法进一步包括:
[0031]将所述N位地址选择信号输入到或门电路,使或门电路输出同步信号;
[0032]将该同步信号输入到所述微控制单元MCU的第二输入输出端,进行同步。
[0033]综上所述,本发明所提供的技术方案在仅使用MCU的三个输入输出端口的情况下,能够实现对若干按键触发状态的实时有效检测,节省了 MCU的输入输出端口资源,降低了电路的生产成本,提高了电路的工作效率。
【专利附图】
【附图说明】
[0034]图1示出了根据本发明一个实施例的一种实时检测按键触发状态的按键电路的结构图意图;
[0035]图2示出了根据本发明另一个实施例的一种实时检测按键触发状态的按键电路的电路结构图不意图;
[0036]图3示出了根据本发明另一个实施例的触发时序示意图;
[0037]图4示出了根据本发明一个实施例的一种游戏手柄的结构示意图;
[0038]图5示出了根据本发明另一个实施例的一种实时检测按键触发状态的方法的流程图。
【具体实施方式】
[0039]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0040]图1示出了根据本发明一个实施例的一种实时检测按键触发状态的按键电路的结构示意图。如图1所示,该按键电路包括:微控制单元MCU、计数器、数据选择器、或门电路和包含2N个按键的按键单元,N为大于或等于2的正整数。
[0041]微控制单元MCU的第一输入输出端与或门电路的输出端相连,微控制单元MCU的第二输入输出端与数据选择器的输出端相连,以及微控制单元MCU的第三输入输出端与计数器的输入端IN相连;计数器包括N位输出端,该N位输出端与数据选择器的地址选择端,以及或门电路的输入端相连;数据选择器为1/2N数据选择器,其2N个输入端与2N个按键--对应相连。
[0042]其中,微控制单元MCU的第三输入输出端用于向计数器输出触发信号,计数器在该触发信号的作用下输出N位输出信号到数据选择器的地址选择端和或门电路的输入端,数据选择器在该N位输出信号的作用下输出相应的按键状态到微控制单元MCU的第二输入输出端,微控制单元MCU的第二输入输出端用于检测按键状态,或门电路在该N位输出信号的作用下输出同步信号到微控制单元MCU的第一输入输出端,微控制单元MCU的第一输入输出端用于检测同步信号以知悉每一轮按键检测的开始或者结束。
[0043]由上述可知,本发明所提供的技术方案在仅使用微控制单元MCU的三个输入输出端口的情况下,能够实现对若干按键触发状态的实时有效检测,节省了 MCU的输入输出端口资源,降低了电路的生产成本,提高了电路的工作效率。
[0044]图2示出了根据本发明另一个实施例的一种实时检测按键触发状态的按键电路的电路结构示意图。在本实施例中,如图2所示,该按键电路包括:微控制单元MCU、第一触发器J1、第二触发器J2、数据选择器MUX、或门电路M、8个按键S1-S8、以及8个上拉电阻R1-R8。
[0045]微控制单元MCU的第一输入输出端与或门电路M的输出端相连;微控制单元MCU的第二输入输出端与数据选择器MUX的输出端相连;微控制单兀MCU的第三输入输出端与第一触发器Jl的触发端、数据选择器MUX的第三地址选择端以及或门电路M的输入端相连;第一触发器Jl和第二触发器J2的输入端均接高电平;第一触发器Jl的输出端与第二触发器J2的触发端、数据选择器MUX的第二地址选择端以及或门电路M的输入端相连;第二触发器J2的输出端与数据选择器MUX的第一地址选择端以及或门电路的输入端相连;数据选择器MUX的8个输入端与8个按键S1-S8的一端,以及8个上拉电阻R1-R8的一端一一对应相连;8个按键S1-S8的另一端共同接地;8个上拉电阻R1-R8的另一端均接高电平。
[0046]在本实施例中,设置第一触发器Jl和第二触发器J2均为JK触发器,将二者的输入端均接高电平,使得在每次触发信号作用后触发器输出与前一个状态相反的输出信号。由微控制单兀MCU的第三输入输出端、第一触发器Jl的输出端和第二触发器J2的输出端共同构成了前文所述的计数器的3位输出端,也就是说,该三者共同构成了数据选择器MUX的3位地址选择端,数据选择器将以该三者输出的信号状态为依据选择出相应的按键触发状态。
[0047]图3示出了根据本发明另一个实施例的计数器输出3位信号状态的时序图。图2所示的微控制单元MCU的第三输入输出端输出的触发信号、第一触发器Jl的输出信号、以及第二触发器J2的输出信号的时序变化如图3所示,在本实施例中,首先,设置微控制单元MCU的第三输入输出端输出的触发信号为方波信号,称为第一方波信号,周期为Tl ;其次,设置微控制单元MCU的第三输入输出端输出的触发信号、第一触发器Jl的输出信号、以及第二触发器J2的输出信号的初始状态均为低电平;最后,设置第一触发器Jl和第二触发器J2都是触发信号下降沿有效。
[0048]如图3所示,在微控制单元MCU的第三输入输出端输出的方波信号的作用下,第一触发器Jl的输出信号在第一方波信号的每个下降沿发生翻转,形成周期翻倍的方波信号,称为第二方波信号,周期为T2 ;第二触发器J2的输出信号在第二方波信号的每个下降沿发生翻转,形成周期再次翻倍的方波信号,称为第三方波信号,周期为T3。其中,
[0049]T3 = 2*T2 = 4*Τ1
[0050]因此,在时域上,由微控制单兀MCU的第三输入输出端输出的第一方波信号、第一触发器Jl输出的第二方波信号、以及第二触发器J2输出的第三方波信号构成的上文所述计数器的3位输出信号依次为:000、100、010、110、001、101、011、111。
[0051]根据图2所示的电路连接方式,由于微控制单元MCU的第三输入输出端与数据选择器MUX的第三地址选择端相连,第一触发器Jl的输出端和数据选择器MUX的第二地址选择端相连,并且第二触发器J2的输出端和数据选择器MUX的第一地址选择端相连,因此对应的数据选择器接收到的地址选择信号依次为:
[0052]000,此时,数据选择器MUX选择第一通道D0,即第一按键SI被选择,微控制单元MCU通过第二输入输出端口检测第一按键SI的触发状态;与此同时,或门电路M的输入均为低电平,导致输出信号为低电平,即微控制单元MCU的第一输入输出端接收到低电平的同步信号,表示一轮按键检测的开始;
[0053]001,此时,数据选择器MUX选择第二通道D1,即第二按键S2被选择,微控制单元MCU通过第二输入输出端口检测第二按键S2的触发状态;
[0054]010,此时,数据选择器MUX选择第三通道D2,即第三按键S3被选择,微控制单元MCU通过第二输入输出端口检测第三按键S3的触发状态;
[0055]011,此时,数据选择器MUX选择第四通道D3,即第四按键S4被选择,微控制单元MCU通过第二输入输出端口检测第四按键S4的触发状态;
[0056]100,此时,数据选择器MUX选择第五通道D4,即第五按键S5被选择,微控制单元MCU通过第二输入输出端口检测第五按键S5的触发状态;
[0057]101,此时,数据选择器MUX选择第六通道D5,即第六按键S6被选择,微控制单元MCU通过第二输入输出端口检测第六按键S6的触发状态;
[0058]110,此时,数据选择器MUX选择第七通道D6,即第七按键S7被选择,微控制单元MCU通过第二输入输出端口检测第七按键S7的触发状态;
[0059]111,此时,数据选择器MUX选择第八通道D7,即第八按键S8被选择,微控制单元MCU通过第二输入输出端口检测第八按键S8的触发状态;
[0060]000,此时,数据选择器MUX再次选择第一通道D0,即第一按键SI再次被选择,微控制单元MCU通过第二输入输出端口再次检测第一按键SI的触发状态;与此同时,或门电路M的输入均为低电平,导致输出信号为低电平,即微控制单元MCU的第一输入输出端接收到低电平的同步信号,表示新一轮按键检测的开始。
[0061]以此类推,在本实施例中,按键电路对8个按键S1-S8进行反复的扫描检测。
[0062]图4示出了根据本发明一个实施例的一种游戏手柄的结构图。如图5所示,该游戏手柄包括所述按键电路,包括微控制单元MCU、计数器、数据选择器、或门电路和按键单元。
[0063]在用户操作游戏手柄上按键单元中的按键时,手柄内部的按键电路通过微控制单元MCU触发计数器,使得计数器输出地址选择信号给数据选择器,数据选择器选择相应按键,将其触发状态输入给微控制单元MCU进行检测,循环该过程,微控制单元MCU以或门电路输出的低电平同步信号作为检测开始标记,轮流对按键单元中的按键进行扫描检测,进而检测出用户对手柄上按键的操作状态,实现人机交互。
[0064]图5示出了根据本发明另一个实施例的一种实时检测按键触发状态的方法的流程图。在图2所示的按键电路的电路结构示意图以及图3所示的信号状态的时序图的基础上,如图5所示,该方法包括:
[0065]I)初始态:设置微控制单兀MCU的第三输入输出端输出触发信号为方波信号,微控制单元MCU的第三输入输出端输出的触发信号、第一触发器Jl的输出信号、以及第二触发器J2的输出信号的初始状态均为低电平,并且,第一触发器Jl和第二触发器J2都是触发信号下降沿有效。
[0066]2)控制微控制单兀MCU的第三输入输出端输出触发信号,即第一方波信号;
[0067]3)利用第一方波信号触发第一触发器J1,使第一触发器Jl输出第二方波信号;
[0068]4)利用第二方波信号触发第二触发器J2,使第二触发器J2输出第三方波信号;
[0069]5)利用地址选择器MUX根据由第一方波信号、第二方波信号和第三方波信号构成的地址选择信号选择出对应按键,并将对应按键触发状态发送给微控制单元MCU的第二输入输出端。
[0070]6)对该按键触发状态进行检测。
[0071]在本步骤中,如果微控制单元MCU的第一输入输出端接收到低电平的同步信号,表示本次检测是新一轮按键扫描的第一次检测,可以作为微控制单元MCU内部运算过程的
T 己 O
[0072]综上所述,本发明提供的技术方案在仅仅占用MCU的三个输入输出端口的情况下,能够实现对多个按键触发状态的实时检测,是目前常用的一对一式按键电路和矩阵式按键电路无法达到的较理想状态,节省了宝贵的输入输出端口资源,进一步减少了对基于MCU应用系统的存储资源和运算资源的占用,能够实现更为理想的人机交互功能。
[0073]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【权利要求】
1.一种实时检测按键触发状态的按键电路,其特征在于,该按键电路能够检测2N个按键的触发状态,该按键电路包括:微控制单元MCU、计数器、数据选择器、或门电路和包含2n个按键的按键单元,N为大于或等于2的正整数; 所述微控制单元MCU的第一输入输出端与所述或门电路的输出端相连,所述微控制单元MCU的第二输入输出端与所述数据选择器的输出端相连,以及所述微控制单元MCU的第三输入输出端与所述计数器的输入端相连; 所述计数器包括N位输出端,该N位输出端与所述数据选择器的地址选择端以及所述或门电路的输入端相连; 所述数据选择器为1/2N数据选择器,其2N个输入端与所述2N个按键一一对应相连。
2.如权利要求1所述的按键电路,其特征在于,所述计数器包括:N-1个触发器; 所述N-1个触发器的输入端均接高电平; 所述N-1个触发器依次串联,其中上一个触发器的输出端与相邻下一个触发器的触发端相连,串联的第一个触发器的触发端与所述微控制单元MCU的第三输入输出端相连;由所述微控制单元MCU的第三输入输出端和所述N-1个触发器的输出端构成所述计数器的N位输出端。
3.如权利要求2所述的按键电路,其特征在于, 所述触发器为JK触发器; 或者, 所述触发器为T触发器。
4.如权利要求1所述的按键电路,其特征在于,所述按键单元进一步包括:2Nf上拉电阻; 所述2N个上拉电阻的一端接高电平,其另一端与所述数据选择器的2Nf输入端一一对应相连。
5.一种游戏手柄,其特征在于,该游戏手柄包括如权利要求1-4中任一项所述的按键电路。
6.一种实时检测按键触发状态的方法,其特征在于,该方法能够检测到2N个按键的触发状态,该方法包括: 控制微控制单元MCU的第三输入输出端输出触发信号; 利用该触发信号触发计数器,使计数器输出N位地址选择信号; 将N位地址选择信号输入到数据选择器,使数据选择器根据该N位地址选择信号选择出与之对应的按键状态信号; 将该按键状态信号输入到微控制单元MCU的第二输入输出端,进行检测。
7.如权利要求6所述的方法,其特征在于,所述计数器输出N位地址选择信号包括:N-1个触发器输出N-1个输出信号; 将所述N-1个触发器均设置为高电平输入; 将所述N-1个触发器依次串联,其中,利用上一个触发器的输出信号触发相邻下一个触发器,并且利用所述微控制单元MCU的第三输入输出端输出的触发信号触发串联的第一个触发器; 由所述触发信号和所述N-1个输出信号构成所述计数器输出的N位地址选择信号。
8.如权利要求6或7所述的方法,其特征在于,该方法进一步包括: 将所述N位地址选择信号输入到或门电路,使或门电路输出同步信号;将该同步信号输入到所述微控制单元MCU的第二输入输出端,进行同步。
【文档编号】A63F13/24GK104202055SQ201410384600
【公开日】2014年12月10日 申请日期:2014年8月6日 优先权日:2014年8月6日
【发明者】张召德 申请人:潍坊歌尔电子有限公司