前言:
按下一次按鈕,計數一次。顯示方式為 4 顆 LED 以 2 進制方式表示。此程式碼包含按鍵消斗 (消除彈跳)
程式碼:
module led_test
(
input clk, // 系統 50 Mhz 時鐘
input key, // 按鈕 1
output [3:0] led // 板子上有 4 顆 LED,宣告為輸出
);
reg [3:0] count;
reg [31:0] timer;
always@(posedge clk)
begin
if(key == 1'b0) // 按下,就累加一
timer <= timer + 24'd1;
else // 放開
timer <= 31'd0;
// 當累加到 0.01 秒,LED 計數器才加一
if(timer == 31'd500_000) // 50_000_000 = 1秒,500_000 = 0.01 秒
count <= count + 4'b0001;
end
assign led = ~ count; // 將 count 綁定到 LED 輸出,並且是相反 (NOT) 輸出
endmodule