赞
踩
名称:基于FPGA的数字密码锁设计Verilog代码Quartus EPM240-CPLD开发板(文末获取)
软件:Quartus
语言:Verilog
代码功能:
设计一个数字密码锁,用户可输入4位数密码(用4个按键分别代表4个不同的数字),连续输入3次不正确则报警。开锁密码预先设定。
本代码已在EPM240-CPLD开发板验证,EPM240-CPLD开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真图
部分代码展示:
module mimasuo( input clk,//时钟 input reset,//复位,按下低电平 input key_0_in,//数字按键0~3 input key_1_in,//数字按键0~3 input key_2_in,//数字按键0~3 input key_3_in,//数字按键0~3 input confirm_key,//确认按键,代表密码输入完成 output led,//显示密码正确与否 output bell,//低电平响 //输入的密码在8 array 7segment中显示,段选位选低电平亮 output [7:0] seg_select,//数码管位选 output [3:0] bit_select//数码管段选 ); wire key_0; wire key_1; wire key_2; wire key_3; wire confirm; wire pass_or_not;//1表示正确,0表示错误 wire [15:0] password; assign led=~pass_or_not;//led低电平亮 //输入按键消抖 key_jitter i0_key_jitter( . clkin(clk), . key_in(key_0_in),//输入 . key_negedge(key_0)//消抖后按键 ); key_jitter i1_key_jitter( . clkin(clk), . key_in(key_1_in),//输入 . key_negedge(key_1)//消抖后按键 ); key_jitter i2_key_jitter( . clkin(clk), . key_in(key_2_in),//输入 . key_negedge(key_2)//消抖后按键 ); key_jitter i3_key_jitter( . clkin(clk), . key_in(key_3_in),//输入 . key_negedge(key_3)//消抖后按键 ); key_jitter i4_key_jitter( . clkin(clk), . key_in(confirm_key),//输入 . key_negedge(confirm)//消抖后按键 ); //密码输入及判断模块 mima_input i_mima_input( . clk(clk), . key_0(key_0), . key_1(key_1), . key_2(key_2), . key_3(key_3), . bell(bell), . confirm(confirm),//代表密码输入完成 . reset(reset),//复位 . pass_or_not(pass_or_not),//1表示正确,0表示错误 . password(password) ); display i_display ( . clk(clk), . password(password), . bit_select(bit_select),//数码管位选 . seg_select(seg_select)//数码管段选 ); endmodule
扫描文章末尾的公众号二维码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。