版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì) 報(bào) 告電子與信息工程學(xué)院電子線路課程設(shè)計(jì)報(bào)告( 2011 2012 學(xué)年 第 一 學(xué)期) 課程設(shè)計(jì)題目:四位密碼鎖內(nèi)容和要求:1. 掌握vhdl語(yǔ)言的使用,學(xué)會(huì)用vhdl語(yǔ)言來編程解決實(shí)際問題;2. 學(xué)會(huì)使用eda開發(fā)軟件設(shè)計(jì)小型綜合電路,掌握仿真的技巧;3. 學(xué)會(huì)應(yīng)用開發(fā)系統(tǒng)實(shí)現(xiàn)硬件電路,檢驗(yàn)電路的功能。4.用vhdl語(yǔ)言設(shè)計(jì)一個(gè)密碼鎖,用波形仿真驗(yàn)證其功能后,實(shí)現(xiàn)到gw48實(shí)驗(yàn)系統(tǒng)。功能描述:用于模仿密碼鎖的工作過程。完成密碼鎖的核心控制功能。功能要求: 設(shè)計(jì)一個(gè)密碼鎖,平時(shí)處于等待狀態(tài)。管理員可以設(shè)置或更改密碼。如果不預(yù)置密碼,密碼缺省為“1234”。用戶如果需要開鎖,按
2、相應(yīng)的按鍵進(jìn)入輸入密碼狀態(tài),輸入4位密碼,按下確定鍵后,若密碼正確,鎖打開;若密碼錯(cuò)誤,將提示密碼錯(cuò)誤,要求重新輸入,三次輸入都錯(cuò)誤,將發(fā)出報(bào)警信號(hào)。報(bào)警后,只有管理員作相應(yīng)的處理才能停止報(bào)警。用戶輸入密碼時(shí),若輸入錯(cuò)誤,在按下確定鍵之前,可以通過按取消鍵重新輸入。正確開鎖后,用戶處理完畢后,按下確定鍵,系統(tǒng)回到等待狀態(tài)。系統(tǒng)操作過程中,只要密碼鎖沒有打開,如果60秒沒有對(duì)系統(tǒng)操作,系統(tǒng)回到等待狀態(tài)。要求密碼在輸入過程中被依次顯示,即先輸入的為密碼的第一位,總是顯示在最左邊。用兩個(gè)發(fā)光二極管模擬顯示,其中一個(gè)顯示當(dāng)前的工作模式,滅表示用戶模式,亮表示管理員模式;另外一個(gè)指示鎖的狀態(tài),滅表示鎖處
3、于鎖定,亮表示鎖被開啟。注意:用兩個(gè)按鍵實(shí)現(xiàn)密碼輸入,key1選擇輸入的是第幾位密碼,key2輸入密碼數(shù)字。 功能描述:初始狀態(tài):初次使用密碼鎖時(shí),要先用reset鍵初始化。初始狀態(tài)下,用戶密碼為“1234”,管理員密碼為“0000”。用戶開鎖:默認(rèn)情況下,密碼鎖處于用戶使用狀態(tài)。如果當(dāng)前為管理員狀態(tài),則按下user鍵回到用戶狀態(tài)。用戶開鎖時(shí),輸入四位數(shù)用戶密碼,可以從outcode6的輸出狀態(tài)確定密碼輸入狀態(tài)。如輸入錯(cuò)誤則按下clear清除前一位輸入。輸入完畢后按enter,如果密碼正確,則開鎖,否則重新輸入密碼。開鎖后再次按下enter鍵則關(guān)鎖,回到等待狀態(tài)。三次密碼輸入錯(cuò)誤,警報(bào)器ala
4、rmsignaling為1。要管理員輸入管理員密碼解除警報(bào)。此時(shí)哪怕用戶再輸對(duì)密碼也沒用。管理員解除警報(bào):當(dāng)用戶三次密碼輸入錯(cuò)誤的時(shí)候,alarmsignaling為1,此時(shí),只要管理員密碼輸入正確后,按下clear鍵,alarmsignaling為0,報(bào)警取消。管理員修改密碼:在非警報(bào)和為開鎖狀態(tài)下,任何時(shí)候按admin鍵進(jìn)入管理員狀態(tài)。按chgcode選擇修改密碼,先選擇修改的是用戶密碼還是管理員密碼。修改用戶密碼則按user鍵,修改管理員密碼則按admin鍵。然后分別輸入舊密碼,新密碼,新密碼要輸入兩次。舊密碼與所要修改的密碼對(duì)應(yīng)。如舊密碼輸入錯(cuò)誤,則無法修改;當(dāng)驗(yàn)證不成功即兩次新密碼不
5、相同時(shí),修改密碼失敗。返回等待狀態(tài)。成功后也返回等待狀態(tài)。定時(shí)返回:用戶在未開鎖狀態(tài)下,60s沒有按鍵輸入,則返回等待狀態(tài),但不包括alarmsignaling狀態(tài)。只要是alarmsignaling,則只有管理輸入管理員密碼才能解鎖并按下clear消除警報(bào)。設(shè)計(jì)內(nèi)容(原理圖以及相關(guān)說明、調(diào)試過程、結(jié)果)設(shè)計(jì)思路:設(shè)計(jì)密碼鎖時(shí),采用自頂向下的設(shè)計(jì)方法。將整個(gè)系統(tǒng)分成幾個(gè)子模塊:輸入輸出模塊,控制模塊,按鍵設(shè)置模塊和60s計(jì)時(shí)器模塊。 控制模塊是整個(gè)程序的主要部分,采用狀態(tài)循環(huán)的辦法,以用戶每按下一次按鍵為計(jì)量單位,劃分狀態(tài),以實(shí)現(xiàn)各種功能。60s計(jì)時(shí)器模塊是完成60s沒有按鍵則返回等待狀態(tài)這一
6、功能的主要模塊。這個(gè)模塊的核心思想是一個(gè)變量numtime計(jì)數(shù)。變量numtime的初始值為0,在無報(bào)警為開鎖的情況下,時(shí)鐘每秒發(fā)出一個(gè)上升沿信號(hào),計(jì)數(shù)一次,如有按鍵則numtime清零,否則計(jì)數(shù)到60即“111100”則返回信號(hào)back變?yōu)?,返回等待狀態(tài)。按鍵設(shè)置模塊是將各種功能按鍵用高低電平賦值,便于調(diào)用。程序設(shè)計(jì):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity e_lock is port( clk,user,admin,clear,enter,chgcode,res:in
7、std_logic; num:in std_logic_vector(9 downto 0); lockopen:buffer std_logic; alarmsignaling,o_ua,o_chgcode,chgcode_ua:out std_logic; outcode6:out std_logic_vector(3downto 0) ); end e_lock;architecture behave of e_lock istype states is (ss,sw,s0,s1,s2,s3,s4,s5,s6,s7,s8,s9);signal state:states;signal ke
8、y1,code0,code1,code2,code3,code4,code5:std_logic_vector(3 downto 0);signal userpassword,adminpassword:std_logic_vector(23 downto 0);signal tempcode,oldcode:std_logic_vector(23 downto 0);signal new_ctime:std_logic_vector(1 downto 0);signal key:std_logic_vector(14 downto 0);signal alarmsignal,inkey,if
9、num,s_ua,chg_c,c_ua,back:std_logic;signal outcode:std_logic_vector(5 downto 0);signal numtime:std_logic_vector(9 downto 0);begin tempcode=code0&code1&code2&code3&code4&code5; key=user&admin&chgcode&enter&clear# inkey=user or admin or chgcode or enter or clear or num(0) or num(1) or num(2) or num
10、(3) or num(4) or num(5) or num(6) or num(7) or num(8) or num(9); ifnum=not(key1(3) and (key1(2) or key1(1); o_ua=s_ua; chgcode_ua=c_ua; o_chgcode=chg_c; outcode6=outcode; alarmsignaling=alarmsignal; main:process(res,clk) variable n,m:std_logic_vector(1 downto 0):=00; variable newcode1,newcode2:std_l
11、ogic_vector(23 downto 0); begin if (res=1)then state=ss; userpassword=100110011001100110011001; adminpassword=000000000000000000000000; n:=00; s_ua=0; c_ua=0; chg_c=0; new_ctime=00; alarmsignal state if back=1 then state=sw; elsif (ifnum=1 and alarmsignal=0 and chg_c=0 ) then code5=key1; outcode=000
12、1; state=s1; elsif (ifnum=1 and c_ua=0 and chg_c=1 ) then oldcode=userpassword; code5=key1; outcode=0001; state=s1; elsif (ifnum=1 and alarmsignal=1 and s_ua=1 and chg_c=0 ) then code5=key1; outcode=0001; state=s1; elsif (ifnum=1 and c_ua=1 and chg_c=1 ) then oldcode=adminpassword; code5=key1; outco
13、de=0001; state=s1; elsif (key1=1101and chg_c=0 )then s_ua=1; state=s0; elsif (key1=1110and chg_c=0 and alarmsignal=0) then s_ua=0; state if back=1 then state=sw; elsif(ifnum=1)then code4=key1; outcode=0011; state=s2; elsif (key1=1010)then outcode=0000; state=s0; elsif (key1=1110 and chg_c=0) then ou
14、tcode=0000; s_ua=0; state=s0; elsif (key1=1101 and chg_c=0) then outcode=0000; s_ua=1; state if back=1 then state=sw; elsif(ifnum=1)then code3=key1; outcode=0111; state=s3; elsif (key1=1010)then outcode=0001; state=s1; elsif (key1=1110 and chg_c=0) then outcode=0000; s_ua=0; state=s0; elsif (key1=11
15、01 and chg_c=0) then outcode=0000; s_ua=1; state if back=1 then state=sw; elsif(ifnum=1)then code2=key1; outcode=1111; state=s4; elsif (key1=1010)then outcode=0011; state=s2; elsif (key1=1110 and chg_c=0) then outcode=0000; s_ua=0; state=s0; elsif (key1=1101 and chg_c=0) then outcode=0000; s_ua=1; s
16、tate if back=1 then state=sw; elsif(ifnum=1)then code1=key1; outcode=1111; state=s5; elsif (key1=1010)then outcode=0111; state=s3; elsif (key1=1110 and chg_c=0) then outcode=0000; s_ua=0; state=s0; elsif (key1=1101 and chg_c=0) then outcode=0000; s_ua=1; state if back=1 then state=sw; elsif(ifnum=1)
17、then code0=key1; outcode=1111; state=s6; elsif (key1=1010)then outcode=1111; state=s4; elsif (key1=1110 and chg_c=0) then outcode=0000; s_ua=0; state=s0; elsif (key1=1101 and chg_c=0) then outcode=0000; s_ua=1; state if back=1 then state=sw; elsif (key1=1011 and chg_c=0)then state=s7; outcode=0000;
18、elsif (key1=1011 and chg_c=1and m=00)then outcode=0000; if (oldcode=tempcode) then m:=01; state=s0; else state=sw; end if; elsif (key1=1011 and chg_c=1and m=01)then outcode=0000; newcode1:=tempcode; m:=10; state=s0; elsif (key1=1011 and chg_c=1and m=10)then outcode=0000; newcode2:=tempcode; if (newc
19、ode1=newcode2 and c_ua=0) then userpassword=newcode2; state=sw; elsif(newcode1=newcode2 and c_ua=1)then adminpassword=newcode2; state=sw; elsif(newcode1/=newcode2) then state=sw; end if; elsif (key1=1010)then outcode=1111; state if (s_ua=0 and tempcode=userpassword) then lockopen=1; state=s8; elsif
20、(s_ua=0and tempcode/=userpassword) then n:=n+1; if n=11 then alarmsignal=1; state=s0; outcode=0000; else state=s0; outcode=0000; end if; elsif (s_ua=1 and tempcode=adminpassword) then state=s8; elsif(s_ua=1 and tempcode/=adminpassword) then state if back=1 then state=sw; elsif(key1=1011)then-enter s
21、tate=sw; elsif(key1=1010and alarmsignal=1) then alarmsignal=0; state=s0; outcode=0000; elsif(key1=1100) then chg_c=1; state m:=00; if back=1 then state=sw; elsif(key1=1110)then c_ua=0; oldcode=userpassword; state=s0; elsif(key1=1101)then c_ua=1; oldcode=adminpassword; state alarmsignal=0; s_ua=0; c_ua=0; m:=00; n:=00; lockopen=0; outcode=0000; chg_c=0; statekey1key1key1key1key1key1key1key1key1key1key1key1key1key1key1key1=1111; end case; end if;end process input;process(inkey,res,clk,alarmsignal,lockopen)variable numtime:std_lo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑工程材料價(jià)格聯(lián)動(dòng)合同3篇
- 舞蹈音樂解析課程設(shè)計(jì)
- 二零二五年大學(xué)商業(yè)街商鋪?zhàn)赓U與公共秩序維護(hù)合同
- 二零二五年度商品房預(yù)售資金監(jiān)管合同模板3篇
- 2024年花卉租賃協(xié)議:擺放出租特別規(guī)定
- 2024年股權(quán)轉(zhuǎn)讓標(biāo)準(zhǔn)化協(xié)議文件版B版
- 2024年跨境工程拖車服務(wù)合同3篇
- 二零二五年度21世紀(jì)不動(dòng)產(chǎn)二手房購(gòu)房合同(二手房交易稅收籌劃)2篇
- 2025年度物業(yè)服務(wù)合同:關(guān)于某商業(yè)大樓物業(yè)管理的詳細(xì)規(guī)定及服務(wù)內(nèi)容3篇
- 英文繪本的課程設(shè)計(jì)
- 2024年人教版三年級(jí)上數(shù)學(xué)教學(xué)計(jì)劃和進(jìn)度安排
- 《電能計(jì)量知識(shí)介紹》課件
- 2023-2024學(xué)年山東省濰坊市高新區(qū)六年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 彈性模量自動(dòng)生成記錄
- 老年癡呆患者安全護(hù)理
- 2024年教師師德師風(fēng)工作計(jì)劃(2篇)
- 物流行業(yè)服務(wù)質(zhì)量保障制度
- 2025新外研社版英語(yǔ)七年級(jí)下Unit 1 The secrets of happiness單詞表
- 養(yǎng)老院物資采購(gòu)流程及制度
- 眼鏡店年終總結(jié)及計(jì)劃
- 汽車行走的藝術(shù)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評(píng)論
0/150
提交評(píng)論