没志青年
发布于 2025-07-10 / 18 阅读
0

硬件基础 - 按键电路

按键抖动

人按下按键通常在100ms以上,按键是机械结构,按下和弹起时会产生机械抖动,抖动在10ms左右。

单片机的运行速度是微秒级别的,这个抖动很容易让单片机误判,出现按一次执行多次的现象。

因此需要设计按键消抖电路,或是在程序中处理。

单按键

上拉电阻的阻值选择,要考虑单片机引脚的灌电流能力。

如果GPIO内部有上拉电阻,也可以使用内部的上拉电阻。

电容通交隔直,因此那些抖动的信号都被旁路到GND中了,起到滤波消抖的作用。

有了这个电容,不必再用软件消抖了。

多按键

当有多个按键却只想用一个GPIO时,可使用ADC检测电压来判断是哪个按键。

这种方案不适合大于4个的按键,因为一般系统的电源电压为3.3V,分压多的话就会导致按键的电压接近,ADC采集有误差的话,容易造成按键识别错误。

电阻要使用1%精度的电阻。

矩阵键盘

逐行逐列扫描法

线反转法

外部中断