微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机上的几种按键输入实现方法

单片机上的几种按键输入实现方法

时间:07-10 来源:互联网 点击:

按键作为一种简单实用的输入设备已经应用于各种单片机应用系统中,可谓是无处不在。但在不同的实用场合下所使用的按键也不尽相同。这里就对几种经常用到的按键及其使用方法进行介绍。

1、传统按键:

传统按键是现在在各种电子设备中应用最为广泛的按键,可能它们的形状各有不
同,但其控制方法却大同小异,利用按键是否按下的IO 电平状态变化来对其进行识别。
这种按键如下图所示:



1)直接按键

最简单的键盘就是把电平信号直接接到IO 上。在程序里面读取IO 电平状态,如
果读到相应的电平,则说明此IO 上所接的按键被按下。这种方法原理与控制方法都非
常简单,但造成了IO 资源的浪费。这种按键方式的示意图如下:


2)扫描按键矩阵

这种按键输入方式很巧妙地利用了IO 资源,使得8 个IO 可以实现16 键键盘。它
的示意图如下:



这种按键输入方式比上面的直接按键方式从原理与控制上都比上面的直接按键要
复杂。它通过IO 的扫描来获取键值,其实扫描过程非常简单,过程如下:
KEY1~KEY4 对应于IO0~IO3,KEY5~KEY8 对应于IO4~IO7。
1.将IO0~IO3 置高,将IO4 置低,IO5、IO6、IO7 置高,读取IO0~IO3。第一列的某
个按钮按下后,使相应的两个触点接通,相应行上的IO 可以读到低电平。
2.将IO0~IO3 置高,将IO5 置低,IO4、IO6、IO7 置高,读取IO0~IO3。第一列的某
个按钮按下后,使相应的两个触点接通,相应行上的IO 可以读到低电平。
3.将IO0~IO3 置高,将IO6 置低,IO4、IO5、IO7 置高,读取IO0~IO3。第一列的某
个按钮按下后,使相应的两个触点接通,相应行上的IO 可以读到低电平。
4.将IO0~IO3 置高,将IO7 置低,IO4、IO5、IO6 置高,读取IO0~IO3。第一列的某
个按钮按下后,使相应的两个触点接通,相应行上的IO 可以读到低电平。
循环此过程可以不断读取按键键值。
在实际的应用中,这个扫描过程通常是放在定时器的中断服务程序中去完成的,
通过全局变量将键值返回到其它函数中去。当然,作为学习其扫描过程,也可以将扫
描放在主函数中直接来完成。
在上面介绍的按键输入方式中,读者可以看到,IO 都是以低电平作为检测电平,那这
是为什么呢?这是因为单片机IO 读取电平状态的时候,读取低电平比高电平要稳定。也下
是因为这一原因外部中断以低电平或下降沿来作为其中断触发条件,以保证中断的可*性。

2、多向集成按键

现在的手持设备越来越流行,人们也越来越多地接触到多向集成按键,如手机上的
五向导航键、MP3 上的拨动开关等,都是类似的按键设备。它们有一个共同的特点,
就是一个集成按键可以输出若干个方向上的信号,以供控制器识别。多向集成按键如下
图:




1)五向按键
五向按键我们基本上每天都在用,只要你掏出MP3、手机就可以看到它的身影,
也许有人会感觉到它的神奇,这里就为你揭开它的秘密。
五向按键其实就是把5 个传统按键进行了集成,把它们分别安排在上、下、左、
右、中五个方向上,从而就构成了五向键。当某一方向的按键导通时,IO 上就可以
感应相应的电平,从而对其方向加以识别。五向应用示意图如下:



从上图中可以到五向键的使用方法其实与传统按键中的直接按键是一样的。

2)拨轮按键

拨轮按键在产品中经常用来作音量调节、项目选择等。其原理与五向键相类似,
不同的是,拨轮按键中集成了左、右、中三个方向按键,按键与改为了拨动方式,从
而更适合于使用者的使用习惯。应用示意图如下:

在SiriuS 开发板上五向按键与拨轮按键的使用如下图:


3、模拟按键

上面介绍的按键输入方式都是采用数字信号来进行按键识别的,它的缺点就是需要
较多的IO,同时按键的数量也有限。而这里要介绍的采用模拟信号对按键进行识别的
方法则可以节省IO,而按键的扩展也十分方便。当然,它的实现需要相应的硬件(数
模转换器)支持。

原理其实非常简单,在串接的等值电阻间接上按键,按键另一端接到地。这
样某两个电阻间因按键接通而接到地时,在模数转换器的输入端会得到不同的电压值,
这些电压值依次为1/2 VCC、2/3VCC……,按照这些电压值就可以识别出所按下的按键。
按键的最大数量起决于模数转换器的精度。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top