電子密碼鎖eda技術課程設計_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設 計</p><p>  2011年 3 月11日</p><p><b>  課程設計任務書</b></p><p>  課程 EDA技術課程設計</p><p><b>  題目 電子密碼鎖</b></p><p>  專業(yè) 電

2、子信息工程 姓名 學號 </p><p>  主要內容、基本要求、主要參考資料等</p><p><b>  主要內容:</b></p><p>  設計一個密碼鎖的控制電路,第一個按鈕觸動后的5秒內若未將鎖打開,則電路自動復位并進入自鎖狀態(tài),當輸入正確代碼時,輸出開鎖信號以推動執(zhí)行機構工作。</p><p&g

3、t;<b>  基本要求:</b></p><p>  1、設計一個密碼鎖的控制電路,當輸入正確代碼時,輸出開鎖信號以推動執(zhí)行機構工作,用紅燈亮、綠燈熄滅表示關鎖,用綠燈亮、紅燈熄滅表示開鎖;</p><p>  2、在鎖的控制電路中儲存一個可以修改的4位代碼,當開鎖按鈕開關(設置成8位,其中實際有效為4位,其余為虛設)的輸入代碼等于儲存代碼時,開鎖;</p&g

4、t;<p>  3、從第一個按鈕觸動后的5秒內若未將鎖打開,則電路自動復位并進入自鎖狀態(tài),使之無法再打開,并由揚聲器發(fā)出持續(xù)20秒的報警信號,并輸出一個信號推動LED不斷閃爍。</p><p><b>  主要參考資料:</b></p><p>  [1] 潘松著.EDA技術實用教程(第二版). 北京:科學出版社,2005.</p><

5、;p>  [2] 康華光主編.電子技術基礎 模擬部分. 北京:高教出版社,2006.</p><p>  [3] 閻石主編.數(shù)字電子技術基礎. 北京:高教出版社,2003.</p><p>  完成期限 2010.3.11 </p><p>  指導教師 </p><p>  專

6、業(yè)負責人 </p><p>  2010年 3月7日</p><p><b>  總體設計思想: </b></p><p>  本課程設計主要是基于VHDL文本輸入法設計電子密碼鎖,隨著社會物質財富的日益增長,安全防盜已成為全社會關注的問題?;贓DA技術設計的電子密碼鎖,以其價格便宜、安全可靠、使用方便,受

7、到了人們的普遍關注。而以現(xiàn)場可編程邏輯器件(FPGA)為設計載體,以硬件描述語言(VHDE)為主要表達方式,以QuartusⅡ開發(fā)軟件和GW48EDA開發(fā)系統(tǒng)為設計工具設計的電子密碼鎖,由于其能夠實現(xiàn)數(shù)碼輸入、數(shù)碼清除、密碼解除、密碼更改、密碼上鎖和密碼解除等功能,因此,能夠滿足社會對安全防盜的要求。</p><p>  1.系統(tǒng)設計實現(xiàn)的基本功能</p><p>  密碼輸入:每按下一個

8、數(shù)字鍵,就輸入一個數(shù)值,并在顯示器上顯示出該數(shù)值。同時將先前輸入的數(shù)據(jù)依次左移一個數(shù)字位置。</p><p>  密碼清除:按下清除鍵可清除前面所有的輸入值,清除成為“0000”。</p><p>  密碼更改:按下更改鍵可將目前數(shù)據(jù)設定為新的密碼。</p><p>  密碼上鎖:按下上鎖鍵可將密碼鎖上鎖。</p><p>  密碼解除:按下

9、解除鍵首先檢查輸入的密碼是否正確,密碼正確即解鎖。</p><p>  2. 電子密碼鎖的結構原理</p><p>  根據(jù)系統(tǒng)設計要求,系統(tǒng)設計采用自頂向下的設計方法。2.1 電子密碼鎖的整體結構</p><p>  (1)密碼鎖輸入模塊</p><p>  密碼鎖的輸入模塊由時序產(chǎn)生電路、鍵盤掃描電路、鍵盤譯碼電路和按鍵存儲電路組成

10、。如下圖示:</p><p><b>  圖1</b></p><p><b>  時序產(chǎn)生電路</b></p><p>  產(chǎn)生電路中使用的三種不同頻率的工作脈沖波形,即系統(tǒng)時鐘脈沖、彈跳消除取樣信號和鍵盤掃描信號。</p><p><b>  鍵盤掃描電路</b></

11、p><p>  掃描電路的作用是提供鍵盤掃描信號,掃描信號變化順序依次是1110—1101—1011—0111—1110.-----依序地周而復始。</p><p><b>  c.鍵盤譯碼電路</b></p><p>  上述鍵盤中的按鍵分為數(shù)字按鍵和文字按鍵,每一個按鍵可能負責不同的功能,例如清除鍵、上鎖鍵和解鎖鍵等。數(shù)字按鍵主要是用來輸入數(shù)字

12、的,但是鍵盤所產(chǎn)生的輸出是無法直接拿來用作密碼鎖控制電路的輸入的;另外,不同的按鍵具有不同的功能,所以必須由鍵盤譯碼電路來規(guī)劃每個按鍵的輸出形式,以便執(zhí)行相應的動作。</p><p><b>  按鍵存儲電路</b></p><p>  因為每一次掃描會產(chǎn)生新的按鍵數(shù)據(jù),可能會覆蓋前面的數(shù)據(jù),所以需要一個按鍵存儲電路。將整個鍵盤掃描完畢后的結果記錄下來。</p&

13、gt;<p>  按鍵位置與數(shù)碼關系(表)圖2</p><p>  圖3所示是密碼鎖輸入模塊的仿真波形</p><p>  二、設計步驟和調試過程</p><p>  密碼鎖的控制電路是整個電路的控制中心,主要完成對數(shù)字按鍵輸入和功能按鍵輸入的響應控制。</p><p>  a.數(shù)字按鍵輸入的響應控制</p>&l

14、t;p>  如果按下數(shù)字鍵,第一個數(shù)字會從顯示器的最右端開始顯示,此后每新按下一個數(shù)字時,顯示器上的數(shù)字必須左移一位,一邊將新的數(shù)字顯示出來。</p><p>  假如要更改輸入的數(shù)字,可以按倒退按鍵來清除前一個輸入的數(shù)字,或者按清除鍵清除所有輸入的數(shù)字,再重新輸入四位數(shù)。</p><p>  由于這里設計的是一個四位的電子密碼鎖,所以當輸入的數(shù)字鍵超過四個時,電路不予理會,而且不再

15、顯示第四個以后的數(shù)字。</p><p>  b.功能按鍵輸入響應控制</p><p>  清除鍵:清除所有的輸入數(shù)字,即做歸零動作。</p><p>  上鎖鍵:按下此鍵時可將密碼鎖的門上鎖(上鎖前必須先設定一個四位的電子密碼)。</p><p>  解除鍵:按下此建輝檢查輸入的密碼是否正確,若密碼正確無誤則解鎖。</p>&l

16、t;p>  圖4所示是密碼鎖控制模塊的仿真波形</p><p>  (3)密碼鎖譯碼模塊:本電子密碼鎖的顯示模塊比較簡單,其作用是將控制模塊的BCD碼輸出轉換為7段顯示編碼,然后驅動數(shù)碼管,其仿真波形如圖5所示。</p><p>  電子密碼鎖的整合和驗證要完成電子密碼鎖的設計,還必須將上述三個功能模塊進行整合。三、結論及心得體會</p><p>  此

17、次的設計是參考了《EDA技術實驗與課程設計》里的程序,不過由于程序里面出現(xiàn)了不少的語法錯誤,使得在編譯時出現(xiàn)了20多個錯誤,不過在看過書后,細心地檢查過程序后方能糾正過來。在糾正的過程中獲益良多。 在EDA軟件平臺上,用硬件描述語言VHDL完成設計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。感覺EDA還是很有研究價值的,能大大的減少設計

18、者的工作量。</p><p>  從編寫程序到完成此次課程設計,親自操作軟件起來從生硬到熟練,現(xiàn)在能較嫻熟的運用QuartusⅡ。</p><p><b>  附:VHDL源程序</b></p><p><b>  密碼鎖輸入模塊</b></p><p>  LIBRARY IEEE ; <

19、;/p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY SR IS</p><p>  PORT(CL

20、K_1K: IN STD_LOGIC;</p><p>  KEY_IN: IN STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p>  DATA_N: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  DATA_F: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p>

21、;<p>  FLAG_N: OUT STD_LOGIC;</p><p>  FLAG_F: OUT STD_LOGIC;</p><p>  CQD: OUT STD_LOGIC;</p><p>  KSEL: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  CSR: OUT STD

22、_LOGIC_VECTOR(1 DOWNTO 0));</p><p><b>  END SR;</b></p><p>  ARCHITECTURE ONE OF SR IS</p><p>  SIGNAL C_QD: STD_LOGIC;</p><p>  SIGNAL C_SR: STD_LOGIC_VECT

23、OR(1 DOWNTO 0); </p><p>  SIGNAL N,F: STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SIGNAL FN,FF: STD_LOGIC;</p><p>  SIGNAL SEL: STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SIGNAL

24、 Q: STD_LOGIC_VECTOR(5 DOWNTO 0);</p><p>  SIGNAL C: STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p><b>  BEGIN </b></p><p>  DATA_N<=N;</p><p>  DATA_F<=F;</

25、p><p>  FLAG_N<=FN;</p><p>  FLAG_F<=FF;</p><p>  CQD<=C_QD;</p><p>  CSR<=C_SR;</p><p>  KSEL<=SEL;</p><p>  C(0)<=KEY_IN(0);&

26、lt;/p><p>  C(1)<=KEY_IN(1);</p><p>  C(2)<=KEY_IN(2);</p><p>  COUNTER: BLOCK IS</p><p><b>  BEGIN </b></p><p>  PROCESS(CLK_1K)IS </p&g

27、t;<p><b>  BEGIN</b></p><p>  IF(CLK_1K'EVENT AND CLK_1K='1')THEN</p><p><b>  Q<=Q+1;</b></p><p><b>  END IF;</b></p>

28、<p>  C_QD<=Q(3);</p><p>  C_SR<=Q(5 DOWNTO 4);</p><p>  END PROCESS;</p><p>  SEL<="1110" WHEN C_SR=0 ELSE</p><p>  "1101" WHEN C_S

29、R=1 ELSE</p><p>  "1011" WHEN C_SR=2 ELSE</p><p>  "0111" WHEN C_SR=3 ELSE</p><p><b>  "1111";</b></p><p>  END BLOCK COUNTER;

30、</p><p>  KEY_DECODER: BLOCK</p><p>  SIGNAL Z: STD_LOGIC_VECTOR(4 DOWNTO 0);</p><p><b>  BEGIN </b></p><p>  PROCESS(C_QD)</p><p><b>  B

31、EGIN</b></p><p>  Z<=C_SR&C;</p><p>  IF(C_QD'EVENT AND C_QD='1') THEN</p><p><b>  CASE Z IS</b></p><p>  WHEN"11101"=>

32、;N<="0000";</p><p>  WHEN"00011"=>N<="0001";</p><p>  WHEN"00101"=>N<="0010";</p><p>  WHEN"00110"=>N&l

33、t;="0011";</p><p>  WHEN"01011"=>N<="0100";</p><p>  WHEN"01101"=>N<="0101";</p><p>  WHEN"01110"=>N<=&

34、quot;0110";</p><p>  WHEN"10011"=>N<="0111";</p><p>  WHEN"10101"=>N<="1000";</p><p>  WHEN"10110"=>N<="

35、;1001";</p><p>  WHEN OTHERS=>N<="1111";</p><p><b>  END CASE;</b></p><p><b>  END IF;</b></p><p>  IF C_QD'EVENT AND C

36、_QD='1' THEN</p><p>  CASE Z IS </p><p>  WHEN"11011"=>F<="0100";</p><p>  WHEN"11110"=>F<="0001";</p><p>  

37、WHEN OTHERS=>F<="1000";</p><p><b>  END CASE;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  FN<=NOT(N(3)AND N(2)

38、AND N(1)AND N(0));</p><p>  FF<=F(2) OR F(0);</p><p>  END BLOCK KEY_DECODER;</p><p>  END ARCHITECTURE ONE;</p><p><b>  密碼鎖控制模塊</b></p><p>

39、  LIBRARY IEEE ; </p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY CTRL IS</p

40、><p>  PORT (DATA_N: IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  DATA_F: IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  FLAG_N: IN STD_LOGIC;</p><p>  FLAG_F: IN STD_LOGIC;</p

41、><p>  MIMAIN: BUFFER STD_LOGIC;</p><p>  SETIN: BUFFER STD_LOGIC;</p><p>  OLD: BUFFER STD_LOGIC;</p><p>  CQD: IN STD_LOGIC;</p><p>  ENLOCK: OUT STD_LOGIC;

42、</p><p>  DATA_BCD: OUT STD_LOGIC_VECTOR(15 DOWNTO 0));</p><p>  END ENTITY CTRL;</p><p>  ARCHITECTURE ONE OF CTRL IS</p><p>  SIGNAL ACC,REG: STD_LOGIC_VECTOR(15 DOWN

43、TO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(CQD,FLAG_F) IS </p><p><b>  BEGIN </b></p><p>  IF CQD'EVENT AND CQD='0' THEN </p&g

44、t;<p>  IF FLAG_F='1' THEN </p><p>  IF(DATA_F="0100") THEN </p><p>  ACC<="1111111111111111";</p><p>  MIMAIN<='0'; SETIN<='

45、0'; OLD<='0';</p><p>  ELSIF(DATA_F="0001") THEN</p><p>  IF(MIMAIN='0' AND SETIN='0') THEN</p><p>  CASE ACC(7 DOWNTO 0) IS</p><

46、p>  WHEN"00010001"=>ENLOCK<='1';</p><p>  WHEN"10011001"=>MIMAIN<='1'; ACC<="1111111111111111";</p><p>  WHEN"01010101"=

47、>SETIN<='1'; ACC<="1111111111111111"; </p><p><b>  OLD<='1';</b></p><p>  WHEN OTHERS=>NULL;</p><p><b>  END CASE;</b&g

48、t;</p><p>  ELSIF(MIMAIN='1') THEN </p><p>  IF ACC=REG THEN</p><p>  ENLOCK<='0';</p><p>  MIMAIN<='0';</p><p><b>  EL

49、SE</b></p><p>  MIMAIN<='0';</p><p><b>  END IF;</b></p><p>  ELSIF(SETIN='1') THEN</p><p>  IF(OLD='1') THEN</p>&l

50、t;p>  IF(ACC=REG) THEN</p><p><b>  OLD<='0';</b></p><p><b>  ELSE</b></p><p>  SETIN<='0';</p><p><b>  OLD<=&#

51、39;0';</b></p><p><b>  END IF;</b></p><p><b>  ELSE</b></p><p>  IF(ACC<"1001100110011001") THEN</p><p><b>  REG<

52、;=ACC;</b></p><p>  SETIN<='0';</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p>

53、<p><b>  END IF;</b></p><p>  ELSIF FLAG_N='1' THEN </p><p>  ACC<=ACC(11 DOWNTO 0)&DATA_N;</p><p><b>  END IF;</b></p><p>&

54、lt;b>  END IF;</b></p><p>  END PROCESS;</p><p>  DATA_BCD<=ACC;</p><p>  END ARCHITECTURE ONE;</p><p><b>  密碼鎖譯碼模塊</b></p><p>  LI

55、BRARY IEEE ; </p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY YM IS</p><p>  PORT(DATA_BCD: IN STD_LOGIC_VECTOR(3 DOWN

56、TO 0);</p><p>  DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));</p><p><b>  END YM;</b></p><p>  ARCHITECTURE ONE OF YM IS</p><p><b>  BEGIN</b></p

57、><p>  PROCESS(DATA_BCD)</p><p><b>  BEGIN</b></p><p>  CASE DATA_BCD IS</p><p>  WHEN"0000"=>DOUT7<="0111111";</p><p> 

58、 WHEN"0001"=>DOUT7<="0000110";</p><p>  WHEN"0010"=>DOUT7<="1011011";</p><p>  WHEN"0011"=>DOUT7<="1001111";</p&g

59、t;<p>  WHEN"0100"=>DOUT7<="1100110";</p><p>  WHEN"0101"=>DOUT7<="1101101";</p><p>  WHEN"0110"=>DOUT7<="1111101&

60、quot;;</p><p>  WHEN"0111"=>DOUT7<="0000111";</p><p>  WHEN"1000"=>DOUT7<="1111111";</p><p>  WHEN"1001"=>DOUT7<=

61、"1101111";</p><p>  WHEN OTHERS=>DOUT7<="0000000";</p><p><b>  END CASE;</b></p><p>  END PROCESS;</p><p>  END ARCHITECTURE ONE;&

62、lt;/p><p><b>  主要參考資料:</b></p><p>  [1] 潘松著.EDA技術實用教程(第二版). 北京:科學出版社,2005.</p><p>  [2] 康華光主編.電子技術基礎 模擬部分. 北京:高教出版社,2006.</p><p>  [3] 閻石主編.數(shù)字電子技術基礎. 北京:高教出版社,

溫馨提示

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

評論

0/150

提交評論