首页 理论教育 单片机键盘接口技术详解

单片机键盘接口技术详解

更新时间:2025-01-09 工作计划 版权反馈
【摘要】:例如4×4的行、列结构可组成16个键的键盘,比一个键位用一根I/O接口线的独立式键盘少了一半的I/O接口线,而且键位越多,优势就越明显。图5.2硬件消除抖动在单片机应用系统中,扫描键盘只是CPU的工作任务之一。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。

1.键盘工作原理及消抖

通过按键的接通与断开,产生两种相反的逻辑状态:低电平“0”与高电平“1”。 由于键位未按下,输出为高电平;键位按下,输出为低电平,如图5.1所示。因此,可以通过检测输出线上电平的高/低来判断键位是否按下。如果检测到为高电平,说明键位没有按下;如果检测到为低电平,则说明该线路上对应的键位已按下。

图5.1 键盘开关及波形

按键时,无论按下键位还是放开键位都会产生抖动,按下键位时产生的抖动称为前沿抖动,松开键位时产生的抖动称为后沿抖动。如果对抖动不做处理,必然会出现按一次键输入多次,为确保按一次键只确认一次,必须消除按键抖动。消除按键抖动通常有两种方法:硬件消抖和软件消抖。

硬件消抖是通过在按键输出电路上加上一定的硬件线路来消除抖动,一般采用RS触发器或单稳态电路。如图5.2所示,经过图中的RS触发器消除抖动后,输出端的信号就变为标准的矩形波了。

软件消抖是利用延时来跳过抖动过程,当判断有键按下时,先执行一段大于10 ms的延时程序后再去判断按下的键位是哪一个,从而消除前沿抖动的影响。对于后沿抖动,只需要在接收一个键位后,经过一定时间再去检测有无按键,这样就自然跳过后沿抖动时间而消除后沿抖动了,键盘处理过程大多采用软件消抖的方式。

2.独立式键盘及其接口

独立式键盘是最简单的键盘结构形式,每个按键的电路都是独立的,每个按键占用一根I/O线,相互之间没有影响,按键识别(编程)简单;但占用较多的线,适合8键以下使用。按键与8051的连接电路如图5.3所示。

3.矩阵式键盘及其接口

矩阵式键盘又叫行列式键盘。用I/O接口线组成行、列结构,键位设置在行、列的交点上。例如4×4的行、列结构可组成16个键的键盘,比一个键位用一根I/O接口线的独立式键盘少了一半的I/O接口线,而且键位越多,优势就越明显。因此,在按键数目较多时,往往采用矩阵式键盘。4×4行列结构,可安装16个按键,形成一个键盘,如图5.4所示:列线:P1.4~P1.7;行线:P1.0~P1.3。

图5.2 硬件消除抖动

在单片机应用系统中,扫描键盘只是CPU的工作任务之一。在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第 0列无键按下,再让下一列处在低电平,以此循环,这种方式称为键盘扫描,如图5.5所示。

图5.3 按键与8051的连接电路(www.xing528.com)

图5.4 矩阵式键盘及其接口电路

图5.5 键盘扫描子程序流程

4.键盘的工作方式

在实际应用中,要想做到既能及时相应键操作,又不过多地占用CPU的工作时间,就要根据应用系统中CPU的忙闲情况选择适当的键盘工作方式。对于检测键盘上有无键按下通常采用三种方式:随机扫描工作方式、定时扫描工作方式和中断扫描工作方式。

1)随机扫描工作方式

在随机扫描方式中,CPU完成某特定任务后,即执行键盘扫描程序,以确定键盘有无按键输入,然后根据按键功能转去执行相应的操作。在执行键盘按键规定的功能中不理睬键盘输入。

2)定时扫描工作方式

定时扫描工作方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。

3)中断扫描工作方式

为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。

【例5.1】4×4矩阵式键盘接口电路如图5.4所示,完成相应键盘扫描程序。

C语言源程序如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈