




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第八章:數(shù)字系統(tǒng)設計實例8.1數(shù)字密碼鎖電路的設計8.1.1系統(tǒng)設計要求 (1)密碼輸入:每按下一個“數(shù)字鍵”,就輸入一個數(shù)值,并在顯示器上顯示出該數(shù)值,同時將先前輸入的數(shù)據(jù)依次左移一個數(shù)字位置。 (2)密碼清除:按下“清除”鍵可清除前面的所有的輸入值,清除成為“0000”。 (3)密碼更改:按下“更改”鍵可將目前的數(shù)碼設定成新的密碼。 (4)密碼上鎖:按下“上鎖”鍵可將密碼鎖定。(5)密碼解除:按下“解除”鍵首先檢查輸入的密碼是否正確,密碼正確即開鎖。8.1.2系統(tǒng)設計根據(jù)系統(tǒng)設計要求,系統(tǒng)設計采用自頂向下的設計方法。頂層設計采用原理圖設計方式,系統(tǒng)的整體組裝設計原理圖如圖8-1所示,它由密
2、碼輸入模塊(sr)、密碼鎖控制模塊(ctrl)和密碼鎖顯示譯碼模塊(ym)三部分組成。圖8-1 系統(tǒng)的整體組裝設計原理圖8.1.3模塊設計與實現(xiàn)系統(tǒng)模塊由輸入模塊、控制模塊和譯碼模塊三個模塊組成,下面我們介紹各子模塊的設計及實現(xiàn)過程。1、密碼鎖輸入模塊密碼鎖輸入模塊由時序產(chǎn)生電路、鍵盤掃描電路、鍵盤譯碼電路及按鍵存儲電路組成。(1)時序產(chǎn)生電路產(chǎn)生電路中使用三種不同頻率的工作脈沖波形,即系統(tǒng)時鐘脈沖、彈跳消除取樣信號和鍵盤掃描信號。(2)鍵盤掃描電路 key2 key1 key0 sel321 - 1110sel546 - 1101sel987- 1011sel#0*-0111掃描電路作用是提
3、供鍵盤掃描信號,掃描信號變化的順序依次為1110- 1101 -1011- 0111-1110依序地周而復始。當鍵盤掃描信號為1110時,按鍵位置分別為011(“1”鍵按下)、101(“2”鍵按下)、110(“3”鍵按下);當鍵盤掃描信號為1101時,按鍵位置分別為011(“4”鍵按下)、101(“5”鍵按下)、110(“6”鍵按下);當鍵盤掃描信號為1011時,按鍵位置分別為011(“7”鍵按下)、101(“8”鍵按下)、110(“9”鍵按下);當鍵盤掃描信號為0111時,按鍵位置分別為011(“*”鍵按下)、101(“0”鍵按下)、110(“#”鍵按下)。(3)鍵盤譯碼電路上述鍵盤中的按鍵
4、分為數(shù)字按鍵和功能按鍵,每個功能按鍵可能負責不同的功能,例如“清除”鍵、“上鎖”鍵和“解鎖”鍵等。數(shù)字按鍵主要是用來輸入數(shù)字的。但是鍵盤所產(chǎn)生的輸出是無法直接拿來用作密碼鎖控制電路的輸入的;另外,不同的按鍵具有不同的功能,所以必須有鍵盤譯碼電路來規(guī)劃每個按鍵的輸出形式,以便執(zhí)行相應的動作。 按鍵存儲電路因為每次掃描會產(chǎn)生新的按鍵數(shù)據(jù),可能會覆蓋前面的數(shù)據(jù),所以需要一個按鍵存儲電路,將整個鍵盤掃描完畢的結(jié)果記錄下來。本設計采用串入串出移位寄存器實現(xiàn)。 各按鍵位置與數(shù)碼關(guān)系如表8-1所示。其中“*”為“上鎖”, “#”為“清除/解鎖”。若按下的是數(shù)字鍵,則譯成相對應的bcd碼,若按下的是功能鍵,則
5、譯成四位數(shù)的碼字,并由密碼鎖控制電路做相應的動作。表8-1 按鍵位置與數(shù)碼關(guān)系鍵掃信號sel3.0111011101110110111011101101110111011011101110111按鍵位置key2.0011101110011101110011101110011101110按鍵號123456789*0#鍵盤譯碼輸出n=0001n=0010n=0011n=0100n=0101n=0110n=0111n=1000n=1001f=0100n=0000f=0001按鍵功能數(shù)碼輸入上鎖數(shù)碼輸入清除解鎖根據(jù)上述分析,密碼輸入電路的vhdl源程序如下:【例8-1】密碼輸入電路的vhdl程序(sr
6、.vhd)。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity sr isport( clk_in : in std_logic; -時鐘信號 key_in : in std_logic_vector(2 downto 0); -按鍵輸入信號 data_n : out std_logic_vector(3 downto 0); -“數(shù)字鍵”數(shù)據(jù) data_f : out std_logic_vector(3 downto 0);-
7、“功能鍵”數(shù)據(jù) flag_n: out std_logic; -“數(shù)字鍵”數(shù)據(jù)標志 flag_f: out std_logic; -“功能鍵”數(shù)據(jù)標志 cqd: out std_logic; -鍵盤輸入采樣時鐘 ksel: out std_logic_vector(3 downto 0); -鍵盤掃描信號 csr: out std_logic_vector(1 downto 0);-按鍵行號00,01,10,11end entity sr;architecture art of sr is signal c_qd: std_logic; signal c_sr: std_logic_vecto
8、r(1 downto 0); signal n,f: std_logic_vector(3 downto 0); signal fn,ff: std_logic; signal sel: std_logic_vector(3 downto 0); signal q: std_logic_vector(5 downto 0); signal c: std_logic_vector(2 downto 0); begin-內(nèi)部連接 data_n = n; “數(shù)字”按鍵譯碼値寄存器data_f =f; flag_n = fn; “數(shù)字”按鍵標志值數(shù)據(jù) flag_f = ff; cqd = c_qd;
9、鍵盤輸入采樣時鐘 csr =c_sr; 按鍵位置 ksel=sel; 鍵盤掃描信號 c(0) = key_in(0); -按鍵輸入寄存器(鍵盤矩陣的輸出) c(1) = key_in(1);c(2) = key_in(2); counter: block is;鍵盤掃描模塊(計數(shù)器) begin process(clk_in) is begin if(clk_inevent and clk_in=1) then q=q+1; end if; c_qd=q(3);- 鍵盤輸入采樣時鐘 c_sr = q(5 downto 4);- 確定鍵盤掃描行號 end process; sel = 1110
10、when c_sr=00 else;-掃描“0”行 1101 when c_sr=01 else 1011 when c_sr=10 else 0111 when c_sr=11 else 1111; end block counter; key_decoder: block;-鍵盤譯碼模塊 signal z: std_logic_vector(4 downto 0);-按鍵位置 begin process(c_qd);-鍵盤采樣鐘觸發(fā) begin z n n n n n n n n n n n f f f=1000; end case; end if; end process; fn = n
11、ot (n(3) and n(2) and n(1) and n(0);- 數(shù)字鍵標志 ff = f(2) or f(0); - 功能鍵標志 end block key_decoder;end architecture art;2、密碼鎖控制模塊密碼鎖控制電路是整個電路的控制中心,主要完成對數(shù)字按鍵的輸入和功能按鍵輸入的相應控制。(1)數(shù)字按鍵輸入的相應控制 如果按下數(shù)字鍵,第一個數(shù)字會從顯示器的最右端開始顯示,此后每新按下一個數(shù)字時,顯示器上的數(shù)字必須左移一位,以便將新的數(shù)據(jù)顯示出來。 假如要更改輸入數(shù)字,可以按“倒退”鍵來清除前一個輸入的數(shù)字,或者按“清除”鍵清除所有輸入數(shù)字,再重新輸入四
12、位數(shù)。 由于這里設計是一個四位電子密碼鎖,所以當輸入的數(shù)字鍵超過4個時,電路不予理會,而且不再顯示第四個以后的數(shù)字。(2)功能按鍵輸入的相應控制 “清除”鍵:清除所有的輸入數(shù)字,即作歸零動作。 “上鎖”鍵:按下此鍵時可將密碼鎖上鎖(上鎖前必須設置四位數(shù)字密碼)。 “解除”鍵:按下此鍵會檢查輸入的密碼是否正確,若密碼正確無誤則解鎖。下面給出密碼鎖控制模塊的vhdl源程序?!纠?-2】密碼鎖控制模塊的vhdl程序(ctrl.vhd)。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_
13、logic_unsigned.all;entity ctrl isport ( data_n : in std_logic_vector(3 downto 0);-數(shù)字鍵數(shù)據(jù) data_f : in std_logic_vector(3 downto 0); -功能鍵數(shù)據(jù) flag_n : in std_logic; -數(shù)字鍵數(shù)據(jù)標志 flag_f : in std_logic; -功能鍵數(shù)據(jù)標志 mimain : buffer std_logic; -密碼輸入標志 setin : buffer std_logic; -密碼設置標志 old : buffer std_logic; -舊密碼設置
14、標志 cqd : in std_logic; -鍵盤輸入采樣時鐘 enlock : out std_logic; -開鎖信號 data_bcd: out std_logic_vector (15 downto 0);bcd數(shù)據(jù)end entity ctrl;architecture art of ctrl is signal acc, reg: std_logic_vector (15 downto 0);acc暫存鍵入的信息,reg存儲輸入的密碼 begin process (cqd,flag_f) is begin if (cqdevent and cqd=0) then if flag_
15、f=1 then if(data_f = 0100) then acc= 1111111111111111;-功能鍵“*” mimain=0; setin=0; old enlock mimain = 1; -密碼輸入標志 acc setin = 1; -密碼設置標志 acc=1111111111111111; old null; end case; elsif (mimain=1) then if acc=reg then;-密碼核對 enlock=0; mimain=0; else mimain=0; end if; elsif (setin=1) then if (old=1) then
16、 if(acc=reg) then old=0; else setin=0; old=0; end if; else if (acc1001100110011001) then;-設置“9999”為萬用密碼 reg=acc; -密碼存儲 setin=0; end if; end if; end if; end if; elsif flag_n=1 then acc= acc(11 downto 0)& data_n;-實現(xiàn)數(shù)位左移 end if; end if;end process; data_bcd dout7 dout7 dout7 dout7 dout7 dout7 dout7 dout7 dout7 dout7 dout7=0000000; end case; end process;end architecture art;8.1.4 波形仿真前面我們給出了各模塊的vhdl源程序及頂層原理圖,下面我們對其進行仿真驗證。 1. 密碼鎖輸入模塊的仿真波形圖 8-2 電子密碼鎖輸入模塊仿真波形2. 密碼鎖控制模塊的仿真波形圖8-3 電子密碼鎖控制模塊仿真波形3. 密碼鎖譯碼模塊的仿真波形圖8-4 電子密碼鎖譯碼模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年舞蹈生韌性測試題及答案
- 威海市2024-2025學年高二上學期期末考試語文試題(含答案詳解)
- 2025年階位認定測試題及答案
- 2025年急診科規(guī)培試題及答案
- 主管護師外科練習卷附答案
- 保育師中級復習測試有答案
- 2025年數(shù)字藏品面試題及答案
- 工業(yè)分析與檢驗練習試題附答案
- 2025年二模中國近代試題及答案
- 2025年復試如何做筆試題及答案
- 小學數(shù)學主題活動設計一年級《歡樂購物街》
- 2024年廣州市高三一模高考物理試卷試題答案(精校打?。?/a>
- 2024屆江蘇省蘇州吳中區(qū)五校聯(lián)考八年級物理第二學期期末統(tǒng)考試題含解析
- 二手房買賣合同無中介(標準版)2024版
- 2024年河北滄州交通發(fā)展集團有限責任公司招聘筆試參考題庫附帶答案詳解
- (2024年)智慧校園整體建設解決方案
- 2023農(nóng)灌機電井以電折水技術(shù)規(guī)程
- 民生銀行網(wǎng)絡測評題及答案
- 毛澤東詩詞鑒賞
- (高清版)DZT 0426-2023 固體礦產(chǎn)地質(zhì)調(diào)查規(guī)范(1:50000)
- 海綿城市工程施工合同范本
評論
0/150
提交評論