信号去抖操作

来源:https://blog.csdn.net/renhaofan/article/details/78848547

 

总结一下,消抖两大类方法: 
这里写图片描述 
软件消抖:主要采取当按键按下,延时一会,越过信号不稳定的抖动时间,再次判断键盘是不是按下; 
If ( !key) 

Delay(xxxms/us); 
if(!key) 
true key; 
else 
shake key; 

硬件消抖:主要是对抖动时,连续的进行判断,判断是否有“gap”,就是“间隙”; 
但是这样有一个问题,就是可能延时判断时,抖动,正好满足,你的验证方法,比如说,刚才以下方法判断3位的,有可能抖动恰好满足; 
所以硬件更好的方法,应该是用一个计数器,对松键和按键的抖动脉冲计数,然后分析按键的习惯,设定一个阈值,通过这个阈值就可以判断出是否是真的抖动。 
方法一:RS触发器 
这里写图片描述

这是用multisim做的一个,原理是,R,S端都用电阻上拉,开关打到A端,相当与输入时低电平,打向B的时候,产生一个低电平抖动,因为是与非门的RS触发器,R,S全是1的时候,输出保持不变,所以Q立马就变成1,之后就保持不变了。B到A,同样的道理,遇到第一个抖动,R的输入就立马变成0,所以Q也就为0; 
方法二:D触发器 
需要几位消抖,就用几个D触发器,以4位为例子: 
这里写图片描述
实际上就是“滤波”的效果,抖动,肯定有低电平,高电平,分布不均匀,这样设计相当于,在某段时间内,没有所谓的gap才可以。 
方法三:用状态转换图设计(本实验采用的方法) 
这里写图片描述
实际上就是极短时间内判断了三个是不是同时是高电平

posted @ 2018-07-20 09:46  小时候挺菜  阅读(1472)  评论(0编辑  收藏  举报