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

下載本文檔

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

文檔簡介

1、<p>  EDA技術課程設計論文</p><p>  題 目 電子密碼鎖設計 </p><p>  課 程 名 稱 EDA技術實訓 </p><p>  院 (系) 電子通信工程學院 </p><p>  專 業(yè) 班 級 10電子信息工程3班  </p&g

2、t;<p>  設計起止時間:2012 年 12 月 3 日至 2012 年 12 月 21日</p><p><b>  目錄</b></p><p><b>  第1章 概述3</b></p><p>  第2章 設計要求4</p><p>  第3章 總體框圖5</p

3、><p>  第4章 功能模塊7</p><p>  4.1 輸入模塊7</p><p>  4.2 控制模塊11</p><p>  4.3 顯示模塊18</p><p>  第5章 總體設計電路圖20</p><p>  第6章 設計心得體會21</p><

4、p><b>  第1章 概述</b></p><p>  在當今社會中,人們對于隱私的保護和對物品安全的重視程度與日俱增。因此,使用了現(xiàn)代電子技術的電子密碼鎖便有了廣泛的應用前景。本次所設計的電子密碼鎖,能夠實現(xiàn)該六位十進制并行密碼保護,當輸入的密碼與鎖內(nèi)密碼一致時,綠燈亮,開鎖,當輸入的密碼與鎖內(nèi)的密碼不一致時,紅燈亮,不能開鎖。密碼鎖的密碼可由用戶自行設置,如果用戶忘記密碼

5、,可以用初始密碼來重新設置密碼。為人們的財產(chǎn)、信息安全提供了可靠地保障。</p><p>  本次設計基于VHDL語言,對并行六位電子密碼鎖進行設計,并對設計過程進行了詳細描述。電子密碼鎖在對財產(chǎn)安全保護等方面都有著重要作用應用前景非常廣泛。開鎖代碼為六位十進制數(shù),當輸入代碼的位數(shù)和位值與鎖內(nèi)給定的密碼一致,且按規(guī)定程序開鎖時,方可開鎖,并點亮開鎖指示燈。否則,系統(tǒng)進入“錯誤”狀態(tài)。開鎖程序由設計者確定,并要

6、求鎖內(nèi)給定的密碼是可調(diào)的且預置方便、保密性好。</p><p>  在這我將設計一個具有較低成本的電子密碼鎖,本文講述了我整個設計過程及收獲。講述了電子密碼鎖的的工作原理以及各個模塊的功能,并講述了所有部分的設計思路,對各部分電路方案的選擇、元器件的篩選、以及對它們的調(diào)試、對波形圖的分析,到最后的總體圖的分析。</p><p><b>  第2章 設計要求</b>&

7、lt;/p><p>  本設計名稱為基于VHDL語言的電子密碼鎖,用四個模塊,分別為時序控制模塊、輸入模塊、控制模塊、顯示模塊,來控制密碼的輸入、驗證、修改與顯示。</p><p>  設計所要實現(xiàn)的功能為:</p><p>  1、數(shù)碼輸入:設計六位密碼的電子密碼鎖,用四個撥碼開關(key1~key4)輸入,并通過七段數(shù)碼管顯示輸入密碼。</p><

8、;p>  2、密碼驗證:輸入密碼后, 密碼正確時開鎖,綠燈亮,紅燈滅,表示開鎖成功。</p><p>  3、錯誤顯示:當密碼輸入錯誤時,綠燈滅,紅燈亮,表示開鎖失敗。</p><p>  4、更改密碼:設置更改密碼功能</p><p>  5、密碼清除:密碼輸入過程中可以清除,并重新輸入。</p><p>  6、預設初始密碼為學號后

9、六位。設置按鍵還原初始密碼。</p><p><b>  第3章 總體框圖</b></p><p><b>  1)設計方案:</b></p><p>  電子密碼鎖,主要由四部分組成:時序控制電路、密碼輸入電路、密碼鎖控制電路和密碼鎖顯示電路。</p><p>  時序控制電路來控制整個系統(tǒng)的運行

10、時序,使其不會發(fā)生混亂。</p><p>  作為電子密碼鎖的輸入電路,可選用的方案有撥碼與按鍵來控制輸入和觸摸式鍵盤輸入等多種。撥碼與按鍵和觸摸式4*4鍵盤相比簡單方便而且成本低,構成的電路簡單,本設計中采用撥碼來作為該設計的輸入設備。密碼鎖的輸入電路由撥碼輸入、計數(shù)器、譯碼器組成。</p><p>  密碼鎖控制電路包括按鍵數(shù)據(jù)的緩沖存儲電路,密碼的清除、存儲、激活電鎖電路(寄存器清除

11、信號發(fā)生電路),密碼核對(數(shù)值比較電路),解鎖電路(開/關門鎖電路)等幾個小的功能電路。</p><p>  數(shù)字電子密碼鎖的顯示信息電路可采用LED數(shù)碼顯示管和液晶屏顯示兩種。液晶顯示具有高速顯示、可靠性高、易于擴展和升級的特點,但是普通的液晶存在亮度低、對復雜環(huán)境適應能力差的特點,但是在本設計中任然使用LED數(shù)碼管。</p><p>  根據(jù)以上選定的輸入設備與與顯示器件,并考慮到現(xiàn)實

12、各項密碼鎖功能的具體要求,與系統(tǒng)的設計要求,系統(tǒng)設計采用自頂向下的設計方案。整個密碼鎖系統(tǒng)的總體框圖如圖所示。</p><p><b>  第4章 功能模塊</b></p><p><b>  4.1 輸入模塊</b></p><p><b>  1)功能介紹</b></p><

13、p>  輸入時有四個撥碼鍵控制輸入,每四個撥碼來控制一位密碼,再設一個撥碼鍵a,每撥一次此按碼鍵a,表示輸入一位密碼,在用計數(shù)器來計數(shù),每輸入一位密碼時計數(shù)一次,并輸出一位密碼。由于是撥碼輸入,加上消抖電路,使輸入更加穩(wěn)定。</p><p><b>  輸入模塊與仿真圖形</b></p><p>  撥碼與按鍵輸入如下圖</p><p>

14、  上圖為撥碼輸入,當a給一個上升沿信號,在qout輸出一個密碼。</p><p><b>  計數(shù)器如下圖</b></p><p>  上圖為計數(shù)器,沒輸入一個密碼計數(shù)一次。</p><p><b>  消抖電路如下圖</b></p><p><b>  3)程序的輸入</b>

15、;</p><p>  在文本區(qū)內(nèi)輸入程序,程序如下:</p><p><b>  撥碼與按鍵輸入</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL; </p><p>  ENTITY mimasuo IS<

16、/p><p>  PORT(key0,key1,key2,key3,ret,a:IN STD_LOGIC;</p><p>  qout:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p>  END ENTITY mimasuo;</p><p>  ARCHITECTURE one OF mimasuo IS

17、</p><p><b>  BEGIN</b></p><p>  PROCESS(a)</p><p>  VARIABLE q:STD_LOGIC_VECTOR(0 TO 3);</p><p><b>  BEGIN</b></p><p>  IF ret='

18、;1' THEN </p><p>  q:=(others=>'0');</p><p><b>  ELSE</b></p><p>  if a'event and a='1' then</p><p>  q(3):=key3;</p><

19、p>  q(2):=key2;</p><p>  q(1):=key1;</p><p>  q(0):=key0;</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  qout

20、<=q;</b></p><p>  END PROCESS;</p><p>  end ARCHITECTURE one;</p><p><b>  計數(shù)器</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_

21、1164.ALL;</p><p>  USE IEEE.STD_LOGIC_unsigned.all;</p><p>  ENTITY cnt4 IS</p><p>  PORT (a:IN STD_LOGIC;</p><p>  Q:OUT STD_LOGIC_vector(0 to 2));</p><p>

22、;<b>  END cnt4;</b></p><p>  ARCHITECTURE BEHAVE OF cnt4 IS</p><p>  SIGNAL q1:STD_LOGIC_vector(0 to 2);</p><p><b>  BEGIN</b></p><p>  PROCESS(

23、a)</p><p><b>  BEGIN</b></p><p>  if a'event and a='1' then q1 <= q1 + 1;</p><p>  if q1="110" then q1<="001";</p><p>

24、<b>  end if;</b></p><p><b>  end if;</b></p><p>  END PROCESS;</p><p><b>  Q<=q1;</b></p><p>  END BEHAVE;</p><p>&l

25、t;b>  4.2 控制模塊</b></p><p><b>  1)功能介紹</b></p><p>  開鎖時,用四個撥碼鍵來輸入密碼,計數(shù)器來計數(shù)密碼的個數(shù),將輸入的密碼與用戶密碼在比較器里進行比較,當輸入的密碼與開始時寄存在寄存器B中的密碼一樣時,則開鎖,綠燈亮led1為高電平,紅燈滅led2為低電平,當密碼輸入錯時,綠燈滅led1為低電平

26、,紅燈亮led2為高電平。當修改密碼時,在寄存器B中,使key6鍵為高電平,即可在輸入端就能輸入要修改的密碼。按ret鍵可清除輸入時輸錯的密碼。初始密碼,可以在第一次輸入時,按key6鍵,來存儲密碼。</p><p><b>  控制模塊與仿真圖形</b></p><p><b>  寄存器A 如下圖:</b></p><p&

27、gt;  上圖為寄存器A,存儲每次輸入的密碼。</p><p>  在文本區(qū)內(nèi)輸入程序,程序如下:</p><p><b>  寄存器A</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ent

28、ity dff1 is</p><p>  port(clk:in std_logic;</p><p>  key6:in std_logic;</p><p>  j:in std_logic_vector(0 to 2);</p><p>  d:in STD_LOGIC_vector(0 to 3);</p><p

29、>  q0:out STD_LOGIC_vector(0 to 3);</p><p>  q1:out STD_LOGIC_vector(0 to 3);</p><p>  q2:out STD_LOGIC_vector(0 to 3);</p><p>  q3:out STD_LOGIC_vector(0 to 3);</p><p

30、>  q4:out STD_LOGIC_vector(0 to 3);</p><p>  q5:out STD_LOGIC_vector(0 to 3));</p><p>  end entity dff1;</p><p>  ARCHITECTURE one OF dff1 IS</p><p><b>  begin

31、</b></p><p>  process(j,clk)</p><p><b>  begin</b></p><p>  if clk'event and clk='1' and key6 = '0' then</p><p><b>  case j

32、 is</b></p><p>  when "001" =>q0<=d;</p><p>  when "010" =>q1<=d;</p><p>  when "011" =>q2<=d;</p><p>  when &qu

33、ot;100" =>q3<=d;</p><p>  when "101" =>q4<=d;</p><p>  when "110"=>q5<=d;</p><p>  when others => null ;</p><p><b> 

34、 end case;</b></p><p>  end if; </p><p>  end process;</p><p><b>  end one;</b></p><p><b>  寄存器B 如下圖:</b></p><p>  上圖為寄存器B,

35、存儲設置的用戶密碼,當key6為高電平時,可以來修改密碼。</p><p>  在文本區(qū)內(nèi)輸入程序,程序如下:</p><p><b>  寄存器B</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>

36、;  entity dff02 is</p><p>  port(clk:in std_logic;</p><p>  key6:in std_logic;</p><p>  j:in std_logic_vector(0 to 2);</p><p>  d:in STD_LOGIC_vector(0 to 3);</p>

37、<p>  q0:out STD_LOGIC_vector(0 to 3);</p><p>  q1:out STD_LOGIC_vector(0 to 3);</p><p>  q2:out STD_LOGIC_vector(0 to 3);</p><p>  q3:out STD_LOGIC_vector(0 to 3);</p>

38、<p>  q4:out STD_LOGIC_vector(0 to 3);</p><p>  q5:out STD_LOGIC_vector(0 to 3));</p><p>  end entity dff02;</p><p>  ARCHITECTURE one OF dff02 IS</p><p><b&g

39、t;  begin</b></p><p>  process(j,clk)</p><p><b>  begin</b></p><p>  if clk'event and clk='1' and key6 = '1' then</p><p><b>

40、;  case j is</b></p><p>  when "001" =>q0<=d;</p><p>  when "010" =>q1<=d;</p><p>  when "011" =>q2<=d;</p><p> 

41、 when "100" =>q3<=d;</p><p>  when "101" =>q4<=d;</p><p>  when "110"=>q5<=d;</p><p>  when others => null ;</p><p>&

42、lt;b>  end case;</b></p><p>  end if; </p><p>  end process;</p><p><b>  end one;</b></p><p><b>  比較器 如下圖:</b></p><p>  

43、上圖為密碼輸入正確、錯誤時的比較器,當ok鍵為高電平時,進行比較。</p><p>  在文本區(qū)內(nèi)輸入程序,程序如下:</p><p><b>  比較器</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p

44、>  entity bijiao is</p><p>  port(ok:in std_logic;</p><p>  n0,n1,n2,n3,n4,n5,b0,b1,b2,b3,b4,b5: in STD_LOGIC_vector(0 to 3);</p><p>  led1:out std_logic;</p><p>  l

45、ed2:out std_logic);</p><p><b>  end;</b></p><p>  ARCHITECTURE one OF bijiao IS</p><p>  SIGNAL Q1,Q2 : STD_LOGIC ;</p><p><b>  begin</b></p&

46、gt;<p>  process(n0,n1,n2,n3,n4,n5,b0,b1,b2,b3,b4,b5,ok)</p><p><b>  begin</b></p><p>  if ok='1' then </p><p>  if n0=b0 and n1=b1 and n2=b2 and n3=b3

47、and n4=b4 and n5=b5 then</p><p>  Q1 <= '1' ; </p><p>  Q2 <= '0' ;</p><p>  ELSE Q1 <= '0' ;</p><p>  Q2 <= '1';</p>

48、<p><b>  END IF ; </b></p><p><b>  end if; </b></p><p>  END PROCESS;</p><p>  led1<=Q1;led2<=Q2;</p><p><b>  END one;</b&g

49、t;</p><p><b>  六選一選擇器如下圖</b></p><p><b>  上圖為六選一選擇器</b></p><p>  在文本區(qū)內(nèi)輸入程序,程序如下:</p><p><b>  六選一選擇器</b></p><p>  LIBRARY

50、 IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_unsigned.all;</p><p>  ENTITY mux61a IS</p><p>  PORT (q0,q1,q2,q3,q4,q5:in STD_LOGIC_vector(0

51、to 3);</p><p>  j:in STD_LOGIC_vector(0 to 2);</p><p>  led: out std_logic_vector(5 downto 0);</p><p>  y:out STD_LOGIC_vector(0 to 3));</p><p><b>  end;</b>

52、;</p><p>  ARCHITECTURE one OF mux61a IS</p><p><b>  begin</b></p><p>  process (j) </p><p><b>  begin </b></p><p><b>  case

53、j is</b></p><p>  when "000"=>led <= "011111";y<=q0;</p><p>  when "001"=>led <= "101111";y<=q1;</p><p>  when "

54、010"=>led <= "110111";y<=q2;</p><p>  when "011"=>led <= "111011";y<=q3;</p><p>  when "100"=>led <= "111101";y<

55、=q4; </p><p>  when "101"=>led <= "111110";y<=q5;</p><p>  when others => null ;</p><p>  end case ;</p><p>  end process ;</p>

56、<p>  end one ; </p><p><b>  4.3 顯示模塊</b></p><p><b>  1)功能介紹</b></p><p>  將密碼用BCD七段數(shù)碼管顯示</p><p>  2)顯示模塊與仿真波形圖,如下圖</p><p> 

57、 上圖將BCD碼轉化到七段譯碼電路上</p><p>  在文本區(qū)內(nèi)輸入程序,程序如下:</p><p><b>  七段譯碼器</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL; </p><p>  ENTITY

58、 decl7s IS</p><p>  PORT(a:in std_logic_vector(0 to 3 );</p><p>  led7s:out std_logic_vector(0 to 6));</p><p><b>  end;</b></p><p>  ARCHITECTURE one OF dec

59、l7s IS</p><p><b>  BEGIN</b></p><p>  PROCESS(a)</p><p><b>  begin</b></p><p><b>  case a is</b></p><p>  when "00

60、00"=> led7s <= "1000000";</p><p>  when "0001"=> led7s <= "1111001";</p><p>  when "0010"=> led7s <= "0100100";</p>

61、<p>  when "0011"=> led7s <= "0110000";</p><p>  when "0100"=> led7s <= "0011001";</p><p>  when "0101"=> led7s <= &quo

62、t;0010010";</p><p>  when "0110"=> led7s <= "0000010";</p><p>  when "0111"=> led7s <= "1111000";</p><p>  when "1000&q

63、uot;=> led7s <= "0000000";</p><p>  when "1001"=> led7s <= "0010000";</p><p>  when others => null;</p><p><b>  end case;</b>

64、;</p><p>  end process;</p><p><b>  end;</b></p><p>  第5章 總體設計電路圖</p><p><b>  1)功能介紹</b></p><p>  將各個模塊連接在一起實現(xiàn)。</p><p>

65、;<b>  2)頂層文件如下:</b></p><p><b>  波形仿真如下:</b></p><p>  當key6為高電平時輸入密碼進如寄存器A,存儲密碼,當key6為低電平時,輸入密碼進入寄存器B,當寄存器B中的輸入密碼與寄存器A相同時為“104205”led1為高電平、led2為低電平,密碼鎖開鎖。設計正確。</p>

66、<p>  第6章 設計心得體會</p><p>  通過這次設計,使我對EDA產(chǎn)生了濃厚的興趣。特別是當每一個子模塊編寫調(diào)試成功時,心里特別的開心。在當所有子模塊都編寫好了,連在一起時,運行時,我遇到了很大的麻煩,一直被時序問題所困擾,不能仿真出結果,在試驗箱里也不能顯示密碼。當解決了這個問題時,我特別的高興。當連接到試驗箱上顯示時,由于沒有加消抖電路,所以在試驗箱上顯示很不穩(wěn)定,所以在設計時應加上消

67、抖電路,讓輸入、輸出更穩(wěn)定。</p><p>  其次,在進行引腳連接時一定要細心,有些引腳不能使用,并且在撥碼輸入時要注意四個撥碼的高地位,我因為沒注意使得開始時一直不能得到正確的結果。這次EDA課程設計歷時三個星期,在整整三個星期的日子里,可以說是苦多于甜,但是可以學的到很多很多的東西,同時不僅可以鞏固以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。</p><p>  通

68、過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正的學以致用,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到的問題,反映出來我的許多不足之處,我以后要努力克服缺點。</p><p>  總的來說,這次設計的密碼鎖還是比較成功的,在設計中遇到了很多問題,最后在同學和老師的辛勤的指導下外加上自己的努力,終于都得

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論