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

密码锁设计Verilog代码Quartus 睿智FPGA开发板

06/26 14:59
507
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240109105PK22.doc

共1个文件

名称:密码锁设计Verilog代码Quartus? 睿智FPGA开发板

软件:Quartus

语言:Verilog

代码功能:

1、设计一个密码锁的控制电路,当输入正确代码时,输岀开锁信号用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁。

2、在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关的输入代码等于储存代码时,开锁。

3、从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。

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

本代码已在睿智FPGA开发板验证,睿智FPGA开发板如下,其他开发板可以修改管脚适配:

睿智FPGA开发板.jpg

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

部分代码展示:

//,密码锁
module?mimasuo(
input?clk,//时钟
input?reset,//-复位
//数字输入按键
input?key_0,//--S0
input?key_1,//--S1
input?key_2,//--S2
input?key_3,//--S3
input?confirm_key,//-确认键--S4
input?modify_key,//--修改--S5
input?lock_up_key,//--上锁--S6
output?alarm,//报警,灯--
output?led_open,//开锁,灯--
output?led_close,//关锁,灯--
output??[7:0]?DIG,//数码管位选
output??[7:0]?SEG//数码管段选
);
wire?key_0_p;
wire?key_1_p;
wire?key_2_p;
wire?key_3_p;
wire?[2:0]?current_state;
wire?[15:0]?password;
wire?[15:0]?correct_password;
wire?confirm;
wire?modify;
wire?lock_up;
wire?open;
assign?led_close=~open;
assign?led_open=open;
//上升沿检测
key_jitter?i1_key_jitter(
.?clkin(clk),????
.?key_in(confirm_key),//输入
.?key_posedge(),//消抖后按键上升沿
.?key_negedge(confirm),//消抖后按键下降沿
.?key_value()//消抖后按键
);
//上升沿检测
key_jitter?i2_key_jitter(
.?clkin(clk),????
.?key_in(modify_key),//输入
.?key_posedge(),//消抖后按键上升沿
.?key_negedge(modify),//消抖后按键下降沿
.?key_value()//消抖后按键
);
//上升沿检测
key_jitter?i3_key_jitter(
.?clkin(clk),????
.?key_in(lock_up_key),//输入
.?key_posedge(),//消抖后按键上升沿
.?key_negedge(lock_up),//消抖后按键下降沿
.?key_value()//消抖后按键
);
//密码输入模块
mima_input?i_mima_input(
.?clk(clk),
.?key_0(key_0),
.?key_1(key_1),
.?key_2(key_2),
.?key_3(key_3),
.?key_0_p(key_0_p),
.?key_1_p(key_1_p),
.?key_2_p(key_2_p),
.?key_3_p(key_3_p),
.?current_state(current_state),
.?password(password)
);
//密码锁控制模块
mimasuo_ctrl?i_mimasuo_ctrl(
.?clk(clk),
.?password(password),
.?correct_password(correct_password),
.?confirm(confirm),
.?reset(reset),
.?modify(modify),
.?lock_up(lock_up),
.?key_0(key_0_p),
.?key_1(key_1_p),
.?key_2(key_2_p),
.?key_3(key_3_p),
.?led_open(open),
.?current_state(current_state)
);
//报警模块
alarm_on?i_alarm_on(
.?clk(clk),
.?current_state(current_state),
.?alarm(alarm)
);
//重置密码模块
reset_password?i_reset_password(
.?clk(clk),
.?password(password),
.?correct_password(correct_password),
.?confirm(confirm),
.?current_state(current_state)
);
//显示模块
display?i_display(
.clk(clk),
.?password(password),//输入密码
.?DIG(DIG),//数码管位选
.?SEG(SEG)//数码管段选
);
endmodule

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

  • 2-240109105PK22.doc
    下载

相关推荐