按键控制LED灯
1.实现任务(时间间隔0.5s)
无按键按下:四个LED全灭
按下KEY0:自左向右流水灯
按下KEY1:自右向左流水灯
按下KEY2: 四个灯同时闪烁
按下KEY3:四个灯全亮
两个灯:
无按键按下:两个个LED全灭
按下KEY0:交替闪烁
按下KEY1:同亮同灭
2.程序设计
输入:clk, reset, key
输出:led
src/key_led.v
module key_led(input sys_clk,input sys_rst_n,input [1:0] key,output reg [1:0] led
);parameter CNT_MAX = 25'd25000000; //0.5s
//24999999:板卡晶振5MHz,即sys_clk时钟周期位20ns,计数器计时0.5s需要0.5s/20ns = 25000000个时钟周期
reg [25:0] cnt;
reg led_flag;//计数器计时0.5s
always @(posedge sys_clk or negedge sys_rst_n) beginif(!sys_rst_n)cnt <= 25'd0;else if(cnt <