用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - 其他代码库

独立按键消抖

2023-12-05 作者: 绯红姜梦举报

[其他]代码库

//****************************************//
// 作    者:绯红姜梦    
// 日    期:2022、6、1     
// QQ      :2943115420       
// QQ交流群:689408654       
// 功    能:按键消抖    
 
// author  :crimson ginger dream
// date    :2022/6/1
// QQ      :2943115420
// QQ group:689408654
// function:press to deshake
//****************************************//
module shake(      
    input      clk   ,       
    input      rstn  ,   
    input      key   ,     
    output reg shape  
);
//parameter delay=45;         //仿真使用
parameter delay=999999;     //下开发板使用
reg [19:0]t20ms;
reg [ 1:0]key_d;
reg [ 1:0]state;
 
always@(posedge clk)
    key_d <= {key_d[0],key};
always@(posedge clk or negedge rstn)
    begin
        if(!rstn)begin
            shape <= 0;
            t20ms <= 0;
            state <= 0;
        end else case(state)
            0:begin
                if(key_d==2)begin
                    state <= 1;
                    shape <= 0;
                    t20ms <= 0;
                end else begin
                    shape <= 0;
                    t20ms <= 0;
                    state <= 0;
                end
            end
            1:begin
                if(t20ms >= delay)begin
                    shape <= 0;
                    t20ms <= 0;
                    state <= 2;
                end else begin
                    shape <= 0;
                    t20ms <= t20ms+1;
                    state <= 1;
                end
            end
            2:begin
                if(key_d==1)begin
                    shape <= 0;
                    t20ms <= 0;
                    state <= 3;
                end else begin
                    shape <= 0;
                    t20ms <= 0;
                    state <= 2;
                end
            end
            3:begin
                if(t20ms >= delay)begin
                    shape <= 1;
                    t20ms <= 0;
                    state <= 0;
                end else begin
                    shape <= 0;
                    t20ms <= t20ms+1;
                    state <= 3;
                end
            end
            default:begin
                shape <= 0;
                t20ms <= 0;
                state <= 0;
            end
        endcase
    end
     
endmodule


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...