如何使用可编程逻辑为按钮输入消抖

投稿人:DigiKey

可编程逻辑具有传统分立 IC 无法提供的灵活性。 借助现成的开发工具,可轻松使用现场可编程门阵列复杂可编程逻辑器件创建应用特定型功能。 按钮开关输入消抖便是此类功能的一个例子。

下图 1 说明了一个有效的消抖逻辑电路。 此电路持续将按钮的逻辑电平记录到 FF1 然后记录到 FF2,使得 FF1 和 FF2 始终存储此按钮的最后两个逻辑电平。 当这两个值在指定的时间内保持相等时,启用 FF3,并通过它将稳定值记录到结果输出。

逻辑电路消抖示意图

图 1: 逻辑电路消抖。

XOR 门和 N 位计数器完成定时。 如果按钮的电平发生变化,则 FF1 和 FF2 的值在一个时钟周期内不同,从而通过 XOR 门清零 N 位计数器。 如果按钮的电平不变(即,如果 FF1 和 FF2 处于相同的逻辑电平),则 XOR 门会释放计数器的同步清零功能,并且计数器开始计数。 计数器持续按此方式递增,直至其 (1) 达到指定的时间并启用输出寄存器,或 (2) 因按钮的逻辑电平尚未稳定而被 XOR 门中断并清零。

计数器的大小决定了验证按钮稳定性所需的时间。 当计数器递增至其进位输出位被断言时,将会自行停止递增并启用输出寄存器 FF3。 电流将保持此状态,直至另一个按钮值被记录到 FF1,从而通过 XOR 门清零计数器。

 

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

关于此出版商

DigiKey

DigiKey 总部设在美国明尼苏达州锡夫里弗福尔斯市,是一个同时针对原型开发/设计提供小批量供应、针对生产提供大批量供应的全球电子元件综合服务提供商,在 DigiKey 上提供 750 多家优质制造商品牌、六百多万种产品。