基于單片機(jī)的電子密碼鎖正文_第1頁
基于單片機(jī)的電子密碼鎖正文_第2頁
基于單片機(jī)的電子密碼鎖正文_第3頁
基于單片機(jī)的電子密碼鎖正文_第4頁
基于單片機(jī)的電子密碼鎖正文_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、前言 在我們的日常生活和工作中, 住宅、工作單位的安全措施、公司的檔案資料、財務(wù)報表和個人相關(guān)資料的保管基本上都是用加鎖的方式來解決的。如果采用傳統(tǒng)機(jī)械式的鑰匙來開鎖,人們出門就需攜帶許多把鑰匙, 非常地不方便, 而且如果鑰匙不小心被丟失了,那安全性就會大打折扣。目前,在西方發(fā)達(dá)國家,電子密碼鎖技術(shù)相對較先進(jìn),種類齊全,電子密碼鎖也已被廣泛應(yīng)用于智能門禁系統(tǒng)中,通過多種更加安全,更加可靠的技術(shù)實現(xiàn)大門的管理。在我國,隨著社會科技的進(jìn)步,鎖已發(fā)展到了密碼鎖、磁性鎖、電子鎖、激光鎖、聲控鎖等等。在傳統(tǒng)鑰匙的基礎(chǔ)上,增加了一組或多組密碼,通過不同磁場、光束光波、聲波、聲音和不同的圖像來控制鎖的開啟,

2、從而大大提高了鎖的安全性,使不法之徒無可乘之機(jī),人們也就能對自身財產(chǎn)安全的有了更多保障。隨著人們對安全的重視和科技的發(fā)展,許多電子智能鎖(指紋識別、IC卡辨認(rèn))已在國內(nèi)外相繼面世。但是這些產(chǎn)品的特點是針對特定的指紋和有效卡,只能適用于需保密的箱、柜、門等。而且指紋識別器在公共場所使用容易機(jī)械損壞,IC卡也丟失或損壞,而且它們其成本較高,在一定程度上限制了這類產(chǎn)品的推廣和普及。鑒于目前的技術(shù)水平與市場的接受程度,加上電子密碼鎖它具有成本價格低、低功耗、簡單容易操作、安全性高等優(yōu)點,因而電子密碼鎖成為了這類電子防盜產(chǎn)品的主流。在安全技術(shù)的領(lǐng)域范圍,具有防盜兼報警功能的電子密碼鎖已逐漸替代了傳統(tǒng)機(jī)械

3、式的密碼鎖,它克服了機(jī)械鎖密碼可設(shè)密碼量少,安全性不高的缺點,使得密碼鎖不論在性能上還是在技術(shù)上都有了很大的提升。隨著大規(guī)模集成電路技術(shù)的發(fā)展,尤其是單芯片,微處理器智能鎖的出現(xiàn),它除了具有電子密碼鎖的功能外,還引入了專家分析系統(tǒng)和智能化的管理,使得密碼鎖具有更高的可靠性和安全性,它的應(yīng)用也越來越廣泛,因此研究它具有重大的現(xiàn)實意義。 1 電子密碼鎖的介紹1.1 電子密碼鎖的簡介電子密碼鎖運用電子電路控制機(jī)械部分,使兩者緊密結(jié)合,從而避免了因為機(jī)械部分被破壞而導(dǎo)致開鎖功能失常的問題,而且連續(xù)輸入密碼錯誤時還有報警聲,大大增加了密碼鎖的防盜功能。隨著人們生活水平的提高,怎樣實現(xiàn)家庭防盜的問題也顯得

4、尤其的突出,傳統(tǒng)的鎖由于其構(gòu)造簡單,容易被撬,而電子鎖由于具有保密性高、使用靈活性好、安全系數(shù)高等優(yōu)點,受到了很多用戶的青睞。 1.1.1 電子密碼鎖的特點電子密碼鎖是一種通過輸入密碼來控制芯片或是電路工作,從而控制機(jī)械的開關(guān)是關(guān)還是開,來完成鎖定和解鎖任務(wù)的產(chǎn)品。它的種類有很多,例如:簡易的電子產(chǎn)品、基于芯片的高性價比產(chǎn)品等。現(xiàn)在廣泛應(yīng)用的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)功能的。它的安全性和性能大大超過了傳統(tǒng)的機(jī)械鎖。其特點如下: 無活動零件,不會磨損,壽命長; 使用靈活性好,不像機(jī)械鎖必須佩帶鑰匙才能開鎖; 電子密碼鎖操作簡單易行,一學(xué)即會; 密碼可變,用戶可以隨時更改密碼,防止密

5、碼被盜,同時也可以避免因人員的更替而使鎖的密級下降; 保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機(jī)開鎖成功率幾乎為零。 1.1.2 電子密碼鎖的發(fā)展趨勢目前的門鎖一般使用彈子鎖,但是它的鑰匙是容易遺失;一些保險柜使用的機(jī)械鎖,其結(jié)構(gòu)更加復(fù)雜,成本高,高精密制造,容易出現(xiàn)故障,人們往往需要帶很多鑰匙,使用極為不便,如果鑰匙不慎丟失,它的安全性就會大大降低。為滿足人們的需求,使用密碼替代鑰匙解鎖的密碼鎖應(yīng)運而生。由于被電子器件所限,以前開發(fā)的電子密碼鎖,保密性差,種類不多,最基本的就是只依靠最簡單的模擬電子開關(guān)來實現(xiàn)的,制作簡單但很不安全,在后為多是使用EDA來實現(xiàn)的,其電路結(jié)構(gòu)復(fù)雜,電子元件繁多。也

6、有使用早先的20個引角的2051系列的單片機(jī)來實現(xiàn)的,但其密碼簡單,易被破解。隨著電子元件的進(jìn)一步發(fā)展,電子密碼鎖也出現(xiàn)了很多的種類,功能日益強(qiáng)大,安全保密性更強(qiáng),使用更加方便,由以前的單密碼輸入發(fā)展到現(xiàn)在的密碼加感應(yīng)元件,用戶只有密碼或電子鑰匙中的一樣,是打不開鎖的。出于安全、方便等方面的需要許多電子密碼鎖已相繼問世,但這類產(chǎn)品的特點是針對特定有效卡、指紋或聲音有效,且不能實現(xiàn)遠(yuǎn)程控制,只能適用于保密要求高且供個人使用的門、房間等。因為數(shù)字、字符、人體生物特征、時間和圖形圖像等要素均可成為鑰匙的電子信息,所以組合使用這些信息能夠使電子防盜鎖獲得更高的保密性,比如現(xiàn)在的一些金庫,需要使用復(fù)合信

7、息密碼的電子防盜鎖。組合使用信息也能夠使電子防盜鎖獲得無窮擴(kuò)展的可能,可以使產(chǎn)品多樣化,對用戶而言是是再好不過了。由此可以看出組合使用電子信息是電子密碼鎖今后發(fā)展的趨勢。1.2 電子密碼鎖設(shè)計的目標(biāo)要求該密碼鎖設(shè)計方法合理,簡單易行,成本低,符合用戶對一些私人資料信息的加密要求,具有一定的推廣價值。該設(shè)計的電子密碼鎖有如下特點: 系統(tǒng)設(shè)置6位密碼,通過鍵盤輸入密碼,輸入密碼后按下確定鍵。 密碼可以由用戶自己設(shè)定,在密碼輸入正確的前提下,按下設(shè)置鍵,出現(xiàn)提示信息”Your password!“,此時輸入新的密碼(6位)。電子密碼鎖的工作流程圖如圖1.2-1所示: 初始狀態(tài)設(shè)定初始密碼輸入密碼:*

8、密碼是否正確?NY進(jìn)入系統(tǒng)圖1.2-1 電子密碼鎖的工作流程圖 1.3 系統(tǒng)主要芯片的選型1.3.1 主控芯片的選型AT89C51單片機(jī)介紹1AT89C51是一類具有低功耗,高性能CMOS 8位的單片機(jī),其片內(nèi)含有4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS -51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用的ISP Flash存儲單元和8位中P央處理器,很多的嵌入式控制應(yīng)用系統(tǒng)也在使用AT89S51為它們提供的性價比比較高的解決方案。 AT89C

9、51具有很多的特點,它有40個引腳、4k Bytes Flash片的內(nèi)程序存儲器、128 bytes的隨機(jī)存儲器(RAM)、32個外部輸入/輸出(I/O)口并且是雙向的、5個中斷優(yōu)先級、16位的可編程定時計數(shù)器有兩個、2個串行全雙工通信口和一個看門狗(WDT)電路。片內(nèi)時鐘振蕩器AT89C51提供以下標(biāo)準(zhǔn)功能:4k 字節(jié) 的Flash 閃速存儲器,128 字節(jié)的內(nèi)部 RAM,32 個 I/O 口線,1個看門狗(WDT),有兩個數(shù)據(jù)指針和兩個 16 位定時/計數(shù)器,有一個 5 向量兩級中斷結(jié)構(gòu),還有一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時AT89C51 可降至 0Hz 的靜態(tài)邏輯操作,并

10、且支持兩不同軟件可選的節(jié)電工作模式??臻e方式可以停止 CPU 的工作,但仍然允許 RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)等繼續(xù)工作。掉電方式保存 RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件的復(fù)位。 AT89C51引腳圖如下圖1.3.1-1所示: 圖1.3.1-1 AT89C51引腳圖此外,AT89S51單片機(jī)還配置了12MHz的晶振并且可以通過軟件來設(shè)置它的省電模式。當(dāng)其處于空閑模式時,CPU可暫停工作,而串行口、外中斷、定時計數(shù)器以及系統(tǒng)可繼續(xù)工作,掉電模式下數(shù)據(jù)保存在RAM中,只有硬件復(fù)位或者外中斷激活后芯片才又開始工作。另外該芯片有TQFP、PLCC和PD

11、IP這三種不同的封裝形式,以滿足不同市場的需求。1.3.2 顯示器的選型采用LCD16028LCD1602能完整的顯示32個英文字符和日文字符,它可以應(yīng)用在計算器、頻率信號發(fā)生器、時鐘等產(chǎn)品上。LCD1602主要特性:能夠顯示16*2個字符,芯片工作電壓為4.55.5V,工作電流2MA(5V)包括背光電流,字符尺寸:2.95*4.35mm,帶有英文和日文字符庫,使用方便。LCD1602的端口有8根數(shù)據(jù)引腳和6根控制引腳以及2根電引腳。控制靈活、方便。采用經(jīng)典的8086總線結(jié)構(gòu),使編程控制得以變得更為簡單。容易,且不會占用單片機(jī)的大量資源。在選型時,考慮到設(shè)計的實際應(yīng)用以及設(shè)計的合理性,LCD1

12、602能顯示一些數(shù)字和字母,很方便形象,故本設(shè)計最終的方案選擇的是LCD1602。1.3.3 密碼存儲芯片AT24C02由于51單片機(jī)掉電后會丟失數(shù)據(jù)存儲器里的數(shù)據(jù),因此必須外加掉電存儲電路。并由AT24C02芯片來實現(xiàn)。美國Atmel公司的低功耗CMOS型E2PROM AT24C02,其內(nèi)部存儲空間有2568位,可擦寫次數(shù)10000次以上、工作電壓寬在2.55.5 V之間、抗干擾能力強(qiáng)、數(shù)據(jù)不易丟失、寫入速度小于10 ms、體積小。它是采用IIC總線串行對數(shù)據(jù)進(jìn)行讀寫,占用的資源和IO線很少,支持在線進(jìn)行編程,能夠快速方便地進(jìn)行數(shù)據(jù)的實時存取。AT24C02運用IIC規(guī)程,采用主機(jī)(通常為單

13、片機(jī))從機(jī)(AT24C02) 雙向通信,二者均可在發(fā)送器和接收器狀態(tài)下工作。主機(jī)產(chǎn)生一個串行的時鐘信號后,通過引腳SCL控制總線的傳送方向,產(chǎn)生停止和開始的條件。主機(jī)和從機(jī)在接收到一個字節(jié)后都必須要發(fā)出一個確認(rèn)的信號ACK。它通過SDA(串行數(shù)據(jù)線)及SCL(串行時鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識別每個器件。2 電子密碼鎖的硬件設(shè)計2.1 硬件設(shè)計原理 本系統(tǒng)硬件部分包含電源輸入電路、復(fù)位電路、晶振電路、按鍵電路、LCD1602顯示電路。當(dāng)系統(tǒng)運行時系統(tǒng)電源電路為系統(tǒng)供電。為了避免系統(tǒng)在不穩(wěn)定情況下工作所以增加了一個復(fù)位電路。按鍵電路按鍵輸入要執(zhí)行的指令,LCD顯示電路

14、,為人機(jī)交互提供了條件。具體的硬件框圖如下圖2.1-1所示: 圖2.1-1 系統(tǒng)框圖2.2 復(fù)位電路設(shè)計單片機(jī)復(fù)位【1】是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復(fù)位后PC0000H,使單片機(jī)從第個單元取指令。無論是在單片機(jī)剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復(fù)位。在復(fù)位期間(即RST為高電平期間),P0口為高組態(tài),P1P3口輸出高電平;外部程序存儲器讀選通信號PSEN無效。地址鎖存信號ALE也為高電平。根據(jù)實際情況選擇如圖2.2-1所示的復(fù)位電路。該電路在基本的復(fù)位電路上添加了手動復(fù)位按鈕,在電源接通瞬間,電容C8上的電壓很小,復(fù)位后R2下

15、拉電阻的電壓基本和電源電壓相同, RST此時為高電平,隨著電容充電,RST端電壓將逐漸下降,當(dāng)電壓降到低于某一數(shù)值后,CPU不再復(fù)位,由于電容C1很大,可以確保RST在高電平的有效時間比24個振蕩周期大,CPU能夠順利復(fù)位。為了防止死機(jī)時無法順利復(fù)位我增加了手動復(fù)位按鍵加以保障。圖2.2-1 復(fù)位電路圖2.3 晶振電路設(shè)計 引腳XTAL1【2】和XTAL2【2】與晶體振蕩器及電容C1、C2按圖圖2.3-1所示方式連接。此電路在加電后延遲大約10ms振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率決定。電路中兩個電容C1、C2的作用使電路快速振,提高

16、電路的運行速度。 圖2.3-1 晶振電路圖2.4 按鍵電路設(shè)計因為本設(shè)計所用到的按鍵數(shù)量較多所以不適合用獨立式按鍵,因此我們引入了矩陣鍵盤【3】的應(yīng)用,采用四條I/O線作為行線,四條I/O線作為列線組成鍵盤。在列線和行線的每個交叉點上設(shè)置一個按鍵。這樣矩陣鍵盤上的按鍵個數(shù)就為16個,這樣就能有效地提高系統(tǒng)I/O口的利用率。在單片機(jī)中可以用一個P1口實現(xiàn)16個按鍵功能,本設(shè)計中使用的這個4X4鍵盤不但能完成密碼的輸入還能作特別功能鍵使用。并且鍵盤的每個按鍵功能在程序設(shè)計中設(shè)置。由于矩陣鍵盤中的行、列為多鍵公用,每個按鍵都會影響該按鍵所處的行與列的電平,因此,各按鍵彼此將相互發(fā)生影響,所以必須將行

17、列線信號配合起來,并作適當(dāng)?shù)奶幚?,這樣才能決定閉合鍵的位置。其按鍵結(jié)構(gòu)及與單片機(jī)引腳接法如圖2.4-1所示。按鍵功能鍵的具體分布如2.4-2所示。圖2.4-1 按鍵電路圖0123456789開鎖上鎖輸入新密碼保存新密碼重新輸入未定義圖2.4-2 按鍵功能分配圖2.5 密碼存儲電路的設(shè)計 如圖2.6-1所示,在AT89C51試驗開發(fā)板上它們都接地,第8腳和第4腳分別為正、負(fù)電源,第5腳SDA為串行數(shù)據(jù)輸入/輸出,數(shù)據(jù)通過這條雙向I2C總線串行傳送,在AT89C51試驗開發(fā)板上和單片機(jī)的P3.3連接,第6腳SCL為串行時鐘輸入線,在AT89C51試驗開發(fā)板上和單片機(jī)的P3.2連接,第7腳需要接地。

18、 圖2.5-1 24C02密碼存儲電路圖2.6 LCD1602顯示電路設(shè)計為了提高密碼鎖的密碼顯示效果能力。本設(shè)計的顯示部分由液晶顯示器LCD1602【5】。在沒有按鍵時,顯示器處于初始狀態(tài)。按下開啟鍵顯示器就處于開啟狀態(tài),再按下關(guān)閉按鍵顯示器就處于關(guān)閉狀態(tài)。當(dāng)需要對密碼鎖進(jìn)行開鎖時,按下開鎖按鍵后通過鍵盤上的數(shù)字鍵09輸入密碼,此時每按下一個數(shù)字鍵,顯示器上就會顯示一個*,最多只能輸入六個*。當(dāng)密碼輸入完成時,按下確認(rèn)鍵,如果輸入的密碼正確的話,顯示屏顯示“四川師范大學(xué)成都學(xué)院歡迎您”,如果密碼不正確,LCD顯示屏?xí)@示“ERROR”,P2.0輸出的是高電平,電子密碼鎖不能被打開。通過LCD

19、顯示屏,可以清楚的判斷出密碼鎖所處的狀態(tài) 。其電路的具體設(shè)計如下圖2.6-1所示: 圖2.6-1 LCD1602顯示電路圖2.7 報警電路報警部分由陶瓷壓電發(fā)聲裝置及外圍電路組成, 加電后不發(fā)聲, 當(dāng)有鍵按下時, 發(fā)/ 叮0 聲, 每按一下, 發(fā)聲一次,單片機(jī)的P3. 1 引腳為低電平, 三極管T3 導(dǎo)通。圖2.7-1 蜂鳴器電路圖 2.8 系統(tǒng)電路硬件連接線路:片機(jī)系統(tǒng)”區(qū)域中的P0.0P0.7端口分別連接到“LED1602”區(qū)域中的d0d7”端口上;2. 把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0P2.2端口分別連接到“LED1602”區(qū)域中的“RS, RW, E”端口上。3. 把“單片機(jī)系統(tǒng)”區(qū)域

20、中的P1.0P1.7端口分別依次連接到“矩陣鍵盤”區(qū)域中的“行和列”端口上。3. 把“單片機(jī)系統(tǒng)”區(qū)域中的P3.2P3.3端口分別依次連接到“24C02”區(qū)域中的“SCK, SDA”端口上。3. 把“單片機(jī)系統(tǒng)”區(qū)域中的P3.7端口連接到“蜂鳴器”上。P2.7連接LED燈通過電阻R2接地。3 電子密碼鎖的軟件設(shè)計3.1 程序設(shè)計思路本設(shè)計軟件部分要實現(xiàn)的功能分別為:鍵盤掃描,延時【6】,顯示器顯示【4】,密碼存儲等。電子密碼鎖工作的主要過程是LCD液晶顯示器提示“your password:”,通過鍵盤輸入密碼,同時LCD顯示密碼輸入情況,按下確認(rèn)鍵后判斷密碼的正確性,當(dāng)輸入密碼多功能電子密碼

21、鎖的基本要求: a、通過鍵盤輸入密碼。c、220V供電下,設(shè)計系統(tǒng)所需電源,并考慮掉電后原始數(shù)據(jù)的保存,總的流程圖如下圖3.1-1所示: 初始化調(diào)用顯示識別按鍵有按鍵按下?全部按完?比較密碼開 始LED燈亮開 始N N 保存修改密碼 Y Y 密碼正確?圖3.1-1 軟件總流程圖 3.2 鍵盤掃描軟件設(shè)計鍵盤掃描【7】流程圖如圖3.2-1所示,在按鍵當(dāng)中,有與輸入、開鎖、清除、設(shè)置、確認(rèn)的程序相對應(yīng)的按鍵,并按順序與輸入的數(shù)相比較,當(dāng)輸入正確時,進(jìn)入密碼程序,錯誤時進(jìn)行清除,輸入兩次新密碼正確時,可進(jìn)行重新設(shè)置密碼,最后確認(rèn)程序。按鍵的檢測主要是通過查詢的方法來實現(xiàn)的,利用按鍵進(jìn)行密碼的輸入及設(shè)

22、置。開 始行列端口賦值0xf0讀端口,結(jié)果相等?延時10毫秒保存首次賦值讀端口,兩次賦值運算讀端口,結(jié)果相等?查表發(fā)出鍵模行列端口賦值0x0f返回圖3.2-1 按鍵掃描流程圖圖3.2-2 24C02讀寫操作的軟件算法流程圖按下輸入新密碼輸入密碼 存入緩沖 再輸入一 調(diào)用24C02 比較密碼 重新輸入 調(diào)用顯示圖3.2-3 2修改密碼流程圖4、系統(tǒng)功能及仿真 (一)開鎖 (二)LCD1602液晶顯示 (三)密碼修改 (四)報警 (五)還能添加掉電存儲當(dāng)給單片機(jī)上電后,單片機(jī)顯示如圖:圖4-1仿真圖1當(dāng)輸入密碼時,單片機(jī)顯示如圖:圖4-2仿真圖2密碼錯誤的情況下修改密碼(即輸入新密碼)顯示如圖:圖

23、4-3仿真圖3當(dāng)輸入正確密碼時單片機(jī)顯示如圖:圖4-4仿真圖4輸入新密碼之后保存顯示:圖4-5仿真圖5圖4-6實物圖5 總 結(jié)以上為本人設(shè)計的電子密碼鎖電路。該電子密碼鎖設(shè)計實現(xiàn)開關(guān)鎖和修改密碼等功能,并具有結(jié)構(gòu)簡單、功耗低、成本低等優(yōu)點,但是設(shè)計電子密碼鎖需要結(jié)合實際綜合考慮很多因素,因此該電子密碼鎖設(shè)計需要在實際中進(jìn)一步完善和改進(jìn)。另外,在系統(tǒng)應(yīng)用程序方面,該設(shè)計只實現(xiàn)了修改密碼、開關(guān)鎖、自動報警等功能,要想在現(xiàn)實生活中推廣,還必須針對實際應(yīng)用場合的需要,進(jìn)一步完善系統(tǒng)功能的程序。具有防盜報警功能的電子密碼鎖代替?zhèn)鹘y(tǒng)的機(jī)械式密碼鎖,克服了機(jī)械式密碼鎖密碼量少、安全性能差的缺點,密碼鎖不管在

24、技術(shù)上還是在性能上都得到了提高。其經(jīng)過多次的整理,是一個比較不錯的設(shè)計,可以滿足人們的基本需求,但是因為水平有限,此電路中也存在一定的問題,的設(shè)計并不奢望一定能成功,但一定要對已學(xué)的各種電子知識能有一定的運用能力,我做設(shè)計的目的是希望能檢查下對所學(xué)知識的運用能力的好壞,并且開始慢慢走上創(chuàng)造的道路,這是非常可貴的一點。但是在我們設(shè)計和調(diào)試的過程中,也發(fā)現(xiàn)了一些問題,譬如電子密碼鎖的設(shè)計還不夠人性化,比如加上語音的提示功能,可能會更有生命力。電路的密碼不能忘記,一旦忘記,就難以打開,這可以通過增加電路解決,但那過于復(fù)雜。此次程序設(shè)計還有一定的漏洞。也許還有其他的一些不足,還請老師給以支持。6 參考

25、文獻(xiàn)1 童詩白.華成英:模擬電子技術(shù)基礎(chǔ)第四版.高等教育出版社,2000.3,P3-P72 張毅剛:單片機(jī)原理及應(yīng)用.高等教育出版社,2003.7,P65-P673 李全利:單片機(jī)原理及接口技術(shù).高等教育出版社,2003.1,P69-P784 李光飛:單片機(jī)課程設(shè)計指導(dǎo).北京航空航天大學(xué)出版社,2007.1,P12-P245 蔡朝洋:單片機(jī)控制實習(xí)與專題制作.北京航空航天大學(xué)出版社,2006.6 ,P30-P416 陳連坤:單片機(jī)原理及接口技術(shù).北京交通大學(xué)出版社,2010.5,P55-P577 李學(xué)海:標(biāo)準(zhǔn)8051單片機(jī)基礎(chǔ)教程.北京航空航天大學(xué)出版,2006.1,P57-P60附錄一:原理

26、圖附錄二:源程序/-Main.c-/名稱:用1602LCD與24C04設(shè)計的電子密碼鎖/-/說明:初始密碼由24C04.BIN設(shè)定為“”。/ 當(dāng)輸入09中的數(shù)字時可以輸入密碼,不超過6位數(shù),輸入完成后按下A/ 鍵開鎖,密碼正確時LED點亮,液晶顯示開鎖成功。/ 其他鍵功能是:B上鎖C重新輸入密碼D保存新密碼E清除/ 重設(shè)密碼成功時要求先輸入正確的密碼成功開鎖。/-#include#include#defineucharunsignedchar#defineuintunsignedint/上次按鍵和當(dāng)前按鍵序號,該矩陣中序號范圍為015,16表示無按鍵ucharpre_keyNo=16,keyN

27、o=16;ucharcodeTitle_Text=YourPassword.;/標(biāo)題字符串ucharDSY_BUFFER10=;/顯示緩沖ucharUserPasssword10=; /用戶輸入的密碼voidLCD_Init();/液晶初始化voidDisplay_String(uchar*str,ucharLineNo);/在液晶指定行顯示字符串voidIIC_24C04_Init();/IIC初始化voidBeep();/蜂鳴器ucharRecString(ucharSlave,ucharSubaddr,uchar*Buffer,ucharN);/從IIC讀取數(shù)據(jù)uchar SendStr

28、ing(ucharSlave,ucharSubaddr,uchar*Buffer,ucharN);/從IIC讀取數(shù)據(jù)ucharKeys_Scan();sbitLED_OPEN=P27;/開鎖亮燈sbitBEEP=P37;/蜂鳴器/-/延時/-voidDelayMS(uintx)uchari;whlie(x-)for(i=0;i120;i+);/-/蜂鳴器子程序/-voidBeep()uchari;for(i=0;i100;i+)DelayMS(1);BEEP=BEEP;BEEP=0;/-/清除密碼/-voidClear_Password()UserPassword0=0;DSY_BUFFER0

29、=0;/-/主程序/-voidmain()uchari=0;ucharIIC_Password10;ucharIS_Valid_User=0;P0=P1=0xFF; TMOD=0X02; /TO設(shè)置為8位自動重裝模式TH0=175;TL0=175; TR0=1; /啟動TODelayMS(10);LCD_Init(); /初始化LCDIIC_24C04_Init(); /初始化24C04Display_String(Title_Text,0x00);/24C04的內(nèi)容已由初始化BIN文件導(dǎo)入/將24C04中預(yù)先寫入的密碼讀入IIC_PasswordRecString(0xa0,0,IIC_Pa

30、ssword,6);IIC_Password6=0;while(1)P1=0xF0;if(P1!=0xF0)KeyNo=Keys_Scan();/掃描鍵盤獲取鍵序號KeyNoif(Pre_KeyNo!=KeyNo) if(i10)switch(KeyNo)case0:case1:case2:case3:case4:case5:case6:case7:case8:case9: /如果i為0則執(zhí)行一次清屏 if(i=0)Display_String( ,0x40); UserPasswordi=KeyNo+0; UserPasswordi+1=0; DSY_BUFFERi=*; DSY_BUFFE

31、Ri+1=0; Display_String(DSY_BUFFER,0x40); i+; break; case10:/按A鍵開鎖 if(strcmp(UserPassword,IIC_Password)=0) LED_OPEN=0;/點亮LEDClear_Password();Display_String(Unlockok! ,0x40);IS_Valid_User=1; else LED_OPEN=1;/關(guān)閉LEDClear_Password();Display_String(ERROR!,0x40);IS_Valid_User=0; i=0; break; case11:/按B鍵上鎖 L

32、ED_OPEN=1; Clear_Password(); Display_String(Title_Text,0x00); Display_String( ,0x40); i=0; IS_Valid_User=0; break; case12:/按C鍵設(shè)置新密碼 /如果是合法用戶則提示輸入新密碼 if(!IS_Valid_User)Display_String(Norights!,0x40); else i=0;Display_String(Newpassword: ,0x00);Display_String( ,0x40); break; case13:/按D鍵保存新密碼 if(!IS_Va

33、lid_User)Dispay_String(Norights!,0x40); else SendString(0xa0,0,UserPasssword,6);/重新讀入剛寫的密碼RecString(0xa0,0,IIC_Password,6);IIC_Password6=0;i=0;Display_String(Title_Text,0x00);Display_String(Passwordsaved!,0x40); break; case14:/按E鍵消除所有輸入 i=0; Clear_Password(); Display_String( ,0x40); Beep();Pre_KeyNo

34、=KeyNo;/-24C04.c-/24C04IIC讀/寫程序/-#include#include#defineucharunsignedchar#defineuintunsignedint#defineDelay4us();_nop_();_nop_();_nop_();nop_();sbitSCL=P32;/串行時鐘sbitSDA=P33;/串行數(shù)據(jù)/-/起始位/-voidStart()SDA=1;SCL=1;Delay4us();SDA=0;Delayus();SCL=0;/-/停止位/-voidStop()SDA=0;SCL=1;Delay4us();SDA=1;Delay4us();

35、SCL=0;/-/IIC總線初始化/-viodIIC_24C04_Init()SCL=0;Stop();/-/發(fā)送應(yīng)答信號/-voidACX()SDA=0;SCL=1;Delay4us();SCL=0;SDA=1;/-/發(fā)送非應(yīng)答信號/-voidNO_ACK()SDA=1;SCL=1;Delay4us();SCL=0;SDA=0;/-/從芯片讀取1字節(jié)/-ucharRedByte()uchari,rd;rd=0x00;SDA=1;for(i=0;i8;i+)SCL=1;rd1;rd|=SDA;Delay4us();SCL=0;Delay4us();SCL=0;Delay4us();returnrd;/-/向芯片發(fā)送1字節(jié)/-ucharSendByte(ucharwd)uchari;bitack0;for(i=0;i8;i+)/循環(huán)移入8位SDA=(bit)(wd&0x80);_nop_();_nop_();SCL=1;Delay4us();SCL=0;wd=1;Delay4us();SDA=

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論