标题: 这个单片机程序中 delay_ms(50);//这个延时的作用是什么? [打印本页]

作者: 123456789hyy    时间: 2021-4-14 14:45
标题: 这个单片机程序中 delay_ms(50);//这个延时的作用是什么?
delay的作用?
if (Key_2 == 0)
    {
        delay_ms(50);//这个延时的作用是什么
        if (Key_2 == 0)//重新判断一次时间
        {
            while (Key_2 == 0);   
            beep();
            status++;
            if (Menu == 1 && status > 6)
            {
                status = 0;
            }
            else if (Menu == 2 && status > 1)
            {
                status = 0;
            }
        }
    }


作者: Stella54    时间: 2021-4-14 15:57
是为了消除按键抖动的
作者: qiangtech    时间: 2021-4-14 16:21
按键防抖,这种处理方法不怎么好,一直在占用MCU时间。
作者: 人人学会单片机    时间: 2021-4-14 16:28
看这个贴子  http://www.51hei.com/bbs/dpj-204176-1.html

作者: ANT1987    时间: 2021-4-14 16:44
delayms(50)为按键抖动时间 while (Key_2 == 0); 为防抖后等待松开按键
作者: jfmdam    时间: 2021-4-14 20:01
防抖动的,就是怕你不小心手哆嗦了一下子按下去了,本来不需要按得
作者: MV-BP1X    时间: 2021-4-17 10:47
消除抖动的,用时间片来做会好一些,开个定时器
作者: 点点蓝    时间: 2021-4-17 11:47
为了消除按键抖动,如果人按按键,时间肯定会超过50ms ,50ms后再检测是否被按下,可以防止按键抖动造成的问题
作者: 风吹来的砂    时间: 2021-4-17 11:59
按键去抖动
作者: lxsn    时间: 2021-4-17 14:23
消除按键抖动,按键刚按下瞬间会产生噪声即抖动不稳定,延时50ms待按键状态稳定后后再进行二次判断按键是否按下若按下则执行程序
作者: _zoe_    时间: 2021-4-17 16:15
是消除按键抖动的作用。如果人按按键,时间肯定会超过50ms ,50ms后再检测是否被按下,可以防止按键抖动造成的问题
作者: _zoe_    时间: 2021-4-17 16:17
是消除按键抖动的作用。当人按下按键,时间一般大于50ms ,50ms后再次检测按键状态。
作者: me1998    时间: 2021-4-17 21:28
按键有抖动,通过延迟时间来消除抖动,先检测按键是否按下,延时之后有检测,如果检测到按键还是按下,就可以确定按下了。这是消抖中的软件消抖





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1