若不进行“按键去抖”,单片机在接收按键开关按压带来的一连串电平信息,,这种抖动一般在10ms作用,会导致单片机判断错误。 常用的单片机去抖方法主要分为硬件去抖和软件去抖。 在开关端子上使用电容器绕过高频脉冲序列(由弹跳产生的),使其发送给单片机。 软件去抖: //开关状态 #define SWITCH_BOUNCE 0 int Switch_Debounce(void) int status = SWITCH_BOUNCE; { if(Switch == 0) // Check the status of switch again status = SWITCH_PRESSED; } } void DebounceDelay(void) int i = 0; } 200-500毫秒的延迟为忽略所有伪上升沿(下降沿)提供了时间。因此避免了因抖动引起的问题。
|