名称:基于FPGA的6位的电子密码锁VHDL代码Quartus? AX301开发板
软件:Quartus
语言:VHDL
代码功能:
6位的电子密码锁:
1.每按下一个数字键,就输入一个数字,并在显示器上显示该数值,同时将先前输入的数据左移。此外,包含密码清除(密码右移),密码更改(可以通过按键修改新密码),密码上锁和密码解除(按下解除首先检查密码是否正确,密码正确就开锁)功能。
2.密码连续错误3次报警。
3.使用4x4矩阵键盘输入数字。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在AX301开发板(加4x4矩阵键盘)验证,AX301开发板如下,其他开发板可以修改管脚适配:
设计文档:
1、工程文件
2、程序文件
3、程序编译
4、RTL图
5、管脚分配
6、仿真图
报警仿真
密码输入仿真
控制仿真
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; --显示模块 ENTITY?display?IS ???PORT?( ??????clk???????:?IN?STD_LOGIC; ??????password??:?IN?STD_LOGIC_VECTOR(23?DOWNTO?0);--输入密码 ??????HEX0??????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--数码管显示密码 ??????HEX1??????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--数码管显示密码 ??????HEX2??????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--数码管显示密码 ??????HEX3??????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)?--数码管显示密码 ???); END?display; --一共4位密码--输入数据显示 ARCHITECTURE?behave?OF?display?IS BEGIN ???--数码管译码 ???PROCESS?(clk) ???BEGIN ??????IF?(clk'EVENT?AND?clk?=?'1')?THEN ?????????CASE?password(15?DOWNTO?12)?IS--密码第1位 ????????????WHEN?"0000"?=> ???????????????HEX3? ???????????????HEX3? ???????????????HEX3? ???????????????HEX3? ???????????????HEX3? ???????????????HEX3? ???????????????HEX3? ???????????????HEX3? ???????????????HEX3? ???????????????HEX3? ?????????END?CASE; ??????END?IF; ???END?PROCESS; ???--数码管译码 ???PROCESS?(clk) ???BEGIN ??????IF?(clk'EVENT?AND?clk?=?'1')?THEN ?????????CASE?password(11?DOWNTO?8)?IS--密码第2位 ????????????WHEN?"0000"?=> ???????????????HEX2? ???????????????HEX2? ???????????????HEX2? ???????????????HEX2? ???????????????HEX2? ???????????????HEX2? ???????????????HEX2? ???????????????HEX2? ???????????????HEX2? ???????????????HEX2? ?????????END?CASE; ??????END?IF; ???END?PROCESS; ???--数码管译码 ???PROCESS?(clk) ???BEGIN ??????IF?(clk'EVENT?AND?clk?=?'1')?THEN ?????????CASE?password(7?DOWNTO?4)?IS--密码第3位 ????????????WHEN?"0000"?=> ???????????????HEX1? ???????????????HEX1? ???????????????HEX1? ???????????????HEX1? ???????????????HEX1? ???????????????HEX1? ???????????????HEX1? ???????????????HEX1? ???????????????HEX1? ???????????????HEX1? ?????????END?CASE; ??????END?IF; ???END?PROCESS;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=682
阅读全文
453