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