module led_counter( input clk, // 时钟信号 input rst_n, // 复位信号,低电平有效 input start, // 启动信号,每按一次完成一次动作 output reg [7:0] led, // LED控制信号 output reg [13:0] dig // 数码管显示信号 ); reg [23:0] counter; // 计数器,用于控制LED灯工作时间 // LED计数器模块,包括对各LED灯的闪烁时间控制 always @(posedge clk or negedge rst_n) begin if (~rst_n) begin counter <= 0; led <= 8'b00000000; // 所有LED关闭 dig <= 14'b00000000000000; // 数码管清零 end else begin if (start) begin if (counter < 200_000_000) begin // 10秒 counter <= counter + 1; if (counter < 10_000_000) begin // d1-d2 led <= 8'b00000011; // LED d1-d2闪烁 dig <= 14'b0000_0000_0011; // 数码管显示10-1 end else if (counter < 20_000_000) begin // d3-d4 led <= 8'b00001100; // LED d3-d4闪烁 dig <= 14'b0000_0010_1010; // 数码管显示15-3 end else if (counter < 25_000_000) begin // d5-d6 led <= 8'b00110000; // LED d5-d6闪烁 dig <= 14'b0000_0101_0011; // 数码管显示05-3 end else begin // d7-d8 led <= 8'b11000000; // LED d7-d8常亮 dig <= 14'b0000_0000_1100; // 数码管显示05-3 end end else begin counter <= 0; led <= 8'b00000000; // 所有LED关闭 dig <= 14'b00000000000000; // 数码管清零 end end end end endmodule [2024-07-10 21:31:31 | AI写代码神器 | 1080点数解答]