




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第八章:數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例8.1數(shù)字密碼鎖電路的設(shè)計(jì)8.1.1系統(tǒng)設(shè)計(jì)要求 (1)密碼輸入:每按下一個(gè)“數(shù)字鍵”,就輸入一個(gè)數(shù)值,并在顯示器上顯示出該數(shù)值,同時(shí)將先前輸入的數(shù)據(jù)依次左移一個(gè)數(shù)字位置。 (2)密碼清除:按下“清除”鍵可清除前面的所有的輸入值,清除成為“0000”。 (3)密碼更改:按下“更改”鍵可將目前的數(shù)碼設(shè)定成新的密碼。 (4)密碼上鎖:按下“上鎖”鍵可將密碼鎖定。(5)密碼解除:按下“解除”鍵首先檢查輸入的密碼是否正確,密碼正確即開鎖。8.1.2系統(tǒng)設(shè)計(jì)根據(jù)系統(tǒng)設(shè)計(jì)要求,系統(tǒng)設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法。頂層設(shè)計(jì)采用原理圖設(shè)計(jì)方式,系統(tǒng)的整體組裝設(shè)計(jì)原理圖如圖8-1所示,它由密
2、碼輸入模塊(sr)、密碼鎖控制模塊(ctrl)和密碼鎖顯示譯碼模塊(ym)三部分組成。圖8-1 系統(tǒng)的整體組裝設(shè)計(jì)原理圖8.1.3模塊設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)模塊由輸入模塊、控制模塊和譯碼模塊三個(gè)模塊組成,下面我們介紹各子模塊的設(shè)計(jì)及實(shí)現(xiàn)過(guò)程。1、密碼鎖輸入模塊密碼鎖輸入模塊由時(shí)序產(chǎn)生電路、鍵盤掃描電路、鍵盤譯碼電路及按鍵存儲(chǔ)電路組成。(1)時(shí)序產(chǎn)生電路產(chǎn)生電路中使用三種不同頻率的工作脈沖波形,即系統(tǒng)時(shí)鐘脈沖、彈跳消除取樣信號(hào)和鍵盤掃描信號(hào)。(2)鍵盤掃描電路 key2 key1 key0 sel321 - 1110sel546 - 1101sel987- 1011sel#0*-0111掃描電路作用是提
3、供鍵盤掃描信號(hào),掃描信號(hào)變化的順序依次為1110- 1101 -1011- 0111-1110依序地周而復(fù)始。當(dāng)鍵盤掃描信號(hào)為1110時(shí),按鍵位置分別為011(“1”鍵按下)、101(“2”鍵按下)、110(“3”鍵按下);當(dāng)鍵盤掃描信號(hào)為1101時(shí),按鍵位置分別為011(“4”鍵按下)、101(“5”鍵按下)、110(“6”鍵按下);當(dāng)鍵盤掃描信號(hào)為1011時(shí),按鍵位置分別為011(“7”鍵按下)、101(“8”鍵按下)、110(“9”鍵按下);當(dāng)鍵盤掃描信號(hào)為0111時(shí),按鍵位置分別為011(“*”鍵按下)、101(“0”鍵按下)、110(“#”鍵按下)。(3)鍵盤譯碼電路上述鍵盤中的按鍵
4、分為數(shù)字按鍵和功能按鍵,每個(gè)功能按鍵可能負(fù)責(zé)不同的功能,例如“清除”鍵、“上鎖”鍵和“解鎖”鍵等。數(shù)字按鍵主要是用來(lái)輸入數(shù)字的。但是鍵盤所產(chǎn)生的輸出是無(wú)法直接拿來(lái)用作密碼鎖控制電路的輸入的;另外,不同的按鍵具有不同的功能,所以必須有鍵盤譯碼電路來(lái)規(guī)劃每個(gè)按鍵的輸出形式,以便執(zhí)行相應(yīng)的動(dòng)作。 按鍵存儲(chǔ)電路因?yàn)槊看螔呙钑?huì)產(chǎn)生新的按鍵數(shù)據(jù),可能會(huì)覆蓋前面的數(shù)據(jù),所以需要一個(gè)按鍵存儲(chǔ)電路,將整個(gè)鍵盤掃描完畢的結(jié)果記錄下來(lái)。本設(shè)計(jì)采用串入串出移位寄存器實(shí)現(xiàn)。 各按鍵位置與數(shù)碼關(guān)系如表8-1所示。其中“*”為“上鎖”, “#”為“清除/解鎖”。若按下的是數(shù)字鍵,則譯成相對(duì)應(yīng)的bcd碼,若按下的是功能鍵,則
5、譯成四位數(shù)的碼字,并由密碼鎖控制電路做相應(yīng)的動(dòng)作。表8-1 按鍵位置與數(shù)碼關(guān)系鍵掃信號(hào)sel3.0111011101110110111011101101110111011011101110111按鍵位置key2.0011101110011101110011101110011101110按鍵號(hào)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; -時(shí)鐘信號(hào) key_in : in std_logic_vector(2 downto 0); -按鍵輸入信號(hào) 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ù)標(biāo)志 flag_f: out std_logic; -“功能鍵”數(shù)據(jù)標(biāo)志 cqd: out std_logic; -鍵盤輸入采樣時(shí)鐘 ksel: out std_logic_vector(3 downto 0); -鍵盤掃描信號(hào) csr: out std_logic_vector(1 downto 0);-按鍵行號(hào)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ù)字”按鍵標(biāo)志值數(shù)據(jù) flag_f = ff; cqd = c_qd;
9、鍵盤輸入采樣時(shí)鐘 csr =c_sr; 按鍵位置 ksel=sel; 鍵盤掃描信號(hào) c(0) = key_in(0); -按鍵輸入寄存器(鍵盤矩陣的輸出) c(1) = key_in(1);c(2) = key_in(2); counter: block is;鍵盤掃描模塊(計(jì)數(shù)器) begin process(clk_in) is begin if(clk_inevent and clk_in=1) then q=q+1; end if; c_qd=q(3);- 鍵盤輸入采樣時(shí)鐘 c_sr = q(5 downto 4);- 確定鍵盤掃描行號(hào) 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ù)字鍵標(biāo)志 ff = f(2) or f(0); - 功能鍵標(biāo)志 end block key_decoder;end architecture art;2、密碼鎖控制模塊密碼鎖控制電路是整個(gè)電路的控制中心,主要完成對(duì)數(shù)字按鍵的輸入和功能按鍵輸入的相應(yīng)控制。(1)數(shù)字按鍵輸入的相應(yīng)控制 如果按下數(shù)字鍵,第一個(gè)數(shù)字會(huì)從顯示器的最右端開始顯示,此后每新按下一個(gè)數(shù)字時(shí),顯示器上的數(shù)字必須左移一位,以便將新的數(shù)據(jù)顯示出來(lái)。 假如要更改輸入數(shù)字,可以按“倒退”鍵來(lái)清除前一個(gè)輸入的數(shù)字,或者按“清除”鍵清除所有輸入數(shù)字,再重新輸入四
12、位數(shù)。 由于這里設(shè)計(jì)是一個(gè)四位電子密碼鎖,所以當(dāng)輸入的數(shù)字鍵超過(guò)4個(gè)時(shí),電路不予理會(huì),而且不再顯示第四個(gè)以后的數(shù)字。(2)功能按鍵輸入的相應(yīng)控制 “清除”鍵:清除所有的輸入數(shù)字,即作歸零動(dòng)作。 “上鎖”鍵:按下此鍵時(shí)可將密碼鎖上鎖(上鎖前必須設(shè)置四位數(shù)字密碼)。 “解除”鍵:按下此鍵會(huì)檢查輸入的密碼是否正確,若密碼正確無(wú)誤則解鎖。下面給出密碼鎖控制模塊的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ù)標(biāo)志 flag_f : in std_logic; -功能鍵數(shù)據(jù)標(biāo)志 mimain : buffer std_logic; -密碼輸入標(biāo)志 setin : buffer std_logic; -密碼設(shè)置標(biāo)志 old : buffer std_logic; -舊密碼設(shè)置
14、標(biāo)志 cqd : in std_logic; -鍵盤輸入采樣時(shí)鐘 enlock : out std_logic; -開鎖信號(hào) 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存儲(chǔ)輸入的密碼 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; -密碼輸入標(biāo)志 acc setin = 1; -密碼設(shè)置標(biāo)志 acc=1111111111111111; old null; end case; elsif (mimain=1) then if acc=reg then;-密碼核對(duì) 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;-設(shè)置“9999”為萬(wàn)用密碼 reg=acc; -密碼存儲(chǔ) setin=0; end if; end if; end if; end if; elsif flag_n=1 then acc= acc(11 downto 0)& data_n;-實(shí)現(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源程序及頂層原理圖,下面我們對(duì)其進(jìn)行仿真驗(yàn)證。 1. 密碼鎖輸入模塊的仿真波形圖 8-2 電子密碼鎖輸入模塊仿真波形2. 密碼鎖控制模塊的仿真波形圖8-3 電子密碼鎖控制模塊仿真波形3. 密碼鎖譯碼模塊的仿真波形圖8-4 電子密碼鎖譯碼模
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)作物種子買賣合同(蔬菜類)6篇
- 銷售業(yè)務(wù)外包合作協(xié)議
- 醫(yī)院信息保密承諾協(xié)議書
- 產(chǎn)品物流配送計(jì)劃書
- 智能電網(wǎng)改造合作協(xié)議
- 專業(yè)人力資源管理服務(wù)合同
- 招商代理委托協(xié)議書
- 2025年博爾塔拉道路貨運(yùn)輸從業(yè)資格證模擬考試題庫(kù)
- 小學(xué)英語(yǔ)試卷總體評(píng)價(jià)
- 高壓化成箔競(jìng)爭(zhēng)策略分析報(bào)告
- 《按頻率范圍劃分》課件
- 一年級(jí)下冊(cè)《道德與法治》教案
- 馬克思主義理論前沿匯總
- 高中英語(yǔ)北師大版全七冊(cè)單詞表
- 【幼兒園園本教研】幼兒表征的教師一對(duì)一傾聽策略
- 人教版新教材高一上學(xué)期期末考試數(shù)學(xué)試卷及答案(共五套)
- 采血知情同意書模板
- Mysql 8.0 OCP 1Z0-908 CN-total認(rèn)證備考題庫(kù)(含答案)
- 學(xué)習(xí)探究診斷 化學(xué) 必修二
- 冀教2011版九年級(jí)英語(yǔ)全一冊(cè)《Lesson9ChinasMostFamous“Farmer”》教案及教學(xué)反思
- 三年級(jí)下冊(cè)音樂(lè)教學(xué)計(jì)劃含教學(xué)進(jìn)度安排活動(dòng)設(shè)計(jì)word表格版
評(píng)論
0/150
提交評(píng)論