STC单片机通过ADC分段采样读按键实现方法

STC单片机通过ADC分段采样读按键实现方法


✨在阅读官方FreeRTOS for STC32G12K128开源工程当中有使用到ADC键盘计算键码功能块,底层实现原理也很简单,就是通过串联电阻分压的方法。这种方法可以避免像矩阵按键那样占用很多单片机IO口,可以节省IO口,此方法也优于ADC触摸按键不准确的方法的缺陷,通过采集ADC引脚的电压值,经过AD转换为具体的数值。将这部分功能块和原理图提取和分离出来。

ADC读按键功能介绍

ADC键盘,按键使用导电膜.16个键,理论上各个键对应的ADC值为 (4096 / 16) * k = 256 * k, k = 1 ~ 16, 特别的, k=16时,对应的ADC值是4095.但是实际会有偏差,则判断时限制这个偏差, ADC_OFFSET为±偏差, 则ADC值在 (256k-ADC_OFFSET) 与 (256k+ADC_OFFSET)之间为键有效.间隔一定的时间,就采样一次ADC,比如10ms.为了避免偶然的ADC值误判, 或者避免ADC在上升或下降时误判, 使用连续3次ADC值均在偏差范围内时, ADC值才认为有效.以上算法, 能保证读键非常可靠.。

<

你可能感兴趣的:(#,STC32G,单片机学习手稿,ADC按键)