經老師這正后修改文件理解.doc_第1頁
經老師這正后修改文件理解.doc_第2頁
經老師這正后修改文件理解.doc_第3頁
經老師這正后修改文件理解.doc_第4頁
經老師這正后修改文件理解.doc_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

邵陽學院課程設計(論文)目 錄摘要:- 2 -第一章:系統設計總述- 3 -1.1設計要求- 3 -1.2 設計方案- 4 -第二章:總體程序設計- 6 -2.1整體組裝設計原理圖- 6 -2.2 頂層模塊程序調用- 7 -2.2.1程序部分- 7 -2.2.2 整體原理文件- 9 -2.2.3 頂層模塊仿真- 10 -第三章:單元模塊程序設計- 11 -3.1 輸入模塊- 11 -3.1.1 輸入模塊程序- 12 -3.1.2輸入模塊元件- 14 -3.1.3輸入模塊仿真- 15 -3.2 電子密碼鎖系統控制模塊- 15 -3.2.1控制模塊程序- 16 -3.2.2控制模塊元件- 18 -3.2.3控制模塊仿真- 18 -3.3 電子密碼鎖系統顯示模塊- 19 -3.2.1顯示模塊程序- 20 -3.2.2顯示模塊元件- 21 -3.2.3顯示模塊仿真- 22 -第五章:收獲與體驗- 23 -參考文獻- 24 -摘要:隨著人們生活水平的提高,如何實現家庭防盜這一問題也變的尤其的突出,傳統的機械鎖由于其構造的簡單,被撬的事件屢見不鮮,電子鎖由于其保密性高,使用靈活性好,安全系數高,受到了廣大用戶的親呢。電子電路設計常用的方法是試驗設計法,一般都包括設計方案提出、方案驗證、方案修改3個階段。傳統的試驗設計法通常采用手工搭接實驗電路來完 成,往往需要經過試驗和修改的反復過程,直到設計出正確的電路。隨著電子和計算機技術的發展,產生了在計算機平臺上的EDA(電子設計自動化)技術,這種 技術除了具有強大的設計功能外,還具有測試、仿真分析、管理等功能。在EAD桌面設計環境下用計算機來完成電路的系統綜合設計和仿真。第一章:系統設計總述1.1設計要求 設計一個具有較高安全性和較低成本的通用電子密碼鎖,其具體功能要求如下: (1) 數碼輸入:每按下一個數字鍵,就輸入一個數值,并在顯示器上的最右方顯示出該數值,同時將先前輸入的數據依序左移一個數字位置。 (2) 數碼清除:按下此鍵可清除前面所有的輸入值,清除成為“0000”。 (3) 密碼更改:按下此鍵時會將目前的數字設定成新的密碼。 (4) 激活電鎖:按下此鍵可將密碼鎖上鎖。 (5) 解除電鎖:按下此鍵會檢查輸入的密碼是否正確,密碼正確即開鎖。1.2 設計方案 作為通用電子密碼鎖,主要由三個部分組成:數字密碼輸入電路、密碼鎖控制電路和密碼鎖顯示電路。 作為電子密碼鎖的輸入電路,可供選擇的方案有數字機械式鍵盤和觸摸式數字鍵盤等多種。 根據以上選定的輸入設備和顯示器件,并考慮到實現各項數字密碼鎖功能的具體要求,整個電子密碼鎖系統的總體組成框圖如圖1.1所示。 (1) 密碼鎖輸入電路包括時序產生電路、鍵盤掃描電路、鍵盤彈跳消除電路、鍵盤譯碼電路等幾個小的功能電路。 (2) 密碼鎖控制電路包括按鍵數據的緩沖存儲電路,密碼的清除、變更、存儲、激活電鎖電路(寄存器清除信號發生電路),密碼核對(數值比較電路),解鎖電路(開/關門鎖電路)等幾個小的功能電路。 (3) 七段數碼管顯示電路主要將待顯示數據的BCD碼轉換成數碼器的七段顯示驅動編碼。 (4)總體設計如(圖1.1)所示。鍵盤掃描電路時序產生電路時鐘發生器鍵盤彈跳消除電路鍵盤譯碼電路寄存器清除信號發生器電路開/關門鎖電路數值比較器按鍵數據緩存器BCD七段譯碼電路密碼鎖輸入模塊顯示模塊密碼鎖控制模塊圖1.1(電子密碼鎖總體方框圖)(5)系統組成根據系統的設計要求,系統設計采用自頂向下的設計方案。頂層設計采用原理圖設計方案,系統的整體組裝設計有密碼輸入模塊、密碼控制模塊、密碼顯示模塊三部分組成。第二章:總體程序設計 2.1整體組裝設計原理圖 系統的整體組裝設計有密碼輸入模塊、密碼控制模塊、密碼顯示模塊三部分組成,故如(圖2.1)所示。圖2.1(電子密碼鎖整體組裝原理圖)2.2 頂層模塊程序調用2.2.1程序部分LIBRARY ieee;USE ieee.std_logic_1164.all; LIBRARY work;ENTITY string IS PORT( CLK : IN STD_LOGIC;KEY : IN STD_LOGIC_VECTOR(2 DOWNTO 0);MIMAIN : OUT STD_LOGIC;SETIN : OUT STD_LOGIC;OLD : OUT STD_LOGIC;ENLOCK : OUT STD_LOGIC;CRS : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);SEG_SM1 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEG_SM2 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEG_SM3 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEG_SM4 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEL : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END string;ARCHITECTURE bdf_type OF string IS COMPONENT ymPORT(DATA_BCD : IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT7 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;COMPONENT srPORT(CLK_1K : IN STD_LOGIC; KEY_IN : IN STD_LOGIC_VECTOR(2 DOWNTO 0); DATA_M : OUT STD_LOGIC; DATA_B : OUT STD_LOGIC; CQD : OUT STD_LOGIC; CSR : OUT STD_LOGIC_VECTOR(1 DOWNTO 0); DATA_F : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_N : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); KSEL : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT ctrlPORT(DATA_M : IN STD_LOGIC; DATA_B : IN STD_LOGIC; CQD : IN STD_LOGIC; DATA_F : IN STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_N : IN STD_LOGIC_VECTOR(3 DOWNTO 0); MIMAIN : OUT STD_LOGIC; SETIN : OUT STD_LOGIC; OLD : OUT STD_LOGIC; ENLOCK : OUT STD_LOGIC; DATA_BCD : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END COMPONENT;SIGNALDATA_BCD : STD_LOGIC_VECTOR(15 DOWNTO 0);SIGNALSYNTHESIZED_WIRE_0 : STD_LOGIC;SIGNALSYNTHESIZED_WIRE_1 : STD_LOGIC;SIGNALSYNTHESIZED_WIRE_2 : STD_LOGIC;SIGNALSYNTHESIZED_WIRE_3 : STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNALSYNTHESIZED_WIRE_4 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN b2v_inst1 : ymPORT MAP(DATA_BCD = DATA_BCD(3 DOWNTO 0), DOUT7 = SEG_SM1);b2v_inst2 : srPORT MAP(CLK_1K = CLK, KEY_IN = KEY, DATA_M = SYNTHESIZED_WIRE_0, DATA_B = SYNTHESIZED_WIRE_1, CQD = SYNTHESIZED_WIRE_2, CSR = CRS, DATA_F = SYNTHESIZED_WIRE_3, DATA_N = SYNTHESIZED_WIRE_4, KSEL = SEL);b2v_inst3 : ctrlPORT MAP(DATA_M = SYNTHESIZED_WIRE_0, DATA_B = SYNTHESIZED_WIRE_1, CQD = SYNTHESIZED_WIRE_2, DATA_F = SYNTHESIZED_WIRE_3, DATA_N = SYNTHESIZED_WIRE_4, MIMAIN = MIMAIN, SETIN = SETIN, OLD = OLD, ENLOCK = ENLOCK, DATA_BCD = DATA_BCD);b2v_inst4 : ymPORT MAP(DATA_BCD = DATA_BCD(15 DOWNTO 12), DOUT7 = SEG_SM4);b2v_inst5 : ymPORT MAP(DATA_BCD = DATA_BCD(11 DOWNTO 8), DOUT7 = SEG_SM3);b2v_inst6 : ymPORT MAP(DATA_BCD = DATA_BCD(7 DOWNTO 4), DOUT7 = SEG_SM2);END bdf_type;2.2.2 整體原理文件圖2.2頂層模塊原理圖2.2.3 頂層模塊仿真圖2.3頂層文件仿真第三章:單元模塊程序設計 本章節介紹的是單獨模塊的程序、原理圖、仿真以及功能說明,共有三個模塊,分別是電子密碼鎖輸入模塊、電子密碼鎖控制模塊以及顯示模塊。3.1 輸入模塊1.時序產生電路 本時序產生電路中使用了三種不同頻率的工作脈沖波形:系統時鐘脈沖(它是系統內部所有時鐘脈沖的源頭,且其頻率最高)、彈跳消除取樣信號、鍵盤掃描信號。2.鍵盤掃描電路掃描電路的作用是用來提供鍵盤掃描信號(表4.1中的KY3KY0)的,掃描信號變化的順序依次為11101101101101111110.依序地周而復始。 3.彈跳消除電路由于本設計中采用的矩陣式鍵盤是機械開關結構,因此在開關切換的瞬間會在接觸點出現信號來回彈跳的現象,對于電子密碼鎖這種靈敏度較高的電路這種彈跳將很可能會造成誤動作輸入,從而影響到密碼鎖操作的正確性。3.1.2輸入模塊元件 有上面的程序通過quartus II 9.0,我們可以得到下面這個封裝元件。原理圖元件如圖2.1所示,它是一個矩陣式鍵盤,矩陣式鍵盤是一種常見的輸入裝置,在日常的生活中,矩陣式鍵盤在計算機、電話、手機、微波爐等各式電子產品上已經被廣泛應用。圖4.3是一個34矩陣式鍵盤的面板配置圖,其中數字09作為密碼數字輸入按鍵,*作為“上鎖”功能按鍵,#作為“解鎖/清除”功能按鍵。圖3.1(電子密碼鎖鍵盤輸入) 3.1.3輸入模塊仿真圖3.2(鍵盤輸入仿真)3.2 電子密碼鎖系統控制模塊密碼鎖的控制電路是整個電路的控制中心,主要完成對數字按鍵輸入和功能按鍵輸入的響應控制。1數字按鍵輸入的響應控制(1) 如果按下數字鍵,第一個數字會從顯示器的最右端開始顯示,此后每新按一個數字時,顯示器上的數字必須左移一格,以便將新的數字顯示出來。(2) 假如要更改輸入的數字,可以按倒退按鍵來清除前一個輸入的數字,或者按清除鍵清除所有輸入的數字,再重新輸入四位數。(3) 由于這里設計的是一個四位的電子密碼鎖,所以當輸入的數字鍵超過四個時,電路不予理會,而且不再顯示第四個以后的數字。2功能按鍵輸入的響應控制 (1) 清除鍵:清除所有的輸入數字,即做歸零動作。(2) 激活電鎖鍵:按下此鍵時可將密碼鎖的門上鎖。(上鎖前必須預先設定一個四位的數字密碼。)(3) 解除電鎖鍵:按下此鍵會檢查輸入的密碼是否正確,若密碼正確無誤則開門。 3.2.2控制模塊元件 控制原理封裝元件如(圖3.3)所示。圖3.3(電子密碼鎖控制) 3.2.3控制模塊仿真圖3.4(控制模塊仿真)3.3 電子密碼鎖系統顯示模塊 密碼顯示電路主要將顯示數據的BCD碼轉換成相對應的編碼。如,若選用七段數碼管顯示電路,主要將待顯示數據的BCD碼轉換成數碼器的七段顯示驅動編碼。 密碼鎖顯示電路的設計比較簡單,這里直接采用四個4-7譯碼器來實現。 密碼鎖的整體組裝設計,將前面各個設計好的功能模塊進行整合,可得到一個完整的電子密碼鎖系統所示,如(圖3.5)所示。圖3.5(組裝) 注釋:圖3.7是有輸入、控制和顯示模塊組成 ,其中顯示模塊有四個相同的模塊并行串接而成,分別于數碼管相接,輸入模塊有CLK和KEY信號輸入控制。3.2.2顯示模塊元件圖3.6(電子密碼鎖顯示模塊) 上圖是顯示模塊的封裝元件,有一個輸入端和一個輸出端組成,輸入端有四個信號控制,輸出端是分別連接七段數碼顯示管的a、b、c、d、e、f、g和h七個端口,高電平有效。3.2.3顯示模塊仿真圖3.7(電子密碼鎖顯示模塊仿真)圖3.8(電子密碼鎖顯示模塊仿真)續 由上圖可以知道,當輸入是“0000”時,則輸出“1111111”,即在0ps時狀態下的輸出情況,當輸入是“1111”時,則全部輸出“0000000”,當輸入“0011”時,則輸出的是“1001111”,依次可以推知。第五章:收獲與體驗這次EDA課程設計歷時兩個星期,在整整兩個星期的日子里,可以說是苦多于甜,但是可以學的到很多很多的東西,同時不僅可以鞏固以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次設計,進一步加深了對EDA的了解,讓我對它有了更加濃厚的興趣。特別是當每一個子模塊編寫調試成功時,心里特別的開心。但是在編寫頂層文件的程序時,遇到了不少問題,特別是各元件之間的連接,以及信號的定義,總是有錯誤,在細心的檢查下,終于找出了錯誤和警告,排除困難后,程序編譯就通過了,心里終于舒了一口氣。在波形仿真時,也遇到了一點困難,想要的結果不能在波形上得到正確的顯示:在設定輸入的時鐘信號后,數字秒表開始計數,但是始終看不到秒和小時的循環計數。后來,在數十次的調試之后,才發現是因為輸入的時鐘信號對于器件的延遲時間來說太短了。經過屢次調試,終于找到了比較合適的輸入數值:時鐘周期設置在15秒左右比較合適。另外,Endtime的值需要設置的長一點:10us左右,這樣就可以觀察到完整的仿真結果。其次,在連接各個模塊的時候一定要注意各個輸入、輸出引腳的線寬,因為每個線寬是不一樣的,只要讓各個線寬互相匹配,才能得出正確的結果,否則,出現任何一點小的誤差就會導致整個文件系統的編

溫馨提示

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

評論

0/150

提交評論