专栏中心

EEPW首页 > 专栏 > 几种按键检测的方式

几种按键检测的方式

发布人:Linux嵌入式 时间:2022-12-31 来源:工程师 发布文章

在我们的实际应用中,按键我们经常见到会在很懂产品应用,因为它是人机交互最常用的一方式,下面就来总结一下常用的几种按键检测方式。

1、 一对一直接连接检测

这种实现按键检测的方法是每一个按键对应一个CPU的IO口,直接判断IO口的高低电平即可判断是哪个按键按下实现比较简单,但按键多的情况下比较浪费IO口。

2、 动态扫描的矩阵按键法

这种方式是将按键按照行列的方式排列,每一行共用一根行线,每一列共用一根列线,如上图所示,这样的话只用占用八个IO口比直接检测法省了一半的IO口。这中检测按键的原理是以扫描的方式检测莫格按键状态。见检测时可以将行的四个IO口IO1-IO4置低电平,在没有按键按下时IO4-IO8应全是高电平,当由按键按下时对应列的IO口会被拉低,这样就可以确定按键在那一列,然后将对应列的电平拉低,读出行的IO的电平,按键按下时行的IO电平会被拉低,这样就确定了按键的行列的位置,相当于确定了按键的坐标,就可以知道是哪个按键按下。

3、 利用AD采样

如上图所示我们可以利用电阻的分压,通过ADC引脚来检测电压,当不同的按键按下时要ADC引脚的电压会不一样,从而判断是哪个引脚按下,这种方式比较节省IO口资源,在程序处理时需要注意ADC采样的误差。

4、 两个IO口检测6个按键

检测过程:先将IO1,IO2输出高电平,当S1按下时,IO2为低电平,当S2按下,IO1为低电平,如果S3按下,IO1,IO2为0.7V(1N4148导通电压),还是低电平。再将IO1输出低电平,读出IO2的电平如果IO2输出为低电平,此时应该是S4或者S6按下。接下来将IO1输出高电平,IO2输出低电平,读IO1电平,如果为低电平则S4按下,否则S6按下,接下来将IO1输出高电平,IO2输出低电平读出IO1,S5按下时,IO1为低电平。如果IO1还是高电平,则S6按下了。


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: 按键检测

相关推荐

梅哥和你一起深入学习FPGA之独立按键检测(下)

用状态机做独立按键检测

小梅哥和你一起深入学习FPGA之独立按键检测(上)

更多 培训课堂
更多 焦点
更多 视频

技术专区