名称:基于FPGA的电子密码锁VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
电子密码锁要求
(1)如果按下数字键,第一个数字会从显示器的最右端开始显示,此后每新按一个数字时,显示器上的数字必须左移一格,以便将新的数字显示出来。
(2)假如要更改输入的数字,可以按倒退按键来清除前一个输入的数字,或者按清除键清除所有输入的数字,再重新输入四位数。
(3)由于这里设计的是一个四位的电子密码锁,所以当输入的数字键超过四个时,电路不予理会,而且不再显示第四个以后的数字。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. 管脚分配
5. 仿真图
密码输入模块
控制模块
显示模块
整体仿真
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ???USE?ieee.std_logic_unsigned.all; --密码锁控制模块 ENTITY?mimasuo_ctrl?IS ???PORT?( ??????clk???????????????:?IN?STD_LOGIC; ??????password??????????:?IN?STD_LOGIC_VECTOR(15?DOWNTO?0);--输入密码 ??????current_num???????:?IN?STD_LOGIC_VECTOR(2?DOWNTO?0);--当前输入密码个数 ??dis_password??????:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0);--密码输出到数码管 ??????led_open??????????:?OUT?STD_LOGIC--开锁指示灯 ???); END?mimasuo_ctrl; ARCHITECTURE?trans?OF?mimasuo_ctrl?IS ???SIGNAL??correct_password??:?STD_LOGIC_VECTOR(15?DOWNTO?0):=x"1234";--预设正确密码为1234?? ???SIGNAL??in_password??:?STD_LOGIC_VECTOR(15?DOWNTO?0):=x"0000";--输入最终密码 ???SIGNAL?led_open_buf?:?STD_LOGIC?:=?'0'; BEGIN ???PROCESS?(clk) ???BEGIN ??????IF?(clk'EVENT?AND?clk?=?'1')?THEN??? IF(current_num<="100")THEN--输入4个数字 in_password<=password;--输入最终密码 END?IF; ??????END?IF; ???END?PROCESS; ??? ???dis_password<=in_password;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=696
阅读全文
208