數(shù)字電子密碼鎖大作業(yè)_第1頁(yè)
數(shù)字電子密碼鎖大作業(yè)_第2頁(yè)
數(shù)字電子密碼鎖大作業(yè)_第3頁(yè)
數(shù)字電子密碼鎖大作業(yè)_第4頁(yè)
數(shù)字電子密碼鎖大作業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

“數(shù)字電子與EDA技術(shù)”考核作業(yè)匯報(bào)姓名:呂佳航專業(yè):測(cè)控技術(shù)與儀器班級(jí):測(cè)控14-2學(xué)號(hào):20141774基于VerilogHDL六位電子密碼鎖控制器的設(shè)計(jì)20151209背景:鎖是指加在門、箱子、抽屜等物體上的封緘器,要用專用的鑰匙才能打開(kāi)。自古以來(lái)鎖都是人們財(cái)產(chǎn)安全乃至生命安全的一種重要保障。伴隨著人類歷史的發(fā)展和人們對(duì)自身財(cái)產(chǎn)安全和人生安全的重視,各種各樣的多功能的鎖具也相繼出現(xiàn),人們使用的鎖具也由傳統(tǒng)的機(jī)械式鎖逐漸發(fā)展為安全性能更好,功能更多的電子密碼鎖。意義:保障人民的財(cái)產(chǎn)和生命安全。20151209設(shè)計(jì)任務(wù)確保財(cái)產(chǎn)和人身安全不會(huì)在很短的時(shí)間內(nèi)不受到威脅設(shè)計(jì)要求1、擁有6位數(shù)字密碼2、輸入錯(cuò)誤時(shí)可以選擇復(fù)位鍵和刪除鍵進(jìn)行重新輸入3、錯(cuò)誤三次將啟動(dòng)警鳴報(bào)警4、內(nèi)部固定密碼將不會(huì)被修改20151210方案1:基于硬件描述語(yǔ)言,將所需器件進(jìn)行封裝連線完成方案2:基于Verilog有限狀態(tài)機(jī)進(jìn)行設(shè)計(jì)確定選擇方案2:由于原理圖太過(guò)復(fù)雜,不好操作難度大并且易發(fā)生錯(cuò)誤,方案2較方案1更為優(yōu)化,所以選擇方案22015121020151211輸入變量:基于密碼確認(rèn)原因,所以確定queren為輸入變量,其連接的對(duì)應(yīng)部件是確認(rèn)按鍵;基于密碼取消原因,所以確定quxiao為輸入變量,其連接的對(duì)應(yīng)部件是取消按鍵;基于密碼輸入原因,所以確定key-in為輸入變量,其連接的對(duì)應(yīng)部件是密碼輸入按鍵;20151212輸出變量:基于密碼安全的原因,所以確定baojing為輸出變量基于密碼鎖的作用安全的原因,所以確定open為輸出變量20151212輸入密碼(1)狀態(tài)進(jìn)入到panduan狀態(tài),如果密碼(2)正確進(jìn)入狀態(tài)correct,如果密碼(3)錯(cuò)誤進(jìn)入threeerror,然后回歸(4)狀態(tài)panduan。如果輸入三次錯(cuò)誤(5)進(jìn)入狀態(tài)baojing20151212狀態(tài)任務(wù)輸出特性分析輸出包括:baojing,open,各個(gè)狀態(tài)時(shí)狀態(tài)機(jī)的輸出分別為:

idle=3'b000

panduan=3'b001,sancierror=3'b011,correct=3'b010,baojingzt=3'b100;由于密碼安全原因,輸出需要寄存器輸出由于密碼輸入和輸出關(guān)系,輸出與輸入有關(guān)確定狀態(tài)機(jī)類型是需要寄存器輸出,所以采用三段式狀態(tài)機(jī)輸入與輸出有/無(wú)關(guān),所以采用Mealy型狀態(tài)機(jī)20151213狀態(tài)機(jī)中的工作時(shí)鐘clk,reset;狀態(tài)機(jī)的異步工作時(shí)鐘特點(diǎn)reset狀態(tài)機(jī)的主工作時(shí)鐘頻率clk

由于按鍵需要提供按鍵的控制,抖動(dòng)時(shí)間一般不會(huì)超過(guò)10ms,所以用一個(gè)100Hz連續(xù)脈沖對(duì)它進(jìn)行采樣,即為處于穩(wěn)定狀態(tài)20151213用3位編碼的原因是由于我輸出了5個(gè)狀態(tài)。編碼:idle=3'b000,panduan=3'b001,sancierror=3'b011,correct=3'b010,baojingzt=3'b100狀態(tài)機(jī)的安全設(shè)計(jì)說(shuō)明:按照格雷碼進(jìn)行編碼。易于理解。其余狀態(tài)回到初始態(tài)異步清零,可以人為保證安全。20151214modulemimasuo(clk,reset,quxiao,queren,key_in,open,baojing);inputclk,reset;//時(shí)鐘,復(fù)位,inputquxiao,queren;//取消按鍵,確認(rèn)按鍵,0-按鍵按下,1-按鍵彈起input[5:0]key_in;//6位密碼按鍵,0-按鍵按下,1-按鍵彈起outputopen,baojing;//打開(kāi),密碼錯(cuò)誤。1-打開(kāi),0-不打開(kāi)。1-密碼錯(cuò)誤,0-無(wú)錯(cuò)reg[2:0]mima[5:0];//密碼initialbeginmima[0]=3'b010;//2//密碼設(shè)定為213465,修改順序可以改變密碼mima[1]=3'b001;//120151215mima[2]=3'b011;//3mima[3]=3'b100;//4mima[4]=3'b110;//6mima[5]=3'b101;//5endreg[2:0]mima_in[5:0];//用戶輸入密碼存儲(chǔ)regopen;regbaojing;reg[2:0]cs;//當(dāng)前狀態(tài)reg[2:0]ns;//下一個(gè)狀態(tài)regis_correct;//密碼輸入正確1-正確regis_incorrect;//密碼輸入錯(cuò)誤1-錯(cuò)誤20151215reg[2:0]i;//用戶輸入第幾位密碼reg[1:0]count;//計(jì)算輸錯(cuò)密碼的次數(shù),實(shí)現(xiàn)三次報(bào)警parameter[2:0]idle=3'b000,panduan=3'b001,sancierror=3'b011,correct=3'b010,baojingzt=3'b100;//四個(gè)狀態(tài),空閑(密碼輸入),判斷狀態(tài),三次是否都錯(cuò),密碼正確,報(bào)警狀態(tài)//第一個(gè)always語(yǔ)句塊,順序狀態(tài)轉(zhuǎn)化always@(posedgeclk,negedgereset)beginif(!reset)cs<=idle;else20151215cs<=ns;end//第二個(gè)always語(yǔ)句塊,根據(jù)不同的輸入轉(zhuǎn)換到不同的狀態(tài)always@(reset,cs,queren,is_correct,is_incorrect,count)begincase(cs)idle:if(!queren)//如果確認(rèn)鍵按下,進(jìn)入判斷狀態(tài)ns=panduan;elsens=idle;//沒(méi)有按下,保持在空閑狀態(tài)panduan:if(is_correct)//判斷結(jié)果為正確,則進(jìn)入密碼正確狀態(tài)ns=correct;20151215elseif(is_incorrect)ns=sancierror;//如果結(jié)果為錯(cuò)誤,則進(jìn)入密碼錯(cuò)誤狀態(tài)elsens=panduan;//如果判斷沒(méi)有結(jié)束,則保持在本狀態(tài)sancierror:if(count==3'd3)ns=baojingzt;elsens=idle;correct:ns=correct;//保持在正確狀態(tài),等待復(fù)位按鍵baojingzt:ns=baojingzt; //保持在正確狀態(tài),等待復(fù)位按鍵endcaseend20151215//第三個(gè)always模塊,狀態(tài)機(jī)的輸出,根據(jù)狀態(tài)不同輸出不同的信號(hào)always@(posedgeclk,negedgereset)beginif(!reset)begin//復(fù)位,全部置零{open,baojing,is_correct,is_incorrect}<=4'b0000;i<=0;mima_in[0]<=0;mima_in[1]<=0;mima_in[2]<=0;mima_in[3]<=0;mima_in[4]<=0;mima_in[5]<=0;20151215count<=0;endelsebegin{open,baojing,is_correct,is_incorrect}<=4'b0000;//本句只是讓程序更加嚴(yán)謹(jǐn),可不要case(ns)idle://在空閑狀態(tài)的操作begin{open,baojing,is_correct,is_incorrect}<=4'b0000;if(!key_in[0])//判斷按鍵是否被按下,如果按下,根據(jù)按鍵編號(hào)以及i的值給對(duì)應(yīng)密碼位進(jìn)行賦值,同時(shí)i+1,20151215//(在這里沒(méi)有處理i的上限,因?yàn)榭梢灾苯优袛鄆的大小來(lái)判斷是否錯(cuò)誤)//共有六個(gè)按鍵,所以判斷六次beginmima_in[i]=3'b001;i<=i+1'b1;endelseif(!key_in[1])beginmima_in[i]=3'b010;i<=i+1'b1;endelse20151215if(!key_in[2])beginmima_in[i]=3'b011;i<=i+1'b1;endelseif(!key_in[3])beginmima_in[i]=3'b100;i<=i+1'b1;endelseif(!key_in[4])20151215beginmima_in[i]=3'b101;i<=i+1'b1;endelseif(!key_in[5])beginmima_in[i]=3'b110;i<=i+1'b1;endelsei<=i;//到此處,按鍵輸入判斷結(jié)束20151215if(!quxiao)//此處判斷取消鍵是否按下,如果按下將對(duì)應(yīng)為賦值為0,同時(shí)將i-1,設(shè)置下限,不能小于零beginmima_in[i]=3'b000;if(i>0)i<=i-1'b1;elsei<=i;endendpanduan:if(i!=3'b110)begin20151215

//判斷狀態(tài),判斷密碼輸入是否正確,如果長(zhǎng)度不一致,則直接判錯(cuò){is_correct,is_incorrect}<=2'b01;endelseif(mima[0]==mima_in[0]&&mima[1]==mima_in[1]&&mima[2]==mima_in[2]&&mima[3]==mima_in[3]&&mima[4]==mima_in[4]&&mima[5]==mima_in[5])begin//如果密碼正確,則判斷正確{is_correct,is_incorrect}<=2'b10;end20151215elsebegin{is_correct,is_incorrect}<=2‘b01;//如果密碼正確,否則全錯(cuò)endsancierror:count<=count+1'b1;correct:{open,baojing}<=2'b10;//正確狀態(tài),open=1,baojing=0baojingzt:{open,baojing}<=2'b01;//錯(cuò)誤狀態(tài),open=0,baojing=1endcaseendendendmodule201512

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論