名稱:基于FPGA的電子密碼鎖的設計VHDL代碼Quartus仿真
軟件:Quartus
語言:VHDL
代碼功能:
電子密碼鎖的設計
設計任務:
1.密碼輸入:每按下一個數(shù)字鍵,就輸入一個數(shù)值,并在顯示器上顯示該數(shù)值,同時將先前輸入的數(shù)據(jù)依次左移一位;
2.密碼清除:按下清除鍵可清除前面所有的輸入值,清除結(jié)果為“0000”;
3.密碼更改:按下更改鍵可將目前的數(shù)碼設定為新的密碼;
4.密碼上鎖:按下上鎖鍵密碼鎖上鎖;
5. 密碼解除:按下解除鍵首先檢查輸入密碼是否正確,密碼正確就開鎖。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
設計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
6. Testbench
7. 仿真圖
整體仿真圖
顯示模塊
密碼輸入模塊
密碼鎖控制模塊
密碼修改模塊
部分代碼展示:
--設計一個四位的電子密碼鎖, --每按下一個數(shù)字鍵,就輸入一個數(shù)字, --并在顯示器上顯示該數(shù)值,同時將先前輸入的數(shù)據(jù)左移。 --此外,包含密碼清除(清楚結(jié)果為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);--數(shù)碼管顯示 ??????HEX1??????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--數(shù)碼管顯示 ??????HEX2??????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--數(shù)碼管顯示 ??????HEX3??????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0)--數(shù)碼管顯示 ???); 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; ??? ???--調(diào)用密碼輸入模塊
代碼文件(付費下載):
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=687
閱讀全文