按键 debounce 电路实现
发布时间
阅读量:
阅读量
采用Verilog语言构建按键抖动消除电路,确保抖动时间低于15毫秒,输入时钟频率为12MHz
设计原理:
通过计数器对按键持续时间进行测量,当检测到按键保持时间超过15毫秒时,判定为有效信号;若持续时间短于该阈值,则判定为无效信号
12MHz时钟下,每个时钟周期为83纳秒,计算得出15毫秒对应的时钟周期数为180722,即十六进制表示为0x2C1F2
module rebounce(
input clk,
input rst_n,
input key_in,
output key_out
);
reg key_out;
reg key_in_dly;
reg [19:0] cnt;
wire change;
parameter jitter = 20'h2C1F2;
// 检测key信号变化,使用原信号+dly
always @(posedge clk or negedge rst_n)
if(!rst_n) key_in_dly <= 0;
else key_in_dly <= key_in;
assign change = (key_in & !key_in_dly)|(!key_in & key_in_dly);
全部评论 (0)
还没有任何评论哟~
