• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

LED 灯闪烁设置Verilog代码Quartus仿真

07/03 10:58
740
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240116105T0B6.doc

共1个文件

名称:LED 灯闪烁设置Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

LED 灯闪烁功能:

1. 默认状态下 4 颗 LED 依次点亮 600ms,熄灭 400ms;切换状态后 4 颗 LED 依 次点亮 200ms,熄灭 300ms;

2. 使用拨码开关切换状态;

要求:

1. 拨码开关信号消抖,开关的高低电平状态对应的闪烁模式自行定义;

2. LED 控制信号高电平熄灭,低电平点亮;

3. FPGA 基础时钟 50MHz,程序内部所有时钟信号使用分频形式生成,不要调用 PLL;

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

部分代码展示:

//LED闪烁控制
/*
1.?默认状态下4颗LED依次点亮600ms熄灭400ms;切换状态后4颗?LED依次点亮?200ms,熄灭?300ms;
2.?使用拨码开关切换状态;
要求:
1.?拨码开关信号消抖,开关的高低电平状态对应的闪烁模式自行定义;
2.?LED?控制信号高电平熄灭,低电平点亮;
3.?FPGA?基础时钟?50MHz,程序内部所有时钟信号使用分频形式生成,不要调
用?PLL;
*/
module?LED_ctrl(
input?clk,//时钟50MHz
input?key,//拨码开关
output?reg?[3:0]?LED//输出4个LED
);
//50Mhz分频产生1KHz信号
reg?[19:0]?cnt=20'd0;
reg?clk_1K=0;//1KHz?信号,周期为1ms
always@(posedge?clk)
if(cnt==20'd25000)begin//计数25000
cnt<=20'd0;
clk_1K<=!clk_1K;//翻转得到1KHz?信号
end
else
cnt<=cnt+20'd1;//加1计数
//使用1KHz信号检测拨码开关的电平,起到消抖作用
reg?key_level=0;
always@(posedge?clk_1K)
key_level<=key;//key_level为消抖后的开关信号

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=579

  • 2-240116105T0B6.doc
    下载

相关推荐