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

DE2-115開(kāi)發(fā)板的4位電子密碼鎖數(shù)碼管LCD1602液晶顯示verilog

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1-231101103910Z7.doc

共1個(gè)文件

名稱:DE2-115開(kāi)發(fā)板的4位電子密碼鎖數(shù)碼管LCD1602液晶顯示(代碼在文末下載)

軟件:Quartus II

語(yǔ)言:Verilog

代碼功能:

1、 設(shè)計(jì)一個(gè)四位的電子密碼鎖,每按下一個(gè)數(shù)字鍵,就輸入一個(gè)數(shù)字,并在顯示器上顯示該數(shù)值,同時(shí)將先前輸入的數(shù)據(jù)左移。

2、此外,包含密碼清除(密碼右移),密碼更改(可以通過(guò)按鍵修改新密碼),密碼上鎖和密碼解除(按下解除首先檢查密碼是否正確,密碼正確就開(kāi)鎖)功能。

3、密碼連續(xù)錯(cuò)誤3次報(bào)警。

4、通過(guò)數(shù)碼管和LCD1602液晶顯示密碼鎖的開(kāi)關(guān)狀態(tài)。

本代碼已在DE2-115開(kāi)發(fā)板驗(yàn)證,其他開(kāi)發(fā)板可以通過(guò)修改管腳適配,開(kāi)發(fā)板如下:

DE2115密碼鎖.png

演示視頻:

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

部分代碼展示:

//密碼鎖控制模塊
module?mimasuo_ctrl(
input?clk,
input?[15:0]?password,//輸入的密碼
input?[15:0]?correct_password,//正確的密碼
input?confirm,//確認(rèn)
input?reset,//清楚報(bào)警
input?modify,//修改密碼
input?lock_up,//上鎖
output?led_open,//開(kāi)鎖指示燈
output?[2:0]?current_state//當(dāng)前狀態(tài)
);
//定義6個(gè)狀態(tài)
parameter?s_lock=3'd0;
parameter?s_compare=3'd1;
parameter?s_pass=3'd2;
parameter?s_error=3'd3;
parameter?s_modify=3'd4;
parameter?s_alarm=3'd5;
reg?[2:0]?state=3'd0;
assign?current_state=state;
reg?[2:0]?error_cnt=3'd0;
//狀態(tài)機(jī)控制
always@(posedge?clk)
case(state)
s_lock://鎖定狀態(tài)
if(confirm==1)
state<=s_compare;
else
state<=s_lock;
s_compare://比對(duì)密碼狀態(tài)
if(correct_password==password)
state<=s_pass;
else
state<=s_error;
s_pass://密碼正確
if(modify==1)
state<=s_modify;//修改密碼
else?if(lock_up==1)
???state<=s_lock;//上鎖
else
state<=s_pass;
s_error://密碼錯(cuò)誤
if(error_cnt>=3'd2)
state<=s_alarm;//錯(cuò)誤3次報(bào)警
else
state<=s_lock;//繼續(xù)鎖定
s_alarm://報(bào)警
if(reset==1)//清除報(bào)警
state<=s_lock;//繼續(xù)鎖定
else
state<=s_alarm;//報(bào)警
s_modify://修改密碼
if(confirm==1)
state<=s_pass;//返回開(kāi)鎖狀態(tài)
else
state<=s_modify;
default:state<=s_lock;
endcase

設(shè)計(jì)文檔:

1. 工程文件

2. 程序文件

3. 管腳分配

4. 程序編譯

5. RTL圖

6. Testbench

7. 仿真圖

整體仿真圖

默認(rèn)密碼1234,下圖輸入1234后按下確認(rèn)鍵后開(kāi)鎖,led_open高電平表示開(kāi)鎖,此時(shí)按下modify按鍵進(jìn)行密碼修改,輸入新密碼后,按下確認(rèn)鍵,將密碼修改為2537。

修改完密碼按下lock_up鍵,鎖定,此時(shí)led_open變?yōu)榈碗娖?/p>

輸入原密碼1234無(wú)法打開(kāi),連續(xù)輸入三次密碼錯(cuò)誤后報(bào)警,alarm信號(hào)拉高

按下reset信號(hào)關(guān)閉報(bào)警,才能再次密碼,關(guān)閉報(bào)警后輸入新密碼2537,將鎖打開(kāi)。

注:按鍵按下均為低電平。

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=231

  • 1-231101103910Z7.doc
    下載

相關(guān)推薦