键盘扫描电路及其扫描方法

文档序号:7518789阅读:244来源:国知局
专利名称:键盘扫描电路及其扫描方法
技术领域
本发明涉及矩阵键盘扫描电路,以及该矩阵键盘扫描电路的扫描方法。
背景技术
键盘是电子设备中重要的人机交互部件,且绝大多数键盘是利用处理器I/O端口 来进行键盘扫描的。现有的键盘电路,如图1所示以4X4矩阵键盘为例,包括4行4列排 列的16个按键,每条行线和每条列线均需要连接一个I/O端口,此键盘需要8个I/O端口。 以此类推,NXN矩阵键盘电路,则需要2N个I/O端口。键盘的扫描采用行列扫描方法来确 定按下的按键所在的行列位置。行列扫描法是指把按键的行线所对应的I/O端口设置为输出口,列线所对应的 I/O端口设置为输入口。在扫描时,轮流将某个输出口设置为低电平,其余的输入口设置为 高电平,读取输入口的电平状态,并根据输入口发生的电平变化判断所按下的键。使用这种 键盘电路,若按键的数量为NXN个,需要处理器带有2N个I/O端口,键盘占用了较多的I/ 0端口,对于I/O端口本来就紧张的处理器来说,无疑是一种较大地资源浪费。还有一些电子设备为了解决上述矩阵键盘占用大量I/O端口的问题,在矩阵键盘 电路上加入了大量二极管、并行转串行芯片等元器件,而这些元器件在使用过程中容易造 成损坏,导致矩阵键盘的稳定性降低,矩阵键盘的成本也会大大增加,不如按键加电阻构成 的矩阵键盘电路稳定可靠、成本低。

发明内容
本发明的一个目的是提供一种键盘扫描电路,该键盘扫描电路结构简单,占用处 理器I/O端口少,电路运行稳定,制造成本相对较低。为了实现上述目的,采用的技术解决方案是键盘扫描电路,包括具有N个I/O端口的处理器、N条行线和N条列线,行线和列 线交叉的位置设有按键,按键一端与行线连接,另一端与列线连接;所述处理器的各I/O端 口是具有上拉电阻的双向I/O端口,各个行线分别连接一只负载电阻后接地,各个列线的 一端分别连接处理器的I/O端口,行线和列线一对一组合,在每个组合的行线和列线之间 设有分压电阻,每个组合中的上拉电阻、分压电阻、负载电阻三者构成串联通路。上述行线由上到下依次是第1行线、第2行线、第3行线……第N行线,列线由左 到右依次是第1列线、第2列线、第3列线…第N列线,第1行线和第N列线组合、第2行线 和第N-I列线组合、第3行线和第N-2列线组合……第N行线和第1列线组合。上述上拉电阻是万欧姆级电阻,分压电阻是兆欧姆级电阻,负载电阻是千欧姆级 电阻。上述处理器的各I/O端口分别有三个I/O寄存器数据寄存器PORT、数据方向寄 存器DDR和端口输入寄存器PIN。本发明的另一个目的是提供上述键盘扫描电路的扫描方法,该扫描方法简单,性
3能较为稳定。为了实现上述目的,采用的技术解决方案是键盘扫描电路的扫描方法,包括以下步骤(1)将处理器的N个I/O端口初始化,各个I/O端口均设置成输入状态,并启用端 口上的上拉电阻;(2)读取各I/O端口的电平状态,如果有第i列线连接的I/O端口电平状态为低, 说明该端口所在第i列线上的按键有按下动作,则进行步骤(3);如果没有I/O端口电平状 态为低,再返回步骤(1)继续执行;(3)取消各I/O端口上的上拉电阻,将第i列线连接的I/O端口设为输出,电平状 态设置为高,其它I/O端口设为低;(4)读取各I/O端口的电平状态,如果有第j列线连接的I/O端口电平状态为高, 说明第N+1-j行线与第i列线交叉的位置上的按键被按下。本发明的有益效果1、键盘扫描电路只需要2N个电阻元件和N个I/O端口的处理器,就可以完成NXN 个按键的扫描,具有占用处理器I/O端口少,电路结构稳定性强,制造成本低等优势。2、键盘扫描电路的扫描方法,具有扫描方式简练,扫描稳定性强等优势。


图1为现有技术中4X4矩阵键盘的电路连接图。图2为本发明的键盘扫描电路图。图3为某列无按键按下时该列线I/O端口等效电路图。图4为某列有按键按下时该列线I/O端口等效电路图。图5为确定按下按键所在行线时I/O端口等效电路图。图6为本发明4X4键盘扫描电路图。
具体实施例方式下面结合图2至图6对本发明进行详细说明实施例1结合图2,键盘扫描电路,包括具有N个I/O端口 Pl Pn的处理器、N条行线Ll Ln和N条列线Vl Vn,行线和列线交叉的位置设有按键Kl 1 Krm,按键一端与行线连接, 另一端与列线连接。所述处理器的各I/O端口是具有上拉电阻的双向I/O端口,N条行线Ll Ln分 别连接一只负载电阻Rl 1 后接地,N条列线Vl Vn的一端分别连接处理器的I/O端 口 Pl Pn。行线由上到下依次是第1行线Li、第2行线L2、第3行线L3……第N行线Ln, 列线由左到右依次是第1列线VI、第2列线V2、第3列线V3…第N列线Vn,第1行线Ll和 第N列线Vn组合、第2行线L2和第N-I列线Vn-I组合、第3行线L3和第N-2列线Vn_2 组合……第N行线Ln和第1列线Vl组合。行线和列线一对一组合,在每个组合的行线和 列线之间设有分压电阻Ml Mn,每个组合中的上拉电阻、分压电阻、负载电阻三者构成串 联通路。其中,上拉电阻是万欧姆级电阻,分压电阻是兆欧姆级电阻,负载电阻是千欧姆级电阻。处理器的各I/O端口分别有三个I/O寄存器数据寄存器PORT、数据方向寄存器 DDR和端口输入寄存器PIN。数据寄存器和数据方向寄存器是读写寄存器,端口输入寄存器 是只读寄存器。数据方向寄存器用来选择端口方向,DDR为1时,端口配置为输出,否则配 置为输入。端口配置为输入时,若PORT为1,启用上拉电阻。如需要关闭上拉电阻,可以将 PORT清零,或者将该端口配置为输出。当端口配置为输出时,如果PORT为1,端口输出1,否 则输出0。实施例2结合图2键盘扫描电路的扫描方法,包括以下步骤(1)将处理器的N个I/O端口初始化,各个I/O端口均设置成输入状态,并启用端 口上的上拉电阻。(2)读取各I/O端口的电平状态,如果有第i列线连接的I/O端口电平状态为低, 说明该端口所在第i列线上的按键有按下动作,则进行步骤(3);如果没有I/O端口电平状 态为低,再返回步骤(1)继续执行。(3)取消各I/O端口上的上拉电阻,将第i列线连接的I/O端口设为输出,电平状 态设置为高,其它I/O端口设为低。(4)读取各I/O端口的电平状态,如果有第j列线连接的I/O端口电平状态为高, 说明第N+1-j行线与第i列线交叉的位置上的按键被按下。实施例3结合图2、图3、图4、图5,N个I/O端口 Pl Pn内部上拉电阻分别为万欧姆级 的Zl &1,该矩阵键盘电路在扫描时,所有I/O端口设置成输入,并启用端口上的上拉 电阻,当端口 Pi所在第i列Vi没有按键按下时,与端口 Pi相连的等效电路如图3所示, 端口 Pi通过上拉电阻Zi与电源VCC(高电平)相连,通过兆欧姆级阻值元件Mn+1-i和 千欧姆级阻值元件foi+1-i与地线相连,此时端口 Pi的电压为(Mn+l-i+foi+l-i) XVCC/ (Mn+1-i+foi+l-i+Zi),端口 Pi的输入寄存器PIN为高电平。当第i列Vi有按键按下时,与第i列Vi连接的端口 Pi的等效电路如图4所示, 端口 Pi通过上拉电阻Zi与电源VCC(高电平)相连,兆欧姆阻值元件Mn+1-i因按键按下 而两端短接,通过兆欧姆阻值元件Mj与端口 Pj连接,通过千欧姆级阻值元件foi+1-i与地 线相连,此时端口 Pi的电压为foi+l-iXVCC/(foi+l-i+Zi),端口 Pi的输入寄存器PIN为低 电平,而其它端口电平不变,从而确定出被按下按键的所在列数i。当扫描到有I/O端口 Pi为低电平后,取消所有I/O端口的内部上拉电阻Zl Si, 并将端口 Pi输出高电平,其它端口输出低电平,其等效电路如图5所示。端口 Pi通过兆欧 姆阻值元件Mj与端口 Pj连接,通过千欧姆级阻值元件foi+1-i与地线相连。因为端口 Pi 为高电平,所以端口 Pj也为高电平。从而确定出被按下按键所在行数是N+1-j。这样被按 下按键的所在行列就都确定了,被按下按键也就确定了。实施例4结合图6,本发明4X4矩阵键盘电路,包括4条行线Ll L4,4条列线Vl V4, 4个千欧姆数量级的阻值元件Rl R4,4个兆欧姆数量级的阻值元件Ml M4,4个I/O端 口 Pl P4及4X4个按键Kll K44。
4根行线分别通过一个千欧姆数量级阻值元件Ri (1 ^ i ^ 4)接到地线上,4个I/ 0端口 Pl P4分别与4根列线Vl V4连接,4根列线V4 Vl分别通过一个兆欧姆数量 级阻值元件Mi (1与相应行线连接的阻值元件Ri (1的非接地端连接, 4根行线与4根列线交叉形成的4X4个矩阵交叉点,这4X4个交叉点分别放置4X4个按 键Kll K44,在这4X4按键中,各个按键一端与相应的行线电性相连,另一端与相应的列 线电性相连。对矩阵键盘在扫描时,I/O端口初始化,把所有端口 Pl P4设置成输入,并使能端 口上的上拉电阻启用,并从端口 Pl开始对端口 Pl P4进行逐个扫描,如果各端口都为高 电平,说明没有按键按下,如果端口中某端口电平为低,说明该端口所在列有按键按下。这 里假定扫描到端口 P3电平为低,说明P3端口所在的第3列线V3中有按键按下。当扫描到有I/O端口 P3为低电平后,取消所有I/O端口 Pl P4上的上拉电阻, 并将端口 P3输出高电平,其它端口输出低电平。再对各I/O端口 Pl P4电平进行扫描, 如果扫描到某端口电平为高电平,这里假定P2端口电平为高,则可以确定被按下按键所在 行数的下标,即下标为4+1-2 = 3,也就是说,被按下按键所在行为L3。这样就可以确定被 按下按键为L3行线与V3列线交叉点处的按键K33。依次类推,通过上述矩阵键盘电路可以 实现4个I/O端口扫描4X4个按键。当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领 域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的 保护范围。
权利要求
1.键盘扫描电路,包括具有N个I/O端口的处理器、N条行线和N条列线,行线和列线 交叉的位置设有按键,按键一端与行线连接,另一端与列线连接;其特征在于所述处理器 的各I/O端口是具有上拉电阻的双向I/O端口,各个行线分别连接一只负载电阻后接地,各 个列线的一端分别连接处理器的I/O端口,行线和列线一对一组合,在每个组合的行线和 列线之间设有分压电阻,每个组合中的上拉电阻、分压电阻、负载电阻三者构成串联通路。
2.根据权利要求1所述的键盘扫描电路,其特征在于所述行线由上到下依次是第1 行线、第2行线、第3行线……第N行线,列线由左到右依次是第1列线、第2列线、第3列 线…第N列线,第1行线和第N列线组合、第2行线和第N-I列线组合、第3行线和第N-2 列线组合……第N行线和第1列线组合。
3.根据权利要求1所述的键盘扫描电路,其特征在于所述上拉电阻是万欧姆级电阻, 分压电阻是兆欧姆级电阻,负载电阻是千欧姆级电阻。
4.根据权利要求1所述的键盘扫描电路,其特征在于所述处理器的各I/O端口分别 有三个I/O寄存器数据寄存器PORT、数据方向寄存器DDR和端口输入寄存器PIN。
5.键盘扫描电路的扫描方法,其特征在于所述扫描方法包括以下步骤(1)将处理器的N个I/O端口初始化,各个I/O端口均设置成输入状态,并启用端口上 的上拉电阻;(2)读取各I/O端口的电平状态,如果有第i列线连接的I/O端口电平状态为低,说明 该端口所在第i列线上的按键有按下动作,则进行步骤(3);如果没有I/O端口电平状态为 低,再返回步骤(1)继续执行;(3)取消各I/O端口上的上拉电阻,将第i列线连接的I/O端口设为输出,电平状态设 置为高,其它I/O端口设为低;(4)读取各I/O端口的电平状态,如果有第j列线连接的I/O端口电平状态为高,说明 第N+1-j行线与第i列线交叉的位置上的按键被按下。
全文摘要
本发明涉及一种键盘扫描电路及其扫描方法,其中键盘扫描电路,包括具有N个I/O端口的处理器、N条行线和N条列线,行线和列线交叉的位置设有按键,按键一端与行线连接,另一端与列线连接。所述处理器的各I/O端口是具有上拉电阻的双向I/O端口,各个行线分别连接一只负载电阻后接地,各个列线的一端分别连接处理器的I/O端口,行线和列线一对一组合,在每个组合的行线和列线之间设有分压电阻,每个组合中的上拉电阻、分压电阻、负载电阻三者构成串联通路。该键盘扫描电路只需要2N个电阻元件和N个I/O端口的处理器,就可以完成N×N个按键的扫描,具有占用处理器I/O端口少,电路结构稳定性强,制造成本低等优势。
文档编号H03M11/20GK102111159SQ20101060616
公开日2011年6月29日 申请日期2010年12月27日 优先权日2010年12月27日
发明者于瑞升, 李立志, 王伟, 王敏, 管延成, 闫从振 申请人:青岛文达通科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1