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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

idle=3'b000

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

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

//判斷狀態(tài),判斷密碼輸入是否正確,如果長度不一致,則直接判錯{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;//如果密碼正確,否則全錯endsancierror:count<=count+1'b1;correct:{open,baojing}<=2'b10;//正確狀態(tài),open=1,baojing=0baojingzt:{open,baojing}<=2'b01;//錯誤狀態(tài),open=0,baojing=1endcaseendendendmodule201512

溫馨提示

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

評論

0/150

提交評論