十一、独立按键原理介绍
独立按键基础知识
独立按键结构组成
独立按键实际上是一个非自锁的轻触开关,有左右两个触点,当按下时左右两个触点闭合,当松开时左右两个触点断开。
独立按键原理
单片机通过检测按键按下前后的高低电平变化,来判断按键是否按下。通过程序的控制,就可以实现不同的功能与设置。机械式按键在按下或者释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。抖动时间长短与开关的机械特性有关,一般为 5-10ms。在触点抖动期间检测按键的按下与否,可能会导致判断错误,为了克服机械抖动所产生的影响,必须采取消抖措施,可分为硬件消抖和软件消抖。
消抖措施
- 硬件消抖:硬件消抖一般会在按键两端并联电容,通过电容的充放电作用将按键按下时的高频振荡吸收掉。
- 软件消抖:软件消抖一般是通过延时。当检测到按键按下时,不会立即去检测电平,而是经过短暂的延时之后,再去检测当前引脚的电平。
独立按键驱动原理
独立按键直接接到单片机的一个 IO 上,通过检测单片机的 IO 为高低电平判断按键是否按下。
独立按键原理图
开发板上一共有三个按键,一个复位、一个 BOOT0 和一个 KEY,复位和 BOOT0 作为单片机的特殊功能,不可以作为按键使用,故只有 KEY 可以作为按键使用。
开发板关于独立按键的原理图如图所示。
独立按键驱动流程
通过上面的原理图可以了解到,KEY 引脚接到了单片机的 PA0 引脚上。按键的一端接到了 3.3V,另一端通过一个 10K 的电阻接到了地。通过检测 PA0 引脚的电平状态,判断按键是否按下。当按键松开的时候,PA0 检测到的电平为低电平,当按键按下的时候,PA0 检测到的电平为高电平。在程序里使能 PA0 引脚,配置为输入模式,然后以一定时间去获取 PA0 引脚的状态,判断按键是否按下,如果按键按下,就执行对应的功能。