版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、編號200903152009031529 南京航空航天大學(xué)金城學(xué)院畢業(yè)設(shè)計題 目基于單片機(jī)的密碼鎖的設(shè)計學(xué)生姓名學(xué) 號2009031529系 部自動化系專 業(yè)電氣工程與自動化班 級20090315指導(dǎo)教師二一三年六月南京航空航天大學(xué)金城學(xué)院本科畢業(yè)設(shè)計(論文)誠信承諾書本人鄭重聲明:所呈交的畢業(yè)設(shè)計(論文)(題目: 基于單片機(jī)密碼鎖的設(shè)計)是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的成果。盡本人所知,除了畢業(yè)設(shè)計(論文)中特別加以標(biāo)注引用的內(nèi)容外,本畢業(yè)設(shè)計(論文)不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。作者簽名: 2013年5月21日 (學(xué)號) 2009031529基于單片機(jī)的密碼鎖的
2、設(shè)計摘 要隨著人們的生活水平的不斷提高,如何保護(hù)好家庭財產(chǎn)、個人資料文件等已成為一個尤為突出的問題。由于傳統(tǒng)的機(jī)械鎖結(jié)構(gòu)較為簡單,安全系數(shù)低,被撬的事件屢見不鮮,而電子密碼鎖由于保密性高,使用靈活方便,越來越受到人們的歡迎。本設(shè)計采用at89c52單片機(jī)作為電子密碼鎖的控制核心,4*4的矩陣輸入電路實(shí)現(xiàn)密碼的輸入,顯示電路采用液晶顯示屏。本課題設(shè)計了密碼存儲電路,可以存儲密碼,防止斷電時密碼的丟失,實(shí)現(xiàn)電路的掉電保護(hù)。同時,本課題還設(shè)計了報警電路,當(dāng)密碼多次輸入錯誤時,會啟動蜂鳴器實(shí)現(xiàn)報警并鎖死鍵盤。關(guān)鍵詞:單片機(jī),密碼鎖,密碼存儲design of code lock based on mc
3、uabstractwith the continuous improvement of peoples living standards, how to protect the family property and personal data files has become a particularly prominent problem. due to the traditional mechanical lock structure is relatively simple, low safety factor, picklock becomes a common occurrence
4、.however, electronic locks with high security, flexible and convenient to use, more and more people are welcome.this design uses at89c52 microcontroller as the core of the control electronic locks. 4 * 4 matrix input circuit to achieve the password input. display circuit uses the lcd monitor. design
5、 of this project password storage circuit, you can store the password; the password will not be lost when power is down, to achieve power-down protection function. at the same time, the project also designed the alarm circuit, when the password is entered incorrectly multiple times, it will start th
6、e buzzer for alarm and lock the keyboard.key words: microcontroller; code lock; password storage目 錄摘 要iabstractii第一章 緒論11.1 課題背景11.1.1 單片機(jī)的發(fā)展11.1.2 單片機(jī)的特點(diǎn)21.1.3 電子密碼鎖的發(fā)展現(xiàn)狀31.2 本次設(shè)計所要實(shí)現(xiàn)的目標(biāo)3第二章 系統(tǒng)主體設(shè)計和器件的選型52.1 系統(tǒng)設(shè)計方案的論證52.1.1 主控部分的選擇52.1.2 密碼輸入方式的選擇52.2 系統(tǒng)原理設(shè)計圖62.3 器件選型72.3.1 主控芯片的選型72.3.2 顯示器件的選擇8第三
7、章 系統(tǒng)的硬件設(shè)計103.1 單片機(jī)最小系統(tǒng)設(shè)計103.1.1 電源電路103.1.2 時鐘電路103.1.3 復(fù)位電路113.2 鍵盤電路113.3 顯示電路123.4 密碼存儲電路133.5 報警電路143.6 開鎖電路14第四章 系統(tǒng)的軟件設(shè)計164.1 系統(tǒng)的總流程圖164.2 密碼的設(shè)定174.3 密碼修改184.4 解鎖214.5 調(diào)試244.5.1 程序調(diào)試用到的軟件及工具244.5.2 keil c51簡介244.5.3 調(diào)試過程25第五章 總結(jié)和展望265.1 總結(jié)265.2 展望26參考文獻(xiàn)27致謝28附件29第一章 緒 論1.1 課題背景隨著人們的生活水平的提高、安全意識
8、的增強(qiáng),對安全的要求也不斷提高。要提高個人財產(chǎn)的安全性,鎖是必不可少的。因而鎖的安全系數(shù)的高低,直接決定了財產(chǎn)安全性的高低。對電子密碼鎖,既要它操作簡單方便一學(xué)即會,又要它有很可靠的安全性能,能夠?yàn)槿藗兊呢敭a(chǎn)安全提供一個可靠的保證。1.1.1 單片機(jī)的發(fā)展單片機(jī)就是在一片半導(dǎo)體硅片上集成了中央處理器單片機(jī)就是在一片半導(dǎo)體硅片上集成了中央處理器(cpu)、存儲器(ram、rom)、并行i/o口、定時器/計數(shù)器、中斷系統(tǒng)、系統(tǒng)時鐘電路及系統(tǒng)總線的微型計算機(jī)。單片機(jī)根據(jù)其基本操作處理的二進(jìn)制位數(shù)主要分為:4位單片機(jī)、8位單片機(jī)、16位單片機(jī)和32位單片機(jī)。單片機(jī)的發(fā)展大致可以分為4個階段1。第一階段
9、(1974年-1976年):單片機(jī)初級階段。因制作工藝限制,單片機(jī)采用雙片形式而且功能比較簡單。1974年12月,仙童公司推出了8位的f8單片機(jī),實(shí)際上只包括了8位cpu、64b ram和2個并行口。第二階段(1976年-1978年):低性能單片機(jī)階段。1976年,intel公司推出的mcs-48單片機(jī)(8位單片機(jī))極大地促進(jìn)了單片機(jī)的變革和發(fā)展;1977年,gi公司推出了pic1650,但這個階段的單片機(jī)仍然處于低性能階段。第三階段(1978年-1983年):高性能單片機(jī)階段。1978年,zilog公司推出了z8單片機(jī);1980年,intel公司在mcs-48單片機(jī)的基礎(chǔ)上推出了mcs-51
10、系列,mortorola公司推出了6801單片機(jī),這些產(chǎn)品使單片機(jī)的性能及應(yīng)用躍上了一個新的臺階。此后,各公司的8位單片機(jī)迅速發(fā)展起來。這個階段推出的單片機(jī)普遍帶有串行i/o口、多級中斷系統(tǒng)、16位定時器/計數(shù)器,片內(nèi)rom、ram容量加大,且尋址范圍可達(dá)64kb,有的片內(nèi)還帶有a/d轉(zhuǎn)換器。由于這類單片機(jī)的性能價格高,所以被廣泛應(yīng)用,是目前應(yīng)用數(shù)量最多的單片機(jī)。第四階段(1983年-現(xiàn)在):8位單片機(jī)鞏固、發(fā)展及16位單片機(jī)、32位單片機(jī)推出階段。16位單片機(jī)的典型產(chǎn)品為intel公司生產(chǎn)的mcs-96系列單片機(jī)。而32位單片機(jī)除了具有更高的集成度外,其數(shù)據(jù)處理速度比16位單片機(jī)提高許多,性
11、能比8位、16位單片機(jī)更加優(yōu)越。20世紀(jì)90年代是單片機(jī)制造業(yè)大發(fā)展的時期,這個時期的mortorola、intel、atmel、德州儀器(it)、三菱、日立、philips、lg等公司也開發(fā)了一大批性能優(yōu)越的單片機(jī),極大的推動了單片機(jī)的應(yīng)用。近年來,又有不少新型的高集成度單片機(jī)產(chǎn)品涌現(xiàn)出來,出現(xiàn)了單片機(jī)產(chǎn)品豐富多彩的局面。目前,除了8位單片機(jī)得到廣泛應(yīng)用之外,16位單片機(jī)、32位單片機(jī)也得到廣大用戶的青睞。1.1.2 單片機(jī)的特點(diǎn)單片機(jī)的出現(xiàn)是集成電路技術(shù)與微型計算機(jī)技術(shù)高速發(fā)展的產(chǎn)物。單片機(jī)體積小、價格低、應(yīng)用方便、因此,單片機(jī)的發(fā)展和普及給自動化等領(lǐng)域帶來了一場重大革命和技術(shù)進(jìn)步。由于單
12、片機(jī)本身就是一個微型計算機(jī),因此只要在單片機(jī)的外部適當(dāng)增加一些必要的外圍擴(kuò)展電路,就可以靈活地構(gòu)成各種應(yīng)用系統(tǒng)。以單片機(jī)為核心構(gòu)成的應(yīng)用系統(tǒng)具有以下優(yōu)點(diǎn)2:功能齊全,應(yīng)用可靠,抗干擾能力強(qiáng)。簡單方便,易于普及。由于單片機(jī)技術(shù)是一門較為容易掌握的普及技術(shù),廣大工程技術(shù)人員通過學(xué)習(xí)就可以很快掌握其應(yīng)用設(shè)計技術(shù)。發(fā)展迅速,前景廣闊。在短短的幾十年時間里,單片機(jī)就經(jīng)過了4位機(jī)、8位機(jī)、16位機(jī)、32位機(jī)等幾大發(fā)展階段,尤其是形式多樣、集成度高、功能日臻完善的單片機(jī)不斷問世,更使得單片機(jī)在工業(yè)控制及工業(yè)自動化領(lǐng)域獲得長足的發(fā)展和大量的應(yīng)用。近幾年,單片機(jī)的內(nèi)部結(jié)構(gòu)愈加完美,配套的片內(nèi)外圍功能部件越來越完
13、善,為應(yīng)用系統(tǒng)向更高層次和更大規(guī)模的發(fā)展奠定了堅實(shí)的基礎(chǔ)。嵌入容易,用途廣泛。單片機(jī)的體積小、性能價格比高、應(yīng)用靈活性強(qiáng)等特點(diǎn)在嵌入式微控制系統(tǒng)中具有十分重要的地位。在單片機(jī)出現(xiàn)以前,人們要制作一套測控系統(tǒng),往往采用大量的模擬電路、數(shù)字電路、分立元件,這樣,不僅系統(tǒng)體積龐大,而且因?yàn)榫€路復(fù)雜,連接點(diǎn)太多,極易出現(xiàn)故障。單片機(jī)出現(xiàn)以后,電路的組成和控制方式都發(fā)生了很大變化。在單片機(jī)應(yīng)用系統(tǒng)中,這些測控功能的絕大部分都已經(jīng)由單片機(jī)的軟件程序?qū)崿F(xiàn),其他電子線路則由片內(nèi)的外圍功能部件來替代。1.1.3 電子密碼鎖的發(fā)展現(xiàn)狀隨著社會科技的進(jìn)步,鎖已發(fā)展到了密碼鎖、磁性鎖、電子鎖、激光鎖、聲控鎖等等。在傳
14、統(tǒng)鑰匙的基礎(chǔ)上,加了一組或多組密碼,不同聲音,不同磁場,不同聲波,不同光束光波,不同圖像來控制鎖的開啟,從而大大提高了鎖的安全性。當(dāng)今智能電子密碼鎖的發(fā)展已經(jīng)到了非常高的境界,由于電子元件特別是單片機(jī)應(yīng)用在這幾年得到空前發(fā)展,無論功能性,穩(wěn)定性都比較全面,在保密方面已做到人眼識別,指紋識別,人聲識別基本上電影上有的現(xiàn)實(shí)也有。在國外發(fā)展比較早,所以應(yīng)用也比較廣泛,主要在家庭裝較貴重地方,銀行,保險柜等應(yīng)用較多,在國內(nèi)這方面發(fā)展也較快,不管自己開發(fā)或是引進(jìn)都有,在重要地方應(yīng)用也較多,由于價錢比普通彈子鎖較貴,早幾年應(yīng)用較少,現(xiàn)在越來越普及到平常化,未來的發(fā)展也會越來越被大眾采用,由于它的功能、安全
15、是彈子鎖無法相比的,發(fā)展前境是非常大的3。1.2 本次設(shè)計所要實(shí)現(xiàn)的目標(biāo)本次設(shè)計使用atmel公司的at89c52 實(shí)現(xiàn)基于單片機(jī)的電子密碼鎖的設(shè)計,其主要具有如下功能:(1)密碼通過鍵盤輸入,若密碼正確,則將鎖打開。(2)報警、鎖定鍵盤功能。密碼輸入錯誤數(shù)碼顯示器會出現(xiàn)錯誤提示,若密碼輸入錯誤次數(shù)超過3次,蜂鳴器報警并且鎖定鍵盤。電子密碼鎖的設(shè)計主要由三部分組成:44矩陣鍵盤接口電路、密碼鎖的控制電路、輸出lcd液晶顯示電路。另外系統(tǒng)還有l(wèi)ed 提示燈,報警蜂鳴器等。密碼鎖設(shè)計的關(guān)鍵問題是實(shí)現(xiàn)密碼的輸入、取消、更改、開鎖等功能:(1)密碼輸入功能:輸入密碼時,液晶屏顯示“*”。(2)取消當(dāng)前
16、操作:當(dāng)按下取消鍵時,取消現(xiàn)在正在進(jìn)行的操作,清除當(dāng)前輸入內(nèi)容,當(dāng)密碼鎖打開時,密碼鎖返回鎖定狀態(tài)。(3)開鎖功能:當(dāng)按下開鎖鍵,系統(tǒng)將輸入與密碼進(jìn)行檢查核對,如果正確鎖打開,否則不打開。主要的設(shè)計實(shí)施過程:首先,選用atmel公司的單片機(jī)at89c52,以及選購其他電子元器件。第二步,設(shè)計硬件電路原理圖,使用萬用板焊接電路。第三步,使用keil uvision4 軟件編寫單片機(jī)的c語言程序、仿真、軟件調(diào)試。第四部,使用proteus 軟件進(jìn)行模擬軟、硬件調(diào)試。最后,聯(lián)合軟、硬件調(diào)試電路板,完成本次畢業(yè)設(shè)計。第二章 系統(tǒng)主體設(shè)計和器件的選型2.1 系統(tǒng)設(shè)計方案的論證2.1.1 主控部分的選擇方
17、案一:采用數(shù)字電路控制用以74ls112雙jk觸發(fā)器4構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,將密碼保存在jk觸發(fā)器中,將輸入數(shù)據(jù)與密碼相比較,判斷結(jié)果是否符合。采用數(shù)字電路設(shè)計的方案好處就是設(shè)計簡單,但控制的準(zhǔn)確性和靈活性差,故不采用。方案二:采用以單片機(jī)為核心的控制方案選用單片機(jī)作為系統(tǒng)的核心部件,實(shí)現(xiàn)控制與處理的功能。單片機(jī)具有穩(wěn)定性高、速度快、編程容易等優(yōu)點(diǎn)。利用單片機(jī)內(nèi)部的隨機(jī)存儲器(ram)和只讀存儲器(rom)及其引腳資源,外接液晶顯示(lcd),鍵盤輸入等實(shí)現(xiàn)數(shù)據(jù)的處理傳輸和顯示功能,基本上能實(shí)現(xiàn)設(shè)計指標(biāo),因此綜合考慮,本系統(tǒng)采用方案二。2.1.2 密碼輸入方式的選擇方案一:指
18、紋輸入識別指紋識別技術(shù)5主要涉及四個功能:讀取指紋圖像、提取特征、保存數(shù)據(jù)和比對。通過指紋讀取設(shè)備讀取到人體指紋的圖像,然后要對原始圖像進(jìn)行初步的處理,使之更清晰,再通過指紋辨識軟件建立指紋的特征數(shù)據(jù)。軟件從指紋上找到被稱為節(jié)點(diǎn)(minutiae)的數(shù)據(jù)點(diǎn),即指紋紋路的分叉、終止或打圈處的坐標(biāo)位置,這些點(diǎn)同時具有七種以上的唯一性特征。通常手指上平均具有70個節(jié)點(diǎn),所以這種方法會產(chǎn)生大約490個數(shù)據(jù)。這些數(shù)據(jù),通常稱為模板。通過計算機(jī)模糊比較的方法,把兩個指紋的模板進(jìn)行比較,計算出它們的相似程度,最終得到兩個指紋的匹配結(jié)果,從而判斷輸入結(jié)果的正確與否。考慮到本方案軟硬件太過復(fù)雜,而且成本也高,故
19、不采用。方案二:矩陣鍵盤輸入識別由各按鍵組成的矩陣鍵盤每條行線和列線都對應(yīng)一條i/o口線,鍵位設(shè)在行線和列線的交叉點(diǎn),當(dāng)一個鍵按下就會有某一條行線與某一條列線接觸,只要確定接觸的是哪兩條線,即哪兩個i/o口線,就可以確定哪一個鍵被觸動。行線設(shè)計成上拉口線,初始時被置高電位,列線懸空,初始置低。通過不斷讀行線口線,或者中斷方式觸發(fā)鍵位掃描。當(dāng)發(fā)現(xiàn)有鍵按下,將列線逐一置低,其他列線置高,讀行線口線。當(dāng)某條列線置低時,某條行線也被拉低,則確單易行,定這兩條線的交點(diǎn)處的按鈕被按下。每個按鍵都可通過程序賦予功能,從而完成密碼識別。本方案簡因此采用此方法。2.2 系統(tǒng)原理設(shè)計圖圖2.1 總體設(shè)計圖本設(shè)計主
20、要由單片機(jī)、矩陣鍵盤、液晶顯示器和密碼存儲等部分組成,如圖2.1。其中矩陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實(shí)現(xiàn)。由用戶通過連接單片機(jī)的矩陣鍵盤輸入密碼,后經(jīng)過單片機(jī)對用戶輸入的密碼與自己保存的密碼進(jìn)行對比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路或者報警電路控制開鎖還是報警,實(shí)際使用時只要將單片機(jī)的負(fù)載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可。2.3 器件選型2.3.1 主控芯片的選型系統(tǒng)主控芯片采用atmel公司生產(chǎn)的at89c52單片機(jī)6,其主要特點(diǎn)如下:at89c52是美國atmel公司生產(chǎn)的低電壓,高性能cmos 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的只
21、讀程序存儲器(perom)和256bytes的隨機(jī)存取數(shù)據(jù)存儲器(ram)。器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),與標(biāo)準(zhǔn)mcs-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(cpu)和flash存儲單元,功能強(qiáng)大at89c52單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場合。芯片引腳圖如圖2.2。圖2.2 at89c52單片機(jī)引腳圖主要性能參數(shù):與mcs51產(chǎn)品指令和引完全兼容、8k字節(jié)可重擦寫flash閃速存儲器1000次擦寫周期、全靜態(tài)操作:0hz24mhz、三級加密程序存儲器、256*8字節(jié)內(nèi)部ram、32個可編程i/o口線、3個16位定時/計數(shù)器、8個中斷源、可編程
22、串行uart通道、低功耗空閑和掉電模式。at89c52是一種低功耗,高性能cmos8位單片機(jī),有8k字節(jié)的flash可編程和可擦除只讀程序存儲器(perom)。該設(shè)備的制造采用atmel的高密度非易失性內(nèi)存技術(shù)和行業(yè)標(biāo)準(zhǔn)80c51兼容和80c52完全指令集和引出線。片上閃存允許程序存儲器進(jìn)行在系統(tǒng)編程或由傳統(tǒng)的非易失性存儲器編程相結(jié)合的靈活的8位cpu與flash集成在一個芯片,atmel公司的at89c52是一個功能強(qiáng)大的微型計算機(jī)為許多嵌入式控制應(yīng)用提供了高度靈活和成本效益的解決方案。at89c52提供以下標(biāo)準(zhǔn)功能:8k字節(jié)的閃存,256字節(jié)的ram,32個i/o口線,3個16位定時器/計
23、數(shù)器,一個6向量2級中斷結(jié)構(gòu),一個全雙工的串行口,片內(nèi)振蕩器和時鐘電路。同時,at89c52可下降到0hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e模式下,cpu停止工作,允許ram,定時器/計數(shù)器,串口和中斷系統(tǒng)繼續(xù)工作。掉電模式保存ram的內(nèi)容,但凍結(jié)振蕩器,禁用所有其他芯片功能,直到下一個硬件復(fù)位。2.3.2 顯示器件的選擇本次設(shè)計的顯示模塊采用lcd1602液晶顯示屏7,用于顯示密碼鎖的各個狀態(tài)信息,比如密碼的輸入、密碼的修改狀態(tài)等?,F(xiàn)在的字符型液晶模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計中最為常用的信息顯示器了。1602液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),在袖
24、珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來越廣泛的應(yīng)用。lcd1602的芯片引腳信息見表2.1,主要參數(shù)見表2.2。表2.1 lcd1602型lcd的接口信號說明編號符號引腳說明編號符號引腳說明1vss電源地9d2data i/o2vdd電源正極10d3data i/o3v0液晶顯示偏壓信號11d4data i/o4rs數(shù)據(jù)/命令選擇端(h/l)12d5data i/o5r/w讀寫選擇端(h/l)13d6data i/o6e使能信號14d7data i/o7d0data i/o15bla背光源正極8d1data i/o16blk背光源負(fù)極表2.2 lcd1602型lcd的主要技術(shù)參數(shù)顯示容量16*2個
25、字符芯片工作電壓4.55.5 v工作電流2.0ma(5.0v)模塊最佳工作電壓5.0v字符尺寸2.95*4.35(wxh)mm第三章 系統(tǒng)的硬件設(shè)計3.1 單片機(jī)最小系統(tǒng)設(shè)計單片機(jī)最小系統(tǒng)8,或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。對51系列單片機(jī)來說,單片機(jī)+晶振電路+復(fù)位電路,便組成了一個最小系統(tǒng).但是一般在設(shè)計中,經(jīng)常會把按鍵輸入、顯示輸出等加到上述電路中,成為應(yīng)用系統(tǒng)。3.1.1 電源電路密碼鎖的主控部分電源需要用3.55.5v直流電源供電。由于考慮本次試驗(yàn)的實(shí)用性、方便性,所以本次設(shè)計采用外接電池盒的方法。將三節(jié)1.5v的電池串連接入電路,為單片機(jī)、蜂鳴器等
26、器件供電。3.1.2 時鐘電路圖3.1 時鐘電路單片機(jī)內(nèi)部具有一個高增益反相放大器,用于構(gòu)成振蕩器。通常在引腳xtal1和xtal2跨接石英晶體和兩個補(bǔ)償電容構(gòu)成自激振蕩器,系統(tǒng)時鐘電路結(jié)構(gòu)如圖3.1所示,可以根據(jù)情況選擇6mhz、8mhz或12mhz等頻率的石英晶體,補(bǔ)償電容通常選擇20-30pf左右的瓷片電容。3.1.3 復(fù)位電路3.2 復(fù)位電路單片機(jī)小系統(tǒng)采用上電自動復(fù)位和手動按鍵復(fù)位兩種方式實(shí)現(xiàn)系統(tǒng)的復(fù)位操作。上電復(fù)位要求接通電源后,自動實(shí)現(xiàn)復(fù)位操作。手動復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,用按鈕開關(guān)操作使單片機(jī)復(fù)位。上電自動復(fù)位通過電容c3充電來實(shí)現(xiàn)。手動按鍵復(fù)位是通過按鍵
27、將電阻r1與vcc接通來實(shí)現(xiàn)。電路圖如圖3.2所示。3.2 鍵盤電路由于本設(shè)計所用到的按鍵數(shù)量較多而不適合用獨(dú)立按鍵式鍵盤。采用的是矩陣式按鍵鍵盤910,它由行線和列線組成,也稱行列式鍵盤,按鍵位于行列的交叉點(diǎn)上,密碼鎖的密碼由鍵盤輸入完成,與獨(dú)立式按鍵鍵盤相比,要節(jié)省很多i/o口。本設(shè)計中使用的這個4*4鍵盤不但能完成密碼的輸入還能作特別功能鍵使用,比如清空顯示功能等。鍵盤的每個按鍵功能在程序設(shè)計中設(shè)置。其接法如圖3.3所示。圖3.3 鍵盤電路原理圖3.3 顯示電路lcd1602是16字符*2行的字符型lcd顯示器,它由32個字符點(diǎn)陣塊組成,每個字符點(diǎn)陣塊由57或510個點(diǎn)陣組成,可以顯示a
28、scii碼表中的所有可視的字符。它內(nèi)置了字符產(chǎn)生器rom(cgrom)、字符產(chǎn)生器ram(cgram)和顯示數(shù)據(jù)ram(ddram)。cgrom中內(nèi)置了192個常用字符的字模,cgram包含8個字節(jié)的ram,可存放用戶自定義的字符,ddram就是用來寄存待顯示的字符代碼10。顯示電路原理圖如圖3.4。圖3.4 顯示電路原理圖3.4 密碼存儲電路圖3.5 密碼存儲電路原理圖at24c02的串行時鐘輸入斷端(slc)接單片機(jī)p3.4(14)管腳,串行數(shù)據(jù)輸入輸出端(sda)接單片機(jī)p3.5(15)管腳,其原理圖如圖3.5。時鐘及數(shù)據(jù)傳輸:sda引腳通常被外圍器件拉高。sda引腳的數(shù)據(jù)應(yīng)在scl為低
29、時變化;當(dāng)數(shù)據(jù)在scl為高時變化,將視為下文所述的一個起始或停止命令。起始命令:當(dāng)scl為高,sda由高到低的變化被視為起始命令,必須以起始命令作為任何一次讀/寫操作命令的開始。停止命令:當(dāng)scl為高,sda由低到高的變化被視為停止命令,在一個讀操作后,停止命令會使eeprom進(jìn)入等待態(tài)低功耗模式。應(yīng)答:所有的地址和數(shù)據(jù)字節(jié)都是以8位為一組串行輸入和輸出的。每收到一組8位的數(shù)據(jù)后,eeprom都會在第9個時鐘周期時返回應(yīng)答信號。每當(dāng)主控器件接收到一組8位的數(shù)據(jù)后,應(yīng)當(dāng)在第9個時鐘周期向eeprom返回一個應(yīng)答信號。收到該應(yīng)答信號后,eeprom會繼續(xù)輸出下一組8位的數(shù)據(jù)。若此時沒有得到主控器件
30、的應(yīng)答信號,eeprom會停止讀出數(shù)據(jù),直到主控器件返回一個停止命令來結(jié)束讀周期。等待模式:24c01/02/04/08/1624c01/02/04/08/16特有一個低功耗的等待模式??梢酝ㄟ^以下方法進(jìn)入該模式:(a)上電,(b)收到停止位并且結(jié)束所有的內(nèi)部操作后。器件復(fù)位:在協(xié)議中斷、下電或系統(tǒng)復(fù)位后,器件可通過以下步驟復(fù)位:(1)連續(xù)輸入9個時鐘,(2)在每個時鐘周期中確保當(dāng)scl為高時sda也為高,(3)建立一個起始條件。3.5 報警電路圖3.6 報警電路原理圖報警電路采用三極管放大電路接入蜂鳴器,本次設(shè)計中,所有的提示音,比如按鍵音、正確操作提示音、錯誤操作提示音等都通過此電路來實(shí)現(xiàn)
31、。當(dāng)輸入密碼正確的時候,蜂鳴器發(fā)出兩聲提示音,當(dāng)輸入密碼錯誤時,蜂鳴器發(fā)出三聲提示音。當(dāng)密碼累計輸入錯誤三次,鍵盤鎖死,蜂鳴器持續(xù)會一直發(fā)出聲響。電路原理圖如圖3.6所示。3.6 開鎖電路圖3.7 開鎖電路原理圖本次設(shè)計中,采用繼電器來時實(shí)現(xiàn)開鎖功能,用發(fā)光二極管d2來觀察鎖的開光狀態(tài)。原理圖如圖3.7。采用的繼電器型號:hk4100f-dc5v-shg。驅(qū)動原理:1、當(dāng)at89c52單片機(jī)的p2.0引腳輸出低電平時,三極管q2飽和導(dǎo)通,+5v電源加到繼電器線圈兩端,繼電器吸合,同時狀態(tài)指示的發(fā)光二極管也點(diǎn)亮,繼電器的常開觸點(diǎn)閉合,相當(dāng)于開關(guān)閉合,即密碼鎖處于鎖住狀態(tài)。2、當(dāng)at89c52單片
32、機(jī)的p2.0引腳輸出高電平時,三極管q2截止,繼電器線圈兩端沒有電位差,繼電器銜鐵釋放,同時狀態(tài)指示的發(fā)光二極管也熄滅,繼電器的常開觸點(diǎn)釋放,相當(dāng)于開關(guān)斷開,即密碼鎖打開。第四章 系統(tǒng)的軟件設(shè)計4.1 系統(tǒng)的總流程圖圖4.1 系統(tǒng)總體流程設(shè)計本次設(shè)計系統(tǒng)采用c語言進(jìn)行編程1112,程序初始設(shè)定密碼為“123456”,當(dāng)進(jìn)入系統(tǒng)后,按提示輸入密碼,若密碼正確,則鎖被打開,錯誤則發(fā)出警報;當(dāng)密碼正確,且鎖處于打開的狀態(tài)下,再次輸入密碼,若正確則可按提示修改密碼,重新設(shè)定密碼需要輸入兩次,防止誤操作。系統(tǒng)的總流程圖如圖4.1。4.2 密碼的設(shè)定程序初始密碼設(shè)定為123456,通過at24c02芯片來
33、存儲密碼,實(shí)現(xiàn)掉電保護(hù)。其初始化程序如下:#include #include#define lcm_data p0#define uchar unsigned char #define uint unsigned int#define w 6sbit lcd1602_rs=p27;sbit lcd1602_rw=p26;sbit lcd1602_en=p25;sbit scl=p34;/24c02串行時鐘sbit sda=p35;/24c02串行數(shù)據(jù)sbit alam = p21;/報警sbit key = p20;/開鎖sbit open_led=p22;/開鎖指示燈bit operatio
34、n=0;/操作標(biāo)志位bit pass=0;/密碼正確標(biāo)志bit reinputen=0;/重置輸入充許標(biāo)志bit s3_keydown=0;/3秒按鍵標(biāo)志位bit key_disable=0;/鎖定鍵盤標(biāo)志unsigned char countt0,second;/t0中斷計數(shù)器,秒計數(shù)器void delay5ms(void);unsigned char code a=0xfe,0xfd,0xfb,0xf7; /控盤掃描控制表unsigned char code start_line= password: ;unsigned char code name = coded management;
35、/顯示名稱unsigned char code correct = correct ; /輸入正確unsigned char code error = error ; /輸入錯誤unsigned char code codepass= pass ; unsigned char code lockopen= true ;/openunsigned char code setnew = setnewwordenable;unsigned char code input = input: ;/inputunsigned char code resetok = resetpasswordok ;uns
36、igned char code initword= init password.;unsigned char code er_try= error,try again!;unsigned char code again= input again ;unsigned char inputdata6;/輸入密碼暫存區(qū)unsigned char temppassword6;unsigned char n=0;/密碼輸入位數(shù)記數(shù)unsigned char errorcont;/錯誤次數(shù)計數(shù)unsigned char correctcont;/正確輸入計數(shù)unsigned char reinputcon
37、t; /重新輸入計數(shù)unsigned char code initpassword6=1,2,3,4,5,6;4.3 密碼修改圖4.2 密碼修改流程圖密碼修改只有在鎖已處于打開的狀態(tài)才能進(jìn)行,此時再次輸入密碼,正確則可進(jìn)入密碼修改程序,修改新密碼需要重復(fù)輸入新密碼,防止誤操作。密碼修改流程如圖4.2。密碼修改的部分程序如下:void resetpassword(void)unsigned char i;unsigned char j;if(pass=0)pass=0;displaychar();threealam();else if(reinputen=1)if(n=6)reinputcont
38、+;if(reinputcont=2)for(i=0;i6;)if(temppasswordi=inputdatai) /將兩次輸入的新密碼作對比i+;else/displaylistchar(0,1,error);write_1602com(er);for(j=0;j16;j+)write_1602dat(errorj);threealam();/錯誤提示pass=0;reinputen=0;/關(guān)閉重置功能,reinputcont=0;displaychar();break; if(i=6)/displaylistchar(0,1,resetok);write_1602com(er);for
39、(j=0;j16;j+)write_1602dat(resetokj);twoalam();/操作成功提示 wrtorom(temppassword,0,6);/將新密碼寫入24c02存儲reinputen=0;reinputcont=0;correctcont=0;elseonealam();/displaylistchar(0, 1, again); /顯示再次輸入一次write_1602com(er);for(j=0;j16;j+)write_1602dat(againj);for(i=0;i6;i+)temppasswordi=inputdatai;/將第一次輸入的數(shù)據(jù)暫存n=0;/輸
40、入數(shù)據(jù)位數(shù)計數(shù)器清零 4.4 解鎖圖4.3 解鎖流程密碼的輸入通過矩陣鍵盤電路實(shí)現(xiàn),系統(tǒng)解鎖流程如圖4.3,設(shè)有按鍵檢測和返回按鍵值,其部分程序如下:/=按鍵檢測并返回按鍵值=unsigned char keynum(void) unsigned char row,col,i; p1=0xf0; if(p1&0xf0)!=0xf0) delay5ms(); delay5ms(); if(p1&0xf0)!=0xf0) row=p10xf0; /確定行線i=0;p1=ai; /精確定位while(i4) if(p1&0xf0)!=0xf0) col=(p1&0xff); /確定列線 break;
41、 /已定位后提前退出 else i+; p1=ai; else return 0;while(p1&0xf0)!=0xf0);return (row|col); /行線與列線組合后返回 else return 0; /無鍵按下時返回0鍵盤中設(shè)有確認(rèn)鍵“#”,當(dāng)輸入密碼完成時,按下確認(rèn)鍵,并通過相應(yīng)標(biāo)志位執(zhí)行相應(yīng)功能。其相應(yīng)程序如下:void ensure(void)unsigned char i,j;rdfromrom(currentpassword,0,6); /從24c02里讀出存儲密碼 if(n=6) if(reinputen=0)/重置密碼功能未開啟for(i=0;i6;) if(cu
42、rrentpasswordi=inputdatai)i+;else errorcont+;if(errorcont=3)/錯誤輸入計數(shù)達(dá)三次時,報警并鎖定鍵盤write_1602com(er);for(i=0;i16;i+)write_1602dat(errori);doalam_keyunable();while(1);elsetr0=1;/開啟定時key_disable=1;/鎖定鍵盤pass=0;break;if(i=6)correctcont+;if(correctcont=1)/正確輸入計數(shù),當(dāng)只有一次正確輸入時,開鎖,/displaylistchar(0,1,lockopen);w
43、rite_1602com(er);for(j=0;j16;j+)write_1602dat(lockopenj);twoalam();/操作成功提示音key=0;/開鎖pass=1;/置正確標(biāo)志位tr0=1;/開啟定時open_led=0;/開鎖指示燈亮for(j=0;j6;j+)/將輸入清除inputdatai=0;else/當(dāng)兩次正確輸入時,開啟重置密碼功能/displaylistchar(0,1,setnew);write_1602com(er);for(j=0;j16;j+)write_1602dat(setnewj);twoalam(); /操作成功提示reinputen=1;/允許
44、重置密碼輸入correctcont=0;/正確計數(shù)器清零 4.5 調(diào)試把以編寫好的程序加載到調(diào)試工具,檢查軟件是否有錯誤,再根據(jù)軟件提示對本程序進(jìn)行修改,直到?jīng)]有錯誤,再生成單片機(jī)能運(yùn)行的機(jī)器碼,再用51開發(fā)板或者其他單片機(jī)寫入工具把機(jī)器碼寫入到單片機(jī)中進(jìn)行實(shí)際的程序調(diào)試,再根據(jù)實(shí)際的情況或者需要,對單片機(jī)的不足進(jìn)行修改,直到能夠滿足設(shè)計要求。4.5.1 程序調(diào)試用到的軟件及工具調(diào)試本程序需要用到keil c5113,及51開發(fā)板一塊及其配套的下載燒錄軟件。4.5.2 keil c51簡介keil c51是美國keil software公司出品的51系列兼容單片機(jī)c語言軟件開發(fā)系統(tǒng),與匯編相比
45、,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用c來開發(fā),體會更加深刻。keil c51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。c51工具包的整體結(jié)構(gòu): uvision與ishell分別是c51 for windows和for dos的集成開發(fā)環(huán)境(ide),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用ide本身或其它編輯器編輯c或匯編源文件。然后分別由c51及a51編譯器編譯生成目標(biāo)文件(.obj)。目標(biāo)文件可由lib51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)l51連接定位生成絕對目標(biāo)文件(.abs)。abs文件由oh51轉(zhuǎn)換成標(biāo)準(zhǔn)的hex文件,以供調(diào)試器dscope51或tscope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如eprom中。4.5.3 調(diào)試過程首先,打開keil c51主程序,新建工程,新建文本框?qū)懭氤绦?,保?/p>
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:教育現(xiàn)代化視域下我國學(xué)校體育數(shù)字化評估監(jiān)測體系構(gòu)建研究
- 2025版放射性物質(zhì)運(yùn)輸安全責(zé)任書3篇
- 《鄉(xiāng)村廁所建設(shè)技術(shù)標(biāo)準(zhǔn)》
- 二零二五年快遞行業(yè)包裝回收利用合同范本3篇
- 2025版教育培訓(xùn)外協(xié)合同協(xié)議書3篇
- 二零二五不銹鋼罐體生產(chǎn)質(zhì)量管理體系認(rèn)證合同3篇
- 2024版汽車修理工勞動合同模板格式
- 2025年度特色民宿租賃運(yùn)營管理合同3篇
- 2025年度個人收入證明專業(yè)審核與制作合同3篇
- 二零二五年度醫(yī)院門衛(wèi)醫(yī)療服務(wù)合同
- 2024年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 人教版初中語文2022-2024年三年中考真題匯編-學(xué)生版-專題08 古詩詞名篇名句默寫
- 2024-2025學(xué)年人教版(2024)七年級(上)數(shù)學(xué)寒假作業(yè)(十二)
- 山西粵電能源有限公司招聘筆試沖刺題2025
- 醫(yī)療行業(yè)軟件系統(tǒng)應(yīng)急預(yù)案
- 使用錯誤評估報告(可用性工程)模版
- 《精密板料矯平機(jī) 第2部分:技術(shù)規(guī)范》
- 2024光伏發(fā)電工程交流匯流箱技術(shù)規(guī)范
- 旅游活動碳排放管理評價指標(biāo)體系構(gòu)建及實(shí)證研究
- 2022年全國職業(yè)院校技能大賽-電氣安裝與維修賽項(xiàng)規(guī)程
- 小學(xué)德育養(yǎng)成教育工作分層實(shí)施方案
評論
0/150
提交評論