一个I/O口实现检测多个按键的方法呢?
0 2023-12-01

通常我们都是使用一个I/O口检测一个按键,但是有时候涉及到成本等多方面因素的时候往往节约一个I/O口可以降低很多成本,那么可不可以一个I/O口实现检测多个按键的方法呢?

一个IO口检测多个按键肯定是可以实现的,下面简单举几个例子,为大家指点一下思路。

使用普通的I/O口检测多个按键

通常我们使用按键检测的时候,一般都是一个I/O口检测一个按键,比如:

M×N阵矩阵式按键至少也需(M+N)个I/O口,比如4×4共16个按键的矩阵共需8个I/O口。

那么一个I/O口可不可以实现检测多个按键呢?其实是可以的,硬件电路设计复杂,值不值得这么做。比如通过检测占空比来区分不同的按键,每个按键后面做硬件防抖处理后再加555定时器组成的电路。或者类似于串行通讯的方式,比如第一个按键按下输出1个脉冲,第二个按键按下输出两个脉冲,第三个按下输出3个脉冲等,这种按键后端电路处理更复杂。

使用单片机的一个ADC采样口检测多个按键

使用ADC检测多个按键时,按键之间的电压间隔最好相近,而且范围较宽,这样设计误差会更小一些。

比如以5个按键为例,ADC检测电压范围为0~5V,那么在设计电路时各按键之间的电压间隔应大约为5V/5=1V。

上图为本人设计的电路图,S1按下电压为0V;S2按下电压约为0.97V;S3按下电压为2.03V;S4按下电压约为2.94V;S5按下电压约为3.99V。软件处理时只要设置±0.1V的检测范围宽度即可。


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 电源
  • DC
  • AC
  • 稳压
下载排行榜
更多
评测报告
更多
广告