My title page contents

LED长按点亮控制设计Verilog代码Quartus DE1-SOC开发板

名称:LED长按点亮控制设计Verilog代码Quartus  DE1-SOC开发板

软件:Quartus

语言:Verilog

代码功能:

LED长按点亮控制

长按一秒按钮第一个led亮,再按一下(无论按多久)熄灭,再按一下第二个亮起,再按一下第三个亮,再按一下复原


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

本代码已在DE1-SOC开发板验证,DE1-SOC开发板如下,其他开发板可以修改管脚适配:DE1-SOC开发板.png

演示视频:

设计文档:

设计文档.doc

1. 工程文件


2. 程序文件


3. 程序编译


4. 管脚分配


5. Testbench


6. 仿真图











部分代码展示:

//长按一秒按钮第一个led亮,再按一下(无论按多久)熄灭,
//再按一下第二个亮起,再按一下第三个亮,再按一下复原
module key_led(
input clk,//时钟
input key_in,//按键
output [2:0] led//输出led
);
parameter second_1=32'd50000000;//1秒计数参数(下载到板子上用该句)
//parameter second_1=32'd500;//1秒计数参数(减小计数值,加快仿真时间,软件仿真用该句)
reg [3:0] cur_state,next_state;
//状态定义
parameter s_idle=4'd0;
parameter s_wait=4'd1;
parameter s_led1_on=4'd2;
parameter s_led1_off=4'd3;
parameter s_led2_off=4'd4;
parameter s_led2_on=4'd5;
parameter s_led3_off=4'd6;
parameter s_led3_on=4'd7;
parameter s_led1_wait=4'd8;
parameter s_end=4'd9;
reg [31:0] count=32'd0;
//状态机第一段
always@(posedge clk)
cur_state<=next_state;
always@(*)
case(cur_state)
s_idle:
if(key_in==0)//按键按下
next_state=s_wait;
else
next_state=s_idle;
s_wait://等待1秒
if(count>=second_1)//1秒
next_state=s_led1_on;
else if(key_in==1)//按键释放
next_state=s_idle;//回到初始状态
else
next_state=s_wait;
s_led1_on://第一个led亮
if(key_in==1)//按键释放
next_state=s_led1_wait;
else 
next_state=s_led1_on;
s_led1_wait:
if(key_in==0)//按键按下
next_state=s_led1_off;
else
next_state=s_led1_wait;
s_led1_off:
if(key_in==1)//按键释放
next_state=s_led2_off;
else 
next_state=s_led1_off;
s_led2_off:
if(key_in==0)//按键按下
next_state=s_led2_on;
else
next_state=s_led2_off;
s_led2_on://第2个led亮
if(key_in==1)//按键释放
next_state=s_led3_off;
else
next_state=s_led2_on;
s_led3_off:
if(key_in==0)//按键按下
next_state=s_led3_on;
else
next_state=s_led3_off;
s_led3_on://第3个led亮
if(key_in==1)//按键释放
next_state=s_end;
else
next_state=s_led3_on;
s_end:
if(key_in==0)//按键按下
next_state=s_idle;
else
next_state=s_end;
default:next_state=s_idle;
endcase

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » LED长按点亮控制设计Verilog代码Quartus DE1-SOC开发板

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员