一种用N+1个I/O口实现的N×N矩阵式键盘

2006-05-07 15:49:55来源: 互联网

引言

随着微机系统应用领域的扩大,操作人员与微机系统需要交流的信息越来越多,用来交流的手段和途径也更为灵活多样;而键盘输入作为了常用的输入设备仍有其可替代的作用。因此,探讨一些键盘的特殊结构,用尽可能少的输入输出端口实现较多数量的按键数仍具有重要的应用价值。

有些特殊情况下,在组成一个最小的单片机系统的过程中,由于通用的I/O口有限,而又需要大量的按键输入,这就需求一种新的键盘结果,即用尽量少的I/O口实现尽可能多的键盘输入。

本文将从硬件和软件两个方面介绍一种用N+1个I/O口实现N×N矩阵式键盘的方法(为了与传统键盘区分,以下简称新型键盘)。首先,对传统键盘作一个简单的介绍。

一、传统键盘的介绍[1]

键盘的结构通常有两种形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘均得到了广泛的应用。

线性键盘由若干个独立的按键组成,每个按键的一端与微机的一个I/O口相连。有多少个键就要有多少根连线与微机的I/O口相连,因此,只适用于按键少的场合。

矩阵键盘的按键按N行M列排列,每个按键占据行列的一个交点,需要的I/O口数目是N+M,容许的最大键数是N×M。显然,矩阵键盘可以减少与微机接口的连接线,简化结构,是一般微机常用的键盘结构。根据矩阵键盘的识键和译键方法的不同,矩阵键盘又可以分为非编码键盘和编码键盘两种。

*非编码键盘

非编码键盘主要用软件的方法识键和译键。根据扫描方法的不同,可以分炎行扫描法、列扫描法和反转法三种。

*编码键盘

编码键盘主要用硬件来实现键的扫描和识别,通常使用8279专用接口芯片,在硬件上要求较高。

二、新型键盘的硬件和软件实现原理

经过分析,实际上用N+1个I/O口,辅助以适当的接口电路,是可以实现N×N个按键的。现以6个端口实现5×5的按键为例来叙述。

1.硬件实现

图1所示为用6个I/O口来实现25个按键的示意图。具体的物理实现电路如图2所示。

由图1和图2可见,硬件部分分为两块:一块是普通键盘矩阵,另外一块是中断和接口电路,主要由相应数目的二极管和电阻组成。具体对6个I/O口的情况,实现5×5的按键矩阵的中断和接口电路(图2)共需要10只二极管、12只电阻和1只三极管。10只二极管其在电路中所起的作用可分为两组:第一组包括D6、D7、D8、D9和D10,用于保证按键信息和单一流向;第二级包括D1、D2、D3、D4和D5,它们在电路上对NPN三极管的基极构成“或”的逻辑关系,对单片机进行初始化。除了PORT6(其要求具有中断功能)以外,其腹痛的I/O口均被置成高电平,这样当有键按下时,三极管的基极由低变高,三极管导通;集电极由高电平跳变成低电平,向单片机发出中断信号,从而启动键盘扫描程序。

2.程序实现

按键的识别主要靠软件来实现,需要编写键盘扫描程序。

(1)键盘扫描原理

为了更好地说明键盘扫描的过程,假设编号为S12的键(见图2)被按下,扫描程序已经启动,扫描的具体过程如表1所列。

表1 

P1 P2 P3 P4 P5 P6

说       明

OH I I I I I PORT1被置成高电平输出,其他端口作为输入
H L L L L H 读入各端口的值,为100001,与编码表进行比较,经判断没有键按下,继续下一步
I OH L I I I PORT2被置成高电平输出,其他端口作为输入
L H H L L L PORT2和PORT3与S12相连,此时均为高电平,读入各端口的值为011000,与编码表比较,可以判断有键按下并且键值唯一

P-PORT  O-输出  I-输入  H-高电平  L-低电平

    (2)键盘扫描程序的流程

在启动键盘扫描程序以前首先要对CPU进行初始化(主要是对所使用的中断进行初始化)。假设已经有键按下,并引发了相应的中断服务程序(如键盘扫描程序),其流程图如图3所示。

*该方法还可以用二需要大量开关量测量的场合。

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/others/200605/2462.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved