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

下載本文檔

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

文檔簡介

1、洛陽理工學院畢業(yè)設計(論文)基于單片機的電子密碼鎖設計摘 要在日常的生活和工作中, 住宅與部門的安全防范、單位的文件檔案、財務報表以及一些個人資料的保存多以加鎖的辦法來解決。若使用傳統(tǒng)的機械式鑰匙開鎖,人們常需攜帶多把鑰匙, 使用極不方便, 且鑰匙丟失后安全性即大打折扣。傳統(tǒng)的門鎖既要備有大量的鑰匙,又要擔心鑰匙丟失后的麻煩。隨著單片機的問世,出現(xiàn)了帶微處理器的密碼鎖,它除具有電子密碼鎖的功能外,還引入了智能化、科技化等功能,從而使密碼鎖具有很高的安全性、可靠性,受到了廣大用戶的親睞。本系統(tǒng)由AT89C51單片機系統(tǒng)(主要是AT89C51單片機最小系統(tǒng))、4×4矩陣鍵盤、LCD160

2、2顯示和報警系統(tǒng)等組成,具有設置、修改六位用戶密碼、超次報警、密碼錯誤報警等功能(本設計由P0口控制LCD顯示,密碼正確顯示password ok! 密碼錯誤顯示password error!超過三次輸入錯誤啟動報警功能。 經(jīng)實驗證明,該密碼鎖具有設計方法合理,簡單易行,成本低,安全實用等特點,符合住宅、辦公室用鎖要求,具有推廣價值。關(guān)鍵詞: AT89C51,LCD1602,電子密碼鎖,4×4矩陣鍵盤目錄前言1第1章 概述21.1 電子密碼鎖簡介21.2 電子密碼鎖發(fā)展趨勢21.3 本設計所要實現(xiàn)的目標31.4 電子密碼鎖設計的具體要求31.5 總體設計方案選定4第2章 硬件設計52

3、.1 單片機AT89C51簡介52.1.1 主要特性52.1.2 引腳功能說明62.2 液晶顯示LCD1602的介紹92.3 硬件電路的設計112.3.1 硬件設計原理112.3.2 最小系統(tǒng)的設計122.3.3 芯片擦除152.3.4 開鎖機構(gòu)152.3.5 鍵盤設計162.3.6 顯示電路設計182.4 電路設計總圖19第3章 系統(tǒng)軟件設計203.1 系統(tǒng)軟件設計總體流程203.2 主程序模塊203.3 鍵盤掃描及程序流程圖213.4 系統(tǒng)密碼及開鎖程序流程圖23第4章 程序調(diào)試254.1 系統(tǒng)調(diào)試過程254.2 系統(tǒng)調(diào)試結(jié)果27結(jié)論29參考文獻30附錄3246前言隨著社會物質(zhì)財富的日益增

4、長和人們生活水平的提高,安全成為現(xiàn)代居民最關(guān)心的問題之一。此外電子技術(shù)的飛速發(fā)展,給傳統(tǒng)的機械鎖帶來了巨大的變革,現(xiàn)代的電子技術(shù)與機械技術(shù)相結(jié)合,產(chǎn)生了一大批智能鎖:指紋鎖、IC卡辨識、遙控鎖、聲控鎖等先進的鎖具。雖然這類產(chǎn)品安全性高,但是這類產(chǎn)品的特點是針對特定指紋或有效卡,只能適用于保密要求高且僅供個人使用的箱、柜、房間等。而且卡片式IC卡還有易丟失等特點,加上其生產(chǎn)成本高,安裝使用不方便,一定程度上限制了這類產(chǎn)品的普及和推廣。由于數(shù)字、字符、圖形圖像、人體生物特征和時間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子密碼鎖獲得高度的保密性,如防范森嚴的金庫,需要使用復合信息密碼的

5、電子密碼鎖,這樣對盜賊而言是“道高一尺、魔高一丈”。組合使用信息也能夠使電子密碼鎖獲得無窮擴展的可能,使產(chǎn)品多樣化,對用戶而言是“千挑百選、自得其所”。本文介紹的是一種基于ST89C51單片機和4*4矩陣鍵盤的硬件設計和軟件實現(xiàn)方法,這種電路設計具有防試探按鍵輸入、智能控制上鎖、開鎖、報警、修改密碼等多種功能。保密性強,靈活性高,外接各種執(zhí)行機構(gòu),可廣泛用于車輛、大門、保險柜等各種需上鎖的場合。 第1章 概述1.1 電子密碼鎖簡介電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機械開關(guān)的閉合,完成開鎖、閉鎖任務的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)

6、品?,F(xiàn)在應用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。其性能和安全性已大大超過了機械鎖。其特點如下: (1) 保密性好,編碼量多,遠遠大于彈子鎖。隨機開鎖成功率幾乎為零。 (2) 密碼可變,用戶可以隨時更改密碼,防止密碼被盜,同時也可以避免因人員的更替而使鎖的密級下降。 (3) 誤碼輸入保護,當輸入密碼多次錯誤時,報警系統(tǒng)自動啟動。 (4) 無活動零件,不會磨損,壽命長。 (5) 使用靈活性好,不像機械鎖必須佩帶鑰匙才能開鎖。 (6) 電子密碼鎖操作簡單易行,一學即會。1.2 電子密碼鎖發(fā)展趨勢在日常生活和工作中,住宅與部門的安全防范、單位的文件檔案、財務報表以及一些個人資料的保存多以

7、加鎖的辦法來解決。目前門鎖主要用彈子鎖,其鑰匙容易丟失;保險箱主要用機械密碼鎖,其結(jié)構(gòu)較為復雜,制造精度要求高,成本高,且易出現(xiàn)故障,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。針對這些鎖具給人們帶來的不便若使用機械式鑰匙開鎖,為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應運而生。它的出現(xiàn)為人們的生活帶來了很大的方便,有很廣闊的市場前景。由于電子器件所限,以前開發(fā)的電子密碼鎖,其種類不多,保密性差,最基本的就是只依靠最簡單的模擬電子開關(guān)來實現(xiàn)的,制作簡單但很不安全,在后為多是基于EDA來實現(xiàn)的,其電路結(jié)構(gòu)復雜,電子元件繁多,也有使用早先的20引角的205

8、1系列單片機來實現(xiàn)的,但密碼簡單,易破解。隨著電子元件的進一步發(fā)展,電子密碼鎖也出現(xiàn)了很多的種類,功能日益強大,使用更加方便,安全保密性更強,由以前的單密碼輸入發(fā)展到現(xiàn)在的,密碼加感應元件,實現(xiàn)了真真的電子加密,用戶只有密碼或電子鑰匙中的一樣,是打不開鎖的,隨著電子元件的發(fā)展及人們對保密性需求的提高出現(xiàn)了越來越多的電子密碼鎖。出于安全、方便等方面的需要許多電子密碼鎖已相繼問世。但這類產(chǎn)品的特點是針對特定有效卡、指紋或聲音有效,且不能實現(xiàn)遠程控制,只能適用于保密要求高且供個人使用的箱、柜、房間等。由于數(shù)字、字符、圖形圖像、人體生物特征和時間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子

9、防盜鎖獲得高度的保密性,如防范森嚴的金庫,需要使用復合信息密碼的電子防盜鎖,這樣對盜賊而言是“道高一尺、魔高一丈”。組合使用信息也能夠使電子防盜鎖獲得無窮擴展的可能,使產(chǎn)品多樣化,對用戶而言是“千挑百選、自得其所”??梢钥闯鼋M合使用電子信息是電子密碼鎖以后發(fā)展的趨勢。1.3 本設計所要實現(xiàn)的目標本設計采用單片機為主控芯片,結(jié)合外圍電路,組成電子密碼鎖,用戶想要打開鎖,必先通過提供的鍵盤輸入正確的密碼才能將鎖打開,密碼輸入錯誤有提示,為了提高安全性,當密碼輸入錯誤三次將報警。密碼可以由用戶自己修改設定,鎖打開后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認,以防止誤操作

10、。1.4 電子密碼鎖設計的具體要求(1)本設計為了防止密碼被竊取要求在輸入密碼時在LCD屏幕上顯示*號。(2)設計開鎖密碼位六位密碼的電子密碼鎖。(3)能夠LCD顯示在密碼正確時顯示PASSWORD OK,密碼錯誤時顯示PASSWORD ERROR,輸入密碼時顯示INPUT PASSWORD。(4)實現(xiàn)輸入密碼錯誤超過限定的三次電子密碼鎖定。(5)4×4的矩陣鍵盤其中包括0-9的數(shù)字鍵和A-F的功能鍵(6)本產(chǎn)品具備報警功能,當輸入密碼錯誤時蜂鳴器響并且LED燈亮。 (7)密碼可以由用戶自己修改設定(只支持6位密碼),修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認,以防止

11、誤操作 。1.5 總體設計方案選定采用一種是用以AT89C51為核心的單片機控制方案。選用單片機AT89C51 作為本設計的核心元件,利用單片機靈活的編程設計和豐富的IO端口,及其控制的準確性,實現(xiàn)基本的密碼鎖功能。在單片機的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接LCD1602顯示器用于顯示作用。其原理如下圖1-1所示: 圖1-1 單片機控制密碼鎖原理框圖 第2章 硬件設計2.1 單片機AT89C51簡介 AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低

12、電壓,高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C20與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU51是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。 圖2-1 AT89C51與AT89C20512.1.1 主要特性 􀁹 (1)與MCS-51 兼容; ⣶

13、97; (2)4K字節(jié)可編程閃爍存儲器; 􀁹 (3)壽命:1000寫/擦循環(huán); (4)數(shù)據(jù)保留時間:10年; 􀁹 (5)全靜態(tài)工作:0Hz-24Hz;􀁹 (6)三級程序存儲器鎖定;􀁹 (7)128*8位內(nèi)部RAM; 􀁹 (8)32可編程I/O線; 􀁹 (9)兩個16位定時器/計數(shù)器; 􀁹 (10)5個中斷源; 􀁹 (11)可編程串行通道; 􀁹 (12)低功耗的閑置和掉電模式; 􀁹 (13)片內(nèi)振蕩器和時鐘電路; 2.

14、1.2 引腳功能說明 圖2-2 單片機引腳圖Vcc:電源電壓 GND:接地 P0口:P0口是一組8位漏極開路型雙向I0口,也即地址數(shù)據(jù)總線復用口。作為輸出口用時,每位能驅(qū)動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。在F1ash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。 P1口:Pl 是一個帶內(nèi)部上拉電阻的8位雙向IO口,Pl的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電

15、平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL),F(xiàn)lash編程和程序校驗期間,Pl接收低8位地址。 P2 口:P2 是一個帶有內(nèi)部上拉電阻的8 位雙向IO 口,P2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL),在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVXDPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX

16、Ri 指令)時,P2 口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存器的內(nèi)容),在整個訪問期間不改變。Flash編程或校驗時,P2亦接收高位地址和其它控制信號。 P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I0 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL邏輯門電路。P3口除了作為一般的I0口線外,更重要的用途是它的第二功能,如下表所示:P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號 RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。WDT 溢出將使該引腳輸出高電平,設置SFR AUXR的DISRT0 位(地址

17、8EH)可打開或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態(tài)。 ALEPROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE 仍以時鐘振蕩頻率的16 輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。 PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C51 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。當訪問外部數(shù)據(jù)存儲器,沒有兩次有效的PSEN信號。 EAVPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000HFF

18、FFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。F1ash存儲器編程時,該引腳加上+12V的編程電壓Vpp。 XTALl:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。 XTAL2:振蕩器反相放大器的輸出端。 89C51相對于89C51增加的新功能包括:(1)ISP在線編程功能,這個功能的優(yōu)勢在于改寫單片機存儲器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離,是一個強大易用的功能。(2)最高工作頻率為33MHz,89C51的極限工作頻率為24MHz,就是說C51具有更高的工作頻率,從而

19、具有了更快的計算速度。(3)具有雙工UART串行通道。(4)內(nèi)部集成看門狗計時器,不再需要像C51那樣外接看門狗計時器單元電路。(5)雙數(shù)據(jù)指示器。(6)電源關(guān)閉標識。(7)全新的加密算法,這使得對于89C51的解密變?yōu)椴豢赡?,程序的保密性大大加強,這樣就可以有效地保護知識產(chǎn)權(quán)不被侵犯。(8)兼容性方面:向下完全兼容51全部字系列產(chǎn)品。(9)程序存儲器寫入方式:二者的寫入程序的方式不同,89C51只支持并行寫入,同時需要VPP燒寫高壓。89C51則支持Isp在線編程寫入技術(shù)。串行寫入、速度更快、穩(wěn)定性更好,燒寫電壓也僅僅需要45V即可。(10)電源范圍:89C51電源范圍寬達45.5V,而89

20、C51在低于4.8V和高于5.3V的時候則無法正常工作。(11)燒寫壽命更長:89C51標稱的1000次,實際最少是100010000次,這樣更有利于初學者反復燒寫,降低學習成本。綜上所述本設計選定AT89C51。2.2 液晶顯示LCD1602的介紹1.LM1602字符型模塊的性能重量輕:<100g;體積小:<11mm 厚;功耗低:1015mW;顯示內(nèi)容:192 種字符(5×7 點字型);32 種字符(5×10 點字型);可自編8(5×7)或許(5×10)種字符;指令功能強:可組合成各種輸入、顯示、移位方式以滿足不同的要求;接口簡單方便:可與

21、8 位微處理器或微控制器相聯(lián);工作溫度寬:050oC可靠性高:壽命為50,000 小時(25oC)2.基本原理(1)液晶體液晶板上排列著若干5×7 或5×10 點陣的字符顯示位,每個顯示位可顯示1 個字符,從規(guī)格上分為每行8、16、20、24、32、40 位,有一行、兩行及四行三類。(2)工作電路它由KS0066、KS0065 及幾個電阻電容組成。KS0065 是擴展顯示字符用的(例如:16 個字符×1 行模塊就可不用KS0065,16 個字符×2 行模塊就要用1 片KS0065)接口方面,有8 條數(shù)據(jù),三條控線。可與微處理器或微控制相連,通過送入數(shù)據(jù)和

22、指令,就可使模塊正常工作。(3)LCD 驅(qū)動器和控制器A.LCD 驅(qū)動器KS0065KS0065 是用低功耗CMOS 技術(shù)制造的大規(guī)模LCD 驅(qū)動IC。它既可當行驅(qū)動用,也可以當列驅(qū)動用,由20×2Bin 二進制移位寄存器、20×2Bin 數(shù)據(jù)鎖存器和20×2Bin 驅(qū)動器組成功能:a.40 通道點陣LCD 驅(qū)動;b.可選擇當做行驅(qū)動或列驅(qū)動;c.輸入/輸出信號:輸出,能產(chǎn)生20×2 個LCD 驅(qū)動波型;輸入,接受控制器送出的串行數(shù)據(jù)和控制信號,偏壓(V1V6);特性:a.顯示驅(qū)動偏壓低:靜態(tài)1/5;b.電源電壓:+5V+10%;c.顯示驅(qū)動電源:-5V

23、;d.CMOS 處理;e.60 引腳、塑封;B.LCD 控制器KS0066KS0066 是用低功耗CMOS 技術(shù)制造的大規(guī)模點陣LCD控制器(兼帶驅(qū)動器),和4Bin/8Bin 微處理器相連連,它能使點陣LCD 顯示大小英文字母、符號。應用KS0066,用戶能有少量元件就可組成一個完整點陣LCD 系統(tǒng)。特性:a.容易和Bin/8Bin Mpu 相連;b.可選擇5×7 或5×10 點字符;c.顯示數(shù)據(jù)RAM 容量:80×8Bin(80 字符);d.字符發(fā)生器ROM 能提供戶所需字符庫或標準庫;字符容量:192 個字符(5×7 點字符);32 個字符(5&#

24、215;10 點字符);e.DDRAM 和CGRAM 都能從Mpu 讀取數(shù)據(jù);f.輸出信號:16 個行掃信號(common singnal),40 個列掃信號(sengment singnal)g.電源復位電路;h.顯示占空比:1/8duty(1Line,5×7dots+Cursor);1/11 duty(1Line,5×10dote+Cuesor);1/16 duty(2Line,5×7dots+Cuesir);i.振蕩電路;j.指令:11 種;k.80 引腳、塑封。 (4)技術(shù)參數(shù)表2-1極限參數(shù)2.3 硬件電路的設計2.3.1 硬件設計原理本設計主要由單片機

25、、矩陣鍵盤、液晶顯示器和密碼存儲等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進行各種功能的實現(xiàn)。由用戶通過連接單片機的矩陣鍵盤輸入密碼,后經(jīng)過單片機對用戶輸入的密碼與自己保存的密碼進行對比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路或者報警電路控制開鎖還是報警,實際使用時只要將單片機的負載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當然也可以用繼電器的常開觸點去控制電磁鐵吸合線圈。本系統(tǒng)共有兩部分構(gòu)成,即硬件部分與軟件部分。其中硬件部分由電源輸入部分、鍵盤輸入部分、密碼存儲部分、復位部分、晶振部分、顯示部分、報警部分、開鎖部分組成,軟件部分對應的由主程序、初始化程序、LCD顯示程序

26、、鍵盤掃描程序、啟動程序、關(guān)閉程序、建功能程序、密碼設置程序、EEPROM讀寫程序和延時程序等組成。其原理框圖如圖2-3所示:圖2-3 電子密碼鎖原理框圖 本設計單片機硬件資源的分配: P0.0P0.7用于LCD液晶顯示作用。P3.7和P2.7用于蜂鳴器和報警燈的控制。P2.6用于開鎖電路的控制。P1.0P1.7用于鍵盤電路的控制。P2.0P2.2用于LCD顯示模塊的控制端口的控制。2.3.2 最小系統(tǒng)的設計當MCS-5l系列單片機的復位引腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài)。根據(jù)應用的要求,復位操作通

27、常有兩種基本形式:上電復位和開關(guān)復位。圖2-4即為手動(開關(guān))復位電路: 圖2-4 手動復位電路復位后的狀態(tài)a.復位后PC值為0000H,表明復位后的程序從0000H開始執(zhí)行。b.SP值為07H,表明堆棧底部在07H,一般需要重新設置SP值。c.P0P3口值為FFH。P0P3口用作輸入口時,必須先寫入“1”。單片機在復位后,已使P0P3口每一端線為“1”,為這些端線用作輸入口做好了準備。WDT溢出將使該引腳輸出高電平,所以本設計采用圖2-5的手動復位電路:圖2-5 本設計手動復位電路AT89C51 中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1 和XTAL2 分別是該放大器的輸入

28、端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖2-3-4。外接石英晶體(或陶瓷諧振器)及電容Cl、C2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容Cl、C2 雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30pF±10pF,而如使用陶瓷諧振器建議選擇40pF±10F。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖2-5所示。這種情況下,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部

29、時鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應符合產(chǎn)品技術(shù)條件的要求。 圖2-6 單片機自激震蕩電路由于單片機有內(nèi)部振蕩器,所以本設計采用圖2-7的晶振電路:圖2-7 晶振電路2.3.3 芯片擦除 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。 此外,AT89C51設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,C

30、PU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。 2.3.4 開鎖機構(gòu) 用戶通過LCD提示信息,用鍵盤輸入正確密碼,從而達到開鎖的目的。當用戶輸入的密碼正確并且是在按下確定鍵的話,單片機便輸出開門信號,送到開鎖驅(qū)動電路,然后驅(qū)動電磁鎖,達到開門的目的。電路驅(qū)動和開鎖兩級組成。由D4、三極管組成驅(qū)動電路,其中三極管可以選擇普通的小功率三極管如9014、9018都可以滿足要求;開鎖部分由繼電器實現(xiàn),繼電器的選用要視情況而定,但是吸合力要足夠且由一定的余量。 D1作為開鎖的提示,當輸入密碼正確

31、時,D1亮;本設計電子鎖控制電路主要由繼電器、三極管和發(fā)光二極管構(gòu)成。電子鎖控制電路圖如圖2-3-6所示: 圖2-8 電磁鎖控制電路圖繼電器線圈的一個引腳接電源正極,另一端接NPN三極管的集電極。三極管的基極通過一個電阻接單片機的引腳。當LOCKCON輸出高電平時,三極管導通,繼電器線圈得電,觸點閉合,相當于電子鎖閉鎖;當LOCKCON輸出低電平時,三極管截止,繼電器線圈失電,觸點釋放,發(fā)光二極管D1亮,相當于電子鎖開鎖。圖中普通二極管是繼電器線圈的續(xù)流二極管,為感應電動勢提供回路,以免損壞三極管。2.3.5 鍵盤設計 本設計就采用行列式鍵盤,同時也能減少鍵盤與單片機接口時所占用的I/O線的數(shù)

32、目,在按鍵比較多的時候,通常采用這樣方法。 每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個按鍵來連通,利用這種行列式矩陣結(jié)構(gòu)只需要N條行線和M條列線,即可組成具有N×M個按鍵的鍵盤。 在這種行列式矩陣鍵盤非鍵盤編碼的單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認有無按鍵按下的程序段。 (1)4×4矩陣鍵盤的工作原理 在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如下圖所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構(gòu)成4*4=16個按鍵,比之直接將端口線用于鍵

33、盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。(2)掃描原理 把每個鍵都分成水平和垂直的兩端接入,比如說掃描碼是從垂直的入,那就代表那一行所接收到的掃描碼是同一個bit,而讀入掃描碼的則是水平,掃描的動作是先輸入掃描碼,再去讀取輸入的值,經(jīng)過比對之后就可知道是哪個鍵被按下。 比如說掃描碼送入01111111,前面的0111是代表此時掃描第一行P1.0列,而后面的1111是讓讀取的4行接腳先設為VDD,若此時第一行的第三列按鍵被按下,那讀取的結(jié)果就會變成011111

34、01(注意1111變成1101),其中LSB的第三個bit會由1變成0,這是因為這個按鍵被按下之后,會被垂直的掃描碼電位short,而把讀取的LSB的bit電位拉到0,此即為掃描原理。 由於這種按鍵是機械式的開關(guān),當按鍵被按下時,鍵會震動一小段時間才穩(wěn)定,為了避免讓8051誤判為多次輸入同一按鍵。 我們必須在偵測到有按鍵被按下,就Delay一小段時間,使鍵盤以達穩(wěn)定狀態(tài),再去判讀所按下的鍵,就可以讓鍵盤的輸入穩(wěn)定。圖2-9為鍵盤整體模框圖: 圖2-9 鍵盤整體??驁D2.3.6 顯示電路設計 顯示設計采用字符型液晶屏設計,由單片機的P0口控制顯示,由P2.0P2.2控制LCD的控制端口。本系統(tǒng)設

35、計的顯示電路是為了給使用者以提示而設置的為達到界面友好的目的,顯示部分由液晶顯示LCD1602取代普通的數(shù)碼管完成。開鎖時,按下鍵盤上的開鎖按鍵后,利用鍵盤上的數(shù)字鍵09輸入密碼,每按下一個數(shù)字鍵后在顯示器上顯示一個*,輸入多少位就顯示多少個*。當密碼輸入完成時,按下確認鍵,如果輸入的密碼正確的話, LCD顯示“IUPUT RIGHT”,單片機其中P2.6引腳會輸出低電平,使三極管導通,電磁鐵吸合,繼電器開關(guān)跳轉(zhuǎn),電子密碼鎖被打開,如果密碼不正確,LCD顯示屏會顯示“IUPUT ERROR”,P2.6輸出的是高電平,電子密碼鎖不能打開。通過LCD顯示屏,可以清楚地判斷出密碼鎖所處的狀態(tài)。電路圖

36、如圖2-10所示:圖2-10 LCD液晶顯示電路圖2.4 電路設計總圖Proteus軟件是Labcenter Electronics公司的一款電路設計與仿真軟件,它包括ISIS、ARES等軟件模塊,ARES模塊主要用來完成PCB的設計,而ISIS模塊用來完成電路原理圖的布圖與仿真。Proteus的軟件仿真基于VSM技術(shù),它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大量的單片機芯片,比如MCS-51系列、PIC系列等等,以及單片機外圍電路,比如鍵盤、LED、LCD等等。通過Proteus軟件的使用我們能夠輕易地獲得一個功能齊全、實用方便的單片機實驗室。 本密碼鎖采用proteus進行電路圖

37、設計,經(jīng)過元件選型,用萬能實驗版進行硬件焊接,以實現(xiàn)硬件部分。圖2-11為proteus設計的密碼鎖電路圖整體電路圖: 圖2-11 設計整體電路圖第3章 系統(tǒng)軟件設計3.1 系統(tǒng)軟件設計總體流程因設計主要是作用匯編語言來開發(fā)的51單片機項目程序,所以首先必須有一個可以在Windows XP或Windows vista操作系統(tǒng)下執(zhí)行的匯編語言編譯器,本設計采用Keil編譯器進行編程,因為它可以支持一系列的51單片機。圖3-1為主程序流程圖: 圖3-1 主程序的流程圖3.2 主程序模塊主程序主要是完成系統(tǒng)初始化、設置中斷向量、檢查有無鍵按下、以及調(diào)用顯示等等。主程序部分如下所示: en bit p

38、2.2;將lcd的en管腳連接到單片機的p2.2口 rw bit p2.1;將lcd的rw管腳連接到單片機的p2.1口 rs bit p2.0;將lcd的rs管腳連接到單片機的p2.0口 display equ p0;將lcd的顯示端口連接到p0口上 speaker bit p3.7;蜂鳴器連接到p3.7口 led bit p2.7;開鎖信號連到p2.7口 open bit p2.6;開鎖電路的控制端連接到p2.6口 returnbit bit 20h.1; ORG 0000h;程序開始地址 LJMP start; ORG 000bh; LJMP intermit_t0; ORG 001bh;

39、 LJMP intermit_t1; ORG 0030h; start: MOV sp,#60h; lcall sy s_initialization;調(diào)用子程序sys_initialization3.3 鍵盤掃描及程序流程圖 鍵盤采用查詢的方式,放在主程序中,當沒有按鍵按下的時候,單片機循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應的子程序處理,處理結(jié)束再返回。(1)矩陣式鍵盤的按鍵識別方法:確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。行掃描法:行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下。a.判斷鍵盤中有無鍵按下 將全部行線Y0-Y3置低電平,

40、然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。b.判斷閉合鍵所在的位置 在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。(2)下面給出一個具體的例子:單片機的P1口用作鍵盤I/O口,鍵盤的列線接到P1口的低4位,鍵盤的行線接到P1口的高4位。列線P1.0-P1.3分別接有4個上拉電阻到

41、正電源+5V,并把列線P1.0-P1.3設置為輸入線,行線P1.4-P.17設置為輸出線。4根行線和4根列線形成16個相交點。a.檢測當前是否有鍵被按下。檢測的方法是P1.4-P1.7輸出全“0”,讀取P1.0-P1.3的狀態(tài),若P1.0-P1.3為全“1”,則無鍵閉合,否則有鍵閉合。b.去除鍵抖動。當檢測到有鍵按下后,延時一段時間再做下一步的檢測判斷。c.若有鍵被按下,應識別出是哪一個鍵閉合。方法是對鍵盤的行線進行掃描。P1.4-P1.7按下述4種組合依次輸出:P1.7 1 1 1 0P1.6 1 1 0 1P1.5 1 0 1 1P1.4 0 1 1 1在每組行輸出時讀取P1.0-P1.3

42、,若全為“1”,則表示為“0”這一行沒有鍵閉合,否則有鍵閉合。由此得到閉合鍵的行值和列值,然后可采用計算法或查表法將閉合鍵的行值和列值轉(zhuǎn)換成所定義的鍵值其程序流程如圖3-2所示:圖3-2 鍵盤掃描程序流程圖3.4 系統(tǒng)密碼及開鎖程序流程圖 由于設計是分模塊化進行,所以子程序是整體軟件系統(tǒng)的組成部分,子程序不但可以使程序化整為零,使其復雜簡單化,同時也方便閱讀,修改等,每個功能模塊都有它自己的子程序,在本設計中是用LCD顯示數(shù)據(jù),所以就要用到顯示子程序,設計中用的是矩陣鍵盤,所以就用到鍵盤掃描子程序,例如還有顯示初始化子程序、LCD忙檢測子程序、關(guān)閉狀態(tài)顯示子程序、開鎖狀態(tài)顯示子程序、密碼輸入及

43、修改狀態(tài)顯示子程序、密碼輸入錯誤后的提示子程序等。如下圖3-3為密碼修改子程序流程圖,圖3-4為開鎖程序流程圖:圖3-3 設置密碼子 圖3-4 輸入密碼開鎖流程圖第4章 程序調(diào)試 4.1 系統(tǒng)調(diào)試過程在硬件支持的環(huán)境下,用proteus設計好的電路,Keil編好的程序編譯成芯片可識別的C51文件,利用PC機寫進proteus程序圖芯片內(nèi)進行仿真測試,并對其出現(xiàn)的錯誤進行修改,由圖4-1圖4-3可看出最終調(diào)試成功。 圖4-1 keil編譯程序成功圖4-2 keil生成hex文件圖4-3 proteus調(diào)用keil的hex文件進行仿真4.2 系統(tǒng)調(diào)試結(jié)果調(diào)試結(jié)果共有三種狀態(tài),第一種狀態(tài)為上鎖狀態(tài),

44、此時若要開鎖則需輸入正確密碼。第二種為輸入密碼,若密碼正確,開鎖成功且此時綠燈亮。第三種狀態(tài)為輸入密碼錯誤,需重新輸入密碼。若輸入次數(shù)達到三次則報警啟動。調(diào)試結(jié)果如下圖所示: 圖4-4 初始上鎖狀態(tài)圖4-5 密碼正確綠燈亮圖4-6 密碼錯誤啟動報警 結(jié)論 本學期的課程設計總算完成了,回顧起此次單片機課程設計,至今我仍感慨頗多,的確,從選題到定稿,從理論到實踐,可以說得是苦多于甜,但是可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次畢業(yè)設計使我懂得了理論與實際相結(jié)合是很重要的。剛開始時我不知該從何著手,后來參考了一些文獻,我便開始設

45、計自己的課程設計。我用的是單片機芯片實現(xiàn)主控,LCD顯示,矩陣鍵盤等部件。我對這些知識掌握的不太好,所以在作設計時遇到一些問題,但通過不斷努力,終于把密碼鎖的思路和模型定了下來,去整理和修改程序。我們?nèi)チ藞D書館借一些參考書,上網(wǎng)找一些相關(guān)資料,并且在指導老師翁老師的指導下,我最終都逐個克服了遇到的難題。而且我用的是C語言來實現(xiàn)的控制,這次的應用鞏固了我的C語言知識??傊矣X得只有理論知識是遠遠不夠的,必須把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。! 參考文獻1楊西明,朱騏主編.單片機編程與應用入門M.北京:機械工業(yè)出版社

46、.2004(06)  2先鋒工作室編著.單片機程序設計實例J.北京:清華大學出版社.2003 3謝宜仁主編. 單片機實用技術(shù)問答J.北京:人民郵電出版社. 2003 4梁麗.電子密碼鎖的計算機仿真設計J.計算機仿真,2005 5房小翠,王金鳳編著.單片機實用系統(tǒng)設計技術(shù)M.北京:國防工業(yè)出版社.1999(06) 6王寬仁.可靠安全的智能密碼鎖J.電子技術(shù)應用. 2001 7李捷,陳典濤,陳建華,等.一種基于單片機的電子密碼鎖的設計 J.農(nóng)機化研究,2004 8董繼成. 能防止多次試探密碼的單片機密碼鎖J.國外電子元器件.2004 9趙益丹,徐曉林,周振峰編著.電子密碼鎖的系統(tǒng)原理、設

47、計程序及流程圖J.嘉興學院學報,2003 10張培仁.基于C語言編程 MCS- 51單片機原理與應用M.北京: 清華大學出版社,2002(12) 11李朝清. PC機及單片機數(shù)據(jù)通信技術(shù)M. 北京:北京航空航天大學出版社 , 1999(02) 12路而紅.專用集成電路設計與電子設計自動化M.北京:清華大學出版社,2004(08) 13劉文濤.MCS-51單片機培訓教程(C51)版M.北京:電子工業(yè)出版社,2005(8) 14王為青 程國鋼.單片機Keil Cx51 應用開發(fā)技術(shù)M.北京:人民郵電出版社,2007(03) 15范風強 蘭嬋麗.單片機語言C51應用實戰(zhàn)集錦M.電子工業(yè)出版社,200

48、3 16龔運新.單片機C語言開發(fā)技術(shù)J.北京:清華大學出版社,2006 17貝貝.單片機嵌入式應用的在線開發(fā)方法M.北京:清華大學出版社,2006(07) 18王宜懷.單片機原理及其嵌入式應用教程M.北京::北京希望電子出版社,2002(12)附錄 程序代碼en bit p2.2;rw bit p2.1;rs bit p2.0;display equ p0;speaker bit p3.7;led bit p2.7;open bit p2.6;returnbit bit 20h.1;ORG 0000h;LJMP start;ORG 000bh;LJMP intermit_t0;ORG 001b

49、h;LJMP intermit_t1;ORG 0030h;start:MOV sp,#60h;lcall sys_initialization;main0: lcall strat_display;main:clr speakerclr led;setb tr0;lcall key;cjne a,#'A',next1;LJMP set_password;next1: cjne a,#'B',next2;LJMP input_password;next2: ajmp main;sys_initialization:clr led;setb open;clr spe

50、aker;MOV 34h,#'1' MOV 35h,#'2'MOV 36h,#'3'MOV 37h,#'4'MOV 38h,#'5'MOV 39h,#'6' ;存放初始密碼MOV r7,#12;MOV r0,#40h;loop: MOV r0,#10h;inc r0;djnz r7,loop; ;密碼鍵值存放區(qū)清零完畢lcall delay0_1s;MOV p0,#03h;call write_instruction; ;液晶軟復位MOV p0,#01h;call write_instruction

51、;mov p0,#3fh;call write_instruction;mov p0,#0fh;call write_instruction;mov p0,#06h;call write_instruction; ;液晶初始化完畢mov r4,#10;mov tmod,#11h;mov th0,#0b0h;setb ea;setb et0; ;定時器t0,0.5s定時中斷初始化完畢ret; ;系統(tǒng)初始化完畢intermit_t0:push acc;push psw;mov th0,#3ch;mov tl0,#0b0h;djnz r4,return;clr led;mov r4,#10;retu

52、rn: pop psw;pop acc;reti;intermit_t1:push acc;push psw;mov th1,#9eh;mov tl1,#58h;djnz r4,return_t1;clr led;cpl speaker;mov r4,#10;return_t1:pop psw;pop acc;reti; 鍵盤掃描key: call ks;jnz k1;jmp key;k1:call delay;call ks;jnz k2;jmp key;k2:clr tr0;clr led;mov r2,#0feh;mov r6,#00h;k3:mov a,r2;mov p1,a;mov

53、a,p1;jb acc.4,l1;mov a,#0;LJMP lk;l1:jb acc.5,l2;mov a,#4;ljmp lk;l2: jb acc.6,l3;mov a,#8;ljmp lk;l3:jb acc.7,next_key;mov a,#12;lk:add a,r6;mov r6,a;k4:call ks;jnz k4;mov a,r6;mov dptr,#table0;movc a,a+dptr;mov 50h,a; ;查表取值存入50H,保護鍵值ret;next_key:inc r6;mov a,r2;jnb acc.7,key;rl a;mov r2,a;jmp k3;k

54、s:mov p1,#0f0h;mov a,p1;xrl a,#0f0h;ret; 設置密碼程序set_password:call clear_display;mov dptr,#table4;call input_hint;mov r0,#40h;call password;jbc returnbit,set_password; ;先輸入原密碼完畢mov r5,#6;mov r0,#40h;mov r1,#34h;input_compere:mov a,r0;xrl a,r1;jnz input_error;inc r0;inc r1;nop;nop;djnz r5,input_compere; ;驗證輸入密碼完畢jmp set_passwo

溫馨提示

  • 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

提交評論