EDA電子密碼鎖設(shè)計(jì)報(bào)告_第1頁(yè)
EDA電子密碼鎖設(shè)計(jì)報(bào)告_第2頁(yè)
EDA電子密碼鎖設(shè)計(jì)報(bào)告_第3頁(yè)
EDA電子密碼鎖設(shè)計(jì)報(bào)告_第4頁(yè)
EDA電子密碼鎖設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

.15-/NUMPAGES17目錄TOC\o"1-3"\h\u19349摘要: -2-26618第一章:系統(tǒng)設(shè)計(jì)總述 -3-262701.1設(shè)計(jì)要求 -3-68211.2設(shè)計(jì)方案 -3-11365第二章:總體程序設(shè)計(jì) -3-298472.1整體組裝設(shè)計(jì)原理圖 -4-201902.2頂層模塊程序調(diào)用 -4-260832.2.1程序部分 -4-133052.2.2整體原理文件 -6-16956第三章:?jiǎn)卧K程序設(shè)計(jì) -6-225483.1輸入模塊 -7-56543.1.1輸入模塊程序 -7-228133.1.2輸入模塊元件 -8-260623.1.3輸入模塊仿真 -9-60473.2電子密碼鎖系統(tǒng)控制模塊 -9-120213.2.1控制模塊程序 -10-13513.2.2控制模塊元件 -12-13443.2.3控制模塊仿真 -13-122013.3顯示模塊 -13-73023.3.1顯示模塊元件 -16-40233.3.2顯示模塊仿真 -16-20474第五章:收獲與體驗(yàn) -17-11289參考文獻(xiàn) -18-1統(tǒng)設(shè)計(jì)總述1.1設(shè)計(jì)要求1、密碼輸入:每按下一個(gè)鍵,要求在數(shù)碼管上顯示,并依次左移;2、密碼刪除:每刪除一位,數(shù)碼管上的顯示右移一位,在左邊空出的位補(bǔ)充零;3、密碼設(shè)置:當(dāng)四位密碼輸入完畢,按下設(shè)置功能鍵進(jìn)行設(shè)置.4、密碼檢驗(yàn):輸入密碼,按下檢驗(yàn)鍵.1.2設(shè)計(jì)方案在電子密碼鎖的設(shè)計(jì)中,我首先考慮的方法:是用密碼輸入刪除控制模塊、動(dòng)態(tài)掃描模塊、寄存器模塊、比較模塊、觸發(fā)模塊實(shí)現(xiàn)的。在密碼輸入刪除控制模塊中,每輸入一位數(shù),數(shù)碼管左移一位,設(shè)置刪除信號(hào)back,每按一次,刪除最后輸入的數(shù)字,密碼在數(shù)碼管顯示右移一位,左邊空處0。設(shè)置密碼確認(rèn)信號(hào)set,但四位密碼輸入完畢后,按下set,則密碼被送到寄存器鎖存,比較器模塊得到數(shù)據(jù)A,同時(shí)密碼顯示電路清零。設(shè)置密碼鎖狀態(tài)顯示信號(hào)lock。Lock=0表示鎖未開(kāi),lock=1表示鎖開(kāi),設(shè)置關(guān)鎖信號(hào)close,當(dāng)密碼送到寄存器模塊鎖存后,按下close,則lock=0.設(shè)置密碼檢驗(yàn)信號(hào)check,在lock=0下從數(shù)據(jù)開(kāi)關(guān)輸入四位開(kāi)鎖數(shù)據(jù),按下check,則開(kāi)鎖數(shù)碼送寄存器鎖存,數(shù)據(jù)比較模塊得到數(shù)據(jù)B,若A=B,則觸發(fā)器被置"1".設(shè)計(jì)成三個(gè)模塊:開(kāi)關(guān)編碼模塊、控制模塊、動(dòng)態(tài)顯示模塊設(shè)計(jì)的總結(jié)構(gòu)圖如圖1.1開(kāi)關(guān)編碼輸入模塊開(kāi)關(guān)編碼輸入模塊輸入、刪除、設(shè)置、檢驗(yàn)控制模塊動(dòng)態(tài)顯示模塊圖1.1設(shè)計(jì)總結(jié)構(gòu)圖2總體程序設(shè)計(jì)2.1整體組裝設(shè)計(jì)原理圖系統(tǒng)的整體組裝設(shè)計(jì)有密碼按鍵輸入模塊、密碼控制模塊、密碼顯示模塊三部分組成,系統(tǒng)整體組裝原理圖如圖2.1所示。圖2.1系統(tǒng)整體組裝原理圖2.2頂層模塊程序調(diào)用2.2.1程序部分libraryieee;useieee.std_logic_1164.all;librarywork;entityeleclockis port <clk2_1:instd_logic;clk1_1:instd_logic;key_1:instd_logic_vector<9downto0>;set_1:instd_logic;check_1:instd_logic;close_1:instd_logic;back_1:instd_logic;led_1:outstd_logic_vector<6downto0>;sn_1:outstd_logic_vector<2downto0>;lock_1:outstd_logic>;endeleclock;architecturebdf_typeofeleclockiscomponentleds port<din:instd_logic_vector<15downto0>;clk:instd_logic; con:outstd_logic_vector<1downto0>;led7:outstd_logic_vector<6downto0>;sn:outstd_logic_vector<2downto0>>;endcomponent;componentart port<clk:instd_logic;set:instd_logic;check:instd_logic;close:instd_logic;back:instd_logic;dn:instd_logic_vector<3downto0>; sout:outstd_logic_vector<15downto0>;lock:outstd_logic>;endcomponent;componenttra port<n:instd_logic_vector<9downto0>; sout:outstd_logic_vector<3downto0>>;endcomponent;signal synthesized_wire_3:std_logic_vector<15downto0>;signal synthesized_wire_4:std_logic_vector<3downto0>;beginb2v_inst1:ledsportmap<din=>synthesized_wire_3<15downto0>,clk=>clk2_1,led7=>led_1<6downto0>,sn=>sn_1<2downto0>>;b2v_inst2:artportmap<set=>set_1, check=>check_1, close=>close_1, back=>back_1, clk=>clk1_1, dn=>synthesized_wire_4,sout=>synthesized_wire_3<15downto0>,lock=>lock_1 >;b2v_inst3:traportmap<n=>key_1<9downto0>, sout=>synthesized_wire_4 >;endbdf_type;2.2.2頂層模塊原理文件頂層模塊原理文件如圖2.2圖2.2頂層模塊原理圖3單元模塊程序設(shè)計(jì)3.1按鍵輸入模塊按鍵輸入與對(duì)應(yīng)的編碼輸出之間的關(guān)系如表3-1所示表3-1按鍵編碼按鍵輸入編碼輸出對(duì)應(yīng)的數(shù)字0000000001000110000000010001020000000100001130000001000010040000010000010150000100000011060001000000011170010000000100080100000000100191000000000000003.1.1輸入模塊程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitytraisport<n:instd_logic_vector<9downto0>;定義按鍵輸入端口sout:outstd_logic_vector<3downto0>>;定義編碼輸出端口endtra;architectureatoftrais定義結(jié)構(gòu)體signaltemp:std_logic_vector<3downto0>;begin process<n> begin casenis輸入鍵編碼when"0000000001"=>temp<="0001";when"0000000010"=>temp<="0010";when"0000000100"=>temp<="0011";when"0000001000"=>temp<="0100";when"0000010000"=>temp<="0101";when"0000100000"=>temp<="0110";when"0001000000"=>temp<="0111";when"0010000000"=>temp<="1000";when"0100000000"=>temp<="1001";when"1000000000"=>temp<="0000";whenothers=>temp<="1111";endcase;endprocess;sout<=temp;endat;3.1.2輸入模塊元件圖3.1電子密碼鎖鍵盤(pán)輸入3.1.3輸入模塊仿真圖3.2鍵盤(pán)輸入仿真3.2電子密碼鎖系統(tǒng)控制模塊密碼鎖的控制電路是整個(gè)電路的控制中心。設(shè)置set為密碼設(shè)置端口,check為密碼檢驗(yàn)端口,close為關(guān)鎖端口,back為刪除密碼端口,clk時(shí)鐘輸入端口,dn[3..0]為3位數(shù)字輸入端口,sout[15..0]為16位輸出端口,lock密碼鎖狀態(tài)顯示端口。在此電路中每輸一位數(shù),密碼在數(shù)碼管上左移一位。設(shè)置刪除密碼back,每按下一次back,刪除最后輸入的數(shù)字,左邊空處補(bǔ)0。設(shè)置密碼確認(rèn)信號(hào)set,當(dāng)四位密碼輸入完畢,按下set,設(shè)置的密碼被存儲(chǔ)。設(shè)置密碼鎖狀態(tài)信號(hào)lock,lock=0表示鎖未開(kāi),lock=1表示鎖開(kāi)。設(shè)置關(guān)鎖信號(hào)close,按下close,則鎖關(guān)閉。設(shè)置密碼檢驗(yàn)信號(hào)check,在lock=0下從數(shù)據(jù)開(kāi)關(guān)書(shū)去四位開(kāi)鎖數(shù)字,按下check,若數(shù)據(jù)等于設(shè)置的密碼或萬(wàn)能密碼,則lock=1。模塊程序流程圖如圖3.3開(kāi)始開(kāi)始輸入數(shù)據(jù)數(shù)碼管向左移刪除右移Back=’1’Set=’1’Close=’1’校驗(yàn)是否正確是否有判斷按鍵輸入是否有判斷按鍵輸入check=’1’設(shè)置密碼有關(guān)鎖,顯示為0繼續(xù)輸入無(wú)結(jié)束圖3.3控制模塊程序流程圖3.2.1控制模塊程序密碼鎖控制電路的VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all; entityartis port<set,check,close,back,clk:instd_logic;set密碼設(shè)置信號(hào),check密碼檢驗(yàn)信號(hào),close關(guān)鎖信號(hào)back密碼刪除信號(hào),clk時(shí)鐘信號(hào)dn:instd_logic_vector<3downto0>;sout:outstd_logic_vector<15downto0>;16位輸入信號(hào)lock:outstd_logic>;設(shè)置密碼鎖狀態(tài)信號(hào)endart;architectureatofartis定義結(jié)構(gòu)體signalch:std_logic;begin process<clk,dn>定義進(jìn)程變量variablelock_1:std_logic;variableacc:std_logic_vector<15downto0>;variabletemp1,temp2,temp3,temp4:std_logic_vector<3downto0>;beginch<=not<dn<0>anddn<1>anddn<2>anddn<3>>;設(shè)置按鍵輸入上升沿lock_1:='0';ifclk'eventandclk='1'thenifch='1'then密碼左移顯示temp4:=temp3;temp3:=temp2;temp2:=temp1;temp1:=dn;endif;ifback='1'then密碼刪除右移顯示temp1:=temp2; temp2:=temp3; temp3:=temp4; temp4:="0000";lock_1:='0';endif;ifset='1'then密碼設(shè)置acc:=temp4&temp3&temp2&temp1;lock_1:='0';endif;ifcheck='1'then密碼校驗(yàn) ifacc=temp4&temp3&temp2&temp1then lock_1:='1';elsiftemp4="1000"andtemp3="1000"andtemp2="1000"andtemp1="1000"thenlock_1:='1'; endif;endif;ifclose='1'then lock_1:='0';密碼鎖的關(guān)閉 temp1:="0000"; temp2:="0000"; temp3:="0000"; temp4:="0000";endif;endif;sout<=temp4&temp3&temp2&temp1;lock<=lock_1;endprocess;endat;3.2.2控制模塊元件控制原理封裝元件如〔圖3.3所示。圖3.3〔電子密碼鎖控制3.2.3控制模塊仿真圖3.4〔控制模塊仿真3.3顯示模塊密碼顯示電路主要將顯示數(shù)據(jù)的BCD碼轉(zhuǎn)換成相對(duì)應(yīng)的編碼。選用七段數(shù)碼管顯示電路將待顯示數(shù)據(jù)的BCD碼轉(zhuǎn)換成數(shù)碼器的七段顯示驅(qū)動(dòng)編碼。七段碼顯示器外形與筆劃如圖3.5:daefcbgdaefcbg圖3.5七段碼顯示器外形與筆劃字形與代碼的對(duì)應(yīng)關(guān)系如表3-2:表3-2BCD七段譯碼器真值表輸入輸出字形DCBAabcdefg000011111100000101100001001011011012001111110013010001100114010110110115011010111116011111100007100011111118100111110119開(kāi)始開(kāi)始計(jì)數(shù)片選為0,0~3位顯示片選為1,4~7位顯示片選為2,8~11位顯示片選為3,12~15位顯示結(jié)束圖11—數(shù)碼管動(dòng)態(tài)顯示流程圖libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityledsis定義實(shí)體port<din:instd_logic_vector<15downto0>;16輸入信號(hào)clk:instd_logic;時(shí)鐘信號(hào)con:bufferstd_logic_vector<1downto0>;led7:outstd_logic_vector<6downto0>;七段數(shù)碼管輸入信號(hào)sn:outstd_logic_vector<2downto0>>;數(shù)碼管七段譯碼信號(hào)endleds;architectureheofledsis定義結(jié)構(gòu)體signaldb:std_logic_vector<3downto0>;beginprocess<clk,din>beginifclk'eventandclk='1'thencon<=con+1;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論