核心部分就是,对clock的上升沿蠢扮进行计数,每个上升沿加1,判断按键是否按下,每次按下按键时,产生一个计数的使能信号,在使能信号有效时,进行计数,判断计数值到3时,输出一个脉冲,同时释橡尺放使能。
具体代码可以依照上述过程进行verilog描述。
你没有加唯行按键消抖,用状态切换(状态机),调整按键消抖时间在指肆哗5MS-10MS就差不多了,这部分程序是用在产品上的,裁减了下,不懂请留言:input clk //10MHz
input [1:0]KEY
reg [1:0] KEY_BUFFER
reg [2:0] state
reg[15:0] dly_reg
always@(posedge clk)
begin
begin
KEY_BUFFER<=KEY //读取键盘
case(state)
3'b001: if (KEY_BUFFER==2'b01) 判断
begin
state <= 3'b011
end //
else if(KEY_BUFFER==2'b10)
begin
state <= 3'b011
end //
else state <= 3'b001
3'b011:if(dly_reg>=16'b1100001101010000) //延时
begin
state <= 3'b100
dly_reg <=16'雹轿d0
end
else
begin
dly_reg<=dly_reg+1'b1
end
3'b100: if ((KEY_BUFFER==2'b11))//在判断
begin
end
else if ((KEY_BUFFER==2'b11))//--
begin
else
state <= 3'b101
3'b101: begin state <= 3'b001end //
endcase
end
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)