![]() |
程序功能:检测按钮的按下弹起次数,以识别"单击.双击.长按"。。学习了 |
dj3365191 发表于 2024-11-21 17:22 你是用proteus仿真吗? 晶振是否 11.0592MHZ? 我刚刚为解答你的问题,试修改代码,再次仿真成功。 原代码 if (read == 0) delayms(10); //延时10毫秒消热抖动 修改为 if (read == 0) delayms(5); //延时 5毫秒消热抖动 |
有时候按两次还是LED1亮,程序修改哪里才能避免这种情况发生 |
发表于 2024-11-20 21:16 定时器中断方式计时, delayms()软件方式计时, 各有各的用途。你未完全读懂。 |
你都用定时器,还搞个delay 带坏朋友![]() |
发表于 2024-11-19 16:52 delayms(10); //延时10毫秒消热抖动 ------这行代码无问题。有 书为依据 |
你这个delay10ms不要这样写,你1ms近义词中断,20ms扫描一次就已经消抖了, |
STC庄伟 发表于 2024-11-19 08:51 谢谢庄伟先生建议,我亦正有此意。 |
你用AI8051U的 支持USB下载 兼容89C52的 |
lkc8210 发表于 2024-11-17 22:13 谢谢跟帖! 我尝试过用此算法,将代码略加修改即可识别三击... |
看到while+delayms就知道不用看懂也可以 |