版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì)</p><p> 2011年 3 月11日</p><p><b> 課程設(shè)計(jì)任務(wù)書(shū)</b></p><p> 課程 EDA技術(shù)課程設(shè)計(jì)</p><p><b> 題目 電子密碼鎖</b></p><p> 專(zhuān)業(yè) 電
2、子信息工程 姓名 學(xué)號(hào) </p><p> 主要內(nèi)容、基本要求、主要參考資料等</p><p><b> 主要內(nèi)容:</b></p><p> 設(shè)計(jì)一個(gè)密碼鎖的控制電路,第一個(gè)按鈕觸動(dòng)后的5秒內(nèi)若未將鎖打開(kāi),則電路自動(dòng)復(fù)位并進(jìn)入自鎖狀態(tài),當(dāng)輸入正確代碼時(shí),輸出開(kāi)鎖信號(hào)以推動(dòng)執(zhí)行機(jī)構(gòu)工作。</p><p&g
3、t;<b> 基本要求:</b></p><p> 1、設(shè)計(jì)一個(gè)密碼鎖的控制電路,當(dāng)輸入正確代碼時(shí),輸出開(kāi)鎖信號(hào)以推動(dòng)執(zhí)行機(jī)構(gòu)工作,用紅燈亮、綠燈熄滅表示關(guān)鎖,用綠燈亮、紅燈熄滅表示開(kāi)鎖;</p><p> 2、在鎖的控制電路中儲(chǔ)存一個(gè)可以修改的4位代碼,當(dāng)開(kāi)鎖按鈕開(kāi)關(guān)(設(shè)置成8位,其中實(shí)際有效為4位,其余為虛設(shè))的輸入代碼等于儲(chǔ)存代碼時(shí),開(kāi)鎖;</p&g
4、t;<p> 3、從第一個(gè)按鈕觸動(dòng)后的5秒內(nèi)若未將鎖打開(kāi),則電路自動(dòng)復(fù)位并進(jìn)入自鎖狀態(tài),使之無(wú)法再打開(kāi),并由揚(yáng)聲器發(fā)出持續(xù)20秒的報(bào)警信號(hào),并輸出一個(gè)信號(hào)推動(dòng)LED不斷閃爍。</p><p><b> 主要參考資料:</b></p><p> [1] 潘松著.EDA技術(shù)實(shí)用教程(第二版). 北京:科學(xué)出版社,2005.</p><
5、;p> [2] 康華光主編.電子技術(shù)基礎(chǔ) 模擬部分. 北京:高教出版社,2006.</p><p> [3] 閻石主編.數(shù)字電子技術(shù)基礎(chǔ). 北京:高教出版社,2003.</p><p> 完成期限 2010.3.11 </p><p> 指導(dǎo)教師 </p><p> 專(zhuān)
6、業(yè)負(fù)責(zé)人 </p><p> 2010年 3月7日</p><p><b> 總體設(shè)計(jì)思想: </b></p><p> 本課程設(shè)計(jì)主要是基于VHDL文本輸入法設(shè)計(jì)電子密碼鎖,隨著社會(huì)物質(zhì)財(cái)富的日益增長(zhǎng),安全防盜已成為全社會(huì)關(guān)注的問(wèn)題?;贓DA技術(shù)設(shè)計(jì)的電子密碼鎖,以其價(jià)格便宜、安全可靠、使用方便,受
7、到了人們的普遍關(guān)注。而以現(xiàn)場(chǎng)可編程邏輯器件(FPGA)為設(shè)計(jì)載體,以硬件描述語(yǔ)言(VHDE)為主要表達(dá)方式,以QuartusⅡ開(kāi)發(fā)軟件和GW48EDA開(kāi)發(fā)系統(tǒng)為設(shè)計(jì)工具設(shè)計(jì)的電子密碼鎖,由于其能夠?qū)崿F(xiàn)數(shù)碼輸入、數(shù)碼清除、密碼解除、密碼更改、密碼上鎖和密碼解除等功能,因此,能夠滿足社會(huì)對(duì)安全防盜的要求。</p><p> 1.系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)的基本功能</p><p> 密碼輸入:每按下一個(gè)
8、數(shù)字鍵,就輸入一個(gè)數(shù)值,并在顯示器上顯示出該數(shù)值。同時(shí)將先前輸入的數(shù)據(jù)依次左移一個(gè)數(shù)字位置。</p><p> 密碼清除:按下清除鍵可清除前面所有的輸入值,清除成為“0000”。</p><p> 密碼更改:按下更改鍵可將目前數(shù)據(jù)設(shè)定為新的密碼。</p><p> 密碼上鎖:按下上鎖鍵可將密碼鎖上鎖。</p><p> 密碼解除:按下
9、解除鍵首先檢查輸入的密碼是否正確,密碼正確即解鎖。</p><p> 2. 電子密碼鎖的結(jié)構(gòu)原理</p><p> 根據(jù)系統(tǒng)設(shè)計(jì)要求,系統(tǒng)設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法。2.1 電子密碼鎖的整體結(jié)構(gòu)</p><p> (1)密碼鎖輸入模塊</p><p> 密碼鎖的輸入模塊由時(shí)序產(chǎn)生電路、鍵盤(pán)掃描電路、鍵盤(pán)譯碼電路和按鍵存儲(chǔ)電路組成
10、。如下圖示:</p><p><b> 圖1</b></p><p><b> 時(shí)序產(chǎn)生電路</b></p><p> 產(chǎn)生電路中使用的三種不同頻率的工作脈沖波形,即系統(tǒng)時(shí)鐘脈沖、彈跳消除取樣信號(hào)和鍵盤(pán)掃描信號(hào)。</p><p><b> 鍵盤(pán)掃描電路</b></
11、p><p> 掃描電路的作用是提供鍵盤(pán)掃描信號(hào),掃描信號(hào)變化順序依次是1110—1101—1011—0111—1110.-----依序地周而復(fù)始。</p><p><b> c.鍵盤(pán)譯碼電路</b></p><p> 上述鍵盤(pán)中的按鍵分為數(shù)字按鍵和文字按鍵,每一個(gè)按鍵可能負(fù)責(zé)不同的功能,例如清除鍵、上鎖鍵和解鎖鍵等。數(shù)字按鍵主要是用來(lái)輸入數(shù)字
12、的,但是鍵盤(pán)所產(chǎn)生的輸出是無(wú)法直接拿來(lái)用作密碼鎖控制電路的輸入的;另外,不同的按鍵具有不同的功能,所以必須由鍵盤(pán)譯碼電路來(lái)規(guī)劃每個(gè)按鍵的輸出形式,以便執(zhí)行相應(yīng)的動(dòng)作。</p><p><b> 按鍵存儲(chǔ)電路</b></p><p> 因?yàn)槊恳淮螔呙钑?huì)產(chǎn)生新的按鍵數(shù)據(jù),可能會(huì)覆蓋前面的數(shù)據(jù),所以需要一個(gè)按鍵存儲(chǔ)電路。將整個(gè)鍵盤(pán)掃描完畢后的結(jié)果記錄下來(lái)。</p&
13、gt;<p> 按鍵位置與數(shù)碼關(guān)系(表)圖2</p><p> 圖3所示是密碼鎖輸入模塊的仿真波形</p><p> 二、設(shè)計(jì)步驟和調(diào)試過(guò)程</p><p> 密碼鎖的控制電路是整個(gè)電路的控制中心,主要完成對(duì)數(shù)字按鍵輸入和功能按鍵輸入的響應(yīng)控制。</p><p> a.?dāng)?shù)字按鍵輸入的響應(yīng)控制</p>&l
14、t;p> 如果按下數(shù)字鍵,第一個(gè)數(shù)字會(huì)從顯示器的最右端開(kāi)始顯示,此后每新按下一個(gè)數(shù)字時(shí),顯示器上的數(shù)字必須左移一位,一邊將新的數(shù)字顯示出來(lái)。</p><p> 假如要更改輸入的數(shù)字,可以按倒退按鍵來(lái)清除前一個(gè)輸入的數(shù)字,或者按清除鍵清除所有輸入的數(shù)字,再重新輸入四位數(shù)。</p><p> 由于這里設(shè)計(jì)的是一個(gè)四位的電子密碼鎖,所以當(dāng)輸入的數(shù)字鍵超過(guò)四個(gè)時(shí),電路不予理會(huì),而且不再
15、顯示第四個(gè)以后的數(shù)字。</p><p> b.功能按鍵輸入響應(yīng)控制</p><p> 清除鍵:清除所有的輸入數(shù)字,即做歸零動(dòng)作。</p><p> 上鎖鍵:按下此鍵時(shí)可將密碼鎖的門(mén)上鎖(上鎖前必須先設(shè)定一個(gè)四位的電子密碼)。</p><p> 解除鍵:按下此建輝檢查輸入的密碼是否正確,若密碼正確無(wú)誤則解鎖。</p>&l
16、t;p> 圖4所示是密碼鎖控制模塊的仿真波形</p><p> (3)密碼鎖譯碼模塊:本電子密碼鎖的顯示模塊比較簡(jiǎn)單,其作用是將控制模塊的BCD碼輸出轉(zhuǎn)換為7段顯示編碼,然后驅(qū)動(dòng)數(shù)碼管,其仿真波形如圖5所示。</p><p> 電子密碼鎖的整合和驗(yàn)證要完成電子密碼鎖的設(shè)計(jì),還必須將上述三個(gè)功能模塊進(jìn)行整合。三、結(jié)論及心得體會(huì)</p><p> 此
17、次的設(shè)計(jì)是參考了《EDA技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì)》里的程序,不過(guò)由于程序里面出現(xiàn)了不少的語(yǔ)法錯(cuò)誤,使得在編譯時(shí)出現(xiàn)了20多個(gè)錯(cuò)誤,不過(guò)在看過(guò)書(shū)后,細(xì)心地檢查過(guò)程序后方能糾正過(guò)來(lái)。在糾正的過(guò)程中獲益良多。 在EDA軟件平臺(tái)上,用硬件描述語(yǔ)言VHDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。感覺(jué)EDA還是很有研究?jī)r(jià)值的,能大大的減少設(shè)計(jì)
18、者的工作量。</p><p> 從編寫(xiě)程序到完成此次課程設(shè)計(jì),親自操作軟件起來(lái)從生硬到熟練,現(xiàn)在能較嫻熟的運(yùn)用QuartusⅡ。</p><p><b> 附:VHDL源程序</b></p><p><b> 密碼鎖輸入模塊</b></p><p> LIBRARY IEEE ; <
19、;/p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY SR IS</p><p> PORT(CL
20、K_1K: IN STD_LOGIC;</p><p> KEY_IN: IN STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p> DATA_N: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> DATA_F: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p>
21、;<p> FLAG_N: OUT STD_LOGIC;</p><p> FLAG_F: OUT STD_LOGIC;</p><p> CQD: OUT STD_LOGIC;</p><p> KSEL: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> CSR: OUT STD
22、_LOGIC_VECTOR(1 DOWNTO 0));</p><p><b> END SR;</b></p><p> ARCHITECTURE ONE OF SR IS</p><p> SIGNAL C_QD: STD_LOGIC;</p><p> SIGNAL C_SR: STD_LOGIC_VECT
23、OR(1 DOWNTO 0); </p><p> SIGNAL N,F: STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL FN,FF: STD_LOGIC;</p><p> SIGNAL SEL: STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL
24、 Q: STD_LOGIC_VECTOR(5 DOWNTO 0);</p><p> SIGNAL C: STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p><b> BEGIN </b></p><p> DATA_N<=N;</p><p> DATA_F<=F;</
25、p><p> FLAG_N<=FN;</p><p> FLAG_F<=FF;</p><p> CQD<=C_QD;</p><p> CSR<=C_SR;</p><p> KSEL<=SEL;</p><p> C(0)<=KEY_IN(0);&
26、lt;/p><p> C(1)<=KEY_IN(1);</p><p> C(2)<=KEY_IN(2);</p><p> COUNTER: BLOCK IS</p><p><b> BEGIN </b></p><p> PROCESS(CLK_1K)IS </p&g
27、t;<p><b> BEGIN</b></p><p> IF(CLK_1K'EVENT AND CLK_1K='1')THEN</p><p><b> Q<=Q+1;</b></p><p><b> END IF;</b></p>
28、<p> C_QD<=Q(3);</p><p> C_SR<=Q(5 DOWNTO 4);</p><p> END PROCESS;</p><p> SEL<="1110" WHEN C_SR=0 ELSE</p><p> "1101" WHEN C_S
29、R=1 ELSE</p><p> "1011" WHEN C_SR=2 ELSE</p><p> "0111" WHEN C_SR=3 ELSE</p><p><b> "1111";</b></p><p> END BLOCK COUNTER;
30、</p><p> KEY_DECODER: BLOCK</p><p> SIGNAL Z: STD_LOGIC_VECTOR(4 DOWNTO 0);</p><p><b> BEGIN </b></p><p> PROCESS(C_QD)</p><p><b> B
31、EGIN</b></p><p> Z<=C_SR&C;</p><p> IF(C_QD'EVENT AND C_QD='1') THEN</p><p><b> CASE Z IS</b></p><p> WHEN"11101"=>
32、;N<="0000";</p><p> WHEN"00011"=>N<="0001";</p><p> WHEN"00101"=>N<="0010";</p><p> WHEN"00110"=>N&l
33、t;="0011";</p><p> WHEN"01011"=>N<="0100";</p><p> WHEN"01101"=>N<="0101";</p><p> WHEN"01110"=>N<=&
34、quot;0110";</p><p> WHEN"10011"=>N<="0111";</p><p> WHEN"10101"=>N<="1000";</p><p> WHEN"10110"=>N<="
35、;1001";</p><p> WHEN OTHERS=>N<="1111";</p><p><b> END CASE;</b></p><p><b> END IF;</b></p><p> IF C_QD'EVENT AND C
36、_QD='1' THEN</p><p> CASE Z IS </p><p> WHEN"11011"=>F<="0100";</p><p> WHEN"11110"=>F<="0001";</p><p>
37、WHEN OTHERS=>F<="1000";</p><p><b> END CASE;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> FN<=NOT(N(3)AND N(2)
38、AND N(1)AND N(0));</p><p> FF<=F(2) OR F(0);</p><p> END BLOCK KEY_DECODER;</p><p> END ARCHITECTURE ONE;</p><p><b> 密碼鎖控制模塊</b></p><p>
39、 LIBRARY IEEE ; </p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY CTRL IS</p
40、><p> PORT (DATA_N: IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> DATA_F: IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> FLAG_N: IN STD_LOGIC;</p><p> FLAG_F: IN STD_LOGIC;</p
41、><p> MIMAIN: BUFFER STD_LOGIC;</p><p> SETIN: BUFFER STD_LOGIC;</p><p> OLD: BUFFER STD_LOGIC;</p><p> CQD: IN STD_LOGIC;</p><p> ENLOCK: OUT STD_LOGIC;
42、</p><p> DATA_BCD: OUT STD_LOGIC_VECTOR(15 DOWNTO 0));</p><p> END ENTITY CTRL;</p><p> ARCHITECTURE ONE OF CTRL IS</p><p> SIGNAL ACC,REG: STD_LOGIC_VECTOR(15 DOWN
43、TO 0);</p><p><b> BEGIN</b></p><p> PROCESS(CQD,FLAG_F) IS </p><p><b> BEGIN </b></p><p> IF CQD'EVENT AND CQD='0' THEN </p&g
44、t;<p> IF FLAG_F='1' THEN </p><p> IF(DATA_F="0100") THEN </p><p> ACC<="1111111111111111";</p><p> MIMAIN<='0'; SETIN<='
45、0'; OLD<='0';</p><p> ELSIF(DATA_F="0001") THEN</p><p> IF(MIMAIN='0' AND SETIN='0') THEN</p><p> CASE ACC(7 DOWNTO 0) IS</p><
46、p> WHEN"00010001"=>ENLOCK<='1';</p><p> WHEN"10011001"=>MIMAIN<='1'; ACC<="1111111111111111";</p><p> WHEN"01010101"=
47、>SETIN<='1'; ACC<="1111111111111111"; </p><p><b> OLD<='1';</b></p><p> WHEN OTHERS=>NULL;</p><p><b> END CASE;</b&g
48、t;</p><p> ELSIF(MIMAIN='1') THEN </p><p> IF ACC=REG THEN</p><p> ENLOCK<='0';</p><p> MIMAIN<='0';</p><p><b> EL
49、SE</b></p><p> MIMAIN<='0';</p><p><b> END IF;</b></p><p> ELSIF(SETIN='1') THEN</p><p> IF(OLD='1') THEN</p>&l
50、t;p> IF(ACC=REG) THEN</p><p><b> OLD<='0';</b></p><p><b> ELSE</b></p><p> SETIN<='0';</p><p><b> OLD<=
51、39;0';</b></p><p><b> END IF;</b></p><p><b> ELSE</b></p><p> IF(ACC<"1001100110011001") THEN</p><p><b> REG<
52、;=ACC;</b></p><p> SETIN<='0';</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p>
53、<p><b> END IF;</b></p><p> ELSIF FLAG_N='1' THEN </p><p> ACC<=ACC(11 DOWNTO 0)&DATA_N;</p><p><b> END IF;</b></p><p>&
54、lt;b> END IF;</b></p><p> END PROCESS;</p><p> DATA_BCD<=ACC;</p><p> END ARCHITECTURE ONE;</p><p><b> 密碼鎖譯碼模塊</b></p><p> LI
55、BRARY IEEE ; </p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY YM IS</p><p> PORT(DATA_BCD: IN STD_LOGIC_VECTOR(3 DOWN
56、TO 0);</p><p> DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));</p><p><b> END YM;</b></p><p> ARCHITECTURE ONE OF YM IS</p><p><b> BEGIN</b></p
57、><p> PROCESS(DATA_BCD)</p><p><b> BEGIN</b></p><p> CASE DATA_BCD IS</p><p> WHEN"0000"=>DOUT7<="0111111";</p><p>
58、 WHEN"0001"=>DOUT7<="0000110";</p><p> WHEN"0010"=>DOUT7<="1011011";</p><p> WHEN"0011"=>DOUT7<="1001111";</p&g
59、t;<p> WHEN"0100"=>DOUT7<="1100110";</p><p> WHEN"0101"=>DOUT7<="1101101";</p><p> WHEN"0110"=>DOUT7<="1111101&
60、quot;;</p><p> WHEN"0111"=>DOUT7<="0000111";</p><p> WHEN"1000"=>DOUT7<="1111111";</p><p> WHEN"1001"=>DOUT7<=
61、"1101111";</p><p> WHEN OTHERS=>DOUT7<="0000000";</p><p><b> END CASE;</b></p><p> END PROCESS;</p><p> END ARCHITECTURE ONE;&
62、lt;/p><p><b> 主要參考資料:</b></p><p> [1] 潘松著.EDA技術(shù)實(shí)用教程(第二版). 北京:科學(xué)出版社,2005.</p><p> [2] 康華光主編.電子技術(shù)基礎(chǔ) 模擬部分. 北京:高教出版社,2006.</p><p> [3] 閻石主編.數(shù)字電子技術(shù)基礎(chǔ). 北京:高教出版社,
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計(jì)---電子密碼鎖
- eda課程設(shè)計(jì)—電子密碼鎖
- eda電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖——eda課程設(shè)計(jì)
- eda電子密碼鎖課程設(shè)計(jì)
- eda課程設(shè)計(jì)—電子密碼鎖
- eda課程設(shè)計(jì)--電子密碼鎖
- eda課程設(shè)計(jì)報(bào)告--電子密碼鎖
- eda課程設(shè)計(jì)報(bào)告--電子密碼鎖
- eda課程設(shè)計(jì)報(bào)告-- 電子密碼鎖設(shè)計(jì)
- eda課程設(shè)計(jì)報(bào)告---電子密碼鎖設(shè)計(jì)
- eda密碼鎖課程設(shè)計(jì)
- 電工電子技術(shù)課程設(shè)計(jì)(電子密碼鎖)
- 數(shù)字電子技術(shù)課程設(shè)計(jì)——電子密碼鎖
- 數(shù)字電子技術(shù)課程設(shè)計(jì)——電子密碼鎖
- eda綜合課程設(shè)計(jì)---電子密碼鎖的設(shè)計(jì)
- 數(shù)字電子技術(shù)課程設(shè)計(jì)--數(shù)字密碼鎖
- eda課程設(shè)計(jì)數(shù)字密碼鎖
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論