電子密碼鎖設計(參考范文)_第1頁
電子密碼鎖設計(參考范文)_第2頁
電子密碼鎖設計(參考范文)_第3頁
電子密碼鎖設計(參考范文)_第4頁
電子密碼鎖設計(參考范文)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、北 海 職 業(yè) 學 院畢業(yè)設計 (論文)20122013學年度 電子信息工程 系(部) 應用電子技術 專業(yè)題 目學生姓名學生班級指導教師起止日期2012年10 月 日北海職業(yè)學院畢業(yè)設計 (論文)任務書系(部) 專業(yè)班級 姓名學號 題目:電子密碼鎖設計主要內容: 一種基于單片機和串行EEPROM的智能密碼鎖,是密碼鎖設計中比較簡單的一種,其主要功能有鍵盤輸入、LED數碼管顯示、加密、修改密碼、密碼檢測、錯誤報警等簡單易懂、使用方便、安全性能高等。本設計采用AT89S52單片機為芯片主體,采用AT24C08為掉電存儲器的芯片。這種芯片穩(wěn)定性高,成本低。它是采用AT89S52單片機和AT24C08

2、串行EEPROM,通過AT89S52模擬I2C總線和AT24C08通訊,實現(xiàn)密碼鎖的功能?;疽螅海ㄓ芍笇Ы處熖顚懀┲饕獏⒖紩?.孫涵芳,徐愛卿編著。MCS51/96系列單片機原理及應用(修訂版)。北京:北京航空航天大學出版社,1996.42.何立民編著。MCS-51系列單片機應用系統(tǒng)設計(系統(tǒng)配置與接口技術)。北京:北京航空航天大學出版社,1993.8 3杜剛。電路設計與制板Protel應用教程(電子電路設計循序漸進系列教程)。北京:清華大學出版社,2006起止日期:指導教師職務(稱)20 年 月 日 北海職業(yè)學院學生畢業(yè)設計(論文)成績鑒定表姓 名性 別出生年月系(部)專 業(yè)班 級設計

3、(論文)題目電子密碼鎖設計指導教師對畢業(yè)設計(論文)的評語:成績: 指導教師簽字: 年 月 日答辯小組對優(yōu)秀畢業(yè)設計(論文)的評語:成績: 答辯小組組長簽字: 年 月 日綜合評定成績(等級): 系(部)領導簽字(蓋章): 年 月 日北海職業(yè)學院畢業(yè)設計(論文)16電子密碼鎖設計作者:xxx【摘要】隨著科學技術的不斷發(fā)展,人們對日常生活中的安全保險器件的要求越來越高。為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應運而生。密碼鎖具有安全性高、成本低、功耗低、易操作等優(yōu)點,本設計使用ATMEL公司的AT89S52實現(xiàn)一基于單片機的電子密碼鎖的設計。本文介紹一種基于單片機和串行EEP

4、ROM的智能密碼鎖,是密碼鎖設計中比較簡單的一種,其主要功能有鍵盤輸入、LED數碼管顯示、加密、修改密碼、密碼檢測、錯誤報警等簡單易懂、使用方便、安全性能高等。本設計采用AT89S52單片機為芯片主體,采用AT24C08為掉電存儲器的芯片。這種芯片穩(wěn)定性高,成本低。它是采用AT89S52單片機和AT24C08串行EEPROM,通過AT89S52模擬I2C總線和AT24C08通訊,實現(xiàn)密碼鎖的功能?!娟P鍵詞】 AT89S52 AT24C08 密碼鎖 矩陣鍵盤第一章 引言在日常的生活和工作中, 住宅與部門的安全防范、單位的文件檔案、財務報表以及一些個人資料的保存多以加鎖的辦法來解決。若使用傳統(tǒng)的機

5、械式鑰匙開鎖,人們常需攜帶多把鑰匙, 使用極不方便, 且鑰匙丟失后安全性即大打折扣。隨著科學技術的不斷發(fā)展,人們對日常生活中的安全保險器件的要求越來越高。為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應運而生。密碼鎖具有安全性高、成本低、功耗低、易操作等優(yōu)點。在安全技術防范領域,具有防盜報警功能的電子密碼鎖逐漸代替?zhèn)鹘y(tǒng)的機械式密碼鎖,克服了機械式密碼鎖密碼量少、安全性能差的缺點,使密碼鎖無論在技術上還是在性能上都大大提高一步。隨著大規(guī)模集成電路技術的發(fā)展,特別是單片機的問世,出現(xiàn)了帶微處理器的智能密碼鎖,它除具有電子密碼鎖的功能外,還引入了智能化管理、專家分析系統(tǒng)等功能,從而使

6、密碼鎖具有很高的安全性、可靠性,應用日益廣泛。隨著人們對安全的重視和科技的發(fā)展,許多電子智能鎖(指紋識別、IC卡辨認)已在國內外相繼面世。但是這些產品的特點是針對特定的指紋和有效卡,只能適用于保密要求的箱、柜、門等。而且指紋識識別器若在公共場所使用存在容易機械損壞,IC卡還存在容易丟失、損壞等特點。加上其成本較高,一定程度上限制了這類產品的普及和推廣。鑒于目前的技術水平與市場的接收程度,電子密碼鎖是這類電子防盜產品的主流。本次設計使用ATMEL公司的AT89S52實現(xiàn)一基于單片機的電子密碼鎖的設計第二章 方案論證設計本課題時構思時考慮到數字電路方案原理過于簡單,而且不能滿足現(xiàn)在的安全需求,所以

7、本文采用一種是用以AT89S52為核心的單片機控制方案。以AT89S51為核心的單片機控制方案利用單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性,不但能實現(xiàn)基本的密碼鎖功能,還能添加調電存儲、聲光提示甚至添加遙控控制功能。其原理方框圖如圖21所示。圖21單片機方案有較大的活動空間,不但能實現(xiàn)所要求的功能而且能在很大的程度上擴展功能,而且還可以方便的對系統(tǒng)進行升級。第三章 硬件設計3.1 功能模塊3.11開鎖電路設計通過單片機送給開鎖執(zhí)行機構,將P3.5置低電平,密碼正確指示燈亮,從而達到開鎖的目的。其原理如圖31所示。圖31密碼鎖開鎖示意圖3.12按鍵電路設計由于設計要求使用矩陣鍵盤

8、,所以本設計就彩行列式鍵盤,同時也能減少鍵盤與單片機接口時所占用的I/O口線的數目,在按鍵比較多的時候,通常采用這樣方法。每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個按鍵來連通,利用這種行列式矩陣結構只需要N條行線和M條列線,即可組成具有N×M個按鍵的鍵盤。在這種行列式矩陣鍵盤非鍵盤編碼的單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認有無按鍵按下的程序段。當確認有按鍵按下后,下一步就要識別哪一個按鍵按下。對鍵的識別通常有兩種方法:一種是常用的逐行掃描查詢法,另一種是速度較快的線反轉法。判斷鍵盤中哪一個鍵被按下使通過將列線逐列置低電平后,檢查行輸入狀態(tài)來實現(xiàn)的。方法

9、是:依次給列線送低電平,然后查所有行線狀態(tài),如果全為1,則所按下的鍵不在此列;如果不全為1,則所按下的鍵必在此列,而且是在與零電平行線相交的交點上的那個鍵。按鍵的操作面板如圖32所示。共計數字鍵10個,功能鍵4個,鍵盤上還有2個指示燈和蜂鳴器。圖32按鍵操作面板示意圖其中10個數字鍵用來輸入密碼,另外4個功能鍵分別是:A、B、C、D。其中A鍵的功能是顯示密碼,B鍵的功能是確認輸入的密碼,C鍵的功能是當輸入密碼錯誤的時候,清除前面已經輸入的數據,重新輸入,D是用來進入修改密碼的狀態(tài)。上面的兩個指示燈L1、L2、是用來指示操作的狀態(tài):L1是開門指示燈,正常的情況下無顯示,當鍵盤動作且密碼正確的時候

10、,燈亮;L2是電源狀態(tài)指示燈,當接通電源時,指示燈自動點亮,否則,燈滅。面板上還有一個蜂鳴器,其功能是當用戶輸入密碼錯誤時或密碼輸入錯誤次數超過了3次,鳴笛以示報警。3.13顯示電路設計本系統(tǒng)設計的顯示電路是為了給使用者以提示而設置的,選擇四位連體共陽的數碼管,本系統(tǒng)的顯示采用并行顯示的方式,只使用單片機的兩個口P0口和P2口,就可以完成單片機的顯示功能,顯示電路的電路原理圖如圖33所示,P0口完成段碼顯示,P2口完成位選功能。電路設定:當密碼輸入錯誤次數達到三次以上時,顯示”E”,當無輸入斷電時,則關閉顯示,當忘記密碼,輸錯密碼,判斷密碼正確無誤時,可通過功能鍵進行顯示更改密碼及判斷。圖33

11、顯示器原理圖3.14 AT24C08斷電存儲單元的設計斷電存儲單元的作用是在電源斷開的時候,存儲當前設定的信息。AT24C08是ATMEL公司的8KB字節(jié)的電可擦除存儲芯片,采用兩線串行的總線和單片機通訊,電壓最低可以到2.5V,額定電流為1mA,靜態(tài)電流10Ua(5.5V),芯片內的資料可以在斷電的情況下保存40年以上,而且采用8腳的DIP封裝,使用方便。其電路如圖34所示。圖34斷電存儲電路原理圖由于AT24C08的數據線和地址線是復用的,采用串口的方式傳送數據,所以只用兩根線SCL(移位脈沖)和SDA(數據/地址)與單片機傳送數據。每當設定一次單價,系統(tǒng)就自動調用存儲程序,將單價信息保存

12、在芯片內;當系統(tǒng)重新上電的時候,自動調用讀存儲器程序,將存儲器內的單價等信息,讀到緩存單元中,供主程序使用。3.15 總體設計總框圖圖35總體設計框圖3.2 原理圖3.3 PCB圖第四章 軟件設計4.1 程序流程圖 圖41 主程序流程圖 圖42 修改密碼流程圖 圖43 鍵盤程序流程圖 圖44 24c08程序流程圖4.2 程序實現(xiàn)功能. 該主要由三部分組成:4×4矩陣鍵盤接口電路、密碼鎖的控制電路、輸出八段顯示電路。另外系統(tǒng)還有LED提示燈,報警蜂鳴器等,可分為以下幾個模塊: 垣殘壁 (1)主程序模塊 主程序主要完成初始化、檢查有無按鍵按下、以及調用顯示等等,其流程圖如4-1所示。 (

13、2)顯示子程序 由于是分屏顯示數據,所以就要用到4個顯示子程序,分別是:功能鍵顯示密碼狀態(tài)子程序、修改密碼顯示子程序、判斷密碼輸入正確提示子程序、密碼輸入錯誤次數超過3次后的鎖定狀態(tài)顯示子程序,其流程圖如4-2所示。 (3)鍵盤掃描及識別子程序 鍵盤采用查詢的方式,放在主程序中,當沒有按鍵按下的時候,單片機循環(huán)主程序,一旦有按鍵按下,便轉向相應的子程序處理,處理結束再返回,其程序流程圖如4-3所示。 (4)調電存儲服務程序 當比較密碼的時候,需要讀AT24C08程序,將存儲在芯片內的數據讀到RAM中,然后和輸入的密碼相比較。當修改密碼的時候,需要把輸入的密碼保存到AT24C08中,并實現(xiàn)斷電保

14、護,其流程圖如4-4所示。 程序及部分說明#include <reg52.h>#include <intrins.h>unsigned char b14=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xff,0xff,0xff;unsigned char c4;unsigned char a4=0xf1,0xf2,0xf4,0xf8,kk8;unsigned char K,Key,ac,i,z,wr,ii; /ac表示數碼管顯示個數sbit scl = P26; sbit sda = P27; sbit

15、P35 = P35;sbit P34 = P34;/ 延時子程序 void delay(unsigned char pp)/延遲時間等于pp*1ms while(pp-) unsigned char j;for(j=0;j<126;j+); /j進行的內部循環(huán),1次延遲8us,延遲1ms void delayNOP()_nop_();_nop_();_nop_();_nop_();/開始位 void start() sda = 1; delayNOP(); scl = 1; delayNOP(); sda = 0; delayNOP(); / 停止位 void stop() sda =

16、0; delayNOP(); scl = 1; delayNOP(); sda = 1; delayNOP(); /應答/ void respons () unsigned char i; scl=1; delayNOP(); while(sda=1)&&(i<250)i+; scl=0; delayNOP();/總線初始化/void init() sda=1; delayNOP(); scl=1; delayNOP(); /寫字節(jié)/void write_byte(unsigned char date) unsigned char i,temp; temp=date; f

17、or(i=0;i<8;i+) temp=temp<<1; scl=0; delayNOP(); sda=CY; delayNOP(); scl=1; delayNOP(); scl=0; delayNOP(); sda=1; delayNOP(); /讀字節(jié)/unsigned char read_byte() unsigned char i,j,k; scl=0; delayNOP(); sda=1; delayNOP(); for(i=0;i<8;i+) scl=1; delayNOP(); if(sda=1) j=1; else j=0; k=(k<<1

18、)|j; scl=0; delayNOP(); return k; /寫地址/void write_add(unsigned char address,unsigned char date) start(); write_byte(0xa0); respons(); write_byte(address); respons(); write_byte(date); respons(); stop(); /讀地址/unsigned char read_add(unsigned char address) unsigned char date; start(); write_byte(0xa0);

19、 respons(); write_byte(address); respons(); start(); write_byte(0xa1); respons(); date=read_byte(); stop(); return date;/功能/void fun1()/功能鍵顯示密碼 for(z=0;z<ac;z+) P0=cz; P2=read_add(wr+); c3=c2; c2=c1; c1=c0; c0=read_add(i+); void fun2()/判斷密碼 if(P0=read_add(i)!=(P0=ci)&&(P2=read_add(i)!=(P2

20、=ai) P34=0; delay(100); P34=1; ii+; else P35=0; void fun3()/刪除功能鍵 for(K=10;K<11;K+) c0=c1; c1=c2; c2=c3; c3=bK; void fun4()/更改密碼確認鍵 if(P35=0) write_add(i,c0); write_add(wr,a0); delay(10); write_add(i+1,c1); write_add(wr,a1); delay(10); write_add(i+2,c2); write_add(wr,a2); delay(10); write_add(i+3

21、,c3); write_add(wr,a3); delay(10); /顯示/void display() unsigned char i; for(i=0;i<ac;i+) /為了讓4個數碼管輪流亮一遍過去 P0=ci;P2=ai; delay(1); /按鍵/unsigned char Keycan(void) /按鍵掃描程序 P1.0-P1.3為行線 P1.4-P1.7為列線 unsigned char rcode, ccode; P1 = 0xF0; / 發(fā)全0行掃描碼,列線輸入 if(P1&0xF0) != 0xF0) / 若有鍵按下 delay(1); / 延時去抖動

22、 if(P1&0xF0) != 0xF0) rcode = 0xFE; / 逐行掃描初值 while(rcode&0x10) != 0) P1 = rcode; / 輸出行掃描碼 if(P1&0xF0) != 0xF0) / 本行有鍵按下 ccode = (P1&0xF0)|0x0F; while(P1&0xF0) != 0xF0); /等待鍵釋放 return (rcode) + (ccode); / 返回鍵編碼 else rcode = (rcode<<1)|0x01; / 行掃描碼左移一位 return 0; / 無鍵按下,返回值為0v

23、oid KeyDeal(unsigned char Key) if(Key!=0) switch(Key) case 0x11: K=0; break;case 0x21: K=1; break; case 0x41: K=2; break;case 0x81: K=3; break;case 0x12: K=4; break;case 0x22: K=5; break;case 0x42: K=6; break;case 0x82: K=7; break;case 0x14: K=8; break;case 0x24: K=9; break;case 0x44: K=10,fun1(); break;case 0x84: K=11,fun2(); break;case 0x18: K=12,fun3(); break; case 0x28: K=13,fun4(); break;default: break; if(K<=9) c3=c2;c2=c1;c1=c0;c0=bK;ac+;if(ac>4)ac=4; void main() init(); / 24C08初始化while(1) /鍵盤及顯示 Ke

溫馨提示

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

評論

0/150

提交評論