• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

密碼鎖設(shè)計Verilog代碼Quartus 睿智FPGA開發(fā)板

9小時前
240
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2-240109105PK22.doc

共1個文件

名稱:密碼鎖設(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ā)板可以修改管腳適配:

睿智FPGA開發(fā)板.jpg

設(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

  • 2-240109105PK22.doc
    下載

相關(guān)推薦