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

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上青島農(nóng)業(yè)大學(xué)電子設(shè)計(jì)自動(dòng)化課程設(shè)計(jì)報(bào)告20122013學(xué)年 第2學(xué)期 實(shí)習(xí)題目: 電子密碼鎖 姓 名 :_ _ 學(xué) 號 :_ _ _ _ 專業(yè)班級:_電自化1003_ 指導(dǎo)老師:_ _ _ 2013年6月8日EDA課程設(shè)計(jì)一、設(shè)計(jì)任務(wù) 1、基本要求(1)、設(shè)計(jì)一個(gè)密碼鎖的控制電路,當(dāng)輸入正確代碼時(shí),輸出開鎖信號以推動(dòng)執(zhí)行機(jī)構(gòu)工作,用紅燈亮、綠燈熄滅表示關(guān)鎖,用綠燈亮、紅燈熄滅表示開鎖;(2)、在鎖的控制電路中儲存一個(gè)可以修改的4位代碼,當(dāng)開鎖按鈕開關(guān)(可設(shè)置成6位至8位,其中實(shí)際有效為4位,其余為虛設(shè))的輸入代碼等于儲存代碼時(shí),開鎖;(3)、從第一個(gè)按鈕觸動(dòng)后的5秒內(nèi)

2、若未將鎖打開,則電路自動(dòng)復(fù)位并進(jìn)入自鎖狀態(tài),使之無法再打開,并由揚(yáng)聲器發(fā)出持續(xù)20秒的報(bào)警信號。2、要解決的關(guān)鍵問題(1)、該題的主要任務(wù)是產(chǎn)生一個(gè)開鎖信號,而開鎖信號的形成條件是,輸入代碼和已設(shè)密碼相同。實(shí)現(xiàn)這種功能的電路構(gòu)思有多種,例如,用兩片8位鎖存器,一片存入密碼,另一片輸入開鎖的代碼,通過比較的方式,若兩者相等,則形成開鎖信號。(2)、在產(chǎn)生開鎖信號后,要求輸出聲、光信號,聲音的產(chǎn)生由開鎖信號觸動(dòng)揚(yáng)聲器工作,光信號由開鎖信號點(diǎn)亮LED指示燈;(3)、用按鈕開關(guān)的第一個(gè)動(dòng)作信號觸發(fā)一個(gè)5秒定時(shí)器,若5秒內(nèi)無開鎖信號產(chǎn)生,讓揚(yáng)聲器發(fā)出特殊音響,以示警告,并輸出一個(gè)信號推動(dòng)LED不斷閃爍。

3、二、設(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)然,僅僅是對于一些功能簡單,代碼較短的程序采用該種方法編程,而該題目正好符合這個(gè)條件。該功能共有兩個(gè)時(shí)鐘信號,一個(gè)是鍵盤掃描和系統(tǒng)時(shí)鐘,采用的是1Hz的時(shí)鐘信號,該信號不僅可以防止鍵盤抖動(dòng)引起的誤操作,還有助于系統(tǒng)計(jì)時(shí)。因?yàn)閳?bào)警電路中的蜂鳴器為無源蜂鳴器,所以需要一個(gè)方波信號來驅(qū)動(dòng)蜂鳴器,使其發(fā)出聲音。因此又采用了一

4、個(gè)1KHz的信號用于驅(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)沒有開鎖,密碼鎖會自動(dòng)報(bào)警20S,并讓一個(gè)LED燈閃爍,直到自鎖信號解除。2、系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)的基本功

5、能(1) 密碼輸入:每按下一個(gè)數(shù)字鍵,就輸入一個(gè)數(shù)值,并在顯示器相應(yīng)位置上顯示出該數(shù)值。(2) 密碼清除:按下開鎖鍵和關(guān)鎖鍵進(jìn)入鎖定和開鎖狀態(tài)后,系統(tǒng)自動(dòng)可清除前面所有的輸入值,清除成為“0000”。(3) 密碼更改:當(dāng)密碼鎖位于開鎖狀態(tài)下,按下更改鍵可以設(shè)定新的密碼(4) 密碼上鎖:按下上鎖鍵可將密碼鎖上鎖。(5) 密碼解除:按下解除鍵首先檢查輸入的密碼是否正確,密碼正確即解鎖。(6) 密碼自鎖:從輸入第一個(gè)密碼開始計(jì)時(shí),如果5秒內(nèi)沒有開鎖,密碼鎖會自動(dòng)報(bào)警,并進(jìn)入自鎖狀態(tài),此時(shí)不允許任何操作。(7) 自鎖清除:通過自鎖清除鍵可以清除自鎖狀態(tài),使密碼鎖進(jìn)入正常工作狀態(tài)。3、系統(tǒng)程序LIBRA

6、RY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY LOCK ISPORT(CLK,CLK5:IN STD_LOGIC; KEY1,KEY2,KEY3,KEY4,KEY5,KEY6,KEY7,KEY8:IN STD_LOGIC; Q1,Q2,Q3,Q4:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); LED_G,LED_R,LED,BEEP:OUT STD_LOGIC);END LOCK;ARCHITECTURE BEHAV OF LOCK IS SIGNAL PASSWORD

7、1:STD_LOGIC_VECTOR(3 DOWNTO 0):="0001" SIGNAL PASSWORD2:STD_LOGIC_VECTOR(3 DOWNTO 0):="0001" SIGNAL PASSWORD3:STD_LOGIC_VECTOR(3 DOWNTO 0):="0001" SIGNAL PASSWORD4:STD_LOGIC_VECTOR(3 DOWNTO 0):="0001" SIGNAL JISHI5:STD_LOGIC_VECTOR(3 DOWNTO 0):="0000"

8、; SIGNAL JISHI20:STD_LOGIC_VECTOR(4 DOWNTO 0):="00000" SIGNAL ZISUO,FLAG,BEEP_FLAG,KAI,LED_TMP:STD_LOGIC:='0' SIGNAL CODE1,CODE2,CODE3,CODE4:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(clk,key1,key2,key3,key4,key6)BEGINIF ZISUO='0' AND KEY6='0' AND KAI='0' T

9、HEN IF KEY1'EVENT AND KEY1='1' THEN -用來輸入代碼,在關(guān)鎖狀況下,并且無開鎖和設(shè)置密碼信號下有效 IF CODE1<9 THEN CODE1<=CODE1+1; ELSE CODE1<=(OTHERS=>'0'); END IF; END IF; IF KEY2'EVENT AND KEY2='1' THEN IF CODE2<9 THEN CODE2<=CODE2+1; ELSE CODE2<=(OTHERS=>'0'); END

10、 IF; END IF; IF KEY3'EVENT AND KEY3='1' THEN IF CODE3<9 THEN CODE3<=CODE3+1; ELSE CODE3<=(OTHERS=>'0'); END IF; END IF; IF KEY4'EVENT AND KEY4='1' THEN IF CODE4<9 THEN CODE4<=CODE4+1; ELSE CODE4<=(OTHERS=>'0'); END IF; END IF; ELSIF(ZIS

11、UO='0' AND KEY7='1' AND KAI='1')THEN CODE1<="0000"CODE2<="0000"CODE3<="0000"CODE4<="0000" -這一步很重要,重新上鎖必須將密碼值清零,不然會顯示上次輸入的密碼 IF KEY6='1' AND KAI='1' THEN -顯示密碼 Q1<=PASSWORD1; Q2<=PASSWORD2; Q3<=PASSWO

12、RD3; Q4<=PASSWORD4; END IF; IF KEY6='0' AND KAI='0' THEN -顯示要更改的密碼 Q1<=CODE1; Q2<=CODE2; Q3<=CODE3; Q4<=CODE4; END IF; IF KEY6='0' AND KAI='1' THEN -開鎖后顯示零 Q1<="0000" Q2<="0000" Q3<="0000" Q4<="0000" E

13、ND IF; ELSIF ZISUO='0' AND KEY6='1' AND KAI='1' THEN -按住KEY6設(shè)置密碼,此時(shí)必須是開鎖狀態(tài) IF KEY1'EVENT AND KEY1='1' THEN IF PASSWORD1<9 THEN PASSWORD1<=PASSWORD1+1; ELSE PASSWORD1<=(OTHERS=>'0'); END IF; END IF; IF KEY2'EVENT AND KEY2='1' THEN IF

14、 PASSWORD2<9 THEN PASSWORD2<=PASSWORD2+1; ELSE PASSWORD2<=(OTHERS=>'0'); END IF; END IF; IF KEY3'EVENT AND KEY3='1' THEN IF PASSWORD3<9 THEN PASSWORD3<=PASSWORD3+1; ELSE PASSWORD3<=(OTHERS=>'0'); END IF; END IF; IF KEY4'EVENT AND KEY4='1

15、9; THEN IF PASSWORD4<9 THEN PASSWORD4<=PASSWORD4+1; ELSE PASSWORD4<=(OTHERS=>'0'); End IF; END IF; END IF; END PROCESS; PROCESS (CLK,key5,key7) BEGIN IF CLK'EVENT AND CLK='1' THEN IF KEY5='1' AND ZISUO='0' AND KEY6='0' THEN IF PASSWORD1=CODE1 A

16、ND PASSWORD2=CODE2 AND PASSWORD3=CODE3 AND PASSWORD4=CODE4 THEN KAI<='1' -按下開鎖鍵后,如果密碼正確,開鎖 ELSE KAI<='0' END IF; END IF; END IF; IF KAI='1' THEN LED_G<='1'LED_R<='0' -開鎖后紅燈滅綠燈亮,否則紅燈亮綠燈滅 ELSE LED_G<='0'LED_R<='1' END IF; IF KEY

17、7='1' AND KEY6='0' THEN -關(guān)鎖按鈕按下后關(guān)鎖 KAI<='0' ;LED_G<='0'LED_R<='1' END IF; END PROCESS; PROCESS(CLK,KEY1,KEY8) BEGIN IF(KEY1'EVENT AND KEY1='1')THEN FLAG<='1' END IF; IF CLK'EVENT AND CLK='1' THEN -按下第一個(gè)按鍵時(shí) 置位標(biāo)志位FLAG,

18、開始計(jì)時(shí) IF(FLAG='1')THEN IF ZISUO='0' AND KEY6='0' AND KAI='0' THEN IF JISHI5<5 THEN JISHI5<=JISHI5+1; ELSE JISHI5<="0000" END IF; END IF; END IF; IF (JISHI5=5 AND KAI='0') THEN -如果5秒后未開鎖則進(jìn)入自鎖狀態(tài) ZISUO<='1' END IF; END IF; IF KAI='

19、;1' THEN -5秒內(nèi)開鎖 計(jì)時(shí)清零,標(biāo)志位清零 JISHI5<="0000"FLAG<='0' END IF; IF KEY8='1' AND ZISUO='1' THEN -K8按下后清除自鎖 ZISUO<='0'FLAG<='0' END IF; END PROCESS; PROCESS(CLK,KEY8,CLK5) BEGIN IF CLK'EVENT AND CLK='1' THEN -如果自鎖則蜂鳴器持續(xù)20秒發(fā)聲 IF Z

20、ISUO='1' THEN IF JISHI20<20 THEN JISHI20<=JISHI20+1; BEEP_FLAG<='1' -置位蜂鳴器標(biāo)志位 ELSE BEEP_FLAG<='0' END IF; LED_TMP<=NOT LED_TMP; -進(jìn)入自鎖后燈閃爍提示 LED<=LED_TMP; END IF; IF ZISUO='0' THEN -自鎖解除,清零計(jì)時(shí)值和標(biāo)志位 JISHI20<="00000"LED<='0'BEEP_F

21、LAG<='0'LED_TMP<='0'JISHI20<="00000" END IF; END IF; IF BEEP_FLAG='1' THEN -判斷蜂鳴器標(biāo)志位是否為1 IF CLK5='1' THEN -CLK5給無源蜂鳴器提供1K的時(shí)鐘信號 BEEP<='1' ELSE BEEP<='0' END IF; END IF;END PROCESS;END BEHAV;三、心得體會一周的EDA實(shí)習(xí)結(jié)束,通過自己的努力和團(tuán)隊(duì)之間的合作,我們圓滿的

22、完成了課程設(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ú)立完成并順利通過驗(yàn)收。但當(dāng)自己真正開始做一個(gè)實(shí)際的東西時(shí),發(fā)現(xiàn)自己所學(xué)的知識還是遠(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)榉桨钢胁捎玫氖蔷仃囨I盤,而實(shí)驗(yàn)箱采用的獨(dú)立鍵盤,并且數(shù)目也只有八個(gè)。當(dāng)然可以采用自己連線的方式外接一個(gè)矩陣鍵盤,但這樣的話,穩(wěn)定

溫馨提示

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

最新文檔

評論

0/150

提交評論