1.7按键消抖的两种方法:机械消抖和软件延时消抖。
(1)为什么要进行按键消抖? 因为按键在按下和松开的瞬间,会产生抖动;且单片机的运行速度非常快,所以IO口会检测到多个高低电平,导致程序不能正常执行。所以在使用按键时,要考虑消除按键抖动对程序的影响。 (2)按键消抖的方法? 机械消抖:用可靠的动作灵活的按键,在按键的两侧并联一个电容,利用电容储能削峰的特性,减少按键抖动对程序的影响。(适合少量按键消抖,麻烦,成本高) 软件延时消抖:一般按键按下或者松开的时间在5-10ms,所以,在设计程序时,对按键按下到稳定的时间,做一个延时等待时间(约10ms)。(适合多个按键消抖,简单实用。)
(3)软件延时消抖 程序举例; if(key_S6==0) //如果检测到按键按下。 { delay 10ms(); //延时10毫秒 if (key_S6==0) //再次检测按键是否按下? { ******** //按键按下需要执行内容。 while(!key_S6); //松手检测,如果按键未松开,程序停在此处等待。 } }
|