用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入: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、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

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

加载中,请稍后...