第七集上 按键的本质就是控制两个引脚之间的通断,对于机械开关,当机械触点断开、闭合是,由于机械触电的弹性作用,一个开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的抖动。两个等号是判断符,一个等号是赋值。
机械按键原理 结构:通常由键帽、弹簧、触点等组成。 工作原理:按下键帽时,弹簧被压缩,使原本分离的两个触点相互接触,电路导通,产生电信号,信号传至控制器,系统识别为按键按下操作。松开键帽后,弹簧恢复原状,触点分离,电路断开,信号消失,系统识别为按键松开操作。
在单片机系统中,按键去抖主要有硬件和软件两种原理及方法: 硬件去抖: RC滤波电路:在按键的输出端与单片机的输入引脚之间连接一个RC滤波电路。当按键按下或松开时,产生的抖动信号包含高频成分。电容对于高频信号呈现低阻抗,能将高频抖动信号旁路到地,使输出到单片机的信号变得平滑,从而消除抖动影响。 双稳态电路:采用如RS触发器等双稳态电路。按键连接到RS触发器的输入端,利用其两个稳定状态来存储按键的状态。当按键按下和松开时,只有在输入信号满足特定条件下,RS触发器才会改变状态,从而避免了因抖动产生的不稳定状态变化,输出稳定的按键信号给单片机。 软件去抖: 延时检测法:当单片机检测到按键按下时,不立即响应,而是延迟一段时间(如10ms到20ms)后再次检测按键状态。如果此时按键仍然保持按下状态,才认为是真实的按键按下操作;松开时同理。因为一般按键抖动时间较短,而人为按下或松开按键的时间间隔远大于抖动时间,通过延时检测可有效避开抖动时间,确保检测到的是稳定的按键状态。 多次采样法:在一个较短的时间内对按键状态进行多次采样,如在10ms内采样5次。若这5次采样结果一致,就认为此时的按键状态是稳定的;若不一致,则认为是抖动,不进行处理。通过多次采样并判断采样结果的一致性,可排除抖动干扰,得到准确的按键状态。
按键消抖的必要性 按键抖动会导致系统误判按键的按下或松开次数。比如在一个计数程序中,若按键有抖动,可能按一次键却被系统识别为多次按下,导致计数结果错误,影响整个系统的数据准确性和可靠性。对于一些依赖按键操作来切换工作模式或执行特定任务的系统,按键抖动可能使系统频繁进入错误的模式或重复执行不必要的操作,进而引发系统运行异常,甚至崩溃,严重影响系统的稳定性和正常运行。在人机交互界面中,用户期望按键操作有准确、即时的反馈。若按键存在抖动,会出现按一次键却有多次响应,或者按键响应不及时等情况,给用户带来困扰,降低用户对产品的满意度和使用体验。频繁的按键抖动会使电路中的电子元件频繁通断,加速元件的老化和磨损,如导致按键的触点过早损坏、单片机的输入引脚过度损耗等,缩短硬件的使用寿命,增加维修和更换成本。 |