CN103812492A - 一种按键扩展电路及方法 - Google Patents

一种按键扩展电路及方法 Download PDF

Info

Publication number
CN103812492A
CN103812492A CN201310632724.3A CN201310632724A CN103812492A CN 103812492 A CN103812492 A CN 103812492A CN 201310632724 A CN201310632724 A CN 201310632724A CN 103812492 A CN103812492 A CN 103812492A
Authority
CN
China
Prior art keywords
button
port
connect
diode
data wire
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310632724.3A
Other languages
English (en)
Inventor
陈志伟
吴双龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Delixi Electric Co Ltd
Original Assignee
Delixi Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Delixi Electric Co Ltd filed Critical Delixi Electric Co Ltd
Priority to CN201310632724.3A priority Critical patent/CN103812492A/zh
Publication of CN103812492A publication Critical patent/CN103812492A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Input From Keyboards Or The Like (AREA)

Abstract

本发明涉及一种按键扩展电路及方法,包括N条数据线,每一条数据线与微处理器的一个I/O端口PBn连接,n为整数且0≤n≤N-1;从N条数据线中任意选择i条数据线,并将被选择的每一条数据线与一个二极管的正极连接,二极管的负极与一按键Kx的第一端连接,按键Kx的第二端接地;未被选择的每一条数据线与一按键Ky的第二端连接,按键Ky的第一端与按键Kx的第一端连接,其中i=1,2,3……N,x为整数且1≤x≤2N-1+N*(2N-1-1),y为整数且1≤y≤2N-1+N*(2N-1-1),x≠y。通过本发明所述的按键扩展电路及方法,可以采集2N-1+N*(2N-1-1)按键的键值,大大扩展了按键的容量。

Description

一种按键扩展电路及方法
技术领域
本发明涉及一种按键扩展电路及方法。具体地说是一种微处理器I/O端口按键扩展电路及方法。
背景技术
随着微处理器应用领域的逐渐扩大,操作人员与微处理器之间需要交流的信息也越来越多,而微处理器一般都是通过获取按键的键值来获取操作人员的指令信息的,这也就意味着微处理器需要采集的按键数量也越来越多了。但微处理器的I/O口数量是有限的,为了使用较少的I/O口来采集尽可能多的按键数量,有人提出了按键扩展方法。
目前,常见的按键扩展方法主要有四种:独立式按键输入方式、A/D按键输入方式、串口扩充按键输入方式以及矩阵式按键输入方式。其中,独立式按键输入方式是按键直接与微处理器的I/O端口相连,即每个按键对应一个I/O端口,有多少个按键,就需要多少根线与微处理器的I/O端口相连,即能采集的按键数量与I/O端口的数量一致,因此,这种方法比较浪费I/O端口的资源,一般适用于按键数量少(一般少于4个)或规模小的系统;A/D按键输入方式是给每个按键串联不同阻值的电阻,则当按键按下后,每个按键上的电压也是不同的,因此,通过A/D转换即可使微处理器获取到不同的电压值进而通过比较所述电压值获取相应的按键所对应的键值。但这种方法需要占用微处理器内部的A/D模块,因此只适用于微处理器内部有A/D模块的情况,且对电阻的精度、A/D模块的转换精度要求也很高;串口扩充按键输入方式是采用外围电路对I/O端口进行扩充,例如利用移位寄存器(74LS164等)通过串口的方式,使用3根串口线来实现按键扩展,这种方法可以节省I/O端口,但这种方式要占用串口,而串口主要是用作通信的接口;矩阵式按键输入方式是指在按键扩展中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接,如水平线和垂直线的接线数量分别为A和B,那么可采集的按键数量就等于A*B。但这种方法最多也只能采集A*B个按键,且仍需要占用较多的I/O端接口。
授权公告号为CN202600622U,实用新型名称为“一种新型矩阵式键盘电路”,公开了一种新型矩阵式键盘电路,在每位按键上串联一个二极管,在微处理器有N个I/O端口的情况下,每N-1个按键为一组,一端接微处理器的某个I/O端口,另一端分别接微处理器的另外N-1个I/O端口,依次接完微处理器提供的N个I/O端口,即可完成按键的扩展。通过这种接线方式,在微处理器提供N个I/O端口的情况下,最多可以获取到N*(N-1)个按键的键值,若需要采集更多的按键数量,则需要微处理器提供更多的I/O端口来实现。
发明内容
为此,本发明所要解决的技术问题在于现有技术中的按键扩展电路在微处理器提供N个I/O端口的情况下,最多只能采集N*(N-1)个按键的键值,从而提出一种在N个I/O端口的情况下能够对更多的按键进行采集的按键扩展电路及方法。
为解决上述技术问题,本发明的技术方案如下:
本发明提供了一种按键扩展电路,包括:
N条数据线,每一条数据线与微处理器的一个I/O端口PBn连接,其中n为整数且0≤n≤N-1;
从所述N条数据线中任意选择i条数据线,并将被选择的每一条数据线与一个二极管的正极连接,二极管的负极与一按键Kx的第一端连接,按键Kx的第二端接地;未被选择的每一条数据线与一按键Ky的第二端连接,按键Ky的第一端与按键Kx的第一端连接,其中i=1,2,3……N,x为整数且1≤x≤2N-1+N*(2N-1-1),y为整数且1≤y≤2N-1+N*(2N-1-1),x≠y。
本发明所述的按键扩展电路,与I/O端口PB0-PBN-1连接的N条数据线分别经一个电阻Rd后与电源VCC连接,其中d为整数且1≤d≤N。
本发明所述的按键扩展电路,在N=4时,四条数据线分别与微处理器的I/O端口PB0、PB1、PB2、PB3连接;
按键K1的第一端分别与二极管D1、D2、D3、D4的负极连接,按键K1的第二端接地,二极管D1、D2、D3、D4的正极通过四条数据线分别与I/O端口PB3、PB2、PB1、PB0连接;
按键K2的第一端分别与二极管D5、D6、D7的负极连接,按键K2的第二端接地,二极管D5、D6、D7的正极通过三条数据线分别与I/O端口PB3、PB2、PB1连接,按键K16的第二端通过数据线与I/O端口PB0连接,按键K16的第一端与按键K2的第一端连接;
按键K3的第一端分别与二极管D8、D9、D10的负极连接,按键K3的第二端接地,二极管D8、D9、D10的正极通过三条数据线分别与I/O端口PB3、PB2、PB0连接,按键K23的第二端通过数据线与I/O端口PB1连接,按键K23的第一端与按键K3的第一端连接;
按键K4的第一端分别与二极管D11、D12的负极连接,按键K4的第二端接地,二极管D11、D12的正极通过两条数据线分别与I/O端口PB3、PB2连接,按键K17的第二端通过数据线与I/O端口PB0连接,按键K17的第一端与按键K4的第一端连接,按键K24的第二端通过数据线与I/O端口PB1连接,按键K24的第一端与按键K4的第一端连接;
按键K5的第一端分别与二极管D13、D14、D15的负极连接,按键K5的第二端接地,二极管D13、D14、D15的正极通过三条数据线分别与I/O端口PB3、PB1、PB0连接,按键K30的第二端通过数据线与I/O端口PB2连接,按键K30的第一端与按键K5的第一端连接;
按键K6的第一端分别与二极管D16、D17的负极连接,按键K6的第二端接地,二极管D16、D17的正极通过两条数据线分别与I/O端口PB3、PB1连接,按键K18的第二端通过数据线与I/O端口PB0连接,按键K18的第一端与按键K6的第一端连接,按键K31的第二端通过数据线与I/O端口PB2连接,按键K31的第一端与按键K6的第一端连接;
按键K7的第一端分别与二极管D18、D19的负极连接,按键K7的第二端接地,二极管D18、D19的正极通过两条数据线分别与I/O端口PB3、PB0连接,按键K25的第二端通过数据线与I/O端口PB1连接,按键K25的第一端与按键K7的第一端连接,按键K32的第二端通过数据线与I/O端口PB2连接,按键K32的第一端与按键K7的第一端连接;
按键K8的第一端与二极管D20的负极连接,按键K8的第二端接地,二极管D20的正极通过一条数据线与I/O端口PB3连接,按键K19的第二端通过数据线与I/O端口PB0连接,按键K19的第一端与按键K8的第一端连接,按键K26的第二端通过数据线与I/O端口PB1连接,按键K26的第一端与按键K8的第一端连接,按键K33的第二端通过数据线与I/O端口PB2连接,按键K33的第一端与按键K8的第一端连接;
按键K9的第一端分别与二极管D21、D22、D23的负极连接,按键K9的第二端接地,二极管D21、D22、D23的正极通过三条数据线分别与I/O端口PB2、PB1、PB0连接,按键K37的第二端通过数据线与I/O端口PB3连接,按键K37的第一端与按键K9的第一端连接;
按键K10的第一端分别与二极管D24、D25的负极连接,按键K10的第二端接地,二极管D24、D25的正极通过两条数据线分别与I/O端口PB2、PB1连接,按键K20的第二端通过数据线与I/O端口PB0连接,按键K20的第一端与按键K10的第一端连接,按键K38的第二端通过数据线与I/O端口PB3连接,按键K38的第一端与按键K10的第一端连接;
按键K11的第一端分别与二极管D26、D27的负极连接,按键K11的第二端接地,二极管D26、D27的正极通过两条数据线分别与I/O端口PB2、PB0连接,按键K27的第二端通过数据线与I/O端口PB1连接,按键K27的第一端与按键K11的第一端连接,按键K39的第二端通过数据线与I/O端口PB3连接,按键K39的第一端与按键K11的第一端连接;
按键K12的第一端与二极管D28的负极连接,按键K12的第二端接地,二极管D28的正极通过一条数据线与I/O端口PB2连接,按键K21的第二端通过数据线与I/O端口PB0连接,按键K21的第一端与按键K12的第一端连接,按键K28的第二端通过数据线与I/O端口PB1连接,按键K28的第一端与按键K12的第一端连接,按键K40的第二端通过数据线与I/O端口PB3连接,按键K40的第一端与按键K12的第一端连接;
按键K13的第一端分别与二极管D29、D30的负极连接,按键K13的第二端接地,二极管D29、D30的正极通过两条数据线分别与I/O端口PB1、PB0连接,按键K34的第二端通过数据线与I/O端口PB2连接,按键K34的第一端与按键K13的第一端连接,按键K41的第二端通过数据线与I/O端口PB3连接,按键K41的第一端与按键K13的第一端连接;
按键K14的第一端与二极管D31的负极连接,按键K14的第二端接地,二极管D31的正极通过一条数据线与I/O端口PB1连接,按键K22的第二端通过数据线与I/O端口PB0连接,按键K22的第一端与按键K14的第一端连接,按键K35的第二端通过数据线与I/O端口PB2连接,按键K35的第一端与按键K14的第一端连接,按键K42的第二端通过数据线与I/O端口PB3连接,按键K42的第一端与按键K14的第一端连接;
按键K15的第一端与二极管D32的负极连接,按键K15的第二端接地,二极管D32的正极通过一条数据线与I/O端口PB0连接,按键K29的第二端通过数据线与I/O端口PB1连接,按键K29的第一端与按键K15的第一端连接,按键K36的第二端通过数据线与I/O端口PB2连接,按键K36的第一端与按键K15的第一端连接,按键K43的第二端通过数据线与I/O端口PB3连接,按键K43的第一端与按键K15的第一端连接。
本发明所述的按键扩展电路,与I/O端口PB0、PB1、PB2、PB3连接的四条数据线分别经电阻R4、R3、R2、R1后与电源VCC连接。
本发明所述的按键扩展电路,在N=3时,三条数据线分别与微处理器的I/O端口PB4、PB5、PB6连接;
按键K44的第一端分别与二极管D33、D34、D35的负极连接,按键K44的第二端接地,二极管D33、D34、D35的正极通过三条数据线分别与I/O端口PB6、PB5、PB4连接;
按键K45的第一端分别与二极管D36、D37的负极连接,按键K45的第二端接地,二极管D36、D37的正极通过两条数据线分别与I/O端口PB6、PB5连接,按键K51的第二端通过数据线与I/O端口PB4连接,按键K51的第一端与按键K45的第一端连接;
按键K46的第一端分别与二极管D38、D39的负极连接,按键K46的第二端接地,二极管D38、D39的正极通过两条数据线分别与I/O端口PB4、PB6连接,按键K52的第二端通过数据线与I/O端口PB5连接,按键K52的第一端与按键K46的第一端连接;
按键K47的第一端与二极管D40的负极连接,按键K47的第二端接地,二极管D40的正极通过一条数据线与I/O端口PB6连接,按键K53的第二端通过数据线与I/O端口PB4连接,按键K53的第一端与按键K47的第一端连接,按键K54的第二端通过数据线与I/O端口PB5连接,按键K54的第一端与按键K47的第一端连接;
按键K48的第一端分别与二极管D41、D42的负极连接,按键K48的第二端接地,二极管D41、D42的正极通过两条数据线分别与I/O端口PB5、PB4连接,按键K55的第二端通过数据线与I/O端口PB6连接,按键K55的第一端与按键K48的第一端连接;
按键K49的第一端与二极管D43的负极连接,按键K49的第二端接地,二极管D43的正极通过一条数据线与I/O端口PB5连接,按键K56的第二端通过数据线与I/O端口PB4连接,按键K56的第一端与按键K49的第一端连接,按键K57的第二端通过数据线与I/O端口PB6连接,按键K57的第一端与按键K49的第一端连接;
按键K50的第一端与二极管D44的负极连接,按键K50的第二端接地,二极管D44的正极通过一条数据线与I/O端口PB4连接,按键K58的第二端通过数据线与I/O端口PB5连接,按键K58的第一端与按键K50的第一端连接,按键K59的第二端通过数据线与I/O端口PB6连接,按键K59的第一端与按键K50的第一端连接。
本发明所述的按键扩展电路,与I/O端口PB4、PB5、PB6连接的三条数据线分别经电阻R7、R6、R5后与电源VCC连接。
本发明所述的按键扩展电路为基础的按键扩展方法,包括如下步骤:
每隔时间△T,启动一次按键扫描步骤,所述按键扫描步骤包括:
以T1为周期,在每一周期内依次设置I/O端口PB0-PBN-1的端口值全部为1,设置任意一个I/O端口的端口值为0的同时设置其他的I/O端口的端口值为1;
同时以T2为周期,查询I/O端口PB0-PBN-1的端口值,根据查询到的I/O端口PB0-PBN-1的端口值确定被按下的按键;
并且T2≥T1。
本发明所述的按键扩展方法,在N=4时,所述按键扫描步骤为:
以T1为周期,在每一周期内依次设置I/O端口PB0-PB3的端口值为:1111、0111、1011、1101、1110;
同时以T2为周期,查询I/O端口PB0-PB3的端口值,根据查询到的I/O端口PB0-PB3的端口值确定被按下的按键。
本发明所述的按键扩展方法,在N=3时,所述按键扫描步骤为:
以T1为周期,在每一周期内依次设置I/O端口PB4-PB6的端口值为:111、011、101、110;
同时以T2为周期,查询I/O端口PB4-PB6的端口值,根据查询到的I/O端口PB4-PB6的端口值确定被按下的按键。
本发明的上述技术方案相比现有技术具有以下优点:
(1)本发明提供了一种按键扩展电路,包括N条数据线,每一条数据线与微处理器的一个I/O端口PBn连接,从N条数据线中任意选择i条数据线,并将被选择的每一条数据线与一个二极管的正极连接,二极管的负极与一按键Kx的第一端连接,按键Kx的第二端接地;未被选择的每一条数据线与一按键Ky的第二端连接,按键Ky的第一端与按键Kx的第一端连接,通过这种电路设计,当按键按下时,二极管导通,则与该按键连接的I/O端口的端口值为0,其他的I/O端口的端口值为1,微处理器通过查询所有I/O端口的端口值,并将所有I/O端口的端口值对应的N位二进制编码与事先设定好的二进制编码做比较,即可确定是否有按键被按下以及哪个按键被按下,进而完成相应的动作。比如当微处理器提供了四个I/O端口PB0、PB1、PB2、PB3时,当按键扫描步骤启动且四个I/O端口PB0、PB1、PB2、PB3置为1时,若此时按下按键K2,因为二极管D5、D6、D7的正极分别通过数据线与I/O端口PB3、PB2、PB1连接,且二极管D5、D6、D7的负极均与按键K2的第一端连接,而按键K2的第二端是接地的,当按键K2按下时二极管D5、D6、D7导通接地,使得I/O端口PB3、PB2、PB1的端口值均变为0,则此时微处理器查询到的四个I/O端口PB3、PB2、PB1、PB0的端口值即为0001,因此,若微处理器在四个I/O端口PB3、PB2、PB1、PB0的端口值置为1时查询到其端口值为0001,则可确定按键K2被按下。同理,还是微处理器提供了四个I/O端口PB0、PB1、PB2、PB3时,当按键扫描步骤启动且I/O端口PB0的端口值置为0,其他三个I/O端口PB1、PB2、PB3的端口值置为1时,若此时按下按键K17,因为二极管D11、D12的正极分别通过数据线与I/O端口PB3、PB2连接,且二极管D11、D12的负极与按键K17的第一端连接(二极管D11、D12的负极与按键K4的第一端连接,而按键K4的第一端也与按键K17的第一端连接,因此,二极管D11、D12的负极与按键K17的第一端也相连接),而按键K17的第二端与I/O端口PB0连接,而此时只有I/O端口PB0置为0,当按键K17按下后,二极管D11、D12导通,使得I/O端口PB3、PB2的端口值均由1变为0,则此时微处理器查询到的四个I/O端口PB3、PB2、PB1、PB0的端口值即为0010,因此,若微处理器在I/O端口PB0的端口值置为1,其他三个I/O端口PB1、PB2、PB3的端口值置为1时查询到I/O端口PB3、PB2、PB1、PB0的端口值为0010,则可确定按键K17被按下。当然,也可以以按键扩展电路为基础来事先设定一些组合键的键值以满足有多个按键按下时的按键采集的需求,实现相应的操作。
本发明还提供了一种以所述的按键扩展电路为基础的按键扩展方法,包括如下步骤:每隔时间△T,启动一次按键扫描步骤,所述按键扫描步骤包括:以T1为周期,在每一周期内依次设置I/O端口PB0-PBN-1的端口值全部为1,设置任意一个I/O端口的端口值为0的同时设置其他的I/O端口的端口值为1;同时以T2为周期,查询I/O端口PB0-PBN-1的端口值,根据查询到的I/O端口PB0-PBN-1的端口值确定被按下的按键;并且T2≥T1。因为周期T1、周期T2的时间很短,T1为微秒级,T2为毫秒级。因此,在操作人员进行按键操作时,微处理器已经进行了很多次周期的按键扫描,而且因为T2≥T1,因此在一个扫描周期T2内,至少可以完成一个周期T1内的I/O端口的端口值的设置。因此,本发明所述的按键扩展方法可以实现对所有按键键值的采集,不会造成遗漏。在微处理器提供N个I/O端口的情况下,可以采集2N-1+N*(2N-1-1)个按键的键值。相较于现有技术最多只能采集N*(N-1)个按键的键值的情况,大大增加了按键的容量,能够以较少的I/O端口采集尽可能多的按键的键值。
(2)本发明所述的按键扩展方法,微处理器每隔时间△T,启动一次按键扫描步骤,查询一下是否有按键按下,比如每隔100ms启动一次按键扫描步骤,因为操作人员不可能一直有按键操作,因此,每隔时间△T启动一次按键扫描步骤,可以降低设备的能耗,而且因为△T为毫秒级,因此,在操作人员有按键操作时,至少会启动一次按键扫描步骤,不会造成遗漏。
(3)本发明所述的按键扩展电路,与I/O端口PB0-PBN-1连接的N条数据线分别经N个电阻Rd后与电源VCC连接,其中d为整数且1≤d≤N。比如当N=4时,与I/O端口PB0、PB1、PB2、PB3连接的四条数据线分别经电阻R4、R3、R2、R1后与电源VCC连接。通过在电路中设置上拉电阻Rd,可以提高输出电平,从而提高微处理器输入信号的噪声容限,增强电路的抗干扰能力,同时也可以对电路起限流作用,防止电流过大对按键扩展电路造成损坏。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
图1是本发明实施例1所描述的按键扩展电路的电路图;
图2是本发明实施例2所描述的按键扩展电路的电路图。
具体实施方式
实施例1
本实施例提供了一种按键扩展电路,包括:
N条数据线,每一条数据线与微处理器的一个I/O端口PBn连接,其中n为整数且0≤n≤N-1。
从所述N条数据线中任意选择i条数据线,并将被选择的每一条数据线与一个二极管的正极连接,二极管的负极与一按键Kx的第一端连接,按键Kx的第二端接地;未被选择的每一条数据线与一按键Ky的第二端连接,按键Ky的第一端与按键Kx的第一端连接,其中i=1,2,3……N,x为整数且1≤x≤2N-1+N*(2N-1-1),y为整数且1≤y≤2N-1+N*(2N-1-1),x≠y。
本实施例还提供了一种以所述按键扩展电路为基础的按键扩展方法,包括如下步骤:
每隔时间△T,启动一次按键扫描步骤,所述按键扫描步骤包括:
以T1为周期,在每一周期内依次设置I/O端口PB0-PBN-1的端口值全部为1,设置任意一个I/O端口的端口值为0的同时设置其他的I/O端口的端口值为1。
同时以T2为周期,查询I/O端口PB0-PBN-1的端口值,根据查询到的I/O端口PB0-PBN-1的端口值确定被按下的按键。
并且T2≥T1。
作为一种可选的实施方式,本实施例所述的按键扩展电路,如图1所示,在N=4时,四条数据线分别与微处理器的I/O端口PB0、PB1、PB2、PB3连接。
按键K1的第一端分别与二极管D1、D2、D3、D4的负极连接,按键K1的第二端接地,二极管D1、D2、D3、D4的正极通过四条数据线分别与I/O端口PB3、PB2、PB1、PB0连接。
按键K2的第一端分别与二极管D5、D6、D7的负极连接,按键K2的第二端接地,二极管D5、D6、D7的正极通过三条数据线分别与I/O端口PB3、PB2、PB1连接,按键K16的第二端通过数据线与I/O端口PB0连接,按键K16的第一端与按键K2的第一端连接。
按键K3的第一端分别与二极管D8、D9、D10的负极连接,按键K3的第二端接地,二极管D8、D9、D10的正极通过三条数据线分别与I/O端口PB3、PB2、PB0连接,按键K23的第二端通过数据线与I/O端口PB1连接,按键K23的第一端与按键K3的第一端连接。
按键K4的第一端分别与二极管D11、D12的负极连接,按键K4的第二端接地,二极管D11、D12的正极通过两条数据线分别与I/O端口PB3、PB2连接,按键K17的第二端通过数据线与I/O端口PB0连接,按键K17的第一端与按键K4的第一端连接,按键K24的第二端通过数据线与I/O端口PB1连接,按键K24的第一端与按键K4的第一端连接。
按键K5的第一端分别与二极管D13、D14、D15的负极连接,按键K5的第二端接地,二极管D13、D14、D15的正极通过三条数据线分别与I/O端口PB3、PB1、PB0连接,按键K30的第二端通过数据线与I/O端口PB2连接,按键K30的第一端与按键K5的第一端连接。
按键K6的第一端分别与二极管D16、D17的负极连接,按键K6的第二端接地,二极管D16、D17的正极通过两条数据线分别与I/O端口PB3、PB1连接,按键K18的第二端通过数据线与I/O端口PB0连接,按键K18的第一端与按键K6的第一端连接,按键K31的第二端通过数据线与I/O端口PB2连接,按键K31的第一端与按键K6的第一端连接。
按键K7的第一端分别与二极管D18、D19的负极连接,按键K7的第二端接地,二极管D18、D19的正极通过两条数据线分别与I/O端口PB3、PB0连接,按键K25的第二端通过数据线与I/O端口PB1连接,按键K25的第一端与按键K7的第一端连接,按键K32的第二端通过数据线与I/O端口PB2连接,按键K32的第一端与按键K7的第一端连接。
按键K8的第一端与二极管D20的负极连接,按键K8的第二端接地,二极管D20的正极通过一条数据线与I/O端口PB3连接,按键K19的第二端通过数据线与I/O端口PB0连接,按键K19的第一端与按键K8的第一端连接,按键K26的第二端通过数据线与I/O端口PB1连接,按键K26的第一端与按键K8的第一端连接,按键K33的第二端通过数据线与I/O端口PB2连接,按键K33的第一端与按键K8的第一端连接。
按键K9的第一端分别与二极管D21、D22、D23的负极连接,按键K9的第二端接地,二极管D21、D22、D23的正极通过三条数据线分别与I/O端口PB2、PB1、PB0连接,按键K37的第二端通过数据线与I/O端口PB3连接,按键K37的第一端与按键K9的第一端连接。
按键K10的第一端分别与二极管D24、D25的负极连接,按键K10的第二端接地,二极管D24、D25的正极通过两条数据线分别与I/O端口PB2、PB1连接,按键K20的第二端通过数据线与I/O端口PB0连接,按键K20的第一端与按键K10的第一端连接,按键K38的第二端通过数据线与I/O端口PB3连接,按键K38的第一端与按键K10的第一端连接。
按键K11的第一端分别与二极管D26、D27的负极连接,按键K11的第二端接地,二极管D26、D27的正极通过两条数据线分别与I/O端口PB2、PB0连接,按键K27的第二端通过数据线与I/O端口PB1连接,按键K27的第一端与按键K11的第一端连接,按键K39的第二端通过数据线与I/O端口PB3连接,按键K39的第一端与按键K11的第一端连接。
按键K12的第一端与二极管D28的负极连接,按键K12的第二端接地,二极管D28的正极通过一条数据线与I/O端口PB2连接,按键K21的第二端通过数据线与I/O端口PB0连接,按键K21的第一端与按键K12的第一端连接,按键K28的第二端通过数据线与I/O端口PB1连接,按键K28的第一端与按键K12的第一端连接,按键K40的第二端通过数据线与I/O端口PB3连接,按键K40的第一端与按键K12的第一端连接。
按键K13的第一端分别与二极管D29、D30的负极连接,按键K13的第二端接地,二极管D29、D30的正极通过两条数据线分别与I/O端口PB1、PB0连接,按键K34的第二端通过数据线与I/O端口PB2连接,按键K34的第一端与按键K13的第一端连接,按键K41的第二端通过数据线与I/O端口PB3连接,按键K41的第一端与按键K13的第一端连接。
按键K14的第一端与二极管D31的负极连接,按键K14的第二端接地,二极管D31的正极通过一条数据线与I/O端口PB1连接,按键K22的第二端通过数据线与I/O端口PB0连接,按键K22的第一端与按键K14的第一端连接,按键K35的第二端通过数据线与I/O端口PB2连接,按键K35的第一端与按键K14的第一端连接,按键K42的第二端通过数据线与I/O端口PB3连接,按键K42的第一端与按键K14的第一端连接。
按键K15的第一端与二极管D32的负极连接,按键K15的第二端接地,二极管D32的正极通过一条数据线与I/O端口PB0连接,按键K29的第二端通过数据线与I/O端口PB1连接,按键K29的第一端与按键K15的第一端连接,按键K36的第二端通过数据线与I/O端口PB2连接,按键K36的第一端与按键K15的第一端连接,按键K43的第二端通过数据线与I/O端口PB3连接,按键K43的第一端与按键K15的第一端连接。
以上述N=4时的按键扩展电路为基础的按键扩展方法,包括如下步骤:在N=4时,所述按键扫描步骤为:
以T1为周期,在每一周期内依次设置I/O端口PB0-PB3的端口值为:1111、0111、1011、1101、1110。
同时以T2为周期,查询I/O端口PB0-PB3的端口值,根据查询到的I/O端口PB0-PB3的端口值确定被按下的按键。
因此,通过本实施例所述的按键扩展电路及方法,当按键按下时,二极管导通,则与该按键连接的I/O端口的端口值为0,其他的I/O端口的端口值为1,微处理器通过查询所有I/O端口的端口值,并将所有I/O端口的端口值对应的N位二进制编码与事先设定好的按键的键值对应的二进制编码做比较,即可确定是否有按键被按下以及哪个按键被按下,进而完成相应的动作。比如当微处理器提供了四个I/O端口PB0、PB1、PB2、PB3时,当按键扫描步骤启动且四个I/O端口PB0、PB1、PB2、PB3置为1时,若此时按下按键K2,因为二极管D5、D6、D7的正极分别通过数据线与I/O端口PB3、PB2、PB1连接,且二极管D5、D6、D7的负极均与按键K2的第一端连接,而按键K2的第二端是接地的,当按键K2按下时二极管D5、D6、D7导通接地,使得I/O端口PB3、PB2、PB1的端口值均变为0,则此时微处理器查询到的四个I/O端口PB3、PB2、PB1、PB0的端口值即为0001,因此,若微处理器在四个I/O端口PB3、PB2、PB1、PB0的端口值置为1时查询到其端口值为0001,则可确定按键K2被按下。同理,还是微处理器提供了四个I/O端口PB0、PB1、PB2、PB3时,当按键扫描步骤启动且I/O端口PB0的端口值置为,0,其他三个I/O端口PB1、PB2、PB3的端口值置为1时,若此时按下按键K17,因为二极管D11、D12的正极分别通过数据线与I/O端口PB3、PB2连接,且二极管D11、D12的负极与按键K17的第一端连接(二极管D11、D12的负极与按键K4的第一端连接,而按键K4的第一端也与按键K17的第一端连接,因此,二极管D11、D12的负极与按键K17的第一端也相连接),而按键K17的第二端与I/O端口PB0连接,而此时只有I/O端口PB0置为0,当按键K17按下后,二极管D11、D12导通,使得I/O端口PB3、PB2的端口值均由1变为0,则此时微处理器查询到的四个I/O端口PB3、PB2、PB1、PB0的端口值即为0010,因此,若微处理器在I/O端口PB0的端口值置为1,其他三个I/O端口PB1、PB2、PB3的端口值置为1时查询到I/O端口PB3、PB2、PB1、PB0的端口值为0010,则可确定按键K17被按下。当然,也可以以按键扩展电路为基础来事先设定一些组合键的键值以满足有多个按键按下时的按键采集的需求,比如,假设按键K4和按键K18是一组能控制实现某一功能的组合键,当微处理器在某一很短的时间间隔内,同时采集到了按键K4和按键K18的键值,则会进行该组合键控制的相应的操作。
因为周期T1、周期T2的时间很短,T1为微秒级,T2为毫秒级。因此,在操作人员进行按键操作时,微处理器已经进行了很多次周期的按键扫描,而且因为T2≥T1,因此在一个扫描周期T2内,至少可以完成一个周期T1内的I/O端口的端口值的设置。因此,本实施例所述的按键扩展电路及方法可以实现对所有按键键值的采集,不会造成遗漏。
针对图1所示的按键采集电路,当I/O端口PB0、PB1、PB2、PB3的端口值均置为1是,微处理器对所述四个I/O端口的端口值进行按键扫描后,依据二进制编码的原理,可以读取的二进制编码的状态是24也就是16种,因为四个I/O端口PB0、PB1、PB2、PB3的端口值的原始状态即为1111,因此1111表示没有按键按下,则此时可以获取的按键的键值有24-1,也就是15种。如表1所示(本表是按照PB3、PB2、PB1、PB0的顺序编制端口值对应的二进制编码,当然也可以按照其他的顺序来对所述四个I/O端口的端口值进行排序编制对应的二进制编码,无论怎样排序,每个按键的键值对应的二进制编码都是唯一的。):
表1
Figure BDA0000426090090000181
当I/O端口PB0、PB1、PB2、PB3设置任意一个I/O端口的端口值为0同时设置其他三个I/O端口的端口值为1时,此时,微处理器对所述四个I/O端口的端口值进行按键扫描后,依据二进制编码的原理,可以读取的二进制编码的状态是4*24-1也就是32种,但因为四个I/O端口PB3、PB2、PB1、PB0的端口值的原始状态分别为1110、1101、1011、0111,因此,微处理器采集到的端口值对应的二进制编码为1110、1101、1011、0111时,表示没有按键按下,则此时可以获取的按键的键值有4*24-1-4,也就是4*(24-1-1)=28种。如表2所示(本表是按照PB3、PB2、PB1、PB0的顺序编制端口值对应的二进制编码,当然也可以按照其他的顺序来对所述四个I/O端口的端口值进行排序编制对应的二进制编码,无论怎样排序,每个按键的键值对应的二进制编码都是唯一的。):
表2
Figure BDA0000426090090000182
Figure BDA0000426090090000191
以上只是针对图1所示按键扩展电路的描述,在实际应用过程中,不局限于上述各按键的位置连接关系,可以根据需要自行确定各个按键在按键扩展电路中的位置连接关系,只要符合在微处理器提供N个I/O端口的情况时,有N条数据线分别与所述N个I/O端口连接,然后从所述N条数据线中任意选择i条数据线,并将被选择的每一条数据线与一个二极管的正极连接,之后将所述i个二极管的负极与任意一个按键比如Kx的第一端连接,并将按键Kx的第二端接地,此时,有N-i条数据线未被选择,再选用一个不同于按键Kx的按键,比如按键Ky,将按键Ky的第一端,与按键Kx的第一端连接,将按键Ky的第二端,与未被选择的N-i条数据线连接,其中i=1,2,3……N,x为整数且1≤x≤2N-1+N*(2N-1-1),y为整数且1≤y≤2N-1+N*(2N-1-1),x≠y。只要使每个按键满足这种连接关系即可。通过这种设置,依据二进制编码的原理,对于上述按键Kx的连接情况,可以采集2N-1个按键的键值,对于上述按键Ky的连接情况,可以采集N*(2N-1-1)个按键的键值。因此,本发明所述的按键扩展电路,最多可以采集2N-1+N*(2N-1-1)个按键的键值。相较于现有技术最多只能采集N*(N-1)个按键的键值的情况,大大增加了采集按键的容量,能够以较少的I/O端口采集尽可能多的按键的键值。
另外,需要说明的是,本实施例中所说的“从所述N条数据线中任意选择i条数据线”是包括从N条数据线中选择i条数据线的所有情况。例如当N=4时,从四条数据线中任意选择一条数据线的情况包括四种,从四条数据线中任意选择两条数据线的情况包括选择第一条、第二条;第一条、第三条;第一条、第四条;第二条、第三条;第二条、第四条;第三条、第四条;一共六种情况,依次类推。
另外,为了提高微处理器输入信号的噪声容限、增强电路的抗干扰能力,本实施例中对上述按键扩展电路进行如下改进:与I/O端口PB0-PBN-1连接的N条数据线分别经一个电阻Rd后与电源VCC连接,其中d为整数且1≤d≤N。如图1中,当N=4时,与I/O端口PB0、PB1、PB2、PB3连接的四条数据线分别经电阻R4、R3、R2、R1后与电源VCC连接。上述上拉电阻,还可以对电路起限流作用,防止电流过大对按键扩展电路造成损坏。
本实施例中所述微处理器为常规的单片机芯片、数据处理单元等。
实施例2
本实施例还提供一种在N=3时的按键扩展电路,如图2所示。
三条数据线分别与微处理器的I/O端口PB4、PB5、PB6连接,此处的I/O端口的编号是为了和实施例1中的I/O端口编号进行区分,因此编号为从4-6。
如图所示,按键K44的第一端分别与二极管D33、D34、D35的负极连接,按键K44的第二端接地,二极管D33、D34、D35的正极通过三条数据线分别与I/O端口PB6、PB5、PB4连接。
按键K45的第一端分别与二极管D36、D37的负极连接,按键K45的第二端接地,二极管D36、D37的正极通过两条数据线分别与I/O端口PB6、PB5连接,按键K51的第二端通过数据线与I/O端口PB4连接,按键K51的第一端与按键K45的第一端连接。
按键K46的第一端分别与二极管D38、D39的负极连接,按键K46的第二端接地,二极管D38、D39的正极通过两条数据线分别与I/O端口PB4、PB6连接,按键K52的第二端通过数据线与I/O端口PB5连接,按键K52的第一端与按键K46的第一端连接。
按键K47的第一端与二极管D40的负极连接,按键K47的第二端接地,二极管D40的正极通过一条数据线与I/O端口PB6连接,按键K53的第二端通过数据线与I/O端口PB4连接,按键K53的第一端与按键K47的第一端连接,按键K54的第二端通过数据线与I/O端口PB5连接,按键K54的第一端与按键K47的第一端连接。
按键K48的第一端分别与二极管D41、D42的负极连接,按键K48的第二端接地,二极管D41、D42的正极通过两条数据线分别与I/O端口PB5、PB4连接,按键K55的第二端通过数据线与I/O端口PB6连接,按键K55的第一端与按键K48的第一端连接。
按键K49的第一端与二极管D43的负极连接,按键K49的第二端接地,二极管D43的正极通过一条数据线与I/O端口PB5连接,按键K56的第二端通过数据线与I/O端口PB4连接,按键K56的第一端与按键K49的第一端连接,按键K57的第二端通过数据线与I/O端口PB6连接,按键K57的第一端与按键K49的第一端连接。
按键K50的第一端与二极管D44的负极连接,按键K50的第二端接地,二极管D44的正极通过一条数据线与I/O端口PB4连接,按键K58的第二端通过数据线与I/O端口PB5连接,按键K58的第一端与按键K50的第一端连接,按键K59的第二端通过数据线与I/O端口PB6连接,按键K59的第一端与按键K50的第一端连接。
其中,与I/O端口PB4、PB5、PB6连接的三条数据线分别经电阻R7、R6、R5后与电源VCC连接。
并且所述按键扫描步骤为:
以T1为周期,在每一周期内依次设置I/O端口PB4-PB6的端口值为:111、011、101、110;
同时以T2为周期,查询I/O端口PB4-PB6的端口值,根据查询到的I/O端口PB4-PB6的端口值确定被按下的按键。
本实施例中上述按键扩展电路和扩展方法中,被按下的按键与三个I/O端口的端口值的关系为表3和表4所示。(本表是按照PB6、PB5、PB4的顺序编制端口值对应的二进制编码,当然也可以按照其他的顺序来对所述三个I/O端口的端口值进行排序编制对应的二进制编码,无论怎样排序,每个按键的键值对应的二进制编码都是唯一的。)
表3
Figure BDA0000426090090000221
表4
Figure BDA0000426090090000222
上述实施例中,按键的编号数可根据实际情况任意设置。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

Claims (9)

1.一种按键扩展电路,其特征在于,包括:
N条数据线,每一条数据线与微处理器的一个I/O端口PBn连接,其中n为整数且0≤n≤N-1;
从所述N条数据线中任意选择i条数据线,并将被选择的每一条数据线与一个二极管的正极连接,二极管的负极与一按键Kx的第一端连接,按键Kx的第二端接地;未被选择的每一条数据线与一按键Ky的第二端连接,按键Ky的第一端与按键Kx的第一端连接,其中i=1,2,3……N,x为整数且1≤x≤2N-1+N*(2N-1-1),y为整数且1≤y≤2N-1+N*(2N-1-1),x≠y。
2.根据权利要求1所述的按键扩展电路,其特征在于:
与I/O端口PB0-PBN-1连接的N条数据线分别经一个电阻Rd后与电源VCC连接,其中d为整数且1≤d≤N。
3.根据权利要求1或2所述的按键扩展电路,其特征在于:
在N=4时,四条数据线分别与微处理器的I/O端口PB0、PB1、PB2、PB3连接;
按键K1的第一端分别与二极管D1、D2、D3、D4的负极连接,按键K1的第二端接地,二极管D1、D2、D3、D4的正极通过四条数据线分别与I/O端口PB3、PB2、PB1、PB0连接;
按键K2的第一端分别与二极管D5、D6、D7的负极连接,按键K2的第二端接地,二极管D5、D6、D7的正极通过三条数据线分别与I/O端口PB3、PB2、PB1连接,按键K16的第二端通过数据线与I/O端口PB0连接,按键K16的第一端与按键K2的第一端连接;
按键K3的第一端分别与二极管D8、D9、D10的负极连接,按键K3的第二端接地,二极管D8、D9、D10的正极通过三条数据线分别与I/O端口PB3、PB2、PB0连接,按键K23的第二端通过数据线与I/O端口PB1连接,按键K23的第一端与按键K3的第一端连接;
按键K4的第一端分别与二极管D11、D12的负极连接,按键K4的第二端接地,二极管D11、D12的正极通过两条数据线分别与I/O端口PB3、PB2连接,按键K17的第二端通过数据线与I/O端口PB0连接,按键K17的第一端与按键K4的第一端连接,按键K24的第二端通过数据线与I/O端口PB1连接,按键K24的第一端与按键K4的第一端连接;
按键K5的第一端分别与二极管D13、D14、D15的负极连接,按键K5的第二端接地,二极管D13、D14、D15的正极通过三条数据线分别与I/O端口PB3、PB1、PB0连接,按键K30的第二端通过数据线与I/O端口PB2连接,按键K30的第一端与按键K5的第一端连接;
按键K6的第一端分别与二极管D16、D17的负极连接,按键K6的第二端接地,二极管D16、D17的正极通过两条数据线分别与I/O端口PB3、PB1连接,按键K18的第二端通过数据线与I/O端口PB0连接,按键K18的第一端与按键K6的第一端连接,按键K31的第二端通过数据线与I/O端口PB2连接,按键K31的第一端与按键K6的第一端连接;
按键K7的第一端分别与二极管D18、D19的负极连接,按键K7的第二端接地,二极管D18、D19的正极通过两条数据线分别与I/O端口PB3、PB0连接,按键K25的第二端通过数据线与I/O端口PB1连接,按键K25的第一端与按键K7的第一端连接,按键K32的第二端通过数据线与I/O端口PB2连接,按键K32的第一端与按键K7的第一端连接;
按键K8的第一端与二极管D20的负极连接,按键K8的第二端接地,二极管D20的正极通过一条数据线与I/O端口PB3连接,按键K19的第二端通过数据线与I/O端口PB0连接,按键K19的第一端与按键K8的第一端连接,按键K26的第二端通过数据线与I/O端口PB1连接,按键K26的第一端与按键K8的第一端连接,按键K33的第二端通过数据线与I/O端口PB2连接,按键K33的第一端与按键K8的第一端连接;
按键K9的第一端分别与二极管D21、D22、D23的负极连接,按键K9的第二端接地,二极管D21、D22、D23的正极通过三条数据线分别与I/O端口PB2、PB1、PB0连接,按键K37的第二端通过数据线与I/O端口PB3连接,按键K37的第一端与按键K9的第一端连接;
按键K10的第一端分别与二极管D24、D25的负极连接,按键K10的第二端接地,二极管D24、D25的正极通过两条数据线分别与I/O端口PB2、PB1连接,按键K20的第二端通过数据线与I/O端口PB0连接,按键K20的第一端与按键K10的第一端连接,按键K38的第二端通过数据线与I/O端口PB3连接,按键K38的第一端与按键K10的第一端连接;
按键K11的第一端分别与二极管D26、D27的负极连接,按键K11的第二端接地,二极管D26、D27的正极通过两条数据线分别与I/O端口PB2、PB0连接,按键K27的第二端通过数据线与I/O端口PB1连接,按键K27的第一端与按键K11的第一端连接,按键K39的第二端通过数据线与I/O端口PB3连接,按键K39的第一端与按键K11的第一端连接;
按键K12的第一端与二极管D28的负极连接,按键K12的第二端接地,二极管D28的正极通过一条数据线与I/O端口PB2连接,按键K21的第二端通过数据线与I/O端口PB0连接,按键K21的第一端与按键K12的第一端连接,按键K28的第二端通过数据线与I/O端口PB1连接,按键K28的第一端与按键K12的第一端连接,按键K40的第二端通过数据线与I/O端口PB3连接,按键K40的第一端与按键K12的第一端连接;
按键K13的第一端分别与二极管D29、D30的负极连接,按键K13的第二端接地,二极管D29、D30的正极通过两条数据线分别与I/O端口PB1、PB0连接,按键K34的第二端通过数据线与I/O端口PB2连接,按键K34的第一端与按键K13的第一端连接,按键K41的第二端通过数据线与I/O端口PB3连接,按键K41的第一端与按键K13的第一端连接;
按键K14的第一端与二极管D31的负极连接,按键K14的第二端接地,二极管D31的正极通过一条数据线与I/O端口PB1连接,按键K22的第二端通过数据线与I/O端口PB0连接,按键K22的第一端与按键K14的第一端连接,按键K35的第二端通过数据线与I/O端口PB2连接,按键K35的第一端与按键K14的第一端连接,按键K42的第二端通过数据线与I/O端口PB3连接,按键K42的第一端与按键K14的第一端连接;
按键K15的第一端与二极管D32的负极连接,按键K15的第二端接地,二极管D32的正极通过一条数据线与I/O端口PB0连接,按键K29的第二端通过数据线与I/O端口PB1连接,按键K29的第一端与按键K15的第一端连接,按键K36的第二端通过数据线与I/O端口PB2连接,按键K36的第一端与按键K15的第一端连接,按键K43的第二端通过数据线与I/O端口PB3连接,按键K43的第一端与按键K15的第一端连接。
4.根据权利要求3所述的按键扩展电路,其特征在于:
与I/O端口PB0、PB1、PB2、PB3连接的四条数据线分别经电阻R4、R3、R2、R1后与电源VCC连接。
5.根据权利要求1或2所述的按键扩展电路,其特征在于:
在N=3时,三条数据线分别与微处理器的I/O端口PB4、PB5、PB6连接;
按键K44的第一端分别与二极管D33、D34、D35的负极连接,按键K44的第二端接地,二极管D33、D34、D35的正极通过三条数据线分别与I/O端口PB6、PB5、PB4连接;
按键K45的第一端分别与二极管D36、D37的负极连接,按键K45的第二端接地,二极管D36、D37的正极通过两条数据线分别与I/O端口PB6、PB5连接,按键K51的第二端通过数据线与I/O端口PB4连接,按键K51的第一端与按键K45的第一端连接;
按键K46的第一端分别与二极管D38、D39的负极连接,按键K46的第二端接地,二极管D38、D39的正极通过两条数据线分别与I/O端口PB4、PB6连接,按键K52的第二端通过数据线与I/O端口PB5连接,按键K52的第一端与按键K46的第一端连接;
按键K47的第一端与二极管D40的负极连接,按键K47的第二端接地,二极管D40的正极通过一条数据线与I/O端口PB6连接,按键K53的第二端通过数据线与I/O端口PB4连接,按键K53的第一端与按键K47的第一端连接,按键K54的第二端通过数据线与I/O端口PB5连接,按键K54的第一端与按键K47的第一端连接;
按键K48的第一端分别与二极管D41、D42的负极连接,按键K48的第二端接地,二极管D41、D42的正极通过两条数据线分别与I/O端口PB5、PB4连接,按键K55的第二端通过数据线与I/O端口PB6连接,按键K55的第一端与按键K48的第一端连接;
按键K49的第一端与二极管D43的负极连接,按键K49的第二端接地,二极管D43的正极通过一条数据线与I/O端口PB5连接,按键K56的第二端通过数据线与I/O端口PB4连接,按键K56的第一端与按键K49的第一端连接,按键K57的第二端通过数据线与I/O端口PB6连接,按键K57的第一端与按键K49的第一端连接;
按键K50的第一端与二极管D44的负极连接,按键K50的第二端接地,二极管D44的正极通过一条数据线与I/O端口PB4连接,按键K58的第二端通过数据线与I/O端口PB5连接,按键K58的第一端与按键K50的第一端连接,按键K59的第二端通过数据线与I/O端口PB6连接,按键K59的第一端与按键K50的第一端连接。
6.根据权利要求5所述的按键扩展电路,其特征在于:
与I/O端口PB4、PB5、PB6连接的三条数据线分别经电阻R7、R6、R5后与电源VCC连接。
7.一种以权利要求1-6任一所述的按键扩展电路为基础的按键扩展方法,其特征在于,包括如下步骤:
每隔时间△T,启动一次按键扫描步骤,所述按键扫描步骤包括:
以T1为周期,在每一周期内依次设置I/O端口PB0-PBN-1的端口值全部为1,设置任意一个I/O端口的端口值为0的同时设置其他的I/O端口的端口值为1;
同时以T2为周期,查询I/O端口PB0-PBN-1的端口值,根据查询到的I/O端口PB0-PBN-1的端口值确定被按下的按键;
并且T2≥T1。
8.根据权利要求7所述的按键扩展方法,其特征在于,在N=4时,所述按键扫描步骤为:
以T1为周期,在每一周期内依次设置I/O端口PB0-PB3的端口值为:1111、0111、1011、1101、1110;
同时以T2为周期,查询I/O端口PB0-PB3的端口值,根据查询到的I/O端口PB0-PB3的端口值确定被按下的按键。
9.根据权利要求7所述的按键扩展方法,其特征在于,在N=3时,所述按键扫描步骤为:
以T1为周期,在每一周期内依次设置I/O端口PB4-PB6的端口值为:111、011、101、110;
同时以T2为周期,查询I/O端口PB4-PB6的端口值,根据查询到的I/O端口PB4-PB6的端口值确定被按下的按键。
CN201310632724.3A 2013-11-29 2013-11-29 一种按键扩展电路及方法 Pending CN103812492A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310632724.3A CN103812492A (zh) 2013-11-29 2013-11-29 一种按键扩展电路及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310632724.3A CN103812492A (zh) 2013-11-29 2013-11-29 一种按键扩展电路及方法

Publications (1)

Publication Number Publication Date
CN103812492A true CN103812492A (zh) 2014-05-21

Family

ID=50708776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310632724.3A Pending CN103812492A (zh) 2013-11-29 2013-11-29 一种按键扩展电路及方法

Country Status (1)

Country Link
CN (1) CN103812492A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049553A (zh) * 2014-07-03 2014-09-17 南通医疗器械有限公司 一种医疗器械床用电路控制系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1474511A (zh) * 2003-08-06 2004-02-11 华侨大学 可任意扩展的二进制键盘编码电路
US7123170B1 (en) * 2003-08-26 2006-10-17 National Semiconductor Corporation System and method for a data-input array capable of being scanned using a reduced number of signals
CN101751141A (zh) * 2008-12-12 2010-06-23 深圳富泰宏精密工业有限公司 键盘电路
CN203588024U (zh) * 2013-11-29 2014-05-07 德力西电气有限公司 一种按键扩展电路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1474511A (zh) * 2003-08-06 2004-02-11 华侨大学 可任意扩展的二进制键盘编码电路
US7123170B1 (en) * 2003-08-26 2006-10-17 National Semiconductor Corporation System and method for a data-input array capable of being scanned using a reduced number of signals
CN101751141A (zh) * 2008-12-12 2010-06-23 深圳富泰宏精密工业有限公司 键盘电路
CN203588024U (zh) * 2013-11-29 2014-05-07 德力西电气有限公司 一种按键扩展电路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
靳桅 等: ""全组合式键盘电路构造方法"", 《西南交通大学学报》, vol. 39, no. 6, 31 December 2004 (2004-12-31), pages 780 - 783 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049553A (zh) * 2014-07-03 2014-09-17 南通医疗器械有限公司 一种医疗器械床用电路控制系统

Similar Documents

Publication Publication Date Title
CN101840430B (zh) 智能卡数据库多表操作方法及装置
CN102279816A (zh) Lcd自动识别方法及装置
CN103699673B (zh) 一种移动终端的图片处理方法、装置和移动终端
CN201178046Y (zh) 一种按键矩阵
CN103744730B (zh) 一种任务调度方法和装置
CN101799716A (zh) 一种应用焦点切换的方法及移动终端
CN101350616B (zh) 脉冲控制式触摸感应键盘及其实现方法
CN106293470A (zh) 触控操作的执行方法及装置
CN104464613B (zh) 发光二极管驱动系统及控制方法
CN107368144A (zh) 一种任意波形发生器及波形播放方法
CN111897812A (zh) 数据查询方法、装置、电子设备及计算机可读存储介质
CN104615490A (zh) 一种数据转换的方法及装置
CN203588024U (zh) 一种按键扩展电路
CN103812492A (zh) 一种按键扩展电路及方法
US20120256853A1 (en) Detection method for touch input device
CN107291746B (zh) 一种存储和读取数据的方法及设备
CN105207675B (zh) 用于数模转换器的编码、译码装置及方法
CN107102210A (zh) 一种基于电容式触控芯片的电容检测方法及装置
CN107992149B (zh) 电压带隙电路的修调方法和修调装置
CN103092449A (zh) 触摸数据处理装置和电子触摸器件
CN110162207B (zh) 触控感测装置的信号处理方法及触控感测装置
CN202583866U (zh) 汽车电控元件开发测试平台
CN107632878A (zh) 一种密码卡算法资源的分配方法、系统及相关装置
CN209803294U (zh) 一种矩阵按键的检测装置
CN101424284B (zh) 变速箱油泵试验控制计时方法和计时器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140521