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

下載本文檔

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

文檔簡介

基于AT89C52單片機電子密碼鎖的設計題目:基于AT89C52單片機的電子密碼鎖設計學院(系):年級專業(yè):電子信息工程學號:學生姓名:指導教師:教師職稱:成績:完成日期2012年11月29日目錄摘要 2第0章引言 3第1章硬件設計 41.1要求及方案 4基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第1頁。1.1.1設計要求 4基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第1頁。1.1.2方案設計 41.2系統(tǒng)方框圖 41.3工作原理 51.4鍵盤輸入模塊 61.6電路復位部分 71.7LED顯示部分 81.8晶振部分 81.9開鎖部分 9第2章主要元器件介紹 102.1主控芯片AT89C52 102.1.2AT89C52引腳功能說明 112.1.3AT89C52芯片內(nèi)部結(jié)構(gòu) 122.2LCD1602顯示器 142.2.1接口信號說明 152.2.2主要技術參數(shù) 152.2.3基本操作程序 15第3章系統(tǒng)軟件設計 16第4章調(diào)試 19第5章總結(jié) 22第6章致謝語……………………...….22參考文獻 23附錄 24基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第2頁?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第2頁?;趩纹瑱C的電子密碼鎖設計摘要:隨著科技和人們的生活水平的提高,如何實現(xiàn)家庭防盜這一問題也變的尤其的突出,傳統(tǒng)機械鎖由于構(gòu)造簡單,被撬事件屢見不鮮;電子鎖由于其保密性高,使用靈活性好,安全系數(shù)高,受到了廣大用戶的青睞。本設計以單片機AT89C52作為密碼鎖監(jiān)控裝置的檢測和控制核心,分為主機控制和從機執(zhí)行機構(gòu)(本設重點介紹主機設計),實現(xiàn)鑰匙信息在主機上的初步認證注冊,密碼信息的加密,鑰匙丟失報廢等功能。根據(jù)51單片機之間的串行通信原理,這便于對密碼信息的隨機加密和保護。而且采用鍵盤輸入的電子密碼鎖具有較高的優(yōu)勢。采用數(shù)字信號編碼和二次調(diào)制方式,不僅可以實現(xiàn)多路信息的控制,提高信號傳輸?shù)目垢蓴_性,減少錯誤動作,而且功率消耗低;反應速度快,傳輸效率高,工作穩(wěn)定可靠等。軟件設計采用自上而下的模塊化設計思想,以使系統(tǒng)朝著分布式,小型化方向發(fā)展,增強系統(tǒng)的可擴展性和運行的穩(wěn)定性.測試結(jié)果表明,本系統(tǒng)各項功能已達到本設計的所有要求。關鍵詞:單片機;電子密碼鎖;AT89C52;顯示;基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第3頁。第0章引言基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第3頁。在日常生活和工作中,住宅與部門的安全防范、單位的文件檔案、財務報表以及一些個人資料的保存多以加鎖的辦法來解決。目前門鎖主要用彈子鎖,其鑰匙容易丟失;保險箱主要用機械密碼鎖,其結(jié)構(gòu)較為復雜,制造精度要求高,成本高,且易出現(xiàn)故障,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。針對這些鎖具給人們帶來的不便若使用機械式鑰匙開鎖,為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應運而生。它的出現(xiàn)為人們的生活帶來了很大的方便,有很廣闊的市場前景。由于電子器件所限,以前開發(fā)的電子密碼鎖,其種類不多,保密性差,最基本的就是只依靠最簡單的模擬電子開關來實現(xiàn)的,制作簡單但很不安全,在后為多是基于EDA來實現(xiàn)的,其電路結(jié)構(gòu)復雜,電子元件繁多,也有使用早先的20引角的2051系列單片機來實現(xiàn)的,但密碼簡單,易破解。隨著電子元件的進一步發(fā)展,電子密碼鎖也出現(xiàn)了很多的種類,功能日益強大,使用更加方便,安全保密性更強,由以前的單密碼輸入發(fā)展到現(xiàn)在的,密碼加感應元件,實現(xiàn)了真真的電子加密,用戶只有密碼或電子鑰匙中的一樣,是打不開鎖的,隨著電子元件的發(fā)展及人們對保密性需求的提高出現(xiàn)了越來越多的電子密碼鎖。出于安全、方便等方面的需要許多電子密碼鎖已相繼問世。但這類產(chǎn)品的特點是針對特定有效卡、指紋或聲音有效,且不能實現(xiàn)遠程控制,只能適用于保密要求高且供個人使用的箱、柜、房間等。由于數(shù)字、字符、圖形圖像、人體生物特征和時間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子防盜鎖獲得高度的保密性,如防范森嚴的金庫,需要使用復合信息密碼的電子防盜鎖,這樣對盜賊而言是“道高一尺、魔高一丈”。組合使用信息也能夠使電子防盜鎖獲得無窮擴展的可能,使產(chǎn)品多樣化,對用戶而言是“千挑百選、自得其所”??梢钥闯鼋M合使用電子信息是電子密碼鎖以后發(fā)展的趨勢。本設計采用單片機為主控芯片AT89C52,結(jié)合外圍電路,組成電子密碼鎖,用戶想要打開鎖,必先通過提供的鍵盤輸入正確的密碼才能將鎖打開,密碼輸入錯誤有提示,為提高安全性,當密碼輸入錯誤三次將報警。密碼可以由用戶自己修改設定,鎖打開后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認,以防止誤操作?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第4頁。第1章硬件設計基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第4頁。1.1要求及方案1.1.1設計要求設計一款能設定密碼的電子智能密碼鎖。1、能輸入6位數(shù)字密碼,顯示輸入數(shù)據(jù)個數(shù),但不顯示密碼,能刪除并重新輸入。2、具有2次輸入確認功能。3、具有掉電以后密碼不丟失,3次輸入錯誤報警的功能,給出聲光報警。1.1.2方案設計本設計選用單片機AT89C52作為本設計的核心元件,利用單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性,實現(xiàn)基本的密碼鎖功能。在單片機的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接LCD1602顯示器用于顯示作用。當用戶需要開鎖時,先按鍵盤開鎖鍵之后按鍵盤的數(shù)字鍵0-9輸入密碼。密碼輸完后按下確認鍵,如果密碼輸入正確則開鎖,不正確顯示密碼錯誤重新輸入密碼,當三次密碼錯誤則發(fā)出報警;當用戶需要修改密碼時,先按下鍵盤設置鍵后輸入原來的密碼,只有當輸入的原密碼正確后才能設置新密碼。新密碼輸入無誤后按確認鍵使新密碼將得到存儲,密碼修改成功。1.2系統(tǒng)方框圖基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第5頁。本設計的系統(tǒng)方框圖如圖1,由以上的方案可以知道本系統(tǒng)主要由單片機、矩陣鍵盤、液晶顯示器和密碼存儲等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進行各種功能的實現(xiàn)。由用戶通過連接單片機的矩陣鍵盤輸入密碼,后經(jīng)過單片機對用戶輸入的密碼與自己保存的密碼進行對比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路或者報警電路控制開鎖還是報警?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第5頁。ATAT89C5鍵盤輸入復位電路密碼存儲電路晶振電路電源輸入顯示電路報警電路開鎖電路圖1系統(tǒng)方框圖1.3工作原理本系統(tǒng)共有兩部分構(gòu)成,即硬件部分與軟件部分。其中硬件部分由鍵盤輸入部分、復位部分、LCD顯示部分、LED顯示部分、晶振部分、開鎖部分組成,軟件部分對應的由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、啟動程序、關閉程序、建功能程序、密碼設置程序、EEPROM讀寫程序和延時程序等組成。其原理圖如圖2所示:基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第6頁。圖2電路原理圖基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第6頁。1.4鍵盤輸入模塊本系統(tǒng)中的鍵盤輸入部分是由16個小鍵盤拼接而成的,采用的是矩陣式按鍵鍵盤,它由行線和列線組成,也稱行列式鍵盤,按鍵位于行列的交叉點上,密碼鎖的密碼由鍵盤輸入完成,與獨立式按鍵鍵盤相比,要節(jié)省很多I/O口。本設計中使用的這個4*4鍵盤不但能完成密碼的輸入還能作特別功能鍵使用,比如清空顯示功能等。鍵盤的每個按鍵功能在程序設計中設置。其大體功能(看鍵盤按鍵上的標記)及與單片機引腳接法如圖3所示:圖3按鍵圖1.5顯示部分為了提高密碼鎖的密碼顯示效果能力。本設計的顯示部分由液晶顯示器LCD1602取代普通的數(shù)碼管來完成。只有按下鍵盤上的開啟按鍵后,顯示器才處于開啟狀態(tài)。同理只有按下關閉按鍵后顯示器才處于關閉狀態(tài)。否則顯示器將一直處于初始狀態(tài),當需要對密碼鎖進行開鎖時,按下鍵盤上的開鎖按鍵后利用鍵盤上的數(shù)字鍵0-9輸入密碼,每按下一個數(shù)字鍵后在顯示器上顯示一個*,輸入多少位就顯示多少個*。當密碼輸入完成時,按下確認鍵,如果輸入的密碼正確的話,LCD子顯示“RIGHT”,單片機其中P2.0引角會輸出低電平,使三極管T2導通,電磁鐵吸合,電子密碼鎖被打開,如果密碼不正確,LCD顯示屏會顯示“ERROR”,P2.0輸出的是高電平,電子密碼鎖不能被打開。通過LCD顯示屏,可以清楚的判斷出鎖所處的狀態(tài)。其顯示部分引腳接口如圖4所示:基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第7頁。 基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第7頁。圖4顯示電路原理圖1.6電路復位部分單片機復位是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復位后PC=0000H,使單片機從第—個單元取指令。無論是在單片機剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復位。在復位期間(即RST為高電平期間),P0口為高組態(tài),P1-P3口輸出高電平;外部程序存儲器讀選通信號PSEN無效。地址鎖存信號ALE也為高電平。根據(jù)實際情況選擇如圖5所示的復位電路。該電路在最簡單的復位電路下增加了手動復位按鍵,在接通電源瞬間,電容C1上的電壓很小,復位下拉電阻RST上的電壓接近電源電壓,即RST為高電平,在電容充電的過程中RST端電壓逐漸下降,當RST端的電壓小于某一數(shù)值后,CPU脫離復位狀態(tài),由于電容C1足夠大,可以保證RST高電平有效時間大于24個振蕩周期,CPU能夠可靠復位。增加手動復位按鍵是為了避免死機時無法可靠復位。當復位按鍵按下后電容C1通過R5放電。當電容C1放電結(jié)束后,RST端的電位由R5與R6分壓比決定。由于R5<<R6因此RST為高電平,CPU處于復位狀態(tài),松手后,電容C1充電,RST端電位下降,CPU脫離復位狀態(tài)。R5的作用在于限制按鍵按下瞬間電容C1的放電電流,避免產(chǎn)生火花,以保護按鍵觸電。其原理圖如圖5所示:基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第8頁。圖5復位電路原理圖基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第8頁。1.7LED顯示部分LED顯示部分如圖6所示:圖6LED顯示部分本系統(tǒng)的LED顯示部分主要由兩個LED組成,其中D1代表開鎖信號,當密碼兩次都正確時,D1會閃亮一下;D2代表密碼錯誤,當三次輸入錯誤時,D2亮,且上鎖。1.8晶振部分AT89C52引腳XTAL1和XTAL2與晶體振蕩器及電容C2、C3按圖7所示方式連接。晶振、電容C2、C3及片內(nèi)與非門(作為反饋、放大元件)構(gòu)成了電容三點式振蕩器,振蕩信號頻率與晶振頻率及電容C2、C3的容量有關,但主要由晶振頻率決定,范圍在0~33MHz之間,電容C2、C3取值范圍在5~30pF之間。根據(jù)實際情況,本設計中采用12MHZ做為系統(tǒng)的外部晶振。電容取值為100nF。圖7晶振電路原理圖基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第9頁。基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第9頁。1.9開鎖部分開鎖控制電路的功能是當輸入正確的密碼后將鎖打開。用戶通過鍵盤任意設置密碼,并儲存在EEPROM中作為鎖碼指令。只有用戶操作鍵盤時,單片機的電源端才能得到3V電源,否則.單片機處于節(jié)電工作方式。開鎖步驟如下:首先按下鍵盤上的開鎖按鍵,然后利用鍵盤上的數(shù)字鍵0-9輸入密碼,最后按下確認鍵。當用戶輸入一密碼后,單片機自動識碼,如果識碼不符,則報警。只有當識碼正確,完成本次開鎖。開鎖以后,單片機自動清除掉由用戶輸人的這個密碼。基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第10頁?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第10頁。第2章主要元器件介紹2.1主控芯片AT89C52AT89C52是51系列單片機的一個型號,它是ATMEL公司生產(chǎn)的。AT89C52是一個低電壓,高性能CMOS8位單片機,片內(nèi)含8kbytes的可反復擦寫的Flash只讀程序存儲器和256bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強大的AT89C2.1.1AT89C52性能簡介AT89C52具有如下特點:AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規(guī)方法進行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發(fā)成本。AT89C52有PDIP、PQFP/TQFP圖8AT89C52芯片引腳圖其主要功能特性:基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第11頁。兼容MCS51指令系統(tǒng)·8k可反復擦寫(>1000次)FlashROM基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第11頁?!?2個雙向I/O口·256x8bit內(nèi)部RAM·3個16位可編程定時/計數(shù)器中斷·時鐘頻率0-24MHz·2個串行中斷·可編程UART串行通道·2個外部中斷源·共6個中斷源·2個讀寫中斷口線·3級加密位·低功耗空閑和掉電模式·軟件設置睡眠和喚醒功能AT89C52提供以下標準功能:功能包括8K字節(jié)Flash閃速存儲器,256字節(jié)內(nèi)部RAM,對會聚主IC內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。AT89C52主要管腳有:XTAL1(19腳)和XTAL2(18腳)為振蕩器輸入輸出端口,外接12MHz晶振。RST/Vpd(9腳)為復位輸入端口,外接電阻電容組成的復位電路。VCC(40腳)和VSS(20腳)為供電端口,分別接+5V電源的正負端。P0~P3為可編程通用I/O腳,其功能用途由軟件定義,在本設計中,P0端口(32~39腳)被定義為N1功能控制端口,分別與N1的相應功能管腳相連接,13腳定義為IR輸入端,10腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12腳、27腳及28腳定義為握手信號功能端口,連接主板CPU的相應功能端,用于當前制式的檢測及會聚調(diào)整狀態(tài)進入的控制功能。2.1.2AT89C52引腳功能說明VCC:電源電壓GND:地P1口P1是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。與AT89C51不同之處是,P1.0和P1.1還可分別作為定時/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX)參見表1。Flash編程和程序校驗期間,P1接收低8位地址。表.P1.0和P1.1的第二功能基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第12頁。見表1基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第12頁。引腳號功能特性引腳號功能特性P1.0T2時鐘輸出P1.1T2EX(定時/計數(shù)器2)P2口P2是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口P2寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX@RI指令)時,P2口輸出P2鎖存器的內(nèi)容。Flash編程或校驗時,P2亦接收高位地址和一些控制信號。P3口P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3口將用上拉電阻輸出電流(IIL)。RST:復位輸入。當振蕩工作時,RST引腳出現(xiàn)兩個機器周期上高電平將使單片機復位。WDT益出將使該引腳輸出高電平,設置SFRAUXR的DISRTO位(地址8EH)可打開或關閉該功能。DISRTO位缺省為RESET輸出高電平打開狀態(tài)。ALE/PROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/6輸出的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:第當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位禁位后,只有一條MOVX和MOVC指令ALE才會被激活。此外,該引腳伎被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE無效。PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈EA/VPP:外部訪問允許。欲使CPU公訪問外部程序存儲器(地址0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。Flash存儲器編程時,該引腳加上+12V的編程電壓Vpp。XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。2.1.3AT89C52芯片內(nèi)部結(jié)構(gòu)基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第13頁?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第13頁。數(shù)據(jù)存儲器AT89C52有256個字節(jié)的內(nèi)部RAM,80H-FFH高128個字節(jié)與特殊功能寄存器(SFR)地址是重疊的,也就是高128個字節(jié)。定時器2定時器2是一個16位定時/計數(shù)器。它既可當定時器使用,也可作為外部事件計數(shù)器使用,其工作方式由特殊功能寄存器T2CON(如表3)的C/T2位選擇。定時器2有三種工作方式:捕獲方式,自動重裝載(向上或向下計數(shù))方式和波特率發(fā)生器方式,工作方式由T2CON的控制位來選擇。在計數(shù)工作方式時,當T2引腳上外部輸入信號產(chǎn)生由1至0的下降沿時,寄存器的值加1,在這種工作方式下,每個機器周期的5SP2期間,對外部輸入進行采樣。若在第一個機器周期中采到的值為1,而在下一個機器周期中采到的值為0,則在緊跟著的下一個周期的S3P1期間寄存器加1。由于識別1至0的跳變需要2個機器周期(24個振蕩周期),因此,最高計數(shù)速率為振蕩頻率的1/24。為確保采樣的正確性,要求輸入的電平在變化前至少保持一個完整周期的時間,以保證輸入信號至少被采樣一次。自動重裝載(向上或向下計數(shù)器)方式當定時器2工作于16位自動重裝載方式時,能對其編程為向上或向下計數(shù)方式,這個功能可通過特殊功能寄存器T2CON來選擇。復位時,DCEN位置“0”,定時器2默認設置為向上計數(shù)。當DCEN置位時,定時器2既可向上計數(shù)也可向下計數(shù),這取決于T2EX引腳的值。當DCEN=0時,定時器2自動設置為向上計數(shù),在這種方式下,T2CON中的EXEN2控制位有兩種選擇,若EXEN2=0,定時器2為向上計數(shù)至0FFFFH溢出,置位TF2激活中斷,同時把16位計數(shù)寄存器RCAP2H和RCAP2L重裝載,RCAP2H和RCAP2L的值可由軟件預置。若EXEN2=1,定時器2的16位重裝載由溢出或外部輸入端T2EX從1至0的下降沿觸發(fā)。這個脈沖使EXF2置位,如果中斷允許,同樣產(chǎn)生中斷定時器2的中斷入口地址是:002BH——0032H。當DCEN=1時,允許定時器2向上或向下計數(shù)。這種方式下,T2EX引腳控制計數(shù)器方向。T2EX引腳為邏輯“1”時,定時器向上計數(shù),當計數(shù)0FFFFH向上溢出時,置位TF2,同時把16位計數(shù)寄存器RCAP2H和RCAP2L重裝載到TH2和TL2中。T2EX引腳為邏輯“0”時,定時器2向下計數(shù),當TH2和TL2中的數(shù)值等于RCAP2H和RCAP2L中的值時,計數(shù)溢出,置位TF2,同時將0FFFFH數(shù)值重新裝入定時寄存器中。當定時/計數(shù)器2向上溢出或向下溢出時,置位EXF2位?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第14頁。時鐘振蕩器基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第14頁。AT89C52中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。外接石英晶體(或陶瓷諧振器)及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路??臻e節(jié)電模式在空閑工作模式狀態(tài),CPU自身處于睡眠狀態(tài)而所有片內(nèi)的外設仍保持激活狀態(tài),這種方式由軟件產(chǎn)生。此時,同時將片內(nèi)RAM和所有特殊功能寄存器的內(nèi)容凍結(jié)??臻e模式可由任何允許的中斷請求或硬件復位終止。由硬件復位終止空閑狀態(tài)只需兩個機器周期有效復位信號,在此狀態(tài)下,片內(nèi)硬件禁止訪問內(nèi)部RAM,但可以訪問端口引腳,當用復位終止空閑方式時,為避免可能對端口產(chǎn)生意外寫入,激活空閑模式的那條指令后一條指令不應是一條對端口或外部存儲器的寫入指令。掉電模式在掉電模式下,振蕩器停止工作,進入掉電模式的指令是最后一條被執(zhí)行的指令,片內(nèi)RAM和特殊功能寄存器的內(nèi)容在終止掉電模式前被凍結(jié)。退出掉電模式的唯一方法是硬件復位,復位后將重新定義全部特殊功能寄存器,但不改變RAM中的內(nèi)容,在Vcc恢復到正常工作電平前,復位應無效,且必須保持一定時間以使振蕩器重啟動并穩(wěn)定工作。程序存儲器的加密AT89C52有3個程序加密位,可對芯片上的3個加密位LB1、LB2、LB3進行編程(P)或不編程(U)來得到。當加密位LB1被編程時,在復位期間,EA端的邏輯電平被采樣并鎖存,如果單片機上電后一直沒有復位,則鎖存起的初始值是一個隨機數(shù),且這個隨機數(shù)會一直保存到真正復位為止。為使單片機能正常工作,被鎖存的EA電平值必須與該引腳當前的邏輯電平一致。此外,加密位只能通過整片擦除的方法清除。Flash存儲器的編程AT89C52單片機內(nèi)部有8k字節(jié)的FlashPEROM,這個Flash存儲陣列出廠時已處于擦除狀態(tài)(即所有存儲單元的內(nèi)容均為FFH),用戶隨時可對其進行編程。編程接口可接收高電壓(+12V)或低電壓(Vcc)的允許編程信號。低電壓編程模式適合于用戶在線編程系統(tǒng),而高電壓編程模式可與通用EPROM編程器兼容。2.2LCD1602顯示器基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第15頁?,F(xiàn)在的字符型液晶模塊已經(jīng)是單片機應用設計中最常用的信息顯示器件了。1602型LCD顯示模塊具有體積小,功耗低,顯示內(nèi)容豐富等特點。1602型LCD可以顯示2行16個字符,有8位數(shù)據(jù)總線D0~D7和RS,R/W,EN三個控制端口,工作電壓為5V,并且具有字符對比度調(diào)節(jié)和背光功能?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第15頁。2.2.1接口信號說明1602型LCD的接口信號說明如表2所示:表2編號符號引腳說明編號符號引腳說明1VSS電源地9D2DataI/O2VDD電源正極10D3DataI/O3V0液晶顯示偏壓信號11D4DataI/O4RS數(shù)據(jù)/命令選擇端(H/L)12D5DataI/O5R/W讀寫選擇端(H/L)13D6DataI/O6E使能信號14D7DataI/O7D0DataI/O15BLA背光源正極8D1DataI/O16BLK背光源負極2.2.2主要技術參數(shù)1602型LCD的主要技術參數(shù)如下表所示:表3顯示容量16X2個字符芯片工作電壓4.5~5.5V工作電流2.0mA(5.0V)模塊最佳工作電壓5.0V字符尺寸2.95X4.35(WXH)mm2.2.3基本操作程序讀狀態(tài):輸入:RS=L,RW=L,E=H輸出:D0~D7=狀態(tài)字讀數(shù)據(jù):輸入:RS=H,RW=H,E=H 輸出:無寫指令:輸入:RS=L,RW=L,D0~D7=指令碼,E=高脈沖輸出:D0~D7=數(shù)據(jù)寫數(shù)據(jù):輸入:RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖輸出:無基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第16頁?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第16頁。第3章系統(tǒng)軟件設計本系統(tǒng)軟件設計由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、鍵功能程序、密碼設置程序、EEPROM讀寫程序和延時程序等組成。主要程序設計流程圖如下所示:開始開始初始化鍵盤掃描啟動程序鍵盤掃描鍵功能程序結(jié)束關閉程序圖9主程序流程圖基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第17頁?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第17頁。設置程序初始化設置程序初始化按下設置鍵輸舊密碼確認程序所輸入舊密碼正確?輸新密碼確認程序設置成功輸入次數(shù)加1次數(shù)>3?報警程序NYNY返回確認程序再次輸新密碼兩次新密碼輸入相同?NY基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第18頁。圖10密碼設置流程圖基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第18頁。Y初始化按開鎖鍵Y初始化按開鎖鍵輸入密碼確認程序所輸入密碼正確?Y開鎖成功開鎖程序輸入次數(shù)加1次數(shù)>3?報警程序返回NN圖11開鎖流程圖基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第19頁?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第19頁。第4章調(diào)試調(diào)試過程如下:首先把密碼鎖接通電源,使之運行程序,從而置入初始密碼,其模擬電路圖如圖12所示,當前狀態(tài)為初始狀態(tài),這時的初始密碼根據(jù)程序可作為:012345,此時從鍵盤上依次按下代表0,1,2,3,4,5的按鍵在按下代表確認的鍵,當輸入密碼正確時模擬圖如圖13所示,再次輸入密碼后確認開鎖,綠燈(D1)亮起,其模擬圖如圖14所示。若輸入密碼錯誤時,其模擬圖如圖15所示,當三次都輸入錯誤密碼后,紅燈(D2)亮起,其模擬圖如圖16所示?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第20頁。模擬電路圖12(鍵盤掃描,LCD開)基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第20頁。模擬電路圖13(密碼第一次輸入正確)基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第21頁。模擬電路圖14(綠燈(D1)亮起,開鎖狀態(tài))基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第21頁。模擬電路圖15(輸入錯誤密碼)模擬電路圖16(三次輸入都錯,紅燈(D2)亮起,上鎖狀態(tài))基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第22頁。基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第22頁。第5章總結(jié)本設計從經(jīng)濟實用的角度出發(fā),采用美國Atmel公司的單片機AT89C52作為主控芯片與數(shù)據(jù)存儲器單元,結(jié)合外圍的鍵盤輸入、顯示、報警、開鎖等電路并用C編寫主控芯片的控制程序,研制了一款可以多次更改密碼具有報警功能的電子密碼鎖。設計完全可行可以達到設計目的。使用單片機制作的電子密碼鎖具有軟硬件設計簡單,易于開發(fā),成本較低,安全可靠,操作方便等特點。可應用于住宅、辦公室的保險箱及檔案柜等需要防盜的場所,有一定的實用性。該電路設計還具有按鍵有效提示,輸入錯誤提示,控制開鎖電路,控制報警電路,修改密碼等多種功能。可在意外泄密的情況下隨時修改密碼。保密性強,靈活性高,特別適用于家庭、辦公室、學生宿舍及賓館等諸多場所。第6章致謝語在本次實訓課程設計過程中,謝輝老師對此次實訓課發(fā)了很多資料,比如:仿真軟件(PROTEUS),編譯軟件(KEIL3)等。還給我給了很多設計題目和題目的參考資料及范例。每次上實訓課老師總是細心的給我們講解在設計中的一些細節(jié)問題,給了我們很多的建議和構(gòu)思方法,還給我們做了示范。在實訓驗收的時候老師不僅僅是想要我們的結(jié)果,還不忘給我們傳授知識,給我們講解程序所表達的意思及程序所執(zhí)行的功能、完成的功能。最主要的是還繼續(xù)給我們提寶貴的建議,設計要求,以達到更好的效果。最后,衷心的感謝謝輝老師在此次實訓課中給予我精心的指導以及在百忙之中抽時間對此實訓報告進行審閱。真心的向您說一聲:“老師,您辛苦了”!基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第23頁?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第23頁。參考文獻[1]祖龍起,劉仁杰.一種新型可編程密碼鎖[J].大連輕工業(yè)學院學報,2002.[2]李瀚蓀.電路分析基礎[M],北京:高等教育出版社1991.[3]童詩白,華成英,模擬電子技術基礎[M],北京:高等教育出版社,2000.[4]王千.實用電子電路大全[M],電子工業(yè)出版社,2001,p101.[5]何立民.單片機應用技術選編[M],北京:北京航空大學出版社,1998.[6]李華.MCS-51系列單片機使用接口技術[M],北京航空航天大學出版社,1993.[7]彭為.單片機典型系統(tǒng)設計實例精講[M],北京:電子工業(yè)出版社,2006.[8]潘永雄.新編單片機原理與應用[M],西安:西安電子科技大學出版社,2003.[9]董繼成.一種新型安全的單片機密碼鎖[J].電子技術,2004.[10]祖龍起,劉仁杰,孫乃凌.一種新穎的電子密碼鎖[J].電子世界,2001.[11]李明喜.新型電子密碼鎖的設計[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2004.[12]楊茂濤.一種電子密碼鎖的實現(xiàn)[J].福建電腦,2004.[13]樓然苗.51系列單片機設計實例.[M].北京:北京航空航天大學出版社,2003[14]謝輝.單片機原理及應用.化學工業(yè)出版社.北京. 基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第24頁。基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第24頁。附錄主程序:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintucharjian[16]={0xe7,0xee,0xde,0xbe,0xed,0xdd,0xbd,0xeb,0xdb,0xbb,0x7e,0x7d,0x7b,0x77,0xb7,0xd7};ucharUsers[6]={0,1,2,3,4,5};//用戶密碼ucharFu_hao=0;//符號輸出控制位ucharU_Interrupt=0;//中斷標志位ucharTxet=0;uchartimer_1=0;ucharcodetable4[]="Isexiting!";ucharcodetable7[]="inputnewcode";ucharcodetable12[]="Timeistoolong";sbitlcden=P3^4;sbitlcdrs=P3^5;sbitWarning=P3^1;//報警指示燈sbitLock=P3^0;//開鎖指示燈voidDelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}voidwrite_com(ucharcom)//LCD16002控制指令{ lcdrs=0; P0=com; Delay(5); lcden=1;基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第25頁。 Delay(5);基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第25頁。 lcden=0;}voidwrite_data(uchardate)//LCD1602輸出指令{ lcdrs=1; P0=date; Delay(5); lcden=1; Delay(5); lcden=0;}voidinit()//LCD1602初始化{ lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80);}voidXian_shi(ucharb){ uchari; switch(b) { case0:{ write_com(0x80+0x4f-Fu_hao); write_data('*'); Fu_hao++; };break; case1:{ for(i=0;i<16;i++)基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第26頁。 {基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第26頁。 write_com(0x80+0x40+i);write_data('');//0x20Delay(2); } Fu_hao=0;};break; }}ucharkeyscan(void)//一次掃描,有鍵按下才跳出{ uchark,i,j,m,t;while(1){ P1=0xff; i=0xfe; if(U_Interrupt==1)return20; for(j=0;j<4;j++) { P1=i; k=P1&0xf0; if(k!=0xf0) { Delay(5); if(k!=0xf0){ t=k|(i&0x0f); for(m=0;m<16;m++)//哪個鍵按下 if(jian[m]==t)break; while(k!=0xf0) {k=P1;k=k&0xf0; 基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第27頁。}基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第27頁。Delay(5); while(k!=0xf0) {k=P1;k=k&0xf0; } returnm;//編譯鍵值} }i=(i<<1)|0x01; } }}voidShe_zhi(void){ ucharNew,Wei,Zhi,bb[6],cc[6],i,k,j; ucharcodetable8[]="inputnewagain";ucharcodetable9[]="Successfully!";ucharcodetable10[]="Inputiserror!";ucharcodetable11[]="putenteragain"; New=0; Wei=0; Fu_hao=0; for(k=0;k<6;k++) { bb[k]=0; cc[k]=0; } write_com(1); for(j=0;j<14;j++) write_data(table7[j]); //清屏顯示table7[]="inputnewcode" while(1)基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第28頁?;贏T89C52單片機電子密碼鎖的設計全文共40頁,當前為第28頁。 Zhi=keyscan(); if(Zhi>=0&&Zhi<=9)//0~9密碼按鍵 { Xian_shi(0);//顯示*號 if(New==0) bb[Wei++]=Zhi;//存輸入數(shù)值 if(New==1) cc[Wei++]=Zhi; continue; } if(Zhi==15)//刪除鍵按下 { Xian_shi(1);//清除*號 Wei=0;//重新存輸入數(shù)值 Fu_hao=0; continue; } if(Zhi==10||Zhi==11||Zhi==12)continue; if(Zhi==14)//直接按下退出鍵退出 { Txet=0; TR1=0; write_com(1); for(j=0;j<12;j++) write_data(table4[j]); //顯示"Isexiting" Delay(2000); //延遲2s后清屏 write_com(1); Wei=0; //下次重新存數(shù)值 Fu_hao=0;//符號位歸零,以便下一次輸入顯示 return; } if(Zhi==13) //確定鍵按下基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第29頁。 {基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第29頁。 New++; if(New==1)//第一次輸入完新密碼后,在輸入一次 { write_com(1); for(j=0;j<15;j++) write_data(table8[j]);//清屏顯示table8[]="inputnewagain" Wei=0; Fu_hao=0; continue; } if(New==2)//第二次輸入完成,比較兩次是否一樣 { for(k=0;k<6;k++) if(bb[k]!=cc[k])break; if(k>=6)//兩次輸入一樣 { write_com(1); for(j=0;j<13;j++) write_data(table9[j]); //請屏顯示table9[]="Successfully!" for(j=0;j<6;j++) Users[j]=bb[j];//更改用戶密碼 Delay(2000); Txet=0;//更改密碼成功,暫停中斷,重新計時 TR1=0; write_com(1); for(j=0;j<12;j++) write_data(table4[j]); //顯示"Isexiting" Delay(2000); Wei=0; Fu_hao=0; write_com(1); return;//跳出循環(huán)基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第30頁。 }基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第30頁。 if(k<6)//兩次輸入新密碼不一樣 { write_com(1); for(j=0;j<15;j++) write_data(table10[j]); //第一行顯示table10[]="Inputiserror!" write_com(0x80+0x40); for(j=0;j<15;j++) //第二行顯示able11[]="putenteragain" write_data(table11[j]); i=keyscan(); if(i==14)//退出鍵按下,跳出循環(huán) { Txet=0; TR1=0; write_com(1); for(j=0;j<12;j++) write_data(table4[j]);//顯示"Isexiting" Delay(2000); write_com(1); Wei=0; Fu_hao=0; return; } if(i==13)//確定鍵按下,繼續(xù)輸入密碼 { write_com(1); for(j=0;j<14;j++) write_data(table7[j]); //清屏顯示table7[]="inputnewcode" Wei=0;//重新存鍵值 Fu_hao=0;//重新輸出符號 New=0; continue; }基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第31頁。 }基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第31頁。 } } }}ucharIdentify(){ ucharTimes,Wei,Zhi,aa[6],bb[6],i,j,k; ucharcodetable1[]="Codeiswrong!"; ucharcodetable3[]="Pleaseinput"; ucharcodetable5[]="PleaseWait"; ucharcodetable6[]="Inputagain?"; ucharcodetable13[]="Warning!"; ucharright=0; if(timer_1==1)TR1=0; elseTR1=1; for(k=0;k<6;k++) { aa[k]=0;//初始化 bb[6]=0; } Times=0;//輸入密碼錯誤次數(shù) Wei=0;//已存入了的密碼的個數(shù) while(1) { Zhi=keyscan(); if(Zhi==20)//產(chǎn)生了中斷信號 { U_Interrupt=0; right=0; return0; } if(Zhi>=0&&Zhi<=9)//0~9密碼按鍵基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第32頁。 {基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第32頁。 Xian_shi(0);//顯示*號 if(right==0)aa[Wei++]=Zhi;//第一次存輸入數(shù)值 if(right==1)bb[Wei++]=Zhi;//第二次 continue; } if(Zhi==15)//刪除鍵按下 { Xian_shi(1);//清除*號 Wei=0;//重新存輸入數(shù)值 continue; } if(Zhi==10||Zhi==11||Zhi==12)continue; if(Zhi==14)//直接按下退出鍵退出 { Txet=0; //暫停中斷,下次重新計時 TR1=0; write_com(1); for(i=0;i<12;i++) write_data(table4[i]);//清屏顯示"Isexiting!" Delay(2000); ////延遲1s后清屏 write_com(1); right=0; return0; } if(Zhi==13) //確定鍵按下 { write_com(1); for(i=0;i<11;i++) write_data(table5[i]); //清屏顯示"PleaseWait Delay(1000);if(right==0) {基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第33頁。 for(k=0;k<6;k++)基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第33頁。 if(aa[k]!=Users[k])break; } if(right==1) { for(k=0;k<6;k++) if(bb[k]!=Users[k])break; } if(k<6)//密碼錯誤 { Times++; if(Times==3)//輸入錯誤達到三次 { Txet=0; TR1=0; write_com(1); write_com(0x80+4); for(i=0;i<8;i++) write_data(table13[i]);//清屏顯示W(wǎng)arning! write_com(0x80+0x40); for(i=0;i<15;i++) write_data(table1[i]);//清屏顯示Codeiswrong!" Warning=1; //開報警 timer_1=1; Delay(2500); write_com(1); right=0;//清除跳出前輸入密碼正確的次數(shù) return0; } if(Times<3) { write_com(1); for(i=0;i<15;i++)基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第34頁。 write_data(table1[i]);//清屏顯示Codeiswrong"基于AT89C52單片機電子密碼鎖的設計全文共40頁,當前為第34頁。 write_com(0x80+0x43); for(i=0;i<13;i++) write_data(table6[i]);//清屏顯示Inputagain?" j=keyscan(); if(j==20) { U_Interrupt=0; right=0; return0; } if(j==14)//退出鍵按下,跳出循環(huán) { Txet=0; TR1=0; write_com(1); for(i=0;i<12;i++) write_data(table4[i]); Delay(5000); write_com(1); right=0; Wei=0; Fu_hao=0;//指針歸零,下次從頭開鎖顯示*

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論