赞
踩
控制led,依次让led进行亮灭,实现流水灯效果
实验目的:用一个按键可以开关控制流水灯的流动与停止
模块框图:
wat_led 模块代码
- module wat_led(
- input wire clk_50mhz ,//系统时钟50Mhz
- input wire rst_n ,//全局复位
- input wire wat_led_flag ,//输入信号,一个高电平周期
-
- output reg [3:0] led //输出信号
- );
-
- parameter S_MAX = 26'd49_999_999; //计时1s
-
- reg [25:0] sum_s; //计数器
- reg [1:0] qs; //控制灯的亮灭状态
-
- reg wat_led_flag_h ;//把输入信号wat_led_flag处理为电平反转信号
-
- always@( posedge clk_50mhz or negedge rst_n) begin
- if (rst_n==1'b0) begin
- wat_led_flag_h <= 1'b0;
- end
- else if (wat_led_flag == 1'b1) begin
- wat_led_flag_h <= ~wat_led_flag_h;
- end
- else begin
- wat_led_flag_h <= wat_led_flag_h;
- end
- end
-
-
- always@( posedge clk_50mhz or negedge rst_n) begin
- if (rst_n==1'b0) begin
- sum_s <= 26'd0;
- end
- else if (sum_s == S_MAX) begin
- sum_s <= 26'd0;
- end
- else begin
- sum_s <=sum_s+ 26'd1;
- end
- end
-
- always@( posedge clk_50mhz or negedge rst_n) begin
- if (rst_n==1'b0) begin
- qs <= 3'd0;
- end
- else if (sum_s == S_MAX) begin
- qs <= qs+ 3'd1;
- end
- else begin
- qs <= qs;
- end
- end
-
- always@( posedge clk_50mhz or negedge rst_n)
- begin
- if (rst_n==1'b0) begin
- led <= 4'b0000;
- end
- else if(wat_led_flag_h==1'b1) begin
- case(qs)
- 2'b00: led <= 4'b0001;
- 2'b01: led <= 4'b0010;
- 2'b10: led <= 4'b0100;
- 2'b11: led <= 4'b1000;
- default: led <= 4'b0000;
- endcase
- end
- end
-
-
- endmodule

key_filter模块代码,见我的这一篇文章 :用FPGA设计软件按键消抖-CSDN博客
key_wat_led模块代码,如下:
- module key_wat_led (
- input wire clk_50mhz , //系统时钟50Mhz
- input wire rst_n , //全局复位
- input wire key_in , //按键输入信号
- output wire [3:0] led //输出信号
- );
-
- wire key_flag;
-
-
- key_filter key_filter_inst
- (
- .clk_50mhz (clk_50mhz) , //系统时钟50Mhz
- .rst_n (rst_n ) , //全局复位
- .key_in (key_in ) , //按键输入信号
-
- .key_flag (key_flag ) //key_flag为1时表示消抖后检测到按键被按下
- //key_flag为0时表示没有检测到按键被按下
- );
-
- wat_led wat_led_inst
- (
- .clk_50mhz (clk_50mhz ) ,//系统时钟50Mhz
- .rst_n (rst_n ) ,//全局复位
- .wat_led_flag (key_flag ) ,//输入信号,一个高电平周期
- .led (led ) //输出信号
- );
-
- endmodule //key_wat_led

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。