verilog 用按键控制开始执行

verilog 用按键控制开始执行,第1张

按键低电平有效,led灯低电平时亮。按键按下亮,松开灭。程序较简单,为组合逻辑电路,没有按键防抖功能。

module

led(led,key)

input

key

output

led

reg

led_out

always@(key)

if(!key)

led_out=1'b0

else

led_out=1'b1

assign

led=led_out

endmodule

你没有加按键消抖,用状态切换(状态机),调整按键消抖时间在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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7791811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存