【技术实现步骤摘要】
本专利技术涉及一种按键扩展电路及方法。具体地说是一种微处理器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端口 ...
【技术保护点】
一种按键扩展电路,其特征在于,包括: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。
【技术特征摘要】
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的负极连接,按键
\tK3的第二端接地,二极管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的第二端接
\t地,二极管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
\t连接,按键K28的第一端与按键K12的第一端连接,按键K40的第二端
通过数据线与I/O端口PB3连接,按键K40的第一端与按键K12的第一
端连接;
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。