×
嵌入式开发 > 详情

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

发布时间:2020-07-03 发布时间:
|

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

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 读取电平状态的时候,读取低电平比高电平要稳定。也下
是因为这一原因外部中断以低电平或下降沿来作为其中断触发条件,以保证中断的可*性。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
探讨CAN总线的抗干扰能力