版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> -------數(shù)電課程設(shè)計(jì)</p><p><b> 題目:電子密碼鎖</b></p><p> 課程名稱: 數(shù)字電路課程設(shè)計(jì) </p><p> 學(xué)院系:電子信息與電氣工程學(xué)部</p><p> 專 業(yè): 自動(dòng)化 </p><p> 班 級(jí): 電自1
2、001 </p><p><b> 題目:電子密碼鎖</b></p><p><b> 1 設(shè)計(jì)要求</b></p><p><b> 一.基本功能</b></p><p> 1、設(shè)計(jì)一個(gè)密碼鎖,開(kāi)鎖代碼為8位二進(jìn)制數(shù),通過(guò)串行以按鍵的形式輸 入,要求
3、能夠顯示當(dāng)前輸入的位數(shù),但不顯示輸入的具體密碼。</p><p> 2、當(dāng)輸入代碼的位數(shù)和給定的密碼一致,按下開(kāi)鎖鍵,用LED顯示開(kāi)鎖成功。如果密碼不正確,提示開(kāi)鎖不成功,當(dāng)連續(xù)三次密碼輸入錯(cuò)誤,不允許再輸入密碼,并且提示報(bào)警。不同的提示可用不同的LED閃爍頻率或花型顯示來(lái)表示。</p><p> 3、開(kāi)鎖的密碼可以進(jìn)行設(shè)置,但設(shè)置的前提是原來(lái)密碼必須輸入正確。</
4、p><p><b> 二.?dāng)U展功能</b></p><p> 運(yùn)用PS2接口,通過(guò)鍵盤來(lái)輸入密碼。</p><p> 2 設(shè)計(jì)分析及系統(tǒng)方案設(shè)計(jì)</p><p> 密碼鎖控制器是硬件與軟件的結(jié)合。根據(jù)設(shè)計(jì)要求,以FPGA芯片和VHDL語(yǔ)言設(shè)計(jì)此電子密碼鎖。</p><p><b>
5、 本演示系統(tǒng)實(shí)現(xiàn)了:</b></p><p> 輸入密碼正確后,正確小燈(green)亮,錯(cuò)誤小燈(red)不亮;</p><p> 當(dāng)輸入密碼正確后,可修改密碼,可使用want開(kāi)關(guān)正確進(jìn)行密 碼修改功能,而后密碼被重新設(shè)定為新的密碼,當(dāng)密碼輸入錯(cuò)誤的時(shí)候并不可以修改密碼,此時(shí)即使按下want鍵也不好 用;&
6、lt;/p><p> 輸入錯(cuò)誤密碼,正確小燈(green)不亮,錯(cuò)誤小燈(red)亮;</p><p> 按下reset后,密碼歸為初始密碼;</p><p> 輸入密碼時(shí),同時(shí)數(shù)碼管顯示輸入密碼個(gè)數(shù),不顯示具體密碼;</p><p> 顯示連續(xù)輸入錯(cuò)誤密碼次數(shù),用數(shù)碼管顯示,次數(shù)小于3時(shí),自動(dòng)進(jìn)入下一次輸入狀態(tài),錯(cuò)誤次數(shù)大于等于3,
7、即以1HZ頻率閃爍的LED燈提示報(bào)警報(bào)警,且無(wú)法再次輸入密碼,直到按下reset.</p><p> 3系統(tǒng)以及模塊硬件電路設(shè)計(jì)</p><p> 用VHDL設(shè)計(jì)電子密碼鎖方案:作為通用電子密碼鎖,主要由 3 個(gè)部分組成:數(shù)字密碼輸入電路、密碼鎖控制電路和密碼鎖顯示電路。</p><p><b> 3.1系統(tǒng)總框圖</b></
8、p><p><b> 3.2密碼提示電路</b></p><p> 七段數(shù)碼管是電子開(kāi)發(fā)過(guò)程中常用的輸出顯示設(shè)備。在本設(shè)計(jì)中使用的是1個(gè)共陽(yáng)極型七段數(shù)碼管。其單個(gè)靜態(tài)數(shù)碼管如下圖3.6所示。</p><p> 由于七段數(shù)碼管公共端連接到GND(共陽(yáng)極型),當(dāng)數(shù)碼管的中的一個(gè)段被輸入低電平,則相應(yīng)的這一段被點(diǎn)亮。反之則不亮。共陽(yáng)極性的數(shù)碼管與之
9、相反。</p><p> 在本次密碼鎖電路中,7段式數(shù)碼顯示管的作用一為提示當(dāng)前輸入的密碼為第幾個(gè),因?yàn)槊艽a有八位,很可能讓正在輸入密碼的人忘記輸入到了第幾位,而數(shù)顯管恰好起到了提示作用,此處的設(shè)計(jì)體現(xiàn)了其更加智能化和人性化的理念。二為提示輸入錯(cuò)誤密碼次數(shù),當(dāng)達(dá)到三次時(shí)將提示報(bào)警并不能再次輸入密碼,增加了密碼鎖的安全性能。</p><p> 圖2 單個(gè)數(shù)碼管管腳示意圖</p&
10、gt;<p> 3.3輸入密碼、更改密碼、復(fù)位密碼及報(bào)警電路</p><p> 此處電路的實(shí)現(xiàn)需要使用四個(gè)開(kāi)關(guān)及三個(gè)小燈。開(kāi)關(guān)SW依次實(shí)現(xiàn)的按鈕功能為用于輸入串行密碼(共8位)的密碼按鍵,復(fù)位成初始系統(tǒng)自帶密碼的RESET鍵,當(dāng)密碼輸正確的可以選擇設(shè)置新密碼的按鍵WANT,(當(dāng)密碼輸入不正確時(shí),此按鍵并不好用)。燈分別為紅燈綠燈用于報(bào)警電路提示此時(shí)輸入的密碼是正確的還是錯(cuò)誤的。同時(shí)在程序端口中需
11、要的相當(dāng)于時(shí)鐘CLK功能的按鍵,在外部輸入電路中起到的作用是相當(dāng)于按鍵確認(rèn)功能,每輸入一位密碼,確認(rèn)該密碼。在程序中需要count計(jì)數(shù)以保證達(dá)到8位密碼即判斷密碼輸入正確與否,未達(dá)到8位由外部人員繼續(xù)輸入直至到達(dá)8位。當(dāng)密碼三次輸入錯(cuò)誤,用1HZ頻率閃爍的小燈提示報(bào)警。</p><p><b> 3.4模擬電路</b></p><p><b> 3.4引
12、腳分布</b></p><p> 4 系統(tǒng)的VHDL設(shè)計(jì)</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity c
13、ode is</p><p> port( clk0:in std_logic;</p><p> clk:instd_logic;</p><p> alarm:out std_logic;</p><p> c:out std_logic_vector(6 downto 0):="1000000";-
14、-7段數(shù)顯管</p><p> d:out std_logic_vector(6 downto 0):="1000000";</p><p> k:instd_logic;--高電平表示輸入1</p><p> green:out std_logic;--輸入正確時(shí)亮</p><p> red:out std_l
15、ogic;--輸入錯(cuò)誤時(shí)亮</p><p> reset:instd_logic;-- 按下時(shí)復(fù)位</p><p> want:instd_logic);--是否修改密碼</p><p><b> end;</b></p><p> architecture a of code is</p>&
16、lt;p> signalcode:std_logic_vector(7 downto0);--儲(chǔ)存密碼</p><p> signalgetcode:std_logic_vector(7 downto0);--儲(chǔ)存修改后的密碼</p><p> signalcounter:std_logic_vector(3 downto0);--計(jì)數(shù)</p>
17、;<p> signalcounter2: std_logic_vector(3downto0);--計(jì)數(shù)錯(cuò)誤次數(shù)</p><p> signalallow:std_logic;--是否允許修改密碼</p><p> signal count:integer range 0 to 24999999;</p><p> signal
18、clk_data:std_logic;</p><p><b> begin</b></p><p> process(clk,counter2)</p><p><b> begin</b></p><p> ifreset='1' then--按下reset后,密碼歸為
19、初始密碼</p><p> getcode<="00000000";--初始密碼</p><p> counter<="0000";--內(nèi)部計(jì)數(shù)</p><p> counter2<="0000";</p><p> code<="1
20、1001000";--密碼</p><p> green<='0';</p><p><b> red<='0';</b></p><p> allow<='0';</p><p> alarm<='0'; <
21、/p><p> elsif clk'event and clk='1'then--輸入clk脈沖,則接收1位密碼</p><p> if counter2="0011"then</p><p> getcode<=getcode;</p><p><b> else <
22、;/b></p><p> getcode<=getcode(6 downto 0)&k;--將這1位密碼并入getcode中的最后一位</p><p> if counter="1000"then</p><p> ifcode=getcodethen</p><p> green<
23、;='1';--正確燈亮</p><p> red<='0';</p><p> counter2<="0000";</p><p> alarm<='0';</p><p> allow<='1';--允許修改密碼</
24、p><p> elsifallow='1' and want='1'then--如果允許輸入且想輸入</p><p> code<=getcode;--輸入新密碼</p><p> green<='0';</p><p><b> red<='0
25、9;;</b></p><p> alarm<='0';</p><p> counter2<="0000";</p><p><b> else</b></p><p> allow<='0';</p><p
26、> green<='0';</p><p> red<='1';--錯(cuò)誤燈亮</p><p> counter2<=counter2+1;--累加 </p><p><b> end if;</b></p><p> counter<=&q
27、uot;0000";--重新計(jì)數(shù)</p><p><b> else</b></p><p> counter2<=counter2;</p><p> counter<=counter+1;--累加</p><p><b> end if;</b></p>
28、;<p><b> end if;</b></p><p><b> end if;</b></p><p> if counter2="0011"then</p><p> alarm<=clk_data;</p><p><b>
29、else</b></p><p> alarm<='0';</p><p><b> end if;</b></p><p> end process;</p><p> process(clk) </p><p><b>
30、; begin</b></p><p> if(counter="0000")then --7段數(shù)顯管顯示0到9</p><p> c(6 downto 0)<="1000000";</p><p> elsif (counter<="0001") then</p
31、><p> c(6 downto 0)<="1111001";</p><p> elsif (counter<="0010") then</p><p> c(6 downto 0)<="0100100";</p><p> elsif (counter&l
32、t;="0011") then</p><p> c(6 downto 0)<="0110000";</p><p> elsif (counter<="0100") then</p><p> c(6 downto 0)<="0011001";</p>
33、;<p> elsif (counter<="0101") then</p><p> c(6 downto 0)<="0010010";</p><p> elsif (counter<="0110") then</p><p> c(6 downto 0)<
34、="0000010";</p><p> elsif (counter<="0111") then</p><p> c(6 downto 0)<="1111000";</p><p> elsif (counter<="1000") then</p>
35、<p> c(6 downto 0)<="0000000";</p><p> elsif (counter<="1001") then</p><p> c(6 downto 0)<="0011000";</p><p><b> end if;</
36、b></p><p> if(counter2="0000")then --7段數(shù)顯管顯示0到9</p><p> d(6 downto 0)<="1000000";</p><p> elsif (counter2<="0001") then</p><p
37、> d(6 downto 0)<="1111001";</p><p> elsif (counter2<="0010") then</p><p> d(6 downto 0)<="0100100";</p><p> elsif (counter2<="
38、0011") then</p><p> d(6 downto 0)<="0110000";</p><p><b> end if;</b></p><p> end process;</p><p> process(clk0,clk_data,count)
39、 </p><p><b> begin </b></p><p> if clk0'event and clk0='1' then</p><p> if count=24999999 then </p><p> count<=0; &
40、lt;/p><p> clk_data<=not clk_data; </p><p> else count<=count+1;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)電課程設(shè)計(jì)報(bào)告---電子密碼鎖
- 電子密碼鎖數(shù)電課程設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)---電子密碼鎖
- 數(shù)電課程設(shè)計(jì)---電子密碼鎖電路
- 密碼鎖數(shù)電課程設(shè)計(jì)
- 密碼鎖數(shù)電課程設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)--電子密碼鎖的設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)報(bào)告
- 電子密碼鎖課程設(shè)計(jì)報(bào)告
- 數(shù)電課程設(shè)計(jì)---數(shù)字密碼鎖的設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 課程設(shè)計(jì)--電子密碼鎖
- 電子密碼鎖課程設(shè)計(jì)報(bào)告 (2)
- eda課程設(shè)計(jì)報(bào)告--電子密碼鎖
- eda課程設(shè)計(jì)報(bào)告--電子密碼鎖
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論