按键检测步骤:
判断按下
消抖(一般为5ms~10ms)
等待按键松开
检测松开
if 检测按键的按下, delay 来消抖, while(!key0); 等待按键松开 。
那么为什么后面要加一个while来判断呢?
其实很简单,因为单片机执行的过程速度是极快的,如果我们没有加while(!key0),当我们按下的瞬间if里面的代码可能会执行n次,如果我加上while就可以避免这种问题,保证if里面的代码被准确执行一次,因为按键回弹是一瞬间的事情。
按键检测步骤:
判断按下
消抖(一般为5ms~10ms)
等待按键松开
检测松开
if 检测按键的按下, delay 来消抖, while(!key0); 等待按键松开 。
那么为什么后面要加一个while来判断呢?
其实很简单,因为单片机执行的过程速度是极快的,如果我们没有加while(!key0),当我们按下的瞬间if里面的代码可能会执行n次,如果我加上while就可以避免这种问题,保证if里面的代码被准确执行一次,因为按键回弹是一瞬间的事情。