电工学习网

 找回密码
 立即注册
查看: 4821|回复: 0

单片机用一个IO口采集多个按键信号,如何实现?

[复制链接]
发表于 2018-8-27 17:53:13 | 显示全部楼层 |阅读模式
一个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的检测范围宽度即可。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-3-29 15:16

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表