版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 在線系統(tǒng)課程設計報告</p><p><b> 電子密碼鎖設計</b></p><p> 院 (系):電氣與信息工程學院 </p><p> 專 業(yè):應用電子技術 </p><p> 學生姓名: </p><p> 學
2、 號: </p><p> 指導教師: </p><p> 2011年12月26日-2012年1月6日</p><p><b> 目錄</b></p><p><b> 第1章 概述2</b></p><p> 第2章 設計要求2</
3、p><p> 第3章 總體框圖3</p><p> 第4章 功能模塊5</p><p> 4.1 輸入模塊5</p><p> 4.2 控制模塊8</p><p> 4.3 顯示模塊16</p><p> 第5章 總體設計電路圖18</p><p&g
4、t; 第6章 設計心得體會21</p><p><b> 參考文獻22</b></p><p><b> 第1章 概述</b></p><p> 電子密碼鎖在生活中十分常見,在這我將設計一個具有較低成本的電子密碼鎖,本文講述了我整個設計過程及收獲。講述了電子密碼鎖的的工作原理以及各個模塊的功能,并講述了所有部分
5、的設計思路,對各部分電路方案的選擇、元器件的篩選、以及對它們的調試、對波形圖的分析,到最后的總體圖的分析。</p><p><b> 第2章 設計要求</b></p><p> 本設計名稱為電子密碼鎖,用四個模塊,分別為輸入模塊、控制模塊、掃描器模塊、顯示模塊,來控制密碼的輸入、驗證與顯示。</p><p> 設計所要實現的功能為:<
6、;/p><p> 1 數碼輸入:手動用3個撥碼開關與3個按鍵設計三位密碼的輸入,并在顯示器顯示出該數值。</p><p> 2 數碼驗證:開鎖時輸入密碼后,撥動 RT鍵使其為高電平,而CHANGE為低電平檢測,密碼正確時開鎖,輸出LOCKOPEN燈滅,LOCKCLOSE燈亮,表示開鎖成功。</p><p> 3 錯誤顯示:當密碼輸入錯誤時,LOCKOPEN燈亮,L
7、OCKCLOSE燈滅,表示開鎖失敗。</p><p> 4 更改密碼:當改變密碼時,按下CHANGE鍵使其為高電平,而RT為低電平時,可改變密碼。</p><p> 5 密碼清除:按下REST可清除前面的輸入值,清除為“888”。</p><p><b> 第3章 總體框圖</b></p><p><b>
8、; 1)設計方案:</b></p><p> 電子密碼鎖,主要由三部分組成:密碼輸入電路、密碼鎖控制電路和密碼鎖顯示電路。</p><p> 作為電子密碼鎖的輸入電路,可選用的方案有撥碼與按鍵來控制輸入和觸摸式鍵盤輸入等多種。撥碼與按鍵和觸摸式4*4鍵盤相比簡單方便而且成本低,構成的電路簡單,本設計中采用撥碼與按鍵來作為該設計的輸入設備。</p><p
9、> 數字電子密碼鎖的顯示信息電路可采用LED數碼顯示管和液晶屏顯示兩種。液晶顯示具有高速顯示、可靠性高、易于擴展和升級的特點,但是普通的液晶存在亮度低、對復雜環(huán)境適應能力差的特點,但是在本設計中任然使用LED數碼管。</p><p> 根據以上選定的輸入設備與與顯示器件,并考慮到現實各項密碼鎖功能的具體要求,與系統(tǒng)的設計要求,系統(tǒng)設計采用自頂向下的設計方案。整個密碼鎖系統(tǒng)的總體總體框圖如圖3.1所示。&
10、lt;/p><p> 圖3.1電子密碼鎖系統(tǒng)總體框圖</p><p><b> 第4章 功能模塊</b></p><p><b> 4.1 輸入模塊</b></p><p><b> 1)功能介紹</b></p><p> 輸入時有三個撥碼鍵控制
11、輸入,每個撥碼各控制一位密碼,對于其中一個撥碼鍵每撥一次碼按一次按鍵,表示輸入一位,當輸入四位時輸出一位數,用“888”作為初始密碼。</p><p> 2)輸入模塊與仿真圖形</p><p> 單脈沖控制如圖4.1如下圖</p><p><b> 圖4.1</b></p><p> 上圖為單脈沖控制輸入,當M給
12、一上升沿信號將在PUL輸出一位與之對應的高或低電平。</p><p> 四位串行輸入并行輸出寄存器如下圖4.2</p><p><b> 圖4.2</b></p><p> 上圖為4為串行輸入并行輸出寄存器,它由4個D觸發(fā)組成,當reset為高電平時,每給一脈沖輸入數據將向右移一位二值代碼,它能同時復位</p><p&
13、gt;<b> 3)程序的輸入</b></p><p> 在文本區(qū)內輸入程序,程序如下: </p><p><b> 單脈沖信號控制</b></p><p><b> puls.vhd</b></p><p> LIBRARY IEEE;</p><
14、;p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY puls IS</p><p> PORT (PUL,M:IN STD_LOGIC;</p><p> Q:OUT STD_LOGIC);</p><p><b> END puls;</b></p&g
15、t;<p> ARCHITECTURE BEHAVE OF puls IS</p><p> SIGNAL TEMP:STD_LOGIC;</p><p><b> BEGIN</b></p><p> PROCESS(M)</p><p><b> BEGIN</b><
16、;/p><p> IF M'EVENT AND M='1' THEN</p><p> IF PUL='1' THEN </p><p> TEMP<='1';</p><p> ELSE TEMP<='0';</p><p>&l
17、t;b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> Q<=TEMP;</b></p><p> END BEHAVE;</p><p>
18、4位串行輸入并行輸出寄存器</p><p> shifter.vhd</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY shifter IS</p><p><b> PORT</b>
19、</p><p> (din:INSTD_LOGIC;</p><p> reset,CLK: INSTD_LOGIC;</p><p> qout: buffer STD_LOGIC_VECTOR(0 TO 3)</p><p><b> );</b></p><p> END s
20、hifter;</p><p> ARCHITECTURE act OF shifter IS</p><p><b> BEGIN</b></p><p> PROCESS(CLK)</p><p> VARIABLE q:STD_LOGIC_VECTOR(0 TO 3);</p><
21、p><b> BEGIN</b></p><p> IF reset='0' THEN </p><p> q:=(others=>'0');</p><p><b> ELSE</b></p><p> if clk'event and
22、 clk='1' then</p><p> q(3):=q(2);</p><p> q(2):=q(1);</p><p> q(1):=q(0);</p><p> q(0):=din;</p><p><b> END IF;</b></p><
23、;p><b> END IF;</b></p><p><b> qout<=q;</b></p><p> END PROCESS;</p><p> END architecture act;</p><p><b> 4.2 控制模塊</b>&l
24、t;/p><p><b> 1)功能介紹</b></p><p> 開鎖時輸入密碼后,撥動 RT鍵使其為高電平,而CHANGE為低電平檢測,密碼正確時開鎖,輸出LOCKOPEN燈滅,LOCKCLOSE燈亮,表示開鎖成功。當密碼輸入錯誤時,LOCKOPEN燈亮,LOCKCLOSE燈滅,表示開鎖失敗。當改變密碼時,按下CHANGE鍵使其為高電平,而RT為低電平時,可改變密
25、碼。按下REST可清除前面的輸入值,清除為“888”。</p><p> 2)控制模塊與仿真圖形</p><p> 輸入譯碼器圖4.3,如下圖</p><p><b> 圖4.3</b></p><p> 上圖為譯碼器將4位二值代碼轉化成BCD碼從“0000”~“1001”表示</p><p&
26、gt;<b> 0~9。</b></p><p> 表4-1輸入譯碼的真值表</p><p> 輸入 輸出</p><p> D C B A Y1 Y2 Y3 Y4 字形</p>
27、<p> 0 0 0 0 0 0 0 0 0</p><p> 0 0 0 1 0 0 0 1 1</p><p> 0 0 1 0 0 0
28、 1 0 2</p><p> 0 0 1 1 0 0 1 1 3</p><p> 0 1 0 0 0 1 0 0 4</p><p>
29、 0 1 0 1 0 1 0 1 5 </p><p> 0 1 1 0 0 1 1 0 6</p><p> 0 1 1 1 0 1 1
30、 1 7 </p><p> 1 0 0 0 1 0 0 0 8 </p><p> 1 0 0 1 1 0 0 1 9</p><p><b
31、> 表4-1</b></p><p> 總功能控制模塊圖4.4,如下圖</p><p><b> 圖4.4</b></p><p> 當CHANGE為高電平且rt為低電平時開始輸入密碼這時lockopen為高電平,而lockclose為低電平,當rt為高電平,change為低電平時開始檢測密碼,如上圖開始密碼為“108
32、”當再次出現“108”時lockopen為高電平,而lockclose為低電平,當密碼錯誤時lockopen為低電平,而lockclose為高電平。</p><p> 4選1選擇器與掃描器圖4.5,如下圖</p><p><b> 圖4.5</b></p><p> 如上圖多路選擇器可以從多組數據來源中選取一組送入目的地,在本設計中利用多
33、路選擇器做掃描電路來分別驅動輸出裝置,可以將低成本消耗,如上圖當輸入“819”時,在時鐘地控制下qout將輸出“819”,而與之對應的sel掃描對應的數碼管。</p><p> 在文本區(qū)內輸入程序,程序如下:</p><p><b> 輸入譯碼器</b></p><p> KEY.vhd </p>
34、<p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL; </p><p> ENTITY KEY IS</p><p> PORT(clk:IN STD_LOGIC;</p><p> data:IN STD_LOGIC_VECTOR(3 DOWNTO 0);&l
35、t;/p><p> q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> q1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p> END ENTITY KEY;</p><p> ARCHITECTURE ART OF KEY IS</p><p
36、><b> BEGIN</b></p><p> PROCESS(clk,data)IS</p><p><b> BEGIN</b></p><p> IF clk'EVENT AND clk='1' THEN</p><p> CASE data IS&l
37、t;/p><p> WHEN "0000"=>q<="0000";q1<="0000";</p><p> WHEN "0001"=>q<="0001";q1<="0001";</p><p> WHEN &q
38、uot;0010"=>q<="0010";q1<="0010";</p><p> WHEN "0011"=>q<="0011";q1<="0011";</p><p> WHEN "0100"=>q<=&qu
39、ot;0100";q1<="0100";</p><p> WHEN "0101"=>q<="0101";q1<="0101";</p><p> WHEN "0110"=>q<="0110";q1<="0
40、110";</p><p> WHEN "0111"=>q<="0111";q1<="0111";</p><p> WHEN "1000"=>q<="1000";q1<="1000";</p><p&
41、gt; WHEN "1001"=>q<="1001";q1<="1001";</p><p> WHEN OTHERS=>q<="0000";q1<="0000";</p><p><b> END CASE;</b></
42、p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END ARCHITECTURE ART;</p><p><b> 總功能控制模塊</b></p><p> Eleclock.vhd</p>&
43、lt;p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY Eleclock IS</p><p> PORT(NB:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> NS:IN STD_LOGIC
44、_VECTOR(3 DOWNTO 0);</p><p> NG:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> CLK:IN STD_LOGIC;</p><p> CHANGE,RT: IN STD_LOGIC;</p><p> DB:OUT STD_LOGIC_VECTOR(3 DOWNT
45、O 0);</p><p> DS:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> DG:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> LOCKOPEN,LOCKCLOSE:OUT STD_LOGIC);</p><p> END ENTITY Eleclo
46、ck;</p><p> ARCHITECTURE ART OF Eleclock IS</p><p> COMPONENT Key IS</p><p> PORT(CLK:IN STD_LOGIC;</p><p> DATA:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p&
47、gt; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> Q1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)</p><p><b> );</b></p><p> END COMPONENT Key;</p><p> SIGNAL ENABLE,
48、C0,C1,S,ENABLE1:STD_LOGIC;</p><p> SIGNAL TB,TS,TG,D_B,D_S,D_G:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN</b></p><p> ENABLE<=CHANGE AND(NOT RT);</p>&l
49、t;p> ENABLE1<=RT AND(NOT CHANGE);</p><p> U0:KEY PORT MAP(CLK=>CLK,DATA=>NB,Q=>DB,Q1=>D_B);</p><p> U1:KEY PORT MAP(CLK=>CLK,DATA=>NS,Q=>DS,Q1=>D_S);</p>
50、<p> U2:KEY PORT MAP(CLK=>CLK,DATA=>NG,Q=>DG,Q1=>D_G);</p><p> PROCESS(CLK,D_B,D_S,D_G) IS</p><p><b> BEGIN</b></p><p> IF CLK'EVENT AND CLK=
51、39;1' THEN</p><p> IF ENABLE='1' THEN</p><p><b> TB<=D_B;</b></p><p><b> TS<=D_S;</b></p><p><b> TG<=D_G;</b&g
52、t;</p><p><b> END IF;</b></p><p> IF ENABLE1='1' THEN</p><p> IF ( TB<=D_B AND TS<=D_S AND TG<=D_G) THEN</p><p> LOCKOPEN<='1
53、9;;</p><p> LOCKCLOSE<='0';</p><p><b> ELSE</b></p><p> LOCKOPEN<='0';</p><p> LOCKCLOSE<='1';</p><p><
54、b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END ARCHITECTURE ART;</p><p&g
55、t; 4選1選擇器與掃描器</p><p><b> sel.vhd</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p&
56、gt; USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY sel IS</p><p> PORT(QIN1,QIN2,QIN3:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> CLK,RST:IN STD_LOGIC;</p><p> QOUT:
57、OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> sel:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));</p><p><b> END sel;</b></p><p> ARCHITECTURE ART OF sel IS</p><p><b&
58、gt; BEGIN</b></p><p> PROCESS(CLK,RST)</p><p> VARIABLE CNT:INTEGER RANGE 0 TO 2;</p><p><b> BEGIN</b></p><p> IF (RST='0') THEN</p>
59、;<p><b> CNT:=0;</b></p><p> sel <="00000000";</p><p> QOUT<="0000";</p><p> ELSIF CLK'EVENT AND CLK='1' THEN</p>
60、<p> IF CNT=2 THEN</p><p><b> CNT:=0;</b></p><p><b> ELSE</b></p><p> CNT:=CNT+1;</p><p><b> END IF;</b></p><p
61、> CASE CNT IS</p><p> WHEN 0=>QOUT<=QIN1;</p><p> sel <="11111110";</p><p> WHEN 1=>QOUT<=QIN2;</p><p> sel<="11111101";&l
62、t;/p><p> WHEN 2=>QOUT<=QIN3;</p><p> sel<="11111011";</p><p> WHEN OTHERS=>QOUT<="0000";</p><p> sel<="11111111";</
63、p><p><b> END CASE;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END ARCHITECTURE ART;</p><p><b> 4.3 顯示模塊</
64、b></p><p><b> 1)功能介紹</b></p><p> 將密碼用BCD七段數碼管顯示</p><p> 2)顯示模塊與仿真波形圖4.6,如下圖</p><p><b> 圖4.6</b></p><p> 上圖將BCD碼轉化到七段譯碼電路上&l
65、t;/p><p> 表4-2 BCD-七段數碼管的真值表</p><p> 輸入 輸出</p><p> D C B A Y1 Y2 Y3 Y4 Y5 Y6 Y7 字形</p><p> 0 0
66、 0 0 1 1 1 1 1 1 0 0</p><p> 0 0 0 1 0 1 1 0 0 0 0 1</p><p> 0 0 1 0 1 1 0 1 1
67、0 1 2</p><p> 0 0 1 1 0 1 1 1 0 0 1 3</p><p> 0 1 0 0 0 1 1 0 0 1 1 4</p><p> 0 1
68、 0 1 1 0 1 1 0 1 1 5</p><p> 0 1 1 0 1 0 1 1 1 1 1 6</p><p> 0 1 1 1 1 1 1 0 0
69、0 0 7</p><p> 1 0 0 0 1 1 1 1 1 1 1 8</p><p> 1 0 0 1 1 1 1 0 0 1 1 9</p><p><b>
70、表4-2</b></p><p> 在文本區(qū)內輸入程序,程序如下:</p><p><b> Seg7.vhd</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE
71、.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY Seg7 IS</p><p> PORT(num:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> led:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));</p><p><b> EN
72、D Seg7;</b></p><p> ARCHITECTURE ACT OF Seg7 IS</p><p><b> BEGIN</b></p><p> LED<="1111110"WHEN num="0000"ELSE</p><p> &quo
73、t;0110000"WHEN num ="0001"ELSE</p><p> "1101101"WHEN num ="0010"ELSE</p><p> "1111001"WHEN num ="0011"ELSE</p><p> "01
74、10011"WHEN num ="0100"ELSE</p><p> "1011011"WHEN num ="0101"ELSE</p><p> "1011111"WHEN num ="0110"ELSE</p><p> "111000
75、0"WHEN num ="0111"ELSE</p><p> "1111111"WHEN num ="1000"ELSE</p><p> "1111011"WHEN num ="1001"ELSE</p><p> "1110111&qu
76、ot;WHEN num ="1010"ELSE</p><p> "0011111"WHEN num ="1011"ELSE</p><p> "1001110"WHEN num ="1100"ELSE</p><p> "0111101"W
77、HEN num ="1101"ELSE</p><p> "1001111"WHEN num ="1110"ELSE</p><p> "1000111"WHEN num ="1111";</p><p><b> END ACT;</b>
78、</p><p> 第5章 總體設計電路圖</p><p><b> 1)功能介紹</b></p><p> 將各個模塊連接在一起實現。</p><p><b> 2)頂層文件如下:</b></p><p><b> 3)波形仿真如下:</b>
79、</p><p><b> 圖5﹒1</b></p><p> 當change為高電平,rt為低電平時,輸入“952”驗證,當再次輸入“952”時鎖打開,設計正確。</p><p> 第6章 設計心得體會</p><p> 通過為期兩個星期的實訓,雖然時間倉促,而且還加上考試,可以說是很匆忙的完成了此次的在線系統(tǒng)
80、編程課程設計;不言而喻,完成的質量也可想而知了,但倉促中也學到了很多東西。在前面的EDA實驗中,我初步認識了用Quartus 2,并大概了學會應用了它,</p><p> 但在這次的實訓中使我更加全面的了解了Quartus 2,而且更深一步的掌握了這個軟件。</p><p><b> 參考文獻</b></p><p> [1] 閻石主編.
81、《數字電子技術基礎》(第五版).高等教等育出版社.,2007</p><p> [2] 李國麗 朱維勇 何劍春.《EDA與數字系統(tǒng)設計》(第2版).機械工業(yè)出版社.,2002</p><p> [3] 宋武烈,等.《EDA技術實用教程》. 湖北科學技術出版社 ,2006</p><p> [4]譚會生,等 .《 EDA技術綜合應用實例與分析》.西安電子科技出版
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論