发布网友 发布时间:2022-04-23 07:04
共2个回答
热心网友 时间:2022-06-17 05:29
按键按下的时候加了延时,你已经知道原因了。是为了消除抖动,你的疑问是为什么松开的时候没有再加上延时函数,原因很简单,看图片。
因为进行了两次if判断,松开按键的时候无非会出现电平的跳变,理论上松开按键之后就一直为高电平1111111111,如果出现1110101111,中间的第一个10就发生了跳变,因为cpu的运算速度非常快,当程序又到了第一个if时,此时key1为0,那么满足条件,执行延时函数,后面第二个10就直接忽略了,后面的电平已经为1,所以这一个延时函数就同时起到消除按下和松开的电平抖动的作用。(如果松开按键之后的电平为低电平,那么把我上面的所有的程序和电平取反就行了,再来阅读)。
热心网友 时间:2022-06-17 05:30
我们检测的是按键按下,松开了由于没有消抖,抖动的结果最多也就被当成了再次按下,但由于按下有延时消抖,所以并不会发生松开被当再次按下的情况,就没必要消抖了