版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
.15-/NUMPAGES17目錄TOC\o"1-3"\h\u19349摘要: -2-26618第一章:系統(tǒng)設(shè)計總述 -3-262701.1設(shè)計要求 -3-68211.2設(shè)計方案 -3-11365第二章:總體程序設(shè)計 -3-298472.1整體組裝設(shè)計原理圖 -4-201902.2頂層模塊程序調(diào)用 -4-260832.2.1程序部分 -4-133052.2.2整體原理文件 -6-16956第三章:單元模塊程序設(shè)計 -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第五章:收獲與體驗 -17-11289參考文獻(xiàn) -18-1統(tǒng)設(shè)計總述1.1設(shè)計要求1、密碼輸入:每按下一個鍵,要求在數(shù)碼管上顯示,并依次左移;2、密碼刪除:每刪除一位,數(shù)碼管上的顯示右移一位,在左邊空出的位補充零;3、密碼設(shè)置:當(dāng)四位密碼輸入完畢,按下設(shè)置功能鍵進(jìn)行設(shè)置.4、密碼檢驗:輸入密碼,按下檢驗鍵.1.2設(shè)計方案在電子密碼鎖的設(shè)計中,我首先考慮的方法:是用密碼輸入刪除控制模塊、動態(tài)掃描模塊、寄存器模塊、比較模塊、觸發(fā)模塊實現(xiàn)的。在密碼輸入刪除控制模塊中,每輸入一位數(shù),數(shù)碼管左移一位,設(shè)置刪除信號back,每按一次,刪除最后輸入的數(shù)字,密碼在數(shù)碼管顯示右移一位,左邊空處0。設(shè)置密碼確認(rèn)信號set,但四位密碼輸入完畢后,按下set,則密碼被送到寄存器鎖存,比較器模塊得到數(shù)據(jù)A,同時密碼顯示電路清零。設(shè)置密碼鎖狀態(tài)顯示信號lock。Lock=0表示鎖未開,lock=1表示鎖開,設(shè)置關(guān)鎖信號close,當(dāng)密碼送到寄存器模塊鎖存后,按下close,則lock=0.設(shè)置密碼檢驗信號check,在lock=0下從數(shù)據(jù)開關(guān)輸入四位開鎖數(shù)據(jù),按下check,則開鎖數(shù)碼送寄存器鎖存,數(shù)據(jù)比較模塊得到數(shù)據(jù)B,若A=B,則觸發(fā)器被置"1".設(shè)計成三個模塊:開關(guān)編碼模塊、控制模塊、動態(tài)顯示模塊設(shè)計的總結(jié)構(gòu)圖如圖1.1開關(guān)編碼輸入模塊開關(guān)編碼輸入模塊輸入、刪除、設(shè)置、檢驗控制模塊動態(tài)顯示模塊圖1.1設(shè)計總結(jié)構(gòu)圖2總體程序設(shè)計2.1整體組裝設(shè)計原理圖系統(tǒng)的整體組裝設(shè)計有密碼按鍵輸入模塊、密碼控制模塊、密碼顯示模塊三部分組成,系統(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è)計3.1按鍵輸入模塊按鍵輸入與對應(yīng)的編碼輸出之間的關(guān)系如表3-1所示表3-1按鍵編碼按鍵輸入編碼輸出對應(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電子密碼鎖鍵盤輸入3.1.3輸入模塊仿真圖3.2鍵盤輸入仿真3.2電子密碼鎖系統(tǒng)控制模塊密碼鎖的控制電路是整個電路的控制中心。設(shè)置set為密碼設(shè)置端口,check為密碼檢驗端口,close為關(guān)鎖端口,back為刪除密碼端口,clk時鐘輸入端口,dn[3..0]為3位數(shù)字輸入端口,sout[15..0]為16位輸出端口,lock密碼鎖狀態(tài)顯示端口。在此電路中每輸一位數(shù),密碼在數(shù)碼管上左移一位。設(shè)置刪除密碼back,每按下一次back,刪除最后輸入的數(shù)字,左邊空處補0。設(shè)置密碼確認(rèn)信號set,當(dāng)四位密碼輸入完畢,按下set,設(shè)置的密碼被存儲。設(shè)置密碼鎖狀態(tài)信號lock,lock=0表示鎖未開,lock=1表示鎖開。設(shè)置關(guān)鎖信號close,按下close,則鎖關(guān)閉。設(shè)置密碼檢驗信號check,在lock=0下從數(shù)據(jù)開關(guān)書去四位開鎖數(shù)字,按下check,若數(shù)據(jù)等于設(shè)置的密碼或萬能密碼,則lock=1。模塊程序流程圖如圖3.3開始開始輸入數(shù)據(jù)數(shù)碼管向左移刪除右移Back=’1’Set=’1’Close=’1’校驗是否正確是否有判斷按鍵輸入是否有判斷按鍵輸入check=’1’設(shè)置密碼有關(guān)鎖,顯示為0繼續(xù)輸入無結(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è)置信號,check密碼檢驗信號,close關(guān)鎖信號back密碼刪除信號,clk時鐘信號dn:instd_logic_vector<3downto0>;sout:outstd_logic_vector<15downto0>;16位輸入信號lock:outstd_logic>;設(shè)置密碼鎖狀態(tài)信號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密碼校驗 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)換成相對應(yīng)的編碼。選用七段數(shù)碼管顯示電路將待顯示數(shù)據(jù)的BCD碼轉(zhuǎn)換成數(shù)碼器的七段顯示驅(qū)動編碼。七段碼顯示器外形與筆劃如圖3.5:daefcbgdaefcbg圖3.5七段碼顯示器外形與筆劃字形與代碼的對應(yīng)關(guān)系如表3-2:表3-2BCD七段譯碼器真值表輸入輸出字形DCBAabcdefg000011111100000101100001001011011012001111110013010001100114010110110115011010111116011111100007100011111118100111110119開始開始計數(shù)片選為0,0~3位顯示片選為1,4~7位顯示片選為2,8~11位顯示片選為3,12~15位顯示結(jié)束圖11—數(shù)碼管動態(tài)顯示流程圖libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityledsis定義實體port<din:instd_logic_vector<15downto0>;16輸入信號clk:instd_logic;時鐘信號con:bufferstd_logic_vector<1downto0>;led7:outstd_logic_vector<6downto0>;七段數(shù)碼管輸入信號sn:outstd_logic_vector<2downto0>>;數(shù)碼管七段譯碼信號endleds;architectureheofledsis定義結(jié)構(gòu)體signaldb:std_logic_vector<3downto0>;beginprocess<clk,din>beginifclk'eventandclk='1'thencon<=con+1;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年物業(yè)清潔與維護(hù)服務(wù)合同3篇
- 2024年檢測領(lǐng)域咨詢服務(wù)協(xié)議精簡版版
- 2024年協(xié)議離婚合作的藝術(shù)與法律框架3篇
- 2024事業(yè)單位青年英才招聘合同3篇
- 2025營業(yè)執(zhí)照抵押合同范本格式
- 2024年新型城鎮(zhèn)化建設(shè)項目投標(biāo)書范本合同3篇
- 2025年開封貨運上崗資格證模擬考試
- 洛陽師范學(xué)院《包裝材料學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 房地產(chǎn)銷售顧問聘用合同樣本
- 環(huán)保產(chǎn)業(yè)授權(quán)經(jīng)營的管理辦法
- 樂山大佛介紹課件
- 血透室運用PDCA循環(huán)降低血透病人長期深靜脈留置導(dǎo)管的感染率品管圈成果匯報
- 云南省昆明一中2024年高二上數(shù)學(xué)期末質(zhì)量檢測試題含解析
- 網(wǎng)絡(luò)安全攻防演練防守方方案
- 初中語文人教七年級上冊群文閱讀 -
- 教育政策與法規(guī)全套完整教學(xué)課件
- 關(guān)注心靈快樂成長心理健康教育主題班會
- 數(shù)胎動那些事兒胎動與胎兒安全孕婦學(xué)校課件PPT
- 沖刺高考主題班會
- 小型谷物烘干機(jī)設(shè)計
- 英語四級詞匯表帶音標(biāo)(免費下載)
評論
0/150
提交評論