電子密碼鎖的設計與實現(xiàn)_第1頁
電子密碼鎖的設計與實現(xiàn)_第2頁
電子密碼鎖的設計與實現(xiàn)_第3頁
電子密碼鎖的設計與實現(xiàn)_第4頁
電子密碼鎖的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上 目 錄 1 背景與意義.12 功能設計.23 總體方案設計.34 電路原理圖設計.5 4.1 鍵盤電路設計.5 4.2 數(shù)碼管顯示電路設計. 6 4.3 開鎖電路設計.75 程序設計.9 5.1 基本設計思路.9 5.2 各子程序設計.96 軟件仿真結果.157 硬件制作與調試.178 結論.19參考文獻.19 電子密碼鎖的設計與實現(xiàn)1 背景與意義隨著電子技術和計算機技術的飛速發(fā)展,單片機性能不斷完善,性能價格比顯著提高,技術日趨完善。由于單片機具有體積小、重量輕、價格便宜、功耗低、控制功能強及運算速度快等特點,因而在國民經(jīng)濟建設、軍事及家用電器等各個領域均得到了廣

2、泛的應用。本設計利用單片機及附加電子元器件實現(xiàn)數(shù)據(jù)采集和控制算法,來完成某一實際功能,檢驗并提高學生對整體電路設計和把握能力,了解單片機系統(tǒng)設計流程,以及電路板的實際制作和調試能力。隨著人們生活水平的提高和安全意識的加強,對安全的要求也就越來越高。鎖自古以來就是把守護門的鐵將軍,人們對它要求甚高,既要安全可靠的防盜,又要使用方便,這也是制鎖者長期以來研制的主題。隨著電子技術的發(fā)展,各類電子產(chǎn)品應運而生,電子密碼鎖就是其中之一。據(jù)有關資料介紹,電子密碼鎖的研究從20世紀30年代就開始了,在一些特殊場所早就有所應用。這種鎖是通過鍵盤輸入一組密碼完成開鎖過程。研究這種鎖的初衷,就是為提高鎖的安全性。

3、由于電子鎖的密鑰量(密碼量)極大,可以與機械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需記住一組密碼,無需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被越來越多的人所欣賞。電子鎖的種類繁多,例如數(shù)碼鎖,指紋鎖,磁卡鎖,IC卡鎖,生物鎖等。但較實用的還是按鍵式電子密碼鎖。20世紀80年代后,隨著電子鎖專用集成電路的出現(xiàn),電子鎖的體積縮小,可靠性提高,成本較高,是適合使用在安全性要求較高的場合,且需要有電源提供能量,使用還局限在一定范圍,難以普及,所以對它的研究一直沒有明顯進展。目前,在西方發(fā)達國家,電子密碼鎖技術相對先進,種類齊全,電子密碼鎖已被廣泛應用于智能門禁系統(tǒng)中,通過

4、多種更加安全,更加可靠的技術實現(xiàn)大門的管理。在我國電子鎖整體水平尚處于國際上七八十年代左右,電子密碼鎖的成本還很高,市場上仍以按鍵電子鎖為主,按鍵式和卡片鑰匙式電子鎖已引進國際先進水平,現(xiàn)國內有幾個廠生產(chǎn)供應市場。但國內自行研制開發(fā)的電子鎖,其市場結構尚未形成,應用還不廣泛。國內的不少企業(yè)也引進了世界上先進的技術,發(fā)展前景非常可觀。希望通過不斷的努力,使電子密碼鎖在我國也能得到廣泛應用。2 功能設計 1 完成相應C語言程序的編寫。定義相關函數(shù),具體包括延時函數(shù)、中斷函數(shù)、掃描函數(shù)、數(shù)碼管顯示函數(shù)和主函數(shù)等。 2 在Keil環(huán)境下編譯程序,生成.hex文件,要求程序編譯正確,原理清楚。 3 設計

5、電子密碼鎖原理圖,盡量有一定復雜度和難度,要求設計簡潔、易懂。 4 在Protues環(huán)境下完成電路原理圖的繪制與仿真。要求正確繪制電路圖,完成其參數(shù)的定義與元器件的連接,注意為單片機加載.hex文件,其他包括鍵盤掃描電路,數(shù)碼管顯示電路和開鎖電路的設計等等。系統(tǒng)上電后,要求正確仿真,即輸入所需求的四位密碼,系統(tǒng)正確運行,模擬開鎖。分析仿真結果,并為硬件的制作打下基礎。 5 硬件制作與調試。要求自己選用相關元件,選用電路板等實現(xiàn)硬件的制作。完成后,自己調試運行,要求接入12V直流電源,輸入四位密碼,完成開鎖的模擬實現(xiàn)過程。找出相關問題,并進行改進。 6 結果分析。總體完成后,對整個系統(tǒng)進行總結,

6、分析優(yōu)點與缺點,撰寫、完善實驗報告,得出實驗結論。 3 總體方案設計 開始設計的時候,考慮到兩個設計方案,分別如下:方案一:采用數(shù)字電路控制。其原理方框圖如圖1所示。圖1 數(shù)字密碼鎖電路方案采用數(shù)字密碼鎖電路的好處就是設計簡單。用以74LS112雙JK觸發(fā)器構成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設了9個用戶輸入鍵,其中只有4個是有效的密碼按鍵,其它的都是干擾按鍵,若按下干擾鍵,鍵盤輸入電路自動清零,原先輸入的密碼無效,需要重新輸入;如果用戶輸入密碼的時間超過40秒(一般情況下,用戶不會超過40秒,若用戶覺得不便,還可以修改)電路將報警80秒,若電路連續(xù)報警三次,電路將鎖定鍵盤5分鐘,防止他

7、人的非法操作。電路由兩大部分組成:密碼鎖電路和備用電源(UPS),其中設置UPS電源是為了防止因為停電造成的密碼鎖電路失效,使用戶免遭麻煩。密碼鎖電路包含:鍵盤輸入、密碼修改、密碼檢測、開鎖電路、執(zhí)行電路、報警電路、鍵盤輸入次數(shù)鎖定電路。方案二:采用一種是用以AT89C52為核心的單片機控制方案。利用單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性,不但能實現(xiàn)基本的密碼鎖功能,還能添加調電存儲、聲光提示甚至添加遙控控制功能。其原理如圖2所示。AT89C52單片機矩陣鍵盤控制 開鎖控制電路數(shù)碼管顯示電路 指示電路 電源接入圖2 單片機控制方案通過比較以上兩種方案,單片機方案有較大的活動空

8、間,不但能實現(xiàn)所要求的功能而且能在很大的程度上擴展功能,而且還可以方便的對系統(tǒng)進行升級,所以我們采用后一種方案。本方案采用一種是用以AT89C52為核心的單片機控制方案。利用單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性,實現(xiàn)基本的密碼鎖功能。初步設計思路如下:輸入密碼用矩形鍵盤,包括數(shù)字鍵和功能鍵。數(shù)碼管顯示輸入的四位密碼密碼,用四位共陽極數(shù)碼管發(fā)光顯示數(shù)碼,從而控制各位顯示器進行顯示。用發(fā)光二極管代替開鎖的電路,發(fā)光表示開鎖。打開電源后,顯示器顯示“0000”,設原始密碼為“6666”,只要輸入此密碼便可開門。按“0”鍵,清除顯示器為“0000”。軟件的設計主要包括鍵盤鍵值的讀取

9、、數(shù)碼管顯示程序、密碼比較程序、中斷程序和延時程序等。4 電路原理圖設計 4.1 鍵盤電路設計使用矩陣鍵盤,所以本設計就采用行列式鍵盤,同時也能減少鍵盤與單片機接口時所占用的I/O線的數(shù)目,在按鍵比較多的時候,通常采用這樣方法。其原理如圖3。 圖3 矩陣鍵盤每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個按鍵來連通,利用這種行列式矩陣結構只需要N條行線和M條列線,即可組成具有N×M個按鍵的鍵盤。在這種行列式矩陣鍵盤非鍵盤編碼的單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認有無按鍵按下的程序段。當確認有按鍵按下后,下一步就要識別哪一個按鍵按下。對鍵的識別通常有兩種方法:

10、一種是常用的逐行掃描查詢法;另一種是速度較快的線反轉法。對照圖3所示的4×4鍵盤,說明逐行掃描法和線反轉法工作原理。1 掃描原理:即把每個鍵都分成水平和垂直的兩端接入,比如說掃描碼是從垂直的入,那就代表那一行所接收到的掃描碼是同一個bit,而讀入掃描碼的則是水平,掃描的動作是先輸入掃描碼,再去讀取輸入的值,經(jīng)過比對之后就可知道是哪個鍵被按下。 比如說掃描碼送入,前面的0111是代表此時掃描第一行P1.0列,而后面的1111是讓讀取的4行接腳先設為VDD,若此時第一行的第三列按鍵被按下,那讀取的結果就會變成(注意1111變成1101),其中LSB的第三個bit會由1變成0,這是因為這個

11、按鍵被按下之后,會被垂直的掃描碼電位short,而把讀取的LSB的bit電位拉到0,此即為掃描原理。 由于這種按鍵是機械式的開關,當按鍵被按下時,鍵會震動一小段時間才穩(wěn)定,為了避免讓系統(tǒng)誤判為多次輸入同一按鍵, 我們必須在偵測到有按鍵被按下,就Delay一小段時間,使鍵盤以達穩(wěn)定狀態(tài),再去判讀所按下的鍵,就可以讓鍵盤的輸入穩(wěn)定。2 線反轉法原理:先辨別鍵盤中有無鍵按下,有單片機I/O口向鍵盤送全掃描字,然后讀入行線狀態(tài)來判斷。方法是:向行線輸出全掃描字00H,把全部列線置為低電平,然后將列線的電平狀態(tài)讀入累加器A中。如果有按鍵按下,總會有一根行線電平被拉至低電平從而使行線不全為1。判斷鍵盤中哪

12、一個鍵被按下使通過將列線逐列置低電平后,檢查行輸入狀態(tài)來實現(xiàn)的。方法是:依次給列線送低電平,然后查所有行線狀態(tài),如果全為1,則所按下的鍵不在此列;如果不全為1,則所按下的鍵必在此列,而且是在與零電平行線相交的交點上的那個鍵。本設計中采用鍵盤逐行掃描法。4.2 數(shù)碼管顯示電路設計本系統(tǒng)設計的顯示電路是為了給使用者以提示而設置的。本系統(tǒng)的顯示采用串行顯示的方式,使用單片機的串行口,就可以完成單片機的顯示功能。并使用四位共陽極數(shù)碼管作為輸入密碼的顯示,很直觀、清晰。顯示電路的電路原理圖如圖4所示。 圖4 數(shù)碼管顯示電路4.3 開鎖電路設計在本次設計中,基于節(jié)省材料的原則,暫時用LED發(fā)光管代替電磁鎖

13、(在實際設計中,則用一個繼電器代替電子鎖模擬開鎖過程),發(fā)光管亮,表示開鎖;滅,表示沒有開鎖。電路圖如5所示。發(fā)光管發(fā)光,即表示密碼輸入正確,表示開鎖;密碼輸入錯誤,則LED發(fā)光管不亮。 圖5 開鎖電路5 程序設計 5.1 基本設計思路電子密碼鎖工作的主要過程是由數(shù)碼管開始輸入密碼,通過鍵盤輸入密碼,同時數(shù)碼管顯示密碼輸入情況,按下確認鍵后判斷密碼的正確性,作出開鎖或其他處理。 密碼的設定是一個很重要的部分,在此程序中密碼是固定的“6666”,采用四位密碼。用C語言編寫程序代碼,具體設計包括頭文件及其相關定義、鍵盤掃描子程序、 數(shù)碼管顯示子程序、中斷程序、延時程序以及主程序設計等。編寫完畢后,

14、用Keil軟件進行編譯,生成.hex文件。相關的一些關鍵子程序設計如下。 5.2 各子程序設計 1 頭文件即相關定義 #include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit P17=P17; sbit P16=P16; sbit P15=P15; sbit P14=P14; sbit dian=P30; uint count=0,num=0,k,keyword=6666;Uchartable =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0

15、x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; 2 鍵盤掃描子程序 uint keyscan() uchar temp, keynum; P1=0xff; P17=0;/*掃描第一行* temp=P1; temp&=0x0f; if(temp!=0x0f) delay(10); temp=P1; temp&=0x0f; if(temp!=0x0f) temp=P1; temp&=0x0f; switch(temp) case 0x0e:keynum=0;break; case 0x0d:keynum=1;break; case 0x0b:keynu

16、m=2;break; case 0x07:keynum=3;break; while(temp!=0x0f) temp=P1; temp&=0x0f; P1=0xff; P16=0;/*掃描第二行* temp=P1; temp&=0x0f; if(temp!=0x0f) delay(10); temp=P1; temp&=0x0f; if(temp!=0x0f) temp=P1; temp&=0x0f; switch(temp) case 0x0e:keynum=4;break; case 0x0d:keynum=5;break; case 0x0b:keynu

17、m=6;break; case 0x07:keynum=7;break; while(temp!=0x0f) temp=P1; temp&=0x0f; P1=0xff; P15=0;/*掃描第三行* temp=P1; temp&=0x0f; if(temp!=0x0f) delay(10); temp=P1; temp&=0x0f; if(temp!=0x0f) temp=P1; temp&=0x0f; switch(temp) case 0x0e:keynum=8;break; case 0x0d:keynum=9;break; case 0x0b:keynu

18、m=10;break; case 0x07:keynum=11;break; while(temp!=0x0f) temp=P1; temp&=0x0f; return keynum;3 數(shù)碼管顯示子程序void Display(uint num) uint ge,shi,bai,qian; qian=num/1000; P0=tableqian; P2=0xfe; delay(10); P2=0xff; bai=num%1000/100; P0=tablebai; P2=0xfd; delay(10); P2=0xff; shi=num%100/10; P0=tableshi; P2

19、=0xfb; delay(10); P2=0xff; ge=num%10; P0=tablege; P2=0xf7; delay(10); P2=0xff;void Init(void) EA=1;/開總中斷 EX1=1;/開外部中斷0 IT1=0;/設置為電平觸發(fā)方式4 中斷程序void Init1() interrupt 2 count=keyscan(); num=num*10+count; if(num>9999) num=0; if(num= keyword) dian=1; delay(5000); dian=0; 5 延時程序void delay(uint i) uint

20、j; for(;i>0;i-) for(j=0;j<125;j+);6 主程序 void main(void) uint i,count1; Init(); dian=0; while(1) count=keyscan(); /調用鍵盤掃描子程序 Display(num); 6 軟件仿真結果本次調試采用Protues軟件仿真。首先設計電子密碼鎖的源程序,源程序經(jīng)過編譯后,生成的目標文件經(jīng)過仿真調試。完成后可以進行相關調試與仿真。1 系統(tǒng)上電后,初始狀態(tài)如圖所示,顯示四位“0”。 圖6 初始狀態(tài)2 使用按鍵,輸入密碼“6666”后,數(shù)碼管顯示如圖所示。 圖 7 數(shù)碼管顯示所輸入的密碼 輸入四位密碼“6666”后,因為密碼正確輸入,所以用來代替電磁鎖的LED發(fā)光管D1會發(fā)光并持續(xù)一段時間,表明密碼輸入正確,正確開鎖。如圖8所示: 圖 8 密碼正確開鎖7 硬件制作與調試 Ptotues仿真正確后,可以選購材料進行硬件的制作。可以選用萬用電路板為載體,選用相關電阻、電容、與門電路、芯片等進行制作,注意精確完成單片機程序的燒錄。焊接過程一定要細心、耐心。電子密碼鎖在實物硬件制作中,就可以拋去先前仿真中使用的作為開鎖仿真的發(fā)光LED燈,選用一個內部具有微電繼電器的鎖芯結構來代替,生動真實的模擬開鎖的過程。本次電路焊接較為復雜,鑒于經(jīng)驗缺乏,焊接出來的電路較為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論