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

基于FPGA的电子密码锁的设计VHDL代码Quartus仿真

05/13 10:45
906
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24030415501b50.doc

共1个文件

名称:基于FPGA的电子密码锁的设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

电子密码锁的设计

设计任务:

1.密码输入:每按下一个数字键,就输入一个数值,并在显示器上显示该数值,同时将先前输入的数据依次左移一位;

2.密码清除:按下清除键可清除前面所有的输入值,清除结果为“0000”;

3.密码更改:按下更改键可将目前的数码设定为新的密码;

4.密码上锁:按下上锁键密码锁上锁;

5. 密码解除:按下解除键首先检查输入密码是否正确,密码正确就开锁。

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

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. Testbench

7. 仿真图

整体仿真图

显示模块

密码输入模块

密码锁控制模块

密码修改模块

部分代码展示:

--设计一个四位的电子密码锁,
--每按下一个数字键,就输入一个数字,
--并在显示器上显示该数值,同时将先前输入的数据左移。
--此外,包含密码清除(清楚结果为0000),
--密码更改(按下更改键可将目前的密码设定为新密码),
--密码上锁和密码解除(按下解除首先检查密码是否正确,密码正确就开锁)功能。
LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
--顶层模块
ENTITY?mimasuo?IS
???PORT?(
??????clk???????:?IN?STD_LOGIC;--1024Hz
??????
??????key_0?????:?IN?STD_LOGIC;--按键输入0
??????key_1?????:?IN?STD_LOGIC;--按键输入1
??????key_2?????:?IN?STD_LOGIC;--按键输入2
??????key_3?????:?IN?STD_LOGIC;--按键输入3
??????key_4?????:?IN?STD_LOGIC;--按键输入4
??????key_5?????:?IN?STD_LOGIC;--按键输入5
??????key_6?????:?IN?STD_LOGIC;--按键输入6
??????key_7?????:?IN?STD_LOGIC;--按键输入7
??????key_8?????:?IN?STD_LOGIC;--按键输入8
??????key_9?????:?IN?STD_LOGIC;--按键输入9
??????
??????confirm???:?IN?STD_LOGIC;--确认键(开锁)
??????modify????:?IN?STD_LOGIC;--修改键(更改)
??????lock_up???:?IN?STD_LOGIC;--锁住键(上锁)
???delect????:?IN?STD_LOGIC;--删除键(清除)
??????led_open??:?OUT?STD_LOGIC;--开锁指示信号,高电平表示开锁,低电平表示锁住
??????
??????HEX0??????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--数码管显示
??????HEX1??????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--数码管显示
??????HEX2??????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--数码管显示
??????HEX3??????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0)--数码管显示
???);
END?mimasuo;
ARCHITECTURE?trans?OF?mimasuo?IS
???--例化重置模块
???COMPONENT?reset_password?IS
??????PORT?(
?????????clk???????:?IN?STD_LOGIC;
?????????password??:?IN?STD_LOGIC_VECTOR(15?DOWNTO?0);
?????????correct_password?:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0);
?????????confirm???:?IN?STD_LOGIC;
?????????current_state?:?IN?STD_LOGIC_VECTOR(2?DOWNTO?0)
??????);
???END?COMPONENT;
???--例化显示模块
???COMPONENT?display?IS
??????PORT?(
?????????clk???????:?IN?STD_LOGIC;
?????????password??:?IN?STD_LOGIC_VECTOR(15?DOWNTO?0);--当前输入密码
?????????HEX0??????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);
?????????HEX1??????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);
?????????HEX2??????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);
?????????HEX3??????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0)
??????);
???END?COMPONENT;
???--例化密码输入模块
???COMPONENT?mima_input?IS
??????PORT?(
?????????clk???????:?IN?STD_LOGIC;
?????????key_0?????:?IN?STD_LOGIC;
?????????key_1?????:?IN?STD_LOGIC;
?????????key_2?????:?IN?STD_LOGIC;
?????????key_3?????:?IN?STD_LOGIC;
?????????key_4?????:?IN?STD_LOGIC;
?????????key_5?????:?IN?STD_LOGIC;
?????????key_6?????:?IN?STD_LOGIC;
?????????key_7?????:?IN?STD_LOGIC;
?????????key_8?????:?IN?STD_LOGIC;
?????????key_9?????:?IN?STD_LOGIC;
???delect????:?IN?STD_LOGIC;--删除键
?????????current_state?:?IN?STD_LOGIC_VECTOR(2?DOWNTO?0);
?????????password??:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0)
??????);
???END?COMPONENT;
???--例化密码锁控制模块
???COMPONENT?mimasuo_ctrl?IS
??????PORT?(
?????????clk???????:?IN?STD_LOGIC;
?????????password??:?IN?STD_LOGIC_VECTOR(15?DOWNTO?0);
?????????correct_password?:?IN?STD_LOGIC_VECTOR(15?DOWNTO?0);
?????????confirm???:?IN?STD_LOGIC;
?????????modify????:?IN?STD_LOGIC;
?????????lock_up???:?IN?STD_LOGIC;
?????????led_open??:?OUT?STD_LOGIC;
?????????current_state?:?OUT?STD_LOGIC_VECTOR(2?DOWNTO?0)
??????);
???END?COMPONENT;
???
???--定义信号
???SIGNAL?current_state????:?STD_LOGIC_VECTOR(2?DOWNTO?0);
???SIGNAL?password?????????:?STD_LOGIC_VECTOR(15?DOWNTO?0);
???SIGNAL?correct_password?:?STD_LOGIC_VECTOR(15?DOWNTO?0);
???SIGNAL?led_open_signal???:?STD_LOGIC;
BEGIN
???led_open?<=?led_open_signal;
???
???--调用密码输入模块

代码文件(付费下载):

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

  • 2-24030415501b50.doc
    下载

相关推荐