专利名称:一种非ad口按键检测电路及其检测方法
技术领域:
本发明属于应用电子技术领域,具体涉及一种非AD 口按键检测电路及其检测方法。
背景技术:
当一个系统的通用I/O端口较少时,通常我们只能支持较少的按键,或者需要通过增加附加的器件来增加可以识别的按键数,例如当系统只有两个普通I/O端口时,只能检测按键S7、按键S8个按键,如图2所示。中国发明专利申请号200810305303. 9公开了一种按键检测电路及其方法的技术方案,按该发明专利的方法,三个I/O端口只能检测到6个按键。又如中国实用新型专利申请号201020123289. 3公开了一种按键检测电路,该技术方案是一种用AD 口检测按键的方法。虽然两个端口也可以控制很多按键,但是从成本上来讲带AD 口的单片机比较贵,而且检测的按键数量越多,需要AD 口的分辨率越高,这样就会造成开发成本上升,不利于竞争。
发明内容
本发明所要解决的技术问题,就是在I/O较少的情况下增加识别按键数,提供一种只需要两个I/O 口就能检测六个按键的非AD 口按键检测电路及其检测方法。实现本发明目的的技术方案一种非AD 口读键的按键检测电路,其特征在于,包括电阻R1、电阻R2、二极管D1、二极管D2、二极管D3、二极管D4、按键Si、按键S2、按键S3、 按键S4、按键S5、按键S6以及IC芯片的电源输出VCC端口、I/O 1端口、I/O 2端口、GND 接地端口,按键Si、按键S2、按键S3的一端均接地,按键Sl另一端与1/01端口、电阻Rl的一端连接,电阻Rl的另一端接电源输出VCC端口 ;按键S2的另一端与1/02端口、电阻R2 的一端连接,电阻R2的另一端接电源输出VCC端口 ;按键S3的另一端分别与二极管Dl的阴极、二极管D2的阳极连接,二极管Dl的阳极接I/O 2端口,二极管D2的阴极接I/O 1端口 ;所述按键S4、按键S5、按键S6的一端均与I/O 2端口连接,按键S5的另一端与二极管 D3的阴极连接,按键S6的另一端与二极管D4的阳极连接,二极管D3的阳极、二极管D4的阴极、按键S4的另一端均与I/O 1端口连接。—种采用非AD 口读键的按键检测方法,其特征在于,包括以下步骤
a、触发按键Sl- S6的任意按键;
b、I/01端口、I/O 2端口通过系统分别同时设置为输入状态、同时设置为输出状态、 相互交替地互设为输入输出状态;
c、IC芯片运算处理后,输出按键状态数据。本发明的有益效果通过以上方案可以使两个I/O 口能控制六个按键,提高I/O 口的使用效率,减少单片机I/O 口资源需求,降低整机成本。
图1为本发明图1的按键检测电路电路图。图2为现有技术的按键检测电路电路图。
具体实施例方式下面结合附图对本发明所述非AD 口按键检测电路及其检测方法的具体实施方式
作进一步详细说明。如图1所示本发明所述的非AD 口读键的按键检测电路,由电阻R1、电阻R2、二极管D1、二极管D2、二极管D3、二极管D4、按键Si、按键S2、按键S3、按键S4、按键S5、按键 S6以及IC芯片的电源输出VCC端口、I/O 1端口、I/O 2端口、GND接地端口组成,按键Si、 按键S2、按键S3的一端均接地,按键Sl另一端与1/01端口、电阻Rl的一端连接,电阻Rl 的另一端接电源输出VCC端口 ;按键S2的另一端与1/02端口、电阻R2的一端连接,电阻R2 的另一端接电源输出VCC端口 ;按键S3的另一端分别与二极管Dl的阴极、二极管D2的阳极连接,二极管Dl的阳极接I/O 2端口,二极管D2的阴极接I/O 1端口;所述按键S4、按键S5、按键S6的一端均与I/O 2端口连接,按键S5的另一端与二极管D3的阴极连接,按键 S6的另一端与二极管D4的阳极连接,二极管D3的阳极、二极管D4的阴极、按键S4的另一端均与I/O 1端口连接。采用非AD 口读键的按键检测方法,包括以下步骤
a、触发按键Sl- S6的任意按键;
b、I/01端口、I/O 2端口通过系统分别同时设置为输入状态、同时设置为输出状态、 相互交替地互设为输入输出状态;
c、IC芯片运算处理后,输出按键状态数据。具体的检测运算如下
1.系统将I/O 1和I/O 2都设置成输入状态,由于按键S4、按键S5和按键S6两端都接高电平VCC,无法检测,所以该端口此时的状态只能检测按键Si、按键S2和按键S3的状态。当系统检测到I/O 1为低电平GND时,再检测I/O 2端口状态,如果是高电平VCC,则表示按键Sl按下,即检测到按键Sl的状态;如果是低电平GND,则表示按键S3按下,即检测到按键S3的状态。反过来,当系统检测到I/O 2为低电平GND时,再检测I/O 1端口状态, 如果是高电平VCC,则表示按键S2按下,即检测到按键S2的状态;如果是低电平GND,表示依然是按键S3按下。当检测到I/O 1和I/O 2两个端口都是高电平VCC时,表示没有按键按下。2.由于按键Si、按键S2和按键S3的一端共同接低电平GND,所以下面所描述的端口 I/O 1和I/O 2状态都不能检测按键Si、按键S2和按键S3的状态,只能检测按键S4、 按键S5和按键S6的状态。(a)当系统将1/01设为输出,输出低电平GND,将I/O 2设为输入后,检测到I/O 2为低电平GND时,表示按键S4与按键S6其中一个按键已按下,在系统中将该按键值保存起来;(b)然后将统将I/O 2设为输出,输出低电平GND,将I/O 1设为输入,此时如果检测到I/O 1为低电平GND时,表示按键S4与按键S5其中一个键按下。此时用(b)状态按键值比较(a)状态时所保存的按键值,如果相同,则表示按键S4按下,即检测到按键S4的状态;如果不相同,则表示在(a)状态时,按键S6按下,在(b)状态时是按键 S5按下;当在(a)和(b)状态下都检测到高电平时,表示没有按键按下。
按第1点和第2点检测方法就可以实现两个普通I/O 口能检测六个按键的功能, 达到本发明的目的。对应不同的单片机,可以在切换I/O 口输入输出状态后,适当延时再读取按键状态,以提高可靠性。
权利要求
1.一种非AD 口读键的按键检测电路,其特征在于,包括电阻(R1)、电阻(R2)、二极管 (D1)、二极管(D2)、二极管(D3)、二极管(D4)、按键(Si)、按键(S2)、按键(S3)、按键(S4)、 按键(S5)、按键(S6)以及IC芯片的电源输出VCC端口、I/O 1端口、I/O 2端口、GND接地端口,按键(S1 )、按键(S2)、按键(S3)的一端均接地,按键(Sl)另一端与1/01端口、电阻 (Rl)的一端连接,电阻(Rl)的另一端接电源输出VCC端口 ;按键(S2)的另一端与1/02端口、电阻(R2)的一端连接,电阻(R2)的另一端接电源输出VCC端口 ;按键(S3)的另一端分别与二极管(Dl)的阴极、二极管(D2)的阳极连接,二极管(Dl)的阳极接I/O 2端口,二极管(D2)的阴极接I/O 1端口;所述按键(S4)、按键(S5)、按键(S6)的一端均与I/O 2端口连接,按键(S5)的另一端与二极管(D3)的阴极连接,按键(S6)的另一端与二极管(D4)的阳极连接,二极管(D3)的阳极、二极管(D4)的阴极、按键(S4)的另一端均与I/O 1端口连接。
2.一种采用非AD 口读键的按键检测方法,其特征在于,包括以下步骤a、触发按键(Si)至按键(S6)的任意按键;b、I/01端口、I/O 2端口通过系统分别同时设置为输入状态、同时设置为输出状态、 相互交替地互设为输入输出状态;c、IC芯片运算处理后,输出按键状态数据。
全文摘要
本发明涉及一种非AD口按键检测电路及其检测方法,包括电阻R1、电阻R2、二极管D1、二极管D2、二极管D3、二极管D4、按键S1、按键S2、按键S3、按键S4、按键S5、按键S6以及IC芯片的电源输出VCC端口、I/O1端口、I/O2端口、GND接地端口。同时,该检测方法,包括以下步骤a、触发按键S1-S6的任意按键;b、I/O1端口、I/O2端口通过系统分别同时设置为输入状态、同时设置为输出状态、相互交替地互设为输入输出状态;c、IC芯片运算处理后,输出按键状态数据。采用该结构的非AD口按键检测电路,只需要两个I/O口就能检测六个按键。
文档编号G01R31/327GK102565694SQ20111045853
公开日2012年7月11日 申请日期2011年12月31日 优先权日2011年12月31日
发明者庄耿 申请人:广东盈科电子有限公司