




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 基于單片機的電子密碼鎖設(shè)計摘要隨著科技和人們的生活水平的提高,如何實現(xiàn)家庭防盜這一問題也變的尤為突出,傳統(tǒng)的機械鎖由于構(gòu)造簡單,被撬事件屢見不鮮。電子密碼鎖保密性好,使用靈活性高,收到廣大用戶的青睞。本設(shè)計是以單片機AT89C52作為密碼鎖的主控芯片與數(shù)據(jù)存儲單元,結(jié)合外圍的矩陣鍵盤輸入、LCD顯示、開鎖、報警等,用C語言編寫程序,并用Keil uVision4軟件進行編譯設(shè)計了一款可以更改密碼,具有報警功能的電子密碼控制系統(tǒng)。本設(shè)計采用矩陣鍵盤對密碼進行輸入,具有較高的優(yōu)勢,減少了I/O口的占用數(shù)目。密碼的顯示采用LCD顯示屏實現(xiàn),為確保安全性統(tǒng)一使用“*”顯示密碼,當重新設(shè)置密碼時按下“
2、修改”鍵,LCD顯示屏顯示數(shù)字。采用蜂鳴器模擬報警系統(tǒng),增加了密碼鎖的安全能力。軟件使用C語言編程,運用自上而下的模塊化設(shè)計思想,使系統(tǒng)朝著分布式、小型化方向發(fā)展,增強系統(tǒng)的可擴展性和運行的穩(wěn)定性。測試結(jié)果表明,設(shè)計達到電子密碼鎖的功能。關(guān)鍵字:密碼鎖、AT89C52、矩陣鍵盤、報警一、設(shè)計背景 隨著社會科技的進步,鎖已經(jīng)發(fā)展到了密碼鎖、磁性鎖、電子鎖、激光鎖、聲控鎖等等。在傳統(tǒng)鑰匙的基礎(chǔ)上,加了一組或多組密碼,不同聲音,不同磁場,不同聲波,不同光束光波,不同圖像來控制鎖的開啟,從而大大提高了鎖的安全性。當今安全信息系統(tǒng)應(yīng)用越來越廣泛,特別在機密保護、維護隱私和財產(chǎn)保護方面起到重大作用,而基于
3、電子密碼鎖的安全系統(tǒng)是其中的一部分,運用非常廣泛,研究它具有重大的現(xiàn)實意義。電子密碼鎖可以在日常生活和現(xiàn)代辦公中,住宅與辦公室的安全防范、單位的文件檔案、財務(wù)報表以及一些個人資料的保存等多種場合使用。大大提高了主人物資的安全性。目前使用的密碼鎖種類繁多,各具特色。本文從經(jīng)濟實用的角度出發(fā),采用AT89C52單機,研制了一款具有防盜自動報警功能的電子密碼鎖。該密碼鎖設(shè)計方法合理,簡單易行,成本低,符合住宅、辦公室用鎖要求,具有一定的推廣價值。2、 設(shè)計目的1. 了解單片機開發(fā)系統(tǒng)的組成及結(jié)構(gòu);2. 掌握I/O口的操作方法;3. 能夠熟練使用protues和keil軟件進行連線和編程,并熟練掌握仿
4、真方法;4. 掌握LCD顯示屏的顯示原理;5. 掌握C語言編程方法;6. 培養(yǎng)查找錯誤和改正錯誤的能力。3、 設(shè)計要求本設(shè)計采用單片機為主控芯片,結(jié)合外圍電路組成電子密碼控制系統(tǒng)。設(shè)計主要功能有:1. 設(shè)置6位密碼,密碼通過鍵盤輸入,若密碼正確,則鎖打開,LCD顯示“Password Right Lock Opened!”。原始密碼在首次開鎖時為“000000”。2. 重新設(shè)置密碼時,LCD顯示“*”,按下“修改”鍵顯示數(shù)值。3. 密碼只能輸入6位數(shù)字,無法輸入多余數(shù)字。4. 具有自動報警功能:當密碼輸入錯誤三次,報警,蜂鳴器響3秒。5. LED數(shù)碼管顯示密碼,為確保安全性所有密碼均用“*”表
5、示。4、 設(shè)計原理和硬件仿真方案1. 矩陣鍵盤 密碼的輸入用矩陣鍵盤實現(xiàn),包括數(shù)字鍵和功能鍵。具體功能設(shè)計如表一:表一 鍵盤具體功能設(shè)計表按鍵鍵名功能09數(shù)字鍵輸入密碼新建新建鍵設(shè)定新密碼確認確認鍵比較密碼修改修改鍵顯示密碼進入進入鍵允許輸入密碼取消取消鍵取消輸入密碼如圖一所示,矩陣鍵盤的每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個按鍵來連通,利用這種行列式矩陣結(jié)構(gòu)只需要N條行線和M條列線即可組成有個按鍵的鍵盤。 圖一 矩陣鍵盤本次設(shè)計需要09十個數(shù)字按鍵、一個新建鍵、一個確認鍵、一個修改鍵、一個進入鍵和一個取消鍵共15個按鍵,所以選用4X4的矩陣按鍵。在這種行列式矩陣鍵盤編
6、碼的單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認有無按鍵按下的程序段,還要對按鍵進行消抖處理。當確認有按鍵按下后,就要識別是哪一個按鍵被按下。本次設(shè)計使用的是線反轉(zhuǎn)法。給行線置為0x0f,給列線置為0xf0,再將行列進行邏輯或結(jié)果為0xff,當有按鍵按下時相應(yīng)的按鍵位行列均為0,行列邏輯或不為0xff,由此可利用行列邏輯或后的值是否為0xff來判斷是否有按鍵按下。再根據(jù)掃描結(jié)果判斷按下鍵的位置。給相應(yīng)的按鍵賦值即可實現(xiàn)數(shù)字鍵和功能鍵。對功能鍵進行相應(yīng)的軟件編程即可實現(xiàn)按鍵功能。使用矩陣鍵盤能減少鍵盤和單片機接口所占用的I/O線數(shù)目,當按鍵較多的時候通常采用這種方法。2. 開鎖電路在本次設(shè)計
7、中用發(fā)光二極管代替電磁鎖,二極管D1亮表示鎖開,二極管滅表示沒有開鎖。如圖二所示,當輸入密碼與內(nèi)置密碼相配合時將P2.1置0,二極管亮,否則二極管不亮。 圖二 發(fā)光二級管電路3. 報警電路報警電路由單片機和蜂鳴器組成,如圖三所示,當P2.0為低電平時蜂鳴器發(fā)出聲音報警。每次輸入的密碼與正確密碼進行比較,如果相同,鎖開燈亮。如果輸入錯誤則用一個變量來記錄輸入錯誤的次數(shù),當輸入密碼錯誤達到三次時,蜂鳴器工作發(fā)出報警聲音,本次設(shè)計使用的是聲音持續(xù)3秒蜂鳴器報警,即可聽到“嘟”3秒的響聲。圖三 報警電路4. LCD顯示電路密碼顯示電路由單片機、排阻和LCD顯示屏組成。顯示電路如圖四所示。為保證密碼的保
8、密性,本設(shè)計采用“*”顯示所有輸入密碼,如圖四所示。當重設(shè)密碼時,按下“修改”鍵顯示數(shù)字,如圖五所示。本設(shè)計只允許輸入數(shù)字密碼6次,超過6次以后的數(shù)字無法輸入。圖四 LCD顯示電路 圖五 重設(shè)密碼LCD顯示數(shù)字5、 軟件程序設(shè)計 本系統(tǒng)軟件設(shè)計由主程序、初始化程序、鍵盤掃描程序、密碼輸入程序、功能鍵定義程序、重置密碼程序、LCD顯示程序、中斷延時程序、報警程序、延時程序組成。 如圖六所示為主程序流程圖,開始接上電源,程序進行初始化設(shè)置,然后在鍵盤上輸入密碼,此系統(tǒng)進行鍵盤掃描,判斷密碼是否正確,密碼正確開鎖,密碼不正確統(tǒng)計錯誤密碼次數(shù)加1。在開鎖情況下進行修改密碼,點擊確認密碼修改成功,否則結(jié)
9、束返回。若密碼修改成功則再執(zhí)行之前的操作。 開始 初始化 鍵盤掃描子程序 結(jié)束調(diào)用密碼重置子程序調(diào)用報警子程序密碼錯誤次數(shù)q+1重設(shè)密碼?密碼正確?輸入密碼個數(shù)N=6? LCD顯示子程序 輸入密碼子程序 Nq>=3?調(diào)用延時子程序 開鎖 Y N N Y Y Y N 圖六 主程序流程圖 六、系統(tǒng)調(diào)試 本次調(diào)試采用的是protues和keil軟件進行仿真。首先運用keil軟件編寫電子密碼鎖的源程序,本設(shè)計主要運用C語言編寫。源程序編寫后運行生成目標文件供protues仿真調(diào)試。圖七為LED顯示六位密碼的情況 圖七 LCD顯示密碼圖當密碼正確按下確認鍵發(fā)光二極管亮,鎖開。如圖八圖八 密碼正確鎖
10、開燈亮當密碼輸入錯誤三次蜂鳴器發(fā)出聲音報警,如圖九所示 圖九 蜂鳴器報警由圖九可以看到蜂鳴器接地端為藍色,即此時為低電平,所以蜂鳴器正在發(fā)出報警聲音。Protues仿真電路圖如圖十所示 圖十 protues仿真電路圖七、設(shè)計總結(jié)與展望課程設(shè)計是培養(yǎng)學生綜合運用所學知識發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程。隨著科學技術(shù)發(fā)展的日新月異,單片機已經(jīng)成為當今計算機應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說是無處不在。因此作為二十一世紀的大學生來說掌握單片機的開發(fā)技術(shù)是十分重要的。本設(shè)計經(jīng)過多次修改和整理,可以滿足基本的要求。密碼正確,鎖開;密碼輸入
11、錯誤三次,報警;輸入密碼超過6位之后的數(shù)無效;LCD顯示屏顯示密碼為“*”。在設(shè)計的過程中遇到了各種各樣的問題,譬如說斷電密碼保護的設(shè)計,由于電路和編程都過于復雜,本設(shè)計并未加入。在編程的過程中問題也是很多,由于程序較長,當實現(xiàn)了這個功能另外一個功能有不能很好的實現(xiàn),所以要做到模塊與模塊之間的銜接。遇到的一些問題也經(jīng)過努力一一克服。回顧此次單片機課程設(shè)計,至今我仍感觸頗多。在設(shè)計過程中從理論到實踐我們可以到很多很多東西,鞏固了以前學過的知識,還懂得了如何將理論聯(lián)系實際。只有理論知識是遠遠不夠的,只有將理論運用到實際中對我們來說才是有意義的,這樣才能真正的為社會服務(wù)。七、附錄源程序清單:#inc
12、lude<reg52.h>#include<intrins.h>#define uchar unsigned charstatic unsigned char table6=0,0,0,0,0,0;/Declare functionsuchar Busy_Check();void Initialize_LCD();void Write_LCD_Data(uchar dat);void Write_LCD_Command(uchar cmd);void Display_String(uchar x,uchar y,uchar *str);void Display_char
13、(uchar hang,uchar lie,char sign);/void write_add(uchar address,uchar date);/向AT24Cxx中的指定地址寫入數(shù)據(jù)uchar read_add(uchar address);/ 從AT24Cxx中的指定地址讀取數(shù)據(jù)void init();uchar h=20; sbit touch=P21;sbit touch1=P22;sbit speaker=P20;void delay(unsigned char ms) / 延時*ms unsigned char i; while(ms-) for(i=250;i>0;i-
14、) _nop_();_nop_();_nop_();_nop_(); unsigned char keyscan() / 掃描鍵盤 unsigned char temp,y,j; unsigned char anjian=0xfe,0xfd,0xfb,0xf7; for(y=0;y<4;y+) P1 = anjiany;temp = 0x10; for(j=0;j<4;j+) if(!(P1&temp) return(j+y*4); temp = _crol_(temp,1); void judge() P1 = 0xf0; if(P1!=0xf0) / 判斷是否有按鍵 d
15、elay(50); delay(50); / 消抖 if(P1!=0xf0) h=keyscan(); void main() unsigned char a=1,i=0,k=0,l=1,m=1,n,f=0,s=0; int q; Initialize_LCD(); init(); Display_String(1,1,"Welcome To Use "); Display_String(2,1," "); touch1=0; /第一個while循環(huán) while(1) judge(); if(h<10) if(h=tablei) k+; Displ
16、ay_String(2,a,"*");a+;i+;if(a=7) a=1;if(i=6) i=0;h=16; if(h=14) Display_String(1,1,"Input Password"); Display_String(2,1," "); h=16;touch=1;touch1=0;k=0;l=1;q=0; if(h=12) if(k=6) Display_String(1,1,"Password Right"); Display_String(2,1,"Lock Opened!"
17、); touch=touch; else Display_String(1,1,"Password Error"); Display_String(2,1," "); l=0; q+; while(q=3) speaker=0;delay(200);delay(200);delay(200); speaker=1 ; q=0; h=14; delay(255); k=0; h=16;while(l) judge(); if(h=11) Display_String(1,1,"New Code"); Display_String(2,1
18、," "); while(m=1) judge(); touch1=touch1; if(h<10) tablen=h;write_add(s,h);s+; Display_String(2,a,"*"); a+;n+;h=16;if(n=6) n=0; s=0; if(h=15) if(n=0) n=6; s=6; a-;s-; Display_String(2,a," "); n-;h=16; if(h=13) m=0; if(h=13) h=13; f=1; if(h=14) l=0; if(h=13) Display_String(2,1," "); for(n=0;n<6;n+) Display_char(2,n+1,(uchar)(tablen+48) );h=13;l=0;f=1; k=0; if(h=15) a-; Display_String(2,a," "); k-; i-; h=16; if(h=13) if(f=1)
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村沼氣修建合同范例
- 2025網(wǎng)絡(luò)廣告合作協(xié)議 合同范本
- 山東省菏澤市2024-2025學年高二下學期4月期中考試 英語(B)含答案
- 廣西桂林市2025年八年級下學期語文期末試卷及答案
- 精美語文課件模板
- 氣體生意轉(zhuǎn)讓協(xié)議書
- 撤銷房屋轉(zhuǎn)讓協(xié)議書
- 死亡補償調(diào)解協(xié)議書
- 清欠鏈條回購協(xié)議書
- 智能制造培訓協(xié)議書
- 山東省臨沂市2025年普通高等學校招生全國統(tǒng)一考試(模擬)語文及答案(臨沂二模)
- 以患者為中心的醫(yī)教融合模式在提升醫(yī)療服務(wù)質(zhì)量中的應(yīng)用研究
- (2025)全國小學生“學憲法、講憲法”活動知識競賽題庫及答案
- NB/T 11643-2024煤炭快速定量裝車系統(tǒng)通用技術(shù)標準
- 2025年電子信息工程專業(yè)考試卷及答案
- 網(wǎng)絡(luò)輿情的實時監(jiān)測與分析-全面剖析
- 廣東省珠海市2024-2025學年高二下學期期中教學質(zhì)量檢測英語試題(原卷版+解析版)
- 工傷康復培訓課件
- 美國加征關(guān)稅從多個角度全方位解讀關(guān)稅課件
- 院感爆發(fā)的試題及答案
- 委托融資協(xié)議書范本
評論
0/150
提交評論