N+1键盘的两次原理改

2016-08-31 09:46:16孙海童
单片机与嵌入式系统应用 2016年4期
关键词:键值中断按键

孙海童

(江苏国光信息产业股份有限公司, 常州213015)



孙海童

(江苏国光信息产业股份有限公司, 常州213015)

近年来,经常出现计划在原有硬件基础上增加新功能,却发现单片机的I/O资源不够用的情况,虽然改为使用N+1方式的键盘可以节省不少口线资源,但理论上的N+1在实际工作中有一定缺陷,不能适应不同的硬件及结构。笔者根据工作中实际情况两次改进电路,使之能适应不同的硬件和结构。

N+1键盘电路;I/O资源;单片机

引 言

本设计主要是在原产品硬件基础上增加新功能,而新的功能会占据一些I/O资源,经过查询资料,发现前人做过缩减键盘I/O口的工作,借鉴其方法,发现与预期有差距。不断比较自己设计电路与之前电路的不同,发现细微差别会导致不同预期结果。根据项目需要,从原理上改进两次电路,可达到预期要求。

1 常见N+1键盘原理

1.1常见键盘介绍

键盘输入作为最常用的输入设备仍有其不可替代的作用。键盘的结构通常有两种形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘均得到了广泛的应用。

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

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

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

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

1.2新型N+1键盘的硬件和软件原理实现

有些特殊情况下,在组成一个最小单片机系统的过程中,由于通用的I/O口有限,而又需要大量的按键输入,这就要求一种新的键盘结构,即用尽量少的I/O口来实现尽可能多的键盘输入。经过分析,实际上用N+1个I/O口,辅以适当的接口电路,是可以实现N×N个按键的。现以6个端口实现5×5的按键为例来描述。

图1 5×5按键矩阵的示意图

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

图2 用6个I/O口实现5×5按键矩阵的原理图

由图1和图2可见,硬件部分分为两块:一块是普通键盘矩阵,另外一块是中断和接口电路,主要由相应数目的二极管和电阻组成。针对6个I/O口的情况,实现5×5的按键矩阵的中断和接口电路共需要10个二极管、12个电阻和1只三极管。

10个二极管按其在电路中所起的作用可分为两组:第一组包括D6、D7、D8、D9和D10,用于保证按键信息的单一流向;第二组包括D1、D2、D3、D4和D5,它们在电路上对NPN三极管的基极构成“或”的逻辑关系,对单片机进行初始化。除了PORT6(要求其具有中断功能)以外,其余的I/O口均被置成高电平,这样当有键按下时,三极管的基极由低变高,三极管导通;集电极由高电平跳变成低电平,向单片机发出中断信号,从而启动键盘扫描程序。

按键的识别主要靠软件来实现,需要编写键盘扫描程序。为了更好地说明键盘扫描的过程,假设编号为S12的键被按下,扫描程序已经启动,扫描的具体过程如表1所列。

键盘扫描程序流程图如图3所示。应用在实际电路中,在键盘按键为全金属接触的情况下,得到了良好的效果,但在后续的降低成本工作中发现此N+1键盘存在缺陷。

表1 键盘扫描过程

注:Pi为PORT,O为输出,I为输入,H为高电平,L为低电平。

图3 键盘扫描程序流程图

2 N+1键盘在实际使用中缺陷及改进

2.1缺陷现象及原因

图4 键盘原理图

为了降低成本,键盘改为导电橡胶按键,出现了奇怪的现象,按下键后要么出现相应的键值,要么出现其他键值,后来发现这些键值有规律,为对角线上的按键键值。

经分析,原因为原键盘导电橡胶按键有不确定的接触电阻分压,且电路图因含中断信号放大电路,造成中断和口线对电压的灵敏度判断不一致,所以按键偶尔会出现其他键值(对角线上键值)。

2.2改进办法

在图2中将3904去掉,不接VCC,直接接中断口线,口线接地电阻,这样中断和口线的电压灵敏度判断一致,中断改为上升沿触发,按键不会再有其他键值出现。电阻全部变为20 kΩ(其他阻值不建议,笔者实验过有问题),最终中断线上电压比0.8倍基准电压要高0.1 V,高于0.7倍基准电压,可以认定为高,中断由下降沿触发改为上升沿触发。

3 N+1键盘再次遇到的问题及改进

3.1再次遇到的问题

在后续的开发工作中想沿用之前改良过的N+1电路,又发现了新的问题。新的项目中由于成本和历史原因,CPU必须使用51单片机,而51单片机的中断必须为低电平触发,上述改良的N+1电路完全不起作用。只得重新思考能否再次改良N+1电路(仍旧是导电橡胶按键)。

3.2再次改进

经过多次反复试验,在51 MCU电路下,原接地的部分都用20 kΩ接VCC拉高,二极管全部反向。经过验证,此电路可以应用在ARM和任意51单片机类型中,通用性更强,且电压无论是5 V还是3.3 V均可使用,在笔者的项目产品中已经有数百万台产品验证过。

键盘原理图如图4所示。

汇编程序略——编者注。

结 语

经过两次更改后,最新的N+1改进电路可以适应不同种CPU,能够极大地满足硬件设计应用,有效地减少I/O口线资源,增强电路的稳定性及实用性,在其应用过程中表现出了独有的优越性,解决了原N+1键盘与实际应用不适应问题。

编者注:本文为期刊缩略版,全文见本刊网站www.mesnet.com.cn。

[1] 张雪峰, 李荣源, 袁海文.一种用N+1个I/O口实现的N×N矩阵式键盘[J].单片机与嵌入式系统应用,2001(11).

Sun Haitong

(Jiangsu Guoguang Electronic Information Technology Co.,Ltd.,Changzhou 213015,China)

In the recent years,it is found that the I/O resources are not enough when increasing the new function on the original hardware.In the paper,the N+1 keyboard system is used to save a lot of port line resources,but the theory of N+1 has some defects in practical work,it can not adapt to all the hardwares and structures.According to the actual situation,the author takes measures twice to improve the circuit to adapt to the different hardwares and structures.

N+1 keyboard circuit;I/O resources;microcontroller

TP29

A

(责任编辑:杨迪娜2015-10-22)

猜你喜欢
键值中断按键
基于有限状态机的按键检测程序设计
电子制作(2021年3期)2021-06-16 03:14:26
非请勿进 为注册表的重要键值上把“锁”
跟踪导练(二)(5)
千里移防,卫勤保障不中断
解放军健康(2017年5期)2017-08-01 06:27:44
一键直达 Windows 10注册表编辑高招
电脑爱好者(2017年9期)2017-06-01 21:38:08
一种多方向导光按键结构设计
电子制作(2016年1期)2016-11-07 08:43:05
按键的多种状态检测及消抖处理方法
家电科技(2013年4期)2013-07-09 10:55:08
AT89C51与中断有关的寄存器功能表解
FPGA内嵌PowerPC的中断响应分析
微处理机(2012年4期)2012-06-13 11:32:24
解析某型号手机按键检测程序的缺陷