基于AT89S52單片機的密碼鎖設(shè)計_第1頁
基于AT89S52單片機的密碼鎖設(shè)計_第2頁
基于AT89S52單片機的密碼鎖設(shè)計_第3頁
基于AT89S52單片機的密碼鎖設(shè)計_第4頁
基于AT89S52單片機的密碼鎖設(shè)計_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于AT89S52單片機的密碼鎖設(shè)計一、項目概述很多行業(yè)的許多地方都需要密碼鎖,但普通密碼鎖的密碼容易被多次試探而破譯。此項目給出了一種能防止多次試探密碼的密碼鎖設(shè)計方法,從而有效地克服了上述缺點。這種能防止多次試探密碼的單片機密碼鎖應(yīng)用前景廣泛。二、項目要求基于AT89S52單片機的密碼鎖設(shè)計,具體功能如下:總共可以設(shè)置8位密碼,每位密碼值范圍為1~8.用戶可以自行設(shè)定和修改密碼。按每個鍵時都有聲音提示。若鍵入的8位開鎖密碼不完全正確,則報警5s,以提醒他人注意。開鎖密碼連續(xù)錯3次要報警1分鐘,報警期間輸入密碼無效,以防止竊賊多次試探密碼。鍵入8位開鎖密碼完全正確才能開鎖,開鎖時有1s的提示音。電磁鎖的電磁線圈每次通電5s,然后恢復(fù)初態(tài)密碼鍵盤上只允許有8個密碼按鍵。鎖內(nèi)有備用電池,只有內(nèi)部上電復(fù)位時才能設(shè)置和修改密碼,因此,僅在門外按鍵是不能修改或設(shè)置密碼的。密碼設(shè)定完畢后要有2s的提示音。三、系統(tǒng)框圖設(shè)計按照系統(tǒng)設(shè)計的要求和功能,將系統(tǒng)分為主控模塊、按鍵掃描模塊、蜂鳴器、電源電路、復(fù)位電路、晶振電路、驅(qū)動電路幾個模塊,系統(tǒng)組成框圖如下。主控模塊采用AT89S52單片機。系統(tǒng)組成框圖四、硬件設(shè)計4.1電路原理圖系統(tǒng)硬件電路圖如下所示,P1口接密碼按鍵,開鎖脈沖由P3.2輸出,報警和提示音由P3.7輸出,按鍵a~h分別代表數(shù)字1~8.若沒有鍵按下,則P1.0~P1.7全是高電平;若某鍵被按下,則相應(yīng)的口線為低電平。系統(tǒng)硬件電路圖4.2元件清單基于AT89S52單片機的密碼鎖元件清單如表所示。元件名稱型號個數(shù)用途單片機AT89S521控制核心晶振12MHz1晶振電路電容30Pf2晶振電路電解電容20Μf/10V1復(fù)位電路按鍵9按鍵電路三極管85502放大電路二極管IN40041蜂鳴器1報警電路電阻1kΩ1上拉電路電阻10kΩ1復(fù)位電路電阻4.7kΩ2放大電路繼電器5V1控制對象電源+5V/0.5A1提供+5V電源五、軟件設(shè)計5.1程序流程圖如圖所示給出了該單片機密碼鎖電路的軟件流程圖。圖中AA1~AA8以及START、SET、SAVE是程序中的標(biāo)號,是為了理解程序而專門標(biāo)在流程圖的對應(yīng)位置的,分析程序時可以仔細參考對照。該密碼鎖中的RAM存儲單元的分配方案如下。31H~38H:依次存放8位設(shè)定的密碼,首位密碼存放在31H單元中。R0:指向密碼地址。R2:已經(jīng)輸入密碼位數(shù)。R3:存放允許錯誤密碼次數(shù)3與實際錯誤密碼次數(shù)的差值。R4~R7:延時用。00H:錯碼標(biāo)志位。對于ROM存儲單元的分配,由于程序比較短,而且占用的存儲空間比較少,因此,在無特殊要求時,可以從0030H單元開始存放主程序。單片機密碼鎖電路的軟件流程圖5.2程序清單基于AT89S52單片機的密碼鎖程序清單如下:#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitSPK=P3^7;sbitACT=P3^2;bitok_flag;staticucharindata[8];staticucharstatus=0x01;staticucharl,m;uchari,j;voidBP();voidDELAY();voidPASSWORD_SET();voidPASSWORD_IN();voidmain(){BP();PASSWORD_SET();for(i=0;i<22;i++)BP();while(1){if(l<3){PASSWORD_IN();if(!ok_flag){ACT=0;for(i=0;i<8;i++)BP();ACT=1;l=0;}else{l++;for(i=0;i<40;i++)BP();ok_flag=0;}}l=0;for(i=0;i<24;i++){for(j=0;j<200;j++)BP();}}}voidPASSWORD_SET(void){if(m<8){switch(status){case0x01:{if(P1==0xFF){status=0x01;}else{DELAY();status=0x02;}break;}case0x02:{if(P1!=0xFF){BP();indata[m]=P1;m++;}status=0x01;break;}default:break;}}m=0;}voidPASSWORD_IN(void){if(m<8){switch(status){case0x01:{if(P1==0xFF){status=0x01;}else{DELAY();status=0x02;}break;}case0x02:{if(P1!=0xFF){BP();if(P1==indata[m])ok_flag=1;m++;}status=0x01;break;}default:break;}}m=0;}voidBP(void){SPK=0;for(i=0;i<250;i++){for(j=0;j<124;j++){SPK=~SPK;}SPK=1;}}voidDELAY(void){for(i=0;i<20;i++)for(j=0;j<125;j++);}六、系統(tǒng)仿真及調(diào)試按鍵AN1~AN7分別代表數(shù)碼1~7,按鍵AN0代表數(shù)碼8。在沒有按鍵按下時,P1.0~P1.7全是高電平1;若某個鍵被按下,相應(yīng)的口線就變?yōu)榈碗娖?。假如設(shè)定的密碼是61234578,當(dāng)按鍵AN6被按下時,P1.6變?yōu)榈碗娖剑琍1端口其余口線為高電平,此時從P1端口讀入的數(shù)值為10111111,存到31H單元的密碼值就是10111111,也就是BFH。以此類推,存到32H至38H單元的密碼值分別是FDH、FBH、F7H、EFH、DFH、7FH、FEH。開鎖時必須先按AN6,使從P1口讀入的第一個密碼值與31H單元存儲的設(shè)定值相同,再順序按AN1、AN2、AN3、AN4、AN5、AN7、AN0才能開鎖。否則不能開鎖,同時開始報警。仿真圖如下七、實物圖八、結(jié)束語這個項目的制作讓我對AT89S52的用途以及應(yīng)用前景有了充分的認識。這次作品雖然并沒有達到我自己的預(yù)期效果,這個讓我相當(dāng)惋惜。但是我卻學(xué)習(xí)到了52單片機的工作原理,它是怎樣實現(xiàn)密碼鎖功能的,充分展示了單片機的強大功

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論