按键消抖的三种方案 | 您所在的位置:网站首页 › fpga按键消抖 › 按键消抖的三种方案 |
首先,做两个假定,以方便后面的描述: 假定按键的默认状态为0,被按下后为1假定按键抖动时长小于20ms,也即使用20ms的消抖时间方案1:在按键电平稳定的情况下,当第一次检测到键位电平变化,开始20ms计时,计时时间到后将按键电平更新为当前电平 方案2:在20ms计时的过程中,有任何的电平变化都立即复位计时 方案3:在有电平变化时立即改变按键输出电平,并开始20ms计时,忽略这其中抖动 1、方案1代码: module debounce( input wire clk, nrst, input wire key_in, output reg key_out ); // 20ms parameter // localparam TIME_20MS = 1_000_000; localparam TIME_20MS = 1_000; // just for test // variable reg [20:0] cnt; reg key_cnt; // debounce time passed, refresh key state always @(posedge clk or negedge nrst) begin if(nrst == 0) key_out |
CopyRight 2018-2019 实验室设备网 版权所有 |