名稱:密碼鎖設(shè)計Verilog代碼Quartus? 睿智FPGA開發(fā)板
軟件:Quartus
語言:Verilog
代碼功能:
1、設(shè)計一個密碼鎖的控制電路,當輸入正確代碼時,輸岀開鎖信號用紅燈亮、綠燈熄滅表示關(guān)鎖,用綠燈亮、紅燈熄滅表示開鎖。
2、在鎖的控制電路中儲存一個可以修改的4位代碼,當開鎖按鈕開關(guān)的輸入代碼等于儲存代碼時,開鎖。
3、從第一個按鈕觸動后的5秒內(nèi)若未將鎖打開,則電路自動復位并進入自鎖狀態(tài),使之無法再打開,并由揚聲器發(fā)出持續(xù)20秒的報警信號。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在睿智FPGA開發(fā)板驗證,睿智FPGA開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
設(shè)計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
部分代碼展示:
//,密碼鎖 module?mimasuo( input?clk,//時鐘 input?reset,//-復位 //數(shù)字輸入按鍵 input?key_0,//--S0 input?key_1,//--S1 input?key_2,//--S2 input?key_3,//--S3 input?confirm_key,//-確認鍵--S4 input?modify_key,//--修改--S5 input?lock_up_key,//--上鎖--S6 output?alarm,//報警,燈-- output?led_open,//開鎖,燈-- output?led_close,//關(guān)鎖,燈-- output??[7:0]?DIG,//數(shù)碼管位選 output??[7:0]?SEG//數(shù)碼管段選 ); wire?key_0_p; wire?key_1_p; wire?key_2_p; wire?key_3_p; wire?[2:0]?current_state; wire?[15:0]?password; wire?[15:0]?correct_password; wire?confirm; wire?modify; wire?lock_up; wire?open; assign?led_close=~open; assign?led_open=open; //上升沿檢測 key_jitter?i1_key_jitter( .?clkin(clk),???? .?key_in(confirm_key),//輸入 .?key_posedge(),//消抖后按鍵上升沿 .?key_negedge(confirm),//消抖后按鍵下降沿 .?key_value()//消抖后按鍵 ); //上升沿檢測 key_jitter?i2_key_jitter( .?clkin(clk),???? .?key_in(modify_key),//輸入 .?key_posedge(),//消抖后按鍵上升沿 .?key_negedge(modify),//消抖后按鍵下降沿 .?key_value()//消抖后按鍵 ); //上升沿檢測 key_jitter?i3_key_jitter( .?clkin(clk),???? .?key_in(lock_up_key),//輸入 .?key_posedge(),//消抖后按鍵上升沿 .?key_negedge(lock_up),//消抖后按鍵下降沿 .?key_value()//消抖后按鍵 ); //密碼輸入模塊 mima_input?i_mima_input( .?clk(clk), .?key_0(key_0), .?key_1(key_1), .?key_2(key_2), .?key_3(key_3), .?key_0_p(key_0_p), .?key_1_p(key_1_p), .?key_2_p(key_2_p), .?key_3_p(key_3_p), .?current_state(current_state), .?password(password) ); //密碼鎖控制模塊 mimasuo_ctrl?i_mimasuo_ctrl( .?clk(clk), .?password(password), .?correct_password(correct_password), .?confirm(confirm), .?reset(reset), .?modify(modify), .?lock_up(lock_up), .?key_0(key_0_p), .?key_1(key_1_p), .?key_2(key_2_p), .?key_3(key_3_p), .?led_open(open), .?current_state(current_state) ); //報警模塊 alarm_on?i_alarm_on( .?clk(clk), .?current_state(current_state), .?alarm(alarm) ); //重置密碼模塊 reset_password?i_reset_password( .?clk(clk), .?password(password), .?correct_password(correct_password), .?confirm(confirm), .?current_state(current_state) ); //顯示模塊 display?i_display( .clk(clk), .?password(password),//輸入密碼 .?DIG(DIG),//數(shù)碼管位選 .?SEG(SEG)//數(shù)碼管段選 ); endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=520