请问这个函数里,delay_ms(20)这个延时函数的作用是什么?为什么要设置它?

void Scan_Key(void)
{
display();
if(SET == 0)
{
delay_ms(20);
if(SET == 0)
{
displayFlag = ~displayFlag;
}
while(SET == 0);
}

这段代码因该是测试按键的吧,延时可能是为了防止按键抖动吧.或者是防止卡死的.
按键抖动的概念百科有:
http://baike.baidu.com/view/4997011.htm
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-20
消抖,金属按键按下去后,肯定会有抖动的,延时20ms后,避免芯片对因抖动引起的按键误判追问

那为什么要延时20ms呢?延时10ms可以吗?这种延时是怎样计算的呢?

第2个回答  2013-05-20
消除误触发的影响,间隔一个时间再检测确保不是误触发