




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選文檔目 錄第1章 實驗簡介11.1課題背景11.2 研究意義11.3 本文主要內(nèi)容1第2章 硬件電路設(shè)計12.1相關(guān)芯片簡介32.2 仿真電路總體設(shè)計5第3章 軟件編程設(shè)計63.1系統(tǒng)概述63.2 程序流程圖設(shè)計73.3 按鍵控制93.4 字符動態(tài)顯示10第4章 系統(tǒng)實現(xiàn)10第5章 結(jié)論115.1 設(shè)計總結(jié)115.2 收獲與體會115.3 缺點與不足11第1章 實驗簡介1.1課題背景在日常的生活和工作中,住宅與部門的安全防范、單位的文件檔案、財務(wù)報表以及一些個人資料的保存多以鎖的辦法來解決。這種辦法不僅給不法分子帶來了可乘之機,而且傳統(tǒng)的機械式開鎖也給人們的出行帶來了不便,最重要的是一旦鑰
2、匙丟失后安全性也大打折扣。隨著科學技術(shù)的不斷發(fā)展,人們對日常生活中的安全保險器件的要求越來越高。為滿足人們對鎖的使用需要,增加其安全性,用電子密碼鎖代替鑰匙鎖應(yīng)運而生。密碼鎖具有安全性高、成本低、功耗低、易操作等優(yōu)點。1.2 研究意義在安全技術(shù)防范領(lǐng)域,具有防盜換碼功能的電子密碼鎖逐漸代替?zhèn)鹘y(tǒng)的機械式密碼鎖,克服了機械式密碼鎖密碼量少、安全性能差等缺點,使密碼鎖無論在技術(shù)上還是在性能上都大大提高一步。隨著人們對安全的重視和科技的發(fā)展,許多電子智能鎖。但是這些產(chǎn)品的特點是針對特定的指紋和有效磁卡的,只能適用于保密要求的箱、柜、門等。而且指紋識別器若在公共場所使用存在容易機械損壞,IC卡還存在容易
3、丟失、損壞等特點。加上其成本較高,一定程度上限制了這類產(chǎn)品的普及和推廣,鑒于目前的技術(shù)水平與市場的接收程度,電子密碼鎖是這類電子防盜產(chǎn)品的主流。此外,可以通過編寫匯編語言程序以及硬件電路仿真設(shè)計來提高我們分析問題、解決問題的能力。1.3 本文主要內(nèi)容本文介紹電子密碼鎖的軟硬件設(shè)計,下面簡單介紹成品的功能與操作。實現(xiàn)的功能:電子密碼鎖主要由一片8086CPU,一片74LS138譯碼器,三片74LS373,一片74LS245緩沖器,一片8255A及數(shù)碼管構(gòu)成,通過軟件編程以及硬件鏈接可以實現(xiàn)四位密碼的設(shè)定、更改以及顯示,通過判斷密碼的正確與否來控制鎖的開關(guān)。具體操作:輸入密碼:(1)、開始執(zhí)行時數(shù)
4、碼管每一位都顯示“米”,點輸入密碼數(shù)碼管只有第一位顯示“米”,點擊數(shù)字鍵進行數(shù)字選擇;(2)、按下“確認”鍵后跳到第二個數(shù)字,操作同第一步;(3)、當四個密碼選中完畢,按下“確認輸入”鍵,顯示輸入的密碼; (4)、按下“開鎖”鍵,若密碼正確,同時顯示*YES,密碼鎖打開;(5)、按下“開鎖”鍵,若密碼錯誤,則顯示ERRO,密碼鎖不能打開,按下“輸入密碼”鍵,即可重新輸入密碼。更改密碼: (1)、在顯示*YES時,按下“更改密碼”鍵后,輸入新的四位密碼; (2)、按下“確認輸入”鍵,顯示新密碼,按下“確認”鍵,即可設(shè)定新密碼。錯誤警報: 若輸入錯誤密碼超過5次,警報會自動響起,只有再次輸入正確密
5、碼后方可解除警報。第2章 硬件電路設(shè)計2.1相關(guān)芯片簡介1. 8255第一片8255定義A.B.C口都為輸出狀態(tài),A.B口控制數(shù)碼管的輸入口,對應(yīng)相應(yīng)的段碼表,來顯示。C口的PC0,PC1經(jīng)過2-4譯碼器,來激活數(shù)碼管1,2,3,4通道,并采用00,01,10,11,循環(huán)輸出的方式,使數(shù)碼管通道循環(huán)激活,實現(xiàn)動態(tài)顯示。第二片8255定義A,B,C口都為輸入狀態(tài),對應(yīng)輸入相應(yīng)的按鈕狀態(tài),對應(yīng)相應(yīng)的程序,實現(xiàn)相應(yīng)功能。2. 8253使用0通道,方式3,對輸入的始終信號分頻,當輸入密碼次數(shù)大于5次時,初始化8253,并發(fā)出警報提示聲。當輸入密碼正確后,激活1通道,警報提示聲接觸。3. 2-4譯碼器由
6、于8086運行速度過快,數(shù)碼管動態(tài)顯示出現(xiàn)顯示不全的現(xiàn)象,因此PC0,PC1輸出經(jīng)過2-4譯碼器之后,再激活數(shù)碼管,起到緩沖作用。4. 16位數(shù)碼管16位數(shù)碼管的數(shù)碼管,由16個引腳控制,低電平有效,其中A-H控制外圈0,K-M控制內(nèi)部* S1-s4是通道控制,高電平有效。2.2 仿真電路總體設(shè)計 8086CPU輸出可編程并行接口8255A總線連接數(shù)碼管控制連接警報器控制按鈕本實驗設(shè)計中,硬件部分涉及到了8086CPU、可編程并行接口8255A,并配合74LS373鎖存器、74LS245緩沖器、74LS138譯碼器等基本元器件,實現(xiàn)了設(shè)想的電子密碼鎖。8255A:如圖2-6,8255A的D0D
7、7端口與CPU數(shù)據(jù)線ADOAD7相接,CPU通過控制線的片選、讀、寫信號接口對8255A進行讀、寫與片選操作。外設(shè)接口端的A0-A7八個開關(guān)連接245的A0-A7端口,將外設(shè)信息傳送到245中,鍵入密碼輸入、密碼確定、修改密碼等多種功能。圖2-6 開關(guān)功能如圖2-7,A口的PA0-PA7端口通過鎖存器與數(shù)碼管相連用于外圈顯示,B口的PB0-PB7端口通過74LS373鎖存器與數(shù)碼管進行連接用于內(nèi)部“米”字格的顯示。第3章 軟件編程設(shè)計3.1系統(tǒng)概述密碼鎖是一種通過密碼輸入來控制電路或芯片工作,從而控制機械的開關(guān)和閉合,完成開鎖閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性
8、價比較高的產(chǎn)品。現(xiàn)在運用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的,其性能和安全性已大大超過機械鎖。其特點是保密性好,隨機開鎖成功率幾乎為零。密碼可變,用戶可隨時更改密碼,防止密碼被盜,同時也可以避免因人員的更替而使鎖的密級下降。無活動零件,不會磨損,壽命長。使用靈活性好,不像機械鎖必須佩帶鑰匙才能開鎖。3.2 程序流程圖設(shè)計密碼的輸入與判定初始化更改密碼按數(shù)字按鈕確定 換位 位數(shù)+1 位數(shù)=4重新輸入 N Y顯示E R R O判定 N Y* Y E S開鎖圖3-1 密碼的輸入與判定密碼的更改更改密碼按數(shù)字按鈕確定 換位 位數(shù)+1 位數(shù)=4重新輸入 N Y顯示E R R O判定 N Y*
9、 Y E S開鎖圖3-2 密碼的更改3.3 按鍵控制(1)、控制字 給8255A輸入端口控制字:void fun82531() _asm mov dx, 0x8006 mov al, 0x37 out dx, al outp(GATE0,0x02); outp(GATE0,0x00); void fun82532() _asm mov dx, 0x8006 mov al, 0x77 out dx, al outp(GATE0,0x99); outp(GATE0,0x99); (2)、密碼鍵入控制整個過程中主要是對是否有按鍵信息輸入進行掃描判斷,并將所得信息與燈管編號進行比對,確定所選擇要鍵入數(shù)
10、字的燈管。當目前的燈管數(shù)字被選出后,自動跳到下一個燈管,直到四位數(shù)字全部選擇完畢。 3.4 字符動態(tài)顯示四位密碼選出后,顯示四位選定數(shù)字,然后檢測密碼正確性,8255A通過端口A、B、C讀取指令,根據(jù)檢測結(jié)果,密碼正確則輸出代碼顯示*YES,錯誤則顯示ERRO。 見附錄:檢測密碼正確性更改密碼,鍵入“更改密碼”控制字后,與輸入密碼的流程相同,先選擇燈管,待選定數(shù)字后跳至下一個,直到四位數(shù)字全部選定,然后鍵入“確認更改”指令,則密碼更改成功。見附錄:密碼更改第4章 系統(tǒng)實現(xiàn)4.1 proteus仿真實驗圖4-1 Proteus仿真圖如圖4-1,為本實驗的Proteus仿真模擬圖,整個實驗共用到8
11、086CPU一個、74LS245一個、可編程并行接口8255A一個,74LS273鎖存器三個、74LS138譯碼器一個、數(shù)碼管一個、與非門兩個、開關(guān)八個、電阻八個。第6章 結(jié)論6.1 設(shè)計總結(jié)通過對電子密碼鎖的設(shè)計,從設(shè)計硬件電路到編寫代碼,再到對程序的調(diào)試,在整個的設(shè)計過程中學到了很多。例如,我們用到了8255A的并行接口,將二進制的控制信息傳入8086CPU中處理,選擇對密碼是否正確進行調(diào)整。與此同時,我們又通過這次產(chǎn)品的設(shè)計加深了對硬件知識的理解以及常用芯片功能的掌握。在使用8255A和8253的時候,要對其進行初始化,這初始化程序的編寫,有助于對這些接口芯片的工作原理的理解??傊?,在實
12、驗中自己動手,把理論知識用于實踐,從中能夠?qū)W到很多。6.2 收獲與體會通過這一個多月以來對電子密碼鎖的硬件電路的設(shè)計,以及對軟件程序的編寫,我們又對計算機硬件技術(shù)基礎(chǔ)這門課程有了更深一層的理解。與此同時,我們還有如下收獲:首先,我們能熟練掌握計算機硬件技術(shù)知識,其中包括硬件電路設(shè)計和軟件編程設(shè)計等內(nèi)容。計算機硬件技術(shù)基礎(chǔ)是比較難學的科目,尤其是對那些沒有過編程基礎(chǔ)的學員來說,剛開始接觸時感覺力不從心。但是,通過設(shè)計這個電子密碼鎖,我組成員都能對硬件設(shè)計以及軟件編程熟練掌握,并且能實現(xiàn)原計劃的功能,效果比較顯著。其次,增強了我們組員之間的團結(jié)協(xié)作的能力。通過實驗,我們明白了團隊力量的強大,只有一
13、個團隊能夠齊心協(xié)力、合理分工,工作才能有條不紊的高效開展。6.3 缺點與不足雖然在這次電子密碼鎖的制作中我們收獲了很多,但是也不乏問題存在。首先,剛開始的時候分工不明確,導致制作進程比較緩慢。由于剛接觸一門全新的課程,再加上對程序的編寫不是很熟悉,所以大家都不知道從何入手,沒有明確的分工。隨著教員對硬件知識的講解,再結(jié)合平時的小組討論與自我學習,大家對C語言基本理解。于是開始分配任務(wù),有主攻硬件設(shè)計的,有軟件編程的,也有PPT制作和論文編寫的,以此提高了我們的效率。其次,由于我們知識積累不足,導致大家在制作中遇到很多困難,期出現(xiàn)厭煩心理,抱怨聲音較多,甚至出現(xiàn)了分歧與爭吵。當然,對于一個團隊來
14、說,出現(xiàn)矛盾是在所難免的,這時候作為組長更應(yīng)該起到穩(wěn)定軍心的作用。大家在一起,從頭來過,尋找解決問題的辦法,一起攻克難關(guān)。程序:#define GATE0 0x8000 #define GATE1 0x8002 #define GATE2 0x8004 #define GATECOM 0x8006#define IOA1 0xc000#define IOB1 0xc002#define IOC1 0xc004#define IOCC1 0xc006#define IOA2 0xD000#define IOB2 0xD002#define IOC2 0xD004#define IOCC2 0xD
15、006char err1=0CH, 38H,38H,00H;char err2=77H, 67H,67H,0FFH;char cs=0b00000000,0b00000001,0b00000010,0b00000011;char num1=00H,0f3h,88h,0c0h,73h,44H,04H,0F0H,00H,40H;char num2=0ffh,0ffh,77h,77h,77h,77h,77h,0ffh,77h,77h;char yes1=0FFH,0FFH,0CH,44h,;char yes2=00H, 0DAH,77H,77h;void outp(unsigned int addr
16、, char data)/ Output byte to port _asm mov dx, addr mov al, data out dx, al char inp(unsigned int addr)/ Input byte from port char result; _asm mov dx, addr in al, dx mov result, al return result; / void fun82531() _asm mov dx, 0x8006 mov al, 0x37 out dx, al outp(GATE0,0x02); outp(GATE0,0x00); void
17、fun82532() _asm mov dx, 0x8006 mov al, 0x77 out dx, al outp(GATE0,0x99); outp(GATE0,0x99); void delay(int s) unsigned int i,j; for(i=0;i<s;i+) for(j=0;j<1000;j+); / 大約s=20 延時1s /* void yes() char tmp; int i; char yes1=0FFH,0FFH,0CH,44h,; char yes2=00H, 0DAH,77H,77h; char cs=0b00000000,0b000000
18、01,0b00000010,0b00000011; tmp=inp(IOA2);while(tmp=0xffed) tmp=inp(IOA2); for(i=0;i<4;i+) outp(IOC1,csi); outp(IOA1,yes1i); outp(IOB1,yes2i); delay(1); /* void fun82551() _asm mov dx, 0xc006 mov al, 0x80 out dx, al void fun82552() _asm mov dx, 0xD006 mov al, 0x9b out dx, al /*void err() / 密碼錯誤 cha
19、r tmp; int i; char err1=0CH, 38H,38H,00H; char err2=77H, 67H,67H,0FFH; char cs=0b00000000,0b00000001,0b00000010,0b00000011; tmp=inp(IOA2); while(tmp=0xffed) tmp=inp(IOA2); for(i=0;i<4;i+) outp(IOC1,csi); outp(IOA1,err1i); outp(IOB1,err2i); delay(1); /* void chushihua(int r) / 復位 int i; if(r=1) fo
20、r(i=0;i<4;i+) outp(IOC1,csi); outp(IOA1,num10); outp(IOB1,num20); delay(1); char xianshi() char tmp; char result; tmp=inp(IOB2); if(tmp=0xfffe)/0 outp(IOA1,num10); outp(IOB1,num20); result=0; if(tmp=0xfffd)/1 outp(IOA1,num11); outp(IOB1,num21); result=1; if(tmp=0xfffb) outp(IOA1,num12); outp(IOB1
21、,num22); result=2; if(tmp=0xfff7) outp(IOA1,num13); outp(IOB1,num23); result=3; if(tmp=0xffef) outp(IOA1,num14); outp(IOB1,num24); result=4; if(tmp=0xffdf) outp(IOA1,num15); outp(IOB1,num25); result=5; if(tmp=0xffbf) outp(IOA1,num16); outp(IOB1,num26); result=6; if(tmp=0xff7f) outp(IOA1,num17); outp
22、(IOB1,num27); result=7; tmp=inp(IOC2); if(tmp=0xfffe) outp(IOA1,num18); outp(IOB1,num28); result=8; if(tmp=0xfffd) outp(IOA1,num19); outp(IOB1,num29); result=9; return result; /* char change(int c) / 單純的更改密碼的函數(shù) char result; char tmp; outp(IOC1,csc); outp(IOA1,yes10); outp(IOB1,yes20); tmp=inp(IOA2);
23、 while(tmp!=0xfff5) tmp=inp(IOA2);result= xianshi(); return result; /直接傳出去改過之后的哪位數(shù)字,不管是更改密碼還是輸入密碼,只管輸出 /*char genggaimima() /更改密碼 int c=0; char i1; i1= change(c); return i1; / 要求更改密碼,直接更改第一位,并輸出更改之后的第一位密碼是多少 i=1,可以更改密碼 /*char huanwei(char c) /換位 c+; delay(50); return c; /傳出去換位之后的位 /* /*char shurumim
24、a() /第一位輸入密碼 輸入密碼 int c=0; char s1;/輸入的第一位密碼 s1= change(c); return s1; /傳出去第一位輸入的密碼 / void querengg(char shuru) / 顯示輸入之后的密碼 ffdf int i,j,m; for(j=0;j<7;j+) for(i=0;i<4;i+) m=shurui; outp(IOC1,csi); outp(IOA1,num1m); outp(IOB1,num2m); delay(1); int panduan1(char shuru,char mima)/判斷 開鎖 I為1,可以更改密
25、碼 I為0不允許更改密碼 int i; if(shuru0=mima0&&shuru1=mima1&&shuru2=mima2&&shuru3=mima3) /判斷輸入的密碼和更改的密碼是否一樣 yes(); i=1; else err(); i=0; return i; int panduan2(char shuru,char mima,int t)/判斷 錯誤超過6次,警報 t為 錯誤密碼次數(shù) if(shuru0=mima0&&shuru1=mima1&&shuru2=mima2&&shuru3
26、=mima3) /判斷輸入的密碼和更改的密碼是否一樣 yes(); t=0; else err(); t+; return t; / void main(void) int i1=0,i2=1,i3=2,i4=3; int s1=0,s2=1,s3=2,s4=3; int r=1; /變量R非常重要,只有當R=1時,才可以修改密碼,初始化密碼,在判斷密碼中,會返回一個R,得知R=1or0. !亮點 int t=0; char mima100=0,0,0,0; /這兩個數(shù)組是亮點 char shuru100=0,0,0,0; char tmp; int c1=0; /更改密碼的led位置 !亮點 int c2=0; /輸入密碼的led位置 fun82551(); fun82552(); while(1) tmp=inp(IOA2); if(tmp=0xfffC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 動態(tài)預算管理的實施方案計劃
- 秘書工作人員培訓計劃
- 第4周第1課時變速跑直快、彎慢 教學設(shè)計-九年級體育與健康
- 農(nóng)產(chǎn)品加工品牌的創(chuàng)新策略計劃
- 加強社區(qū)法律知識普及計劃
- 《貴州織金興發(fā)煤業(yè)有限公司織金縣珠藏鎮(zhèn)興發(fā)煤礦(變更)礦產(chǎn)資源綠色開發(fā)利用方案(三合一)》評審意見
- 血虛中醫(yī)護理方法
- 緩解臨床護理壓力
- 九年級化學下冊 第7章 應(yīng)用廣泛的酸、堿、鹽 第2節(jié) 常見的酸和堿教學實錄 (新版)滬教版
- 第六單元寫作《有創(chuàng)意地表達》教學設(shè)計-2023-2024學年統(tǒng)編版語文九年級下冊
- 中小學生賭博危害課件
- 2025年皖北衛(wèi)生職業(yè)學院單招職業(yè)適應(yīng)性測試題庫必考題
- 2025年江西省三支一扶招聘2209人高頻重點模擬試卷提升(共500題附帶答案詳解)
- 2025年湖南汽車工程職業(yè)學院單招職業(yè)技能測試題庫及答案1套
- 2025年牡丹江大學單招職業(yè)適應(yīng)性測試題庫及答案(典優(yōu))
- 2025年河南工業(yè)職業(yè)技術(shù)學院單招職業(yè)技能測試題庫審定版
- 2025年甘肅省建設(shè)監(jiān)理有限責任公司招聘筆試參考題庫含答案解析
- 包材檢驗流程
- 2024年湖南司法警官職業(yè)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 2025年四川成都職業(yè)技術(shù)學院招聘筆試參考題庫含答案解析
- 商業(yè)樓宇電氣設(shè)施維修方案
評論
0/150
提交評論