一个ADC做多个按键扫描检测

常用的按键有以下两种方式:
1、独立按键
独立按键直接用MCU的I/O管脚构成的单个按键电路,其特点式每个按键单独占用一个I/O,每个按键的工作不会影响其他I/O的状态。独立按键很浪费MCU管脚,但编程比较简单。
一个ADC做多个按键扫描检测_第1张图片
2、矩阵按键
矩阵键盘又称行列键盘,它是用四个I/O管脚为行线,四个I/O管脚作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4*4个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。在MCU管脚有限的情况下,矩阵按键大大的节省的I/O。
一个ADC做多个按键扫描检测_第2张图片
现在要讲的是第3种方法:
如何利用一个ADC管脚去检测多个按键,ADC检测每个对应按键按下的电压分压后的电压值。
下图采用10个按键等间隔分压,每个按键正负余量允许在±0.25V范围内变换。这样才能有效的避免电阻的误差或者温漂等因素造成的按键检测失效。
另外如果还要求按键检测更加稳定可靠,可以减少按键数量,放宽各个按键检测的电压允许差量。
一个ADC做多个按键扫描检测_第3张图片
一个ADC做多个按键扫描检测_第4张图片
由此可见
独立按键是最浪费MUC I/O。矩阵按键已经大大减少MCU的I/O。而ADC检测是最省MCU I/O的。

本人博客仅仅代表我个人见解。如有错误请各位大牛指出,谢谢!!

你可能感兴趣的:(硬件)