名称:密码锁设计Verilog代码Quartus 睿智FPGA开发板(文末获取)
软件:Quartus
语言:Verilog
代码功能:
1、设计一个密码锁的控制电路,当输入正确代码时,输岀开锁信号用红灯亮、绿灯
熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁
2、在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关的输入代码
等于储存代码时,开锁
3、从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之
无法再打开,并由扬声器发出持续20秒的报警信号。
本代码已在睿智FPGA开发板验证,睿智FPGA开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
部分代码展示:文章来源:https://www.toymoban.com/news/detail-801497.html
//,密码锁 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
源代码
扫描文章末尾的公众号二维码文章来源地址https://www.toymoban.com/news/detail-801497.html
到了这里,关于密码锁设计Verilog代码Quartus 睿智FPGA开发板的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!