電子密碼鎖EDA課程設(shè)計(jì)_第1頁
電子密碼鎖EDA課程設(shè)計(jì)_第2頁
電子密碼鎖EDA課程設(shè)計(jì)_第3頁
電子密碼鎖EDA課程設(shè)計(jì)_第4頁
電子密碼鎖EDA課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

年4月19日電子密碼鎖EDA課程設(shè)計(jì)文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。青島農(nóng)業(yè)大學(xué)電子設(shè)計(jì)自動(dòng)化課程設(shè)計(jì)報(bào)告——第2學(xué)期實(shí)習(xí)題目:電子密碼鎖姓名:_____________________學(xué)號(hào):_______________專業(yè)班級(jí):__________電自化1003_________指導(dǎo)老師:___________________6月8日EDA課程設(shè)計(jì)一、設(shè)計(jì)任務(wù)1、基本要求(1)、設(shè)計(jì)一個(gè)密碼鎖的控制電路,當(dāng)輸入正確代碼時(shí),輸出開鎖信號(hào)以推動(dòng)執(zhí)行機(jī)構(gòu)工作,用紅燈亮、綠燈熄滅表示關(guān)鎖,用綠燈亮、紅燈熄滅表示開鎖;(2)、在鎖的控制電路中儲(chǔ)存一個(gè)能夠修改的4位代碼,當(dāng)開鎖按鈕開關(guān)(可設(shè)置成6位至8位,其中實(shí)際有效為4位,其余為虛設(shè))的輸入代碼等于儲(chǔ)存代碼時(shí),開鎖;(3)、從第一個(gè)按鈕觸動(dòng)后的5秒內(nèi)若未將鎖打開,則電路自動(dòng)復(fù)位并進(jìn)入自鎖狀態(tài),使之無法再打開,并由揚(yáng)聲器發(fā)出持續(xù)20秒的報(bào)警信號(hào)。2、要解決的關(guān)鍵問題(1)、該題的主要任務(wù)是產(chǎn)生一個(gè)開鎖信號(hào),而開鎖信號(hào)的形成條件是,輸入代碼和已設(shè)密碼相同。實(shí)現(xiàn)這種功能的電路構(gòu)思有多種,例如,用兩片8位鎖存器,一片存入密碼,另一片輸入開鎖的代碼,經(jīng)過比較的方式,若兩者相等,則形成開鎖信號(hào)。(2)、在產(chǎn)生開鎖信號(hào)后,要求輸出聲、光信號(hào),聲音的產(chǎn)生由開鎖信號(hào)觸動(dòng)揚(yáng)聲器工作,光信號(hào)由開鎖信號(hào)點(diǎn)亮LED指示燈;(3)、用按鈕開關(guān)的第一個(gè)動(dòng)作信號(hào)觸發(fā)一個(gè)5秒定時(shí)器,若5秒內(nèi)無開鎖信號(hào)產(chǎn)生,讓揚(yáng)聲器發(fā)出特殊音響,以示警告,并輸出一個(gè)信號(hào)推動(dòng)LED不斷閃爍。二、設(shè)計(jì)方案1、總體設(shè)計(jì)思想本設(shè)計(jì)采用VHDL語言進(jìn)行編程,把所有的功能都整合到一個(gè)程序,采用不同的進(jìn)程將不同的功能區(qū)分開來。該程序主要由密碼輸入進(jìn)程、密碼修改進(jìn)程、密碼鎖操作進(jìn)程、報(bào)警計(jì)時(shí)進(jìn)程和報(bào)警動(dòng)作進(jìn)程等組成。這樣設(shè)計(jì)的好處是不用設(shè)計(jì)頂層文件或者頂層原理圖,沒有復(fù)雜的連線。當(dāng)然,僅僅是對(duì)于一些功能簡單,代碼較短的程序采用該種方法編程,而該題目正好符合這個(gè)條件。該功能共有兩個(gè)時(shí)鐘信號(hào),一個(gè)是鍵盤掃描和系統(tǒng)時(shí)鐘,采用的是1Hz的時(shí)鐘信號(hào),該信號(hào)不但能夠防止鍵盤抖動(dòng)引起的誤操作,還有助于系統(tǒng)計(jì)時(shí)。因?yàn)閳?bào)警電路中的蜂鳴器為無源蜂鳴器,因此需要一個(gè)方波信號(hào)來驅(qū)動(dòng)蜂鳴器,使其發(fā)出聲音。因此又采用了一個(gè)1KHz的信號(hào)用于驅(qū)動(dòng)蜂鳴器。為了編程簡單,本設(shè)計(jì)采用的是八個(gè)獨(dú)立鍵盤,四個(gè)按鍵用于輸入密碼,四個(gè)按鍵作為功能鍵。四位0000到9999可任意改變的密碼,輸入密碼或者更改密碼時(shí),采用的是自加運(yùn)算,當(dāng)數(shù)字加到10以后,自動(dòng)清零。另外四個(gè)功能健分別是開鎖鍵、關(guān)鎖鍵、修改密碼鍵、清除自鎖健。本設(shè)計(jì)采用LED顯示和數(shù)碼管顯示,LED主要用于表示現(xiàn)在的密碼鎖的開關(guān)狀態(tài),數(shù)碼管用于顯示輸入的數(shù)值。該種顯示清晰明了,能夠防止誤操作的發(fā)生。另外還采用蜂鳴器和LED閃爍報(bào)警,當(dāng)從輸入第一個(gè)密碼開始計(jì)時(shí),如果5秒內(nèi)沒有開鎖,密碼鎖會(huì)自動(dòng)報(bào)警20S,并讓一個(gè)LED燈閃爍,直到自鎖信號(hào)解除。2、系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)的基本功能密碼輸入:每按下一個(gè)數(shù)字鍵,就輸入一個(gè)數(shù)值,并在顯示器相應(yīng)位置上顯示出該數(shù)值。密碼清除:按下開鎖鍵和關(guān)鎖鍵進(jìn)入鎖定和開鎖狀態(tài)后,系統(tǒng)自動(dòng)可清除前面所有的輸入值,清除成為“0000”。密碼更改:當(dāng)密碼鎖位于開鎖狀態(tài)下,按下更改鍵能夠設(shè)定新的密碼密碼上鎖:按下上鎖鍵可將密碼鎖上鎖。密碼解除:按下解除鍵首先檢查輸入的密碼是否正確,密碼正確即解鎖。密碼自鎖:從輸入第一個(gè)密碼開始計(jì)時(shí),如果5秒內(nèi)沒有開鎖,密碼鎖會(huì)自動(dòng)報(bào)警,并進(jìn)入自鎖狀態(tài),此時(shí)不允許任何操作。自鎖清除:經(jīng)過自鎖清除鍵能夠清除自鎖狀態(tài),使密碼鎖進(jìn)入正常工作狀態(tài)。3、系統(tǒng)程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYLOCKISPORT(CLK,CLK5:INSTD_LOGIC;KEY1,KEY2,KEY3,KEY4,KEY5,KEY6,KEY7,KEY8:INSTD_LOGIC;Q1,Q2,Q3,Q4:OUTSTD_LOGIC_VECTOR(3DOWNTO0);LED_G,LED_R,LED,BEEP:OUTSTD_LOGIC);ENDLOCK;ARCHITECTUREBEHAVOFLOCKISSIGNALPASSWORD1:STD_LOGIC_VECTOR(3DOWNTO0):="0001";SIGNALPASSWORD2:STD_LOGIC_VECTOR(3DOWNTO0):="0001";SIGNALPASSWORD3:STD_LOGIC_VECTOR(3DOWNTO0):="0001";SIGNALPASSWORD4:STD_LOGIC_VECTOR(3DOWNTO0):="0001";SIGNALJISHI5:STD_LOGIC_VECTOR(3DOWNTO0):="0000";SIGNALJISHI20:STD_LOGIC_VECTOR(4DOWNTO0):="00000";SIGNALZISUO,FLAG,BEEP_FLAG,KAI,LED_TMP:STD_LOGIC:='0';SIGNALCODE1,CODE2,CODE3,CODE4:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(clk,key1,key2,key3,key4,key6)BEGINIFZISUO='0'ANDKEY6='0'ANDKAI='0'THENIFKEY1'EVENTANDKEY1='1'THEN--用來輸入代碼,在關(guān)鎖狀況下,而且無開鎖和設(shè)置密碼信號(hào)下有效IFCODE1<9THENCODE1<=CODE1+1;ELSECODE1<=(OTHERS=>'0');ENDIF;ENDIF;IFKEY2'EVENTANDKEY2='1'THENIFCODE2<9THENCODE2<=CODE2+1;ELSECODE2<=(OTHERS=>'0');ENDIF;ENDIF;IFKEY3'EVENTANDKEY3='1'THENIFCODE3<9THENCODE3<=CODE3+1;ELSECODE3<=(OTHERS=>'0');ENDIF;ENDIF;IFKEY4'EVENTANDKEY4='1'THENIFCODE4<9THENCODE4<=CODE4+1;ELSECODE4<=(OTHERS=>'0');ENDIF;ENDIF;ELSIF(ZISUO='0'ANDKEY7='1'ANDKAI='1')THENCODE1<="0000";CODE2<="0000";CODE3<="0000";CODE4<="0000";--這一步很重要,重新上鎖必須將密碼值清零,不然會(huì)顯示上次輸入的密碼IFKEY6='1'ANDKAI='1'THEN--顯示密碼Q1<=PASSWORD1;Q2<=PASSWORD2;Q3<=PASSWORD3;Q4<=PASSWORD4;ENDIF;IFKEY6='0'ANDKAI='0'THEN--顯示要更改的密碼Q1<=CODE1;Q2<=CODE2;Q3<=CODE3;Q4<=CODE4;ENDIF;IFKEY6='0'ANDKAI='1'THEN--開鎖后顯示零Q1<="0000";Q2<="0000";Q3<="0000";Q4<="0000";ENDIF;ELSIFZISUO='0'ANDKEY6='1'ANDKAI='1'THEN--按住KEY6設(shè)置密碼,此時(shí)必須是開鎖狀態(tài)IFKEY1'EVENTANDKEY1='1'THENIFPASSWORD1<9THENPASSWORD1<=PASSWORD1+1;ELSEPASSWORD1<=(OTHERS=>'0');ENDIF;ENDIF;IFKEY2'EVENTANDKEY2='1'THENIFPASSWORD2<9THENPASSWORD2<=PASSWORD2+1;ELSEPASSWORD2<=(OTHERS=>'0');ENDIF;ENDIF;IFKEY3'EVENTANDKEY3='1'THENIFPASSWORD3<9THENPASSWORD3<=PASSWORD3+1;ELSEPASSWORD3<=(OTHERS=>'0');ENDIF;ENDIF;IFKEY4'EVENTANDKEY4='1'THENIFPASSWORD4<9THENPASSWORD4<=PASSWORD4+1;ELSEPASSWORD4<=(OTHERS=>'0');EndIF;ENDIF;ENDIF;ENDPROCESS;PROCESS(CLK,key5,key7)BEGINIFCLK'EVENTANDCLK='1'THENIFKEY5='1'ANDZISUO='0'ANDKEY6='0'THENIFPASSWORD1=CODE1ANDPASSWORD2=CODE2ANDPASSWORD3=CODE3ANDPASSWORD4=CODE4THENKAI<='1';--按下開鎖鍵后,如果密碼正確,開鎖ELSEKAI<='0';ENDIF;ENDIF;ENDIF;IFKAI='1'THENLED_G<='1';LED_R<='0';--開鎖后紅燈滅綠燈亮,否則紅燈亮綠燈滅ELSELED_G<='0';LED_R<='1';ENDIF;IFKEY7='1'ANDKEY6='0'THEN--關(guān)鎖按鈕按下后關(guān)鎖KAI<='0';LED_G<='0';LED_R<='1';ENDIF;ENDPROCESS;PROCESS(CLK,KEY1,KEY8)BEGINIF(KEY1'EVENTANDKEY1='1')THENFLAG<='1';ENDIF;IFCLK'EVENTANDCLK='1'THEN--按下第一個(gè)按鍵時(shí)置位標(biāo)志位FLAG,開始計(jì)時(shí)IF(FLAG='1')THENIFZISUO='0'ANDKEY6='0'ANDKAI='0'THENIFJISHI5<5THENJISHI5<=JISHI5+1;ELSEJISHI5<="0000";ENDIF;ENDIF;ENDIF;IF(JISHI5=5ANDKAI='0')THEN--如果5秒后未開鎖則進(jìn)入自鎖狀態(tài)ZISUO<='1';ENDIF;ENDIF;IFKAI='1'THEN--5秒內(nèi)開鎖計(jì)時(shí)清零,標(biāo)志位清零JISHI5<="0000";FLAG<='0';ENDIF;IFKEY8='1'ANDZISUO='1'THEN--K8按下后清除自鎖ZISUO<='0';FLAG<='0';ENDIF;ENDPROCESS;PROCESS(CLK,KEY8,CLK5)BEGINIFCLK'EVENTANDCLK='1'THEN--如果自鎖則蜂鳴器持續(xù)20秒發(fā)聲IFZISUO='1'THENIFJISHI20<20THENJISHI20<=JISHI20+1;BEEP_FLAG<='1';--置位蜂鳴器標(biāo)志位ELSEBEEP_FLAG<='0';ENDIF;LED_TMP<=NOTLED_TMP;--進(jìn)入自鎖后燈閃爍提示LED<=LED_TMP;ENDIF;IFZISUO='0'THEN--自鎖解除,清零計(jì)時(shí)值和標(biāo)志位JISHI20<="00000";LED<='0';BEEP_FLAG<='0';LED_TMP<='0';JISHI20<="00000";ENDIF;ENDIF;IFBEEP_FLAG='1'THEN--判斷蜂鳴器標(biāo)志位是否為1IFCLK5='1'THEN--CLK5給無源蜂鳴器提供1K的時(shí)鐘信號(hào)BEEP<='1';ELSEBEEP<='0';ENDIF;ENDIF;ENDPROCESS;ENDBEHAV;三、心得體會(huì)一周的EDA實(shí)習(xí)結(jié)束,經(jīng)過自己的努力和團(tuán)隊(duì)之間的合作,我們圓滿的完成了課程設(shè)計(jì)的各項(xiàng)要求,當(dāng)看到自己的成果,心里的成就感讓自己感到喜悅。但這次實(shí)習(xí)帶給我們的不但僅是這些,還有就是從中學(xué)到的其它的東西。在自己沒有進(jìn)行實(shí)習(xí)前,自認(rèn)為自己的EDA學(xué)得還不錯(cuò),而且平常的實(shí)驗(yàn)室表現(xiàn)也能夠,大部分的實(shí)驗(yàn)都能獨(dú)立完成并順利經(jīng)過驗(yàn)收。但當(dāng)自己真正開始做一個(gè)實(shí)際的東西時(shí),發(fā)現(xiàn)自己所學(xué)的知識(shí)還是遠(yuǎn)遠(yuǎn)不夠的,畢竟理論和實(shí)踐之間還是存在很大的差距的。剛發(fā)下題目的時(shí)候,覺得有些無從下手,根本就找不到一個(gè)合理的方案。于是開始從圖書館借書,從網(wǎng)上找資料。經(jīng)過半天的研究,自己才算是有一些思路。因此,該次實(shí)習(xí)讓我看到自己的水平還有待提升,而且讓我明白,從理論到實(shí)際,并不是那么簡單。另外,方案的確定也讓我學(xué)到很多東西。剛開始的時(shí)候,我們采用的兩種方案并行,到最后哪種方案合適采用哪種,而這兩種方案都是從網(wǎng)上和書上找來的。于是我和隊(duì)友分頭工作,一人編寫一種方案??墒钱?dāng)自己忙活了一天,程序編的差不多的時(shí)候,才發(fā)現(xiàn),別人的方案在實(shí)驗(yàn)室的實(shí)驗(yàn)箱上不可行。因?yàn)榉桨?/p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論