按键消抖的三种方案 您所在的位置:网站首页 fpga按键消抖 按键消抖的三种方案

按键消抖的三种方案

2024-07-12 12:55| 来源: 网络整理| 查看: 265

首先,做两个假定,以方便后面的描述:

假定按键的默认状态为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 实验室设备网 版权所有