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