用MP的话,其实就是一个概率论的东西,如果你的按键做是简单的套用延迟20MS再检测一次的方法,不管是丑陋的DELAY还是美丽的TIMER中断甚至是神奇的状态机,都不会让你的系统多强壮。
根据一般机械弹片的物理特性,一般是在100~200MS内抖动,所以为了可靠的解决解决这个问题,就应该尽量利用这个时间,例如,每4个MS检测一次键盘,如果有按键按下,记录当前键值,在第二个4MS进行消抖处理,如果有抖动则放弃,如果键值一致就继续第三个4MS读键,如此连续25个4MS周期后进行键值输出,那么我可以告诉你,只要你的PCB不是太垃圾,你的按键输出将是十分的稳定,即使施加了4KV的EFT信号,也不会出现什么问题。 |