赞
踩
基本要求:以十赫兹的频率,点亮实验开发板上的发光二极管,显示过程中各个点亮的发光二极管的亮度呈现出明暗变化,形似呼吸。开关0 向下系统复位,灯全灭。开关0向上,LED呈现呼吸状显示。(利用pwm)
扩展部分:
分组显示两组不同渐变周期的呼吸灯,Key0控制LED4~LED0显示, KEY1 控制LED9~LED5显示,渐变周期由开关1~开关9输入,同时数码管分别显示2组呼吸灯对应周期数。
- module led
- (
- //数据的输入
- input wire sys_clk ,
- input wire sys_rst_n ,
- input wire [9:0] sw_in ,
- input wire key_in1 ,
- input wire key_in2 ,
-
- //led的输出
- output wire [9:0] led_out ,
-
- //前三个数码管显示频率
- output wire [6:0] ge1 ,
- output wire [6:0] shi1 ,
- output wire [6:0] bai1 ,
-
- //后三个数码管显示频率
- output wire [6:0] ge2 ,
- output wire [6:0] shi2 ,
- output wire [6:0] bai2
-
- );
-
-
-
- wire [8:0] data_in1 ;
- wire [8:0] data_in2 ;
- wire [10: 0] bcd1 ;
- wire [10: 0] bcd2 ;
-
-
- //key1和key2 控制输入的频率
- ctrl ctrl_inst
- (
- .sys_clk (sys_clk) ,
- .sys_rst_n (sys_rst_n) ,
- .sw_in (sw_in) ,
- .key_in1 (key_in1) ,
- .key_in2 (key_in2) ,
-
- .data_in1 (data_in1) ,
- .data_in2 (data_in2)
-
- );
-
- //开关输入的二进制数,转换为BCD码用于数码管显示
- binTobcd binTobcd_inst1
- (
-
- .bin (data_in1), // binary
-
- .bcd (bcd1)
- );
-
- binTobcd binTobcd_inst2
- (
-
- .bin (data_in2), // binary
-
- .bcd (bcd2)
- );
-
- //led的输出
-
- breath_led breath_led_inst1
- (
- .sys_clk (sys_clk ),
- .sys_rst_n (sys_rst_n),
- .data (data_in1),
-
- .led_out (led_out[4:0] )
- );
-
- breath_led breath_led_inst2
- (
- .sys_clk (sys_clk ),
- .sys_rst_n (sys_rst_n),
- .data (data_in2),
-
- .led_out (led_out[9:5] )
- );
-
- //数码管显示
-
- seg seg_int1
- (
- .sys_clk (sys_clk) ,
- .sys_rst_n (sys_rst_n) ,
- .sw0 (sw_in[0]) ,
- .bcd (bcd1) ,
-
- .ge (ge1) ,
- .shi (shi1) ,
- .bai (bai1)
- );
-
- seg seg_int2
- (
- .sys_clk (sys_clk) ,
- .sys_rst_n (sys_rst_n) ,
- .sw0 (sw_in[0]) ,
- .bcd (bcd2) ,
-
- .ge (ge2) ,
- .shi (shi2) ,
- .bai (bai2)
- );
-
-
- module breath_led
-
- (
- input wire sys_clk , //系统时钟50Mhz
- input wire sys_rst_n , //key3全局复位
- input wire [8:0] data ,//获得控制权寄存的数据
-
- output reg [4:0] led_out //led的输出
- );
-
- reg [9:0] cnt_1s ;

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