利用數(shù)字電路實(shí)現(xiàn)電子密碼鎖-畢業(yè)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  利用數(shù)字電路實(shí)現(xiàn)電子密碼鎖</p><p>  學(xué)生:XXX 指導(dǎo)老師:XXX</p><p>  內(nèi)容摘要:本數(shù)字密碼鎖采用單片機(jī)AT89S52為主控芯片,由EEPROM存儲(chǔ)密碼。硬件部分包括主控制系統(tǒng)、人機(jī)交互界面以及輸出系統(tǒng)三大部分。</p><p>  主控制系統(tǒng)中主控制芯片使用了AT89S52單片機(jī),該單片

2、機(jī)性能優(yōu)良,能滿足一般的普通應(yīng)用;EEPROM采用AT24C02芯片,掉電后可以存儲(chǔ)密碼,從而保證了系統(tǒng)的安全性。人機(jī)交互通道部分采用了4×4矩陣鍵盤輸入以及LCD1602標(biāo)準(zhǔn)字符型液晶顯示。輸出系統(tǒng)部分包括驅(qū)動(dòng)開鎖電路和報(bào)警電路;其中,在本系統(tǒng)設(shè)計(jì)中,驅(qū)動(dòng)開鎖電路用發(fā)光二極管表示,而報(bào)警電路則使用蜂鳴器。</p><p>  本系統(tǒng)中使用的AT24C02芯片是一個(gè)帶有I2C總線接口的EEPROM存儲(chǔ)器

3、。I2C總線是一種雙向二線制總線,它的結(jié)構(gòu)簡(jiǎn)單,可靠性和抗干擾性能好。I2C總線結(jié)構(gòu)很簡(jiǎn)單,只有兩條線,包括一條數(shù)據(jù)線(SDA)和一條串行時(shí)鐘線(SCL)。具有I2C接口的器件可以通過(guò)這兩根線接到總線上,進(jìn)行相互之間的信息傳遞。</p><p>  本數(shù)字密碼鎖的功能為:密碼位數(shù)為8位,可選值為0~9,從而保證足夠的鎖體強(qiáng)度;用戶可以自行設(shè)定和修改密碼;防止密碼被盜,輸入密碼錯(cuò)誤次數(shù)超過(guò)3次則報(bào)警;友好的人機(jī)界面

4、;輸入正確的密碼后,驅(qū)動(dòng)開鎖電路。</p><p>  軟件部分應(yīng)用單片機(jī)C語(yǔ)言實(shí)現(xiàn)了本設(shè)計(jì)的全部控制功能。C語(yǔ)言編譯方便,易讀性好,且移植性方便,能夠滿足實(shí)現(xiàn)本系統(tǒng)的功能要求。在設(shè)計(jì)過(guò)程中,給出了本系統(tǒng)C語(yǔ)言編程的原理和流程圖。</p><p>  本數(shù)字密碼鎖系統(tǒng)穩(wěn)定性好,設(shè)計(jì)人性化,由于使用單片機(jī)控制并有記憶模塊,功能齊全可靠,并有很好的擴(kuò)展性,而且成本低廉,具有良好的發(fā)展前景。&l

5、t;/p><p>  關(guān)鍵詞:數(shù)字密碼鎖 AT24C02芯片 安全性</p><p>  Electronic combination lock</p><p>  Abstract:Using the digital circuit realize electronic combination lock</p><p>  This dig

6、ital locks USES the monolithic integrated circuit AT89S52 as the controller chip, by EEPROM memory password. Hardware including master control system, man-machine interface and output system of three.</p><p>

7、;  The Lord control system used in the control chip AT89S52 SCM, this single chip good performance, can satisfy the general common application; The AT24C02 chip EEPROM, after power off can be stored password, so as to en

8、sure the security of the system. Man-machine interactive channel part adopts the 4 x 4 matrix keyboard input and LCD1602 standard character type LCD display. The output of system including drive circuit and alarm lock ci

9、rcuit; Which, in the system design, drive the lock circuit usin</p><p>  The system used AT24C02 chip is a with the I2C bus interface EEPROM memory. The I2C bus is a two-way two wire bus, its simple structur

10、e, reliability and anti-interference capability. The I2C bus structure is simple, only two lines, including a data line (SDA) and a serial clock line (SCL). Has the I2C devices through this interface to two lines on the

11、bus, the mutual information transfer.</p><p>  This digital locks function for: password digits for eight, optional value is 0 ~ 9, so as to ensure enough lock body strength; The user can set and modify the

12、password; To prevent the password is stolen, the input password mistake number more than three times the alarm; Friendly human-machine interface; To enter the correct password, drive the lock circuit.</p><p>

13、;  Application software of single chip microcomputer C language realized this design of all control function. C compiler convenient, easy to read the gender is good, and easy portability, and can meet the requirement of

14、system function realization. In the design process are given, and the system of the C programming language principle and flow chart.</p><p>  This digital locks system stability, humanized design, because us

15、e a single-chip microcomputer control and a memory module, complete function and reliable, and have a good scalability, and the cost is low, have good development prospect.</p><p>  Keywords: Electronic comb

16、ination lock AT24C02 chip safety</p><p><b>  目 錄</b></p><p><b>  前言1</b></p><p>  1 系統(tǒng)的硬件設(shè)計(jì)2</p><p>  1.1 硬件的總體結(jié)構(gòu)和原理2</p><p

17、>  1.1.1 硬件系統(tǒng)的總體結(jié)構(gòu)圖2</p><p>  1.1.2 硬件系統(tǒng)組成2</p><p>  1.1.3 系統(tǒng)的可能性分析3</p><p>  1.2 單片機(jī)AT89S51簡(jiǎn)介4</p><p>  1.2.1 主要性能4</p><p>  1.2.2 引腳功能描述5</p

18、><p>  1.3 AT24C02簡(jiǎn)介7</p><p>  1.3.1 功能描述7</p><p>  1.3.2 管腳描述7</p><p>  1.3.3 I2C總線協(xié)議8</p><p>  1.4 LCD1602介紹8</p><p>  1.4.1 引腳描述9</p&

19、gt;<p>  1.4.2 LCDI602控制指令9</p><p>  1.4.3 LCDI602讀寫控制時(shí)序11</p><p>  1.5 4×4矩陣鍵盤11</p><p>  1.6 復(fù)位電路12</p><p>  1.7 振蕩電路12</p><p>  1.8 發(fā)光二

20、極管LED電路13</p><p>  1.9 報(bào)警電路13</p><p>  1.10 電源輸入電路14</p><p>  1.11 使用到的元器件列表15</p><p>  2 軟件程序設(shè)計(jì)15</p><p>  2.1 編譯器Keil uVision2簡(jiǎn)介16</p><p

21、>  2.2 軟件總設(shè)計(jì)流程圖16</p><p>  2.3 具體功能軟件實(shí)現(xiàn)17</p><p>  2.3.1 4×4矩陣鍵盤掃描程序17</p><p>  2.3.2 顯示程序19</p><p>  2.3.3 時(shí)鐘運(yùn)行子程序19</p><p>  2.3.4 時(shí)鐘時(shí)、分修改子程

22、序20</p><p>  2.3.5 掉電存儲(chǔ)服務(wù)程序21</p><p>  2.3.7 密碼修改子程序23</p><p><b>  3 結(jié)束語(yǔ)24</b></p><p>  附錄1: PCB原理圖26</p><p>  附錄2: 仿真原理圖27</p>&

23、lt;p>  附錄3: 單片機(jī)硬件實(shí)物圖28</p><p><b>  參考文獻(xiàn)29</b></p><p>  利用數(shù)字電路實(shí)現(xiàn)電子密碼鎖</p><p><b>  前言</b></p><p>  隨著社會(huì)物質(zhì)財(cái)富的日益增長(zhǎng),安全防盜已成為社會(huì)問(wèn)題。而鎖自古以來(lái)就是把守門戶的鐵將軍

24、,人們對(duì)它要求甚高,既要安全可靠地防盜,又要使用方便,這也是制鎖者長(zhǎng)期以來(lái)研制的主題。目前國(guó)內(nèi),大部分人使用的還是傳統(tǒng)的機(jī)械鎖。然而,眼下假冒偽劣的機(jī)械鎖泛濫成災(zāi),互開率非常之高。所謂互開率,是各種鎖具的一個(gè)技術(shù)質(zhì)量標(biāo)準(zhǔn),也就是1把鑰匙能開幾把鎖的比率。經(jīng)國(guó)家工商局、國(guó)家內(nèi)貿(mào)局、中國(guó)消協(xié)等部門對(duì)鎖具市場(chǎng)的調(diào)查,發(fā)現(xiàn)個(gè)別產(chǎn)品的互開率居然超標(biāo)26倍。</p><p>  為何彈子鎖的“互開率”會(huì)如此之高?據(jù)有關(guān)專家人

25、士剖析,彈子鎖質(zhì)量好壞主要取決于彈子數(shù)量的多少以及彈子的大小,而彈子的多少和大小受一定條件的限制。此外,即使是一把質(zhì)量過(guò)關(guān)的機(jī)械鎖,通過(guò)急開鎖,甚至可以在不損壞鎖的前提下將鎖打開。機(jī)械鎖的這些弊端為一種新型的鎖---電子密碼鎖,提供了發(fā)展的空間。</p><p>  電子密碼鎖是一種通過(guò)密碼輸入來(lái)控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡(jiǎn)易的電路產(chǎn)品,也有基于芯

26、片的性價(jià)比較高的產(chǎn)品。現(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過(guò)編程來(lái)實(shí)現(xiàn)的。其性能和安全性已大大超過(guò)了機(jī)械鎖,主要特點(diǎn)如下:</p><p>  保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖,隨機(jī)開鎖成功率幾乎為零。</p><p>  密碼可變。 用戶可以經(jīng)常更改密碼,防止密碼被盜,同時(shí)也可以避免因人的更替而使鎖的密級(jí)下降。</p><p>  誤碼輸入保護(hù)。當(dāng)輸入密碼

27、多次錯(cuò)誤時(shí),報(bào)警系統(tǒng)自動(dòng)啟動(dòng),防止試探密碼。</p><p>  從目前的技術(shù)水平和市場(chǎng)認(rèn)可程度看,使用最為廣泛的是鍵盤式電子密碼鎖,該產(chǎn)品主要應(yīng)用于保險(xiǎn)箱、保險(xiǎn)柜和金庫(kù),還有一部分應(yīng)用于保管箱和運(yùn)鈔車。鍵盤式電子密碼在鍵盤上輸入,與打電話差不多,因而易于掌握,其突出優(yōu)點(diǎn)是“密碼”是記在被授權(quán)人腦子里的數(shù)字和字符,既準(zhǔn)確又可靠,不會(huì)丟失(除了忘記),難以被竊(除非自己泄露)。但是密碼不能太簡(jiǎn)單,太簡(jiǎn)單了就容易被他

28、人在鍵盤上試探出來(lái),或者可能被旁觀者窺測(cè)出來(lái),造成保密性不足。當(dāng)然,密碼又不能太復(fù)雜,太復(fù)雜了可能自己都糊涂了,或者輸入密碼操作成功率低,造成使用不便。因此,為了發(fā)揚(yáng)優(yōu)點(diǎn)、克服弱點(diǎn),鍵盤式電子密碼也在不斷發(fā)展中,如“任意設(shè)定密碼”技術(shù)使得被授權(quán)人可以根據(jù)自己的需要或喜好設(shè)定密碼,常用常新;而“自動(dòng)更改密碼”技術(shù)使得本次輸入的密碼將自動(dòng)更改成下次應(yīng)輸入的密碼,更改的規(guī)律不為他人所知,因而不怕旁觀者窺測(cè);獨(dú)出心裁的“鍵盤亂序顯示”技術(shù)使得鍵

29、盤上的固定鍵位每次顯示出的字符不固定,并且顯示的窄小角度只能由操作者正面看得到,因而即使旁觀者看見操作動(dòng)作也難以窺測(cè)出密碼;“多重密碼設(shè)定”技術(shù)使得單組密碼不一定有效,適合多人分權(quán)使用,需要輸入兩組以上的密碼才</p><p>  1 系統(tǒng)的硬件設(shè)計(jì)</p><p>  1.1 硬件的總體結(jié)構(gòu)和原理 </p><p>  1.1.1 硬件系統(tǒng)的總體結(jié)構(gòu)圖<

30、;/p><p>  硬件系統(tǒng)的總體結(jié)構(gòu)圖如圖1.1.1-1所示。</p><p>  圖1.1.1-1 體結(jié)構(gòu)圖</p><p>  1.1.2 硬件系統(tǒng)組成</p><p>  如圖1.1.1-1所示,本系統(tǒng)的硬件部分主要由單片機(jī)AT89S52、存儲(chǔ)芯片AT24C02、4×4矩陣鍵盤、LCD1602、報(bào)警電路和驅(qū)動(dòng)電路組成;其中驅(qū)

31、動(dòng)電路用發(fā)光二極管LED表示,而報(bào)警電路使用蜂鳴器??偟膩?lái)說(shuō),數(shù)字密碼鎖主要由微處理器模塊、記憶模塊、鍵盤模塊、聲光提示模塊和顯示模塊構(gòu)成。</p><p>  微處理器模塊,也就是AT89S52單片機(jī),因?yàn)楸鞠到y(tǒng)要實(shí)現(xiàn)密碼檢測(cè)、密碼設(shè)定、聲光提示等功能,要求微處理器必須能提供很多I/O口,而且由于系統(tǒng)體積限制,很難擴(kuò)展I/O口和使用外部程序存儲(chǔ)器,所以選用AT89S52單片機(jī)。</p><p

32、>  記憶模塊,AT24C02芯片作為記憶模塊的核心部分,作用是存儲(chǔ)用戶設(shè)置的有效開鎖密碼。由于一片AT24C02擁有256字節(jié)存儲(chǔ)空間,而本設(shè)計(jì)中只需要存儲(chǔ)8個(gè)字節(jié)的數(shù)據(jù),所以只需要一片AT24C02就已足夠了。并且AT24C02是一種非易失性存儲(chǔ)器,掉電后數(shù)據(jù)不會(huì)掉失,而且該存儲(chǔ)器內(nèi)數(shù)據(jù)保存壽命可以保證達(dá)到100年以上,功耗低,十分適合本設(shè)計(jì)使用。</p><p>  聲光提示模塊,由發(fā)光二極管LED和

33、蜂鳴器組成,由單片機(jī)控制。發(fā)光二極管LED有綠色和紅色兩種,綠色LED亮表示密碼輸入正確,驅(qū)動(dòng)開鎖電路;相反,紅色LED亮就表示輸入密碼錯(cuò)誤。蜂鳴器采用5V驅(qū)動(dòng)蜂鳴器,作為報(bào)警電路。當(dāng)輸入密碼錯(cuò)誤次數(shù)超過(guò)3次后就發(fā)出聲音警報(bào)。</p><p>  顯示模塊,考慮到友好的人機(jī)界面,采用LCD1602液晶顯示。顯示模塊的作用主要是顯示提示信息和輸入的密碼,以方便用戶使用。</p><p>  

34、鍵盤模塊,鍵盤模塊的作用是讓用戶輸入密碼和修改密碼??紤]到本系統(tǒng)需要用到大量的按鍵,鍵盤模塊采用4×4的16矩陣鍵盤模式。</p><p>  1.1.3 系統(tǒng)的可能性分析</p><p>  系統(tǒng)工作原理分析:使用AT89S51單片機(jī)、4×4矩陣鍵盤、發(fā)光二極管LED、蜂鳴器等。4×4矩陣鍵盤的按鍵分別為0、1、2、3、4、5、6、7、8、9、取消、全取消

35、、確定、修改密碼、密碼初始化還原、返回。系統(tǒng)啟動(dòng)后,開始時(shí)LCD1602顯示時(shí)鐘界面,切換到密碼鎖輸入界面后,LCD1602顯示“Enter Password”提示輸入密碼;輸入密碼時(shí),LCD1602顯示輸出為“*”,以保證密碼的安全性。當(dāng)密碼輸入完畢按下確定鍵時(shí),對(duì)輸入密碼與設(shè)定的密碼進(jìn)行比較,若密碼正確則LCD1602顯示為“Right!”,并驅(qū)動(dòng)開鎖電路,綠色發(fā)光二極管LED亮;若密碼不正確,LCD1602顯示為“Error!”,

36、紅色發(fā)光二極管LED亮;若連續(xù)3次輸入不正確,則發(fā)出警報(bào)聲同時(shí)鎖定鍵盤。</p><p>  在按下修改密碼鍵時(shí),LCD1602顯示“Enter old Key”提示輸入舊密碼,此時(shí)若輸入正確的舊密碼,則LCD1602顯示會(huì)有提示輸入新密碼,在輸入新密碼后,LCD1602顯示會(huì)再次提示“再次輸入新密碼”。若兩次輸入的新密碼不一致,則修改密碼失?。灰恢聞t成功,并將新密碼保存到AT24C02芯片中。在修改密碼的過(guò)程中

37、,如果一開始輸入的舊密碼錯(cuò)誤LCD1602會(huì)顯示錯(cuò)誤提示,同時(shí)系統(tǒng)返回到開始界面。</p><p>  若在“再次輸入新密碼”的時(shí)候輸入新密碼與前次不一致,則會(huì)返回到系統(tǒng)并要求重新輸入新密碼。修改密碼完成后,系統(tǒng)自動(dòng)儲(chǔ)存到AT24C02中,要再次開鎖則需要輸入正確的新密碼。</p><p>  系統(tǒng)中取消鍵用于退格,在輸入密碼時(shí),若輸入錯(cuò)誤且未按下確定鍵,按下取消鍵可以刪除剛輸入的密碼,然

38、后再次輸入。</p><p>  為了防止惡意嘗試,系統(tǒng)采用若連續(xù)輸入3次錯(cuò)誤密碼則發(fā)出報(bào)警聲,同時(shí)鎖定鍵盤。以此提高系統(tǒng)的安全系數(shù),同時(shí)也能夠保護(hù)合法用戶的正常使用。若用戶忘記了密碼,可以按下密碼初始化還原鍵,恢復(fù)到最原始的密碼。</p><p>  1.2 單片機(jī)AT89S51簡(jiǎn)介</p><p>  AT89S52是一種低功耗、高性能CMOS 8位微控制器,

39、具有8K系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O 口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針

40、,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU在掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。</p><p>  1.2.1 主要性能</p><p>  ◆與MCS-51單片機(jī)產(chǎn)品兼容 &l

41、t;/p><p>  ◆8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器 </p><p>  ◆1000次擦寫周期</p><p>  ◆全靜態(tài)操作:0Hz~33Hz </p><p>  ◆三級(jí)加密程序存儲(chǔ)器</p><p>  ◆32個(gè)可編程I/O口線 </p><p>  ◆三個(gè)16位定時(shí)器/計(jì)數(shù)器&l

42、t;/p><p><b>  ◆八個(gè)中斷源</b></p><p>  ◆全雙工UART串行通道 </p><p>  ◆低功耗空閑和掉電模式 </p><p>  ◆掉電后中斷可喚醒 </p><p><b>  ◆看門狗定時(shí)器 </b></p><p>

43、;<b>  ◆雙數(shù)據(jù)指針 </b></p><p><b>  ◆掉電標(biāo)識(shí)符 </b></p><p>  1.2.2 引腳功能描述</p><p>  AT89S52的引腳如圖1.2.2-1所示,其中各引腳為:</p><p>  圖1.2.2-1 AT89S52引腳圖</p>

44、;<p>  VCC: 供電電壓。</p><p><b>  GND: 接地 。</b></p><p>  P0口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在Flas

45、h編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。</p><p>  P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P1端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的

46、外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX)。在Flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。引腳號(hào)第二功能: </p><p>  ◆P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出。</p><p>  ◆P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)。 </p><

47、;p>  ◆P1.5 MOSI(在系統(tǒng)編程用)。</p><p>  ◆P1.6 MISO(在系統(tǒng)編程用)。 </p><p>  ◆P1.7 SCK(在系統(tǒng)編程用)。 </p><p>  P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2端口寫“1”時(shí)

48、,內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在Flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。</p><p>  P3口:P3口

49、是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,在Flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。 </p><p><b>  引腳號(hào)第二功能: &

50、lt;/b></p><p>  ◆P3.0 RXD(串行輸入)。</p><p>  ◆P3.1 TXD(串行輸出)。</p><p>  ◆P3.2 INT0(外部中斷0)。 </p><p>  ◆P3.3 INT0(外部中斷0)。</p><p>  ◆P3.4&#

51、160;T0(定時(shí)器0外部輸入)。</p><p>  ◆P3.5 T1(定時(shí)器1外部輸入)。</p><p>  ◆P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)。 </p><p>  ◆P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器寫選通)。 </p><p>  RST: 復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2個(gè)機(jī)器周期高電平將使

52、單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST 腳輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。</p><p>  ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在Flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之

53、一的固定頻率輸出脈沖,可用來(lái)作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為8EH的SFR的第0位置“1”,ALE操作將無(wú)效。這一位置“1”, ALE 僅在執(zhí)行MOVX 或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。</p>

54、<p>  PSEN: 外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。</p><p>  EA/VPP: 訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。

55、在Flash編程期間,EA也接收12伏VPP電壓。</p><p>  XTAL1: 振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。</p><p>  XTAL2: 振蕩器反相放大器的輸出端。</p><p>  1.3 AT24C02簡(jiǎn)介</p><p>  AT24C02如圖1.3.2-1所示,是一個(gè)2K位串行CMOS EEPROM內(nèi)部

56、含有256個(gè)8位字節(jié),CATALYST公司的先進(jìn)CMOS技術(shù)實(shí)質(zhì)上減少了器件的功耗,有一個(gè)16字節(jié)頁(yè)寫緩沖器,該器件通過(guò)I2C總線接口進(jìn)行操作;有一個(gè)專門的寫保護(hù)功能。</p><p>  1.3.1 功能描述</p><p>  AT24C02支持I2C總線數(shù)據(jù)傳送協(xié)議,I2C總線協(xié)議規(guī)定任何將數(shù)據(jù)傳送到總線的器件作為發(fā)送器,任何從總線接收數(shù)據(jù)的器件為接收器。數(shù)據(jù)傳送是由產(chǎn)生串行時(shí)鐘和

57、所有起始停止信號(hào)的主器件控制的。主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控制傳送數(shù)據(jù)發(fā)送或接收的模式通過(guò)器件地址輸入端A0、A1和A2可以實(shí)現(xiàn)將最多8個(gè)AT24C02器件連接到總線上。</p><p>  1.3.2 管腳描述</p><p>  AT24C02的管腳如圖 1.3.2-1所示,其中各管腳為:</p><p><b>  SCL

58、串行時(shí)鐘:</b></p><p>  AT24C02串行時(shí)鐘輸入管腳,用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘,這是一個(gè)輸入管腳。</p><p>  SDA 串行數(shù)據(jù)/地址:</p><p>  AT24C02雙向串行數(shù)據(jù)/地址管腳,用于器件所有數(shù)據(jù)的發(fā)送或接收。SDA是一個(gè)開漏輸出管腳。</p><p>  A0 A1 A2 器

59、件地址輸入端:</p><p>  這些輸入腳用于多個(gè)器件級(jí)聯(lián)時(shí)設(shè)置器件地址。當(dāng)這些腳懸空時(shí)默認(rèn)值為0。使用AT24C02時(shí)最大可級(jí)聯(lián)8個(gè)器件.如果只有一個(gè)AT24C02被總線尋址,這三個(gè)地址輸入腳A0、A1、A2可懸空或連接到Vss。 </p><p><b>  WP 寫保護(hù):</b></p><p>  如果WP管腳連接到Vcc,所有的內(nèi)

60、容都被寫保護(hù)只能讀;當(dāng)WP管腳連接到Vss 或懸空,允許器件進(jìn)行正常的讀/寫操作。</p><p>  圖1.3.2-1 AT24C02引腳圖</p><p>  1.3.3 I2C總線協(xié)議</p><p>  I2C總線是一種雙向二線制總線,它的結(jié)構(gòu)簡(jiǎn)單,可靠性和抗干擾性能好。目前很多公司都推出了基于I2C總線的外圍器件,AT24C02芯片就是一個(gè)帶有I2C總

61、線接口的EEPROM存儲(chǔ)器,I2C總線結(jié)構(gòu)很簡(jiǎn)單,只有兩條線,包括一條數(shù)據(jù)線(SDA)和一條串行時(shí)鐘線(SCL)。具有I2C接口的器件可以通過(guò)這兩根線接到總線上,進(jìn)行相互之間的信息傳遞。連接到總線的器件具有不同的地址,CPU根據(jù)不同的地址進(jìn)行識(shí)別,從而實(shí)現(xiàn)對(duì)硬件系統(tǒng)簡(jiǎn)單靈活的控制。</p><p>  I2C總線協(xié)議定義如下:</p><p>  只有在總線空閑時(shí)才允許啟動(dòng)數(shù)據(jù)傳送。<

62、;/p><p>  在數(shù)據(jù)傳送過(guò)程中當(dāng)時(shí)鐘線為高電平時(shí),數(shù)據(jù)線必須保持穩(wěn)定狀態(tài)不允許有跳變;時(shí)鐘線為高電平時(shí)數(shù)據(jù)線的任何電平變化將被看作總線的起始或停止信號(hào)。</p><p><b>  起始信號(hào):</b></p><p>  時(shí)鐘線保持高電平期間數(shù)據(jù)線電平從高到低的跳變作為I2C總線的起始信號(hào)。</p><p><b

63、>  停止信號(hào):</b></p><p>  時(shí)鐘線保持高電平期間數(shù)據(jù)線電平從低到高的跳變作為作為I2C總線的停止信號(hào)。</p><p>  1.4 LCD1602介紹</p><p>  液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點(diǎn),在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。目前液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息

64、顯示器件。其中LCD1602液晶顯示模塊是常用的選擇,它可以顯示兩行,每行16個(gè)字符,采用單+5V電源供電,外圍電路配置簡(jiǎn)單,價(jià)格便宜,具有很高的性價(jià)比。考慮到本系統(tǒng)設(shè)計(jì)中友好的人機(jī)界面,相對(duì)采用多個(gè)LED作為顯示模塊,LCD1602更合適。</p><p>  1.4.1 引腳描述</p><p>  1602采用標(biāo)準(zhǔn)的16腳接口,如圖1.4.1-1所示,其中: </p>

65、<p>  ◆第1腳:VSS為地電源。</p><p>  ◆第2腳:VDD接5V正電源。</p><p>  ◆第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源 時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。</p><p>  ◆第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇

66、指令寄存器。</p><p>  ◆第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。</p><p>  ◆第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。</p><p>  ◆第7

67、~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p>  ◆第15腳:LEDA為背光接5V正電源。</p><p>  ◆第16腳:LEDK為背光地電源。</p><p>  圖1.4.1-1 LCD1602管腳圖</p><p>  1.4.2 LCDI602控制指令</p><p>  如表1.4.2-1所示

68、,LCD1602的讀寫操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。</p><p>  ◆指令 1:清顯示。指令碼01H,光標(biāo)復(fù)位到地址00H位置。 </p><p>  ◆指令 2:光標(biāo)復(fù)位。光標(biāo)返回到地址00H。</p><p>  ◆指令 3:光標(biāo)和顯示模式設(shè)置,I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 ;S:屏幕上所有文字是否左移或者右移。高電平表示

69、有效,低電平則無(wú)效。</p><p>  ◆指令 4:顯示開關(guān)控制。D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。</p><p>  ◆指令 5:光標(biāo)或顯示移位。S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo) 。</p><p>  ◆指令

70、6: 功能設(shè)置命令 。DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線; N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示;F:低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。 </p><p>  ◆指令 7:字符發(fā)生器RAM地址設(shè)置。</p><p>  ◆指令 8:DDRAM地址設(shè)置。</p><p>  ◆指令 9:讀忙信號(hào)和光標(biāo)地址。BF:為忙標(biāo)志位,高

71、電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。</p><p>  ◆指令10:寫數(shù)據(jù)。 </p><p>  ◆指令11:讀數(shù)據(jù)。</p><p>  表1.4.2-1 LCD1602的控制指令表</p><p>  1.4.3 LCDI602讀寫控制時(shí)序</p><p>  LCD1602的讀

72、寫控制時(shí)序如表1.4.2-2所示,使用LCD1602顯示時(shí)要嚴(yán)格按照時(shí)序要求,否則LCD1602顯示會(huì)出現(xiàn)問(wèn)題。</p><p>  表1.4.2-2 LCD1602的讀寫控制時(shí)序表</p><p>  1.5 4×4矩陣鍵盤</p><p>  如圖1.5-1所示,本系統(tǒng)采用4×4矩陣鍵盤。當(dāng)LCD1602為時(shí)鐘界面顯示時(shí),S2為時(shí)設(shè)置鍵,

73、S3為分設(shè)置鍵,S4為切換鍵;當(dāng)切換到密碼鎖界面顯示時(shí),16個(gè)按鍵分為輸入數(shù)字鍵和功能鍵。其中,S2、S6、S7、S8、S10、S11、S12、S14、S15、S16依次表示數(shù)字0~9,S3為取消鍵,S4為全取消鍵,S5為確定鍵,S9為密碼初始化還原鍵,S13為返回鍵,S17為密碼修改鍵。</p><p>  圖1.5-1 4×4矩陣鍵盤</p><p><b>  

74、1.6 復(fù)位電路</b></p><p>  為確保系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)位電路是必不可少的一部分,復(fù)位電路的第一功能是上電復(fù)位。如圖1.6-1所示,時(shí)鐘電路工作后,在REST管腳上加兩個(gè)機(jī)器周期的高電平,芯片內(nèi)部開始進(jìn)行初始復(fù)位。</p><p>  圖1.6-1 復(fù)位電路</p><p><b>  1.7 振蕩電路</b&

75、gt;</p><p>  圖1.7-1所示為單片機(jī)晶體振蕩電路。在本系統(tǒng)設(shè)計(jì)中晶振選擇頻率為12MHz,其中兩個(gè)電容叫晶振的負(fù)載電容,分別接在晶振的兩個(gè)腳上和對(duì)地,一般在幾十皮法,它會(huì)影響到晶振的諧振頻率和輸出幅度。多數(shù)情況下電容取值在20pF-30pF左右,在本系統(tǒng)中取電容為30pF。</p><p>  圖1.7-1 振蕩電路</p><p>  1.8

76、發(fā)光二極管LED電路</p><p>  圖1.8-1所示為發(fā)光二極管LED電路,開始時(shí)發(fā)光二極管LED1、LED2連接的單片機(jī)I/O口均為高電平。當(dāng)輸入密碼正確后,LED1連接的I/O口由高電平變?yōu)榈碗娖剑G色的發(fā)光二極管LED點(diǎn)亮,表示驅(qū)動(dòng)了開鎖電路;當(dāng)輸入密碼錯(cuò)誤時(shí),LED2連接的I/O口由高電平變?yōu)榈碗娖剑t色的發(fā)光二極管LED點(diǎn)亮。其中R10、R11為發(fā)光二極管LED的保護(hù)電阻,阻值均為1K。</

77、p><p>  圖1.8-1 發(fā)光二極管LED電路</p><p><b>  1.9 報(bào)警電路</b></p><p>  本系統(tǒng)中的報(bào)警電路采用蜂鳴器,如圖1.9-1所示。當(dāng)連續(xù)3次輸入錯(cuò)誤密碼后,就會(huì)驅(qū)動(dòng)報(bào)警電路,蜂鳴器不停地響,以示警報(bào)。其中,R5阻值為1kΩ,R6阻值為100Ω。三極管為8550。8550是PNP型中功率高頻三極管,最

78、大耗散功率為700mW,在此電路中起功率放大作用。</p><p>  圖1.9-1 報(bào)警電路</p><p>  1.10 電源輸入電路</p><p>  電源輸入電路如圖1.10-1所示,輸入直流電源后,經(jīng)過(guò)三端穩(wěn)壓集成電路7805,使電壓輸出穩(wěn)壓在5V左右。</p><p>  圖1.10-1 電源輸入電路</p>

79、<p>  用7805三端穩(wěn)壓IC來(lái)組成穩(wěn)壓電源所需的外圍元件極少,電路內(nèi)部還有過(guò)流、過(guò)熱及調(diào)整管的保護(hù)電路。7805只有三條引腳輸出,分別是輸入端、接地端和輸出端,如圖1.10-2所示。使用7805要注意最高輸入電壓是35V左右。</p><p>  圖1.10-2 7805引腳圖</p><p>  1.11 使用到的元器件列表</p><p>

80、  表1.11-1所示為硬件設(shè)計(jì)中使用到的元器件。</p><p>  表1.11-1 元器件列表</p><p><b>  2 軟件程序設(shè)計(jì)</b></p><p>  目前,對(duì)單片機(jī)的編程主要采用匯編跟C語(yǔ)言。匯編語(yǔ)言有執(zhí)行效率高、速度快、與硬件結(jié)合緊密等特點(diǎn)。尤其在進(jìn)行I/O端口管理時(shí),使用匯編語(yǔ)言有快捷、直觀的優(yōu)點(diǎn)。但是使用匯編語(yǔ)

81、言相對(duì)于使用高級(jí)語(yǔ)言編程難度要大一些,且程序可讀性低,開放性差,從系統(tǒng)開發(fā)時(shí)間來(lái)看,效率不是很高。</p><p>  C語(yǔ)言是一種結(jié)構(gòu)化語(yǔ)言,可產(chǎn)生緊湊代碼。C語(yǔ)言可以用許多機(jī)器級(jí)函數(shù)直接控制操作8051硬件。與匯編語(yǔ)言相比,C語(yǔ)言有如下的優(yōu)點(diǎn):</p><p>  ◆不要求了解單片機(jī)的指令系統(tǒng),僅要求對(duì)8051的存儲(chǔ)結(jié)構(gòu)有初步了解;</p><p>  ◆寄存器

82、分配,不同存儲(chǔ)器的尋址及數(shù)據(jù)類型等細(xì)節(jié)可由編譯器管理;</p><p>  ◆程序有規(guī)范的結(jié)構(gòu),可分為不同的函數(shù),這種方式可使程序結(jié)構(gòu)化;</p><p>  ◆具有將可變的選擇與特殊操作組合在一起的能力,改善了程序的可讀性;</p><p>  ◆關(guān)鍵字及運(yùn)算符可用近似人的思維方式使用;</p><p>  ◆編程及程序調(diào)試時(shí)間顯著縮短,從

83、而提高效率;</p><p>  ◆提供的庫(kù)包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力;</p><p>  ◆已編好的程序可容易地植入新程序,因?yàn)樗哂蟹奖愕哪K化編程技術(shù)。</p><p>  當(dāng)然,采用混編模式,就能結(jié)合兩者的優(yōu)點(diǎn)。</p><p>  本系統(tǒng)程序使用C語(yǔ)言編寫。使用C語(yǔ)言編程,目的是實(shí)現(xiàn)數(shù)字密碼鎖的所有功能。C語(yǔ)言編程

84、主要實(shí)現(xiàn)顯示功能,進(jìn)行密碼輸入,對(duì)密碼進(jìn)行比較,判斷密碼對(duì)錯(cuò)和修改密碼等功能。</p><p>  2.1 編譯器Keil uVision2簡(jiǎn)介</p><p>  Keil uVision2 是德國(guó)Keil公司開發(fā)的一個(gè)單片機(jī)C語(yǔ)言編譯器,可以用它來(lái)編譯C源碼,匯編編寫的匯編源程序,連接和重定位目標(biāo)文件和庫(kù)文件,創(chuàng)建HEX文件,調(diào)試目標(biāo)程序。和其他的C語(yǔ)言編譯器相比,Keil uVis

85、ion2有著很多的優(yōu)點(diǎn),例如可產(chǎn)生最少的代碼、支持浮點(diǎn)和長(zhǎng)整數(shù)、支持重入和遞歸。在Keil uVision2的仿真功能中,有兩種仿真模式:軟件仿真模式和目標(biāo)板仿真模式,在軟件仿真模式下我們不需要任何8051單片機(jī)硬件即可完成用戶程序仿真調(diào)試,極大地提高了用戶程序開發(fā)的效率。在目標(biāo)板調(diào)試方式下,用戶可以將程序下載到自己的8051單片機(jī)板上,利用8051的串口與PC機(jī)進(jìn)行通訊來(lái)實(shí)現(xiàn)程序的實(shí)時(shí)在線仿真。</p><p>

86、;  2.2 軟件總設(shè)計(jì)流程圖</p><p>  軟件總設(shè)計(jì)流程圖如圖2.2-1所示。</p><p>  圖2.2-1 軟件設(shè)計(jì)流程圖</p><p>  2.3 具體功能軟件實(shí)現(xiàn)</p><p>  2.3.1 4×4矩陣鍵盤掃描程序</p><p>  當(dāng)鍵盤中按鍵數(shù)量較多時(shí),為了減少對(duì)I/O

87、口的占用,通常將按鍵排列成矩陣形式,也稱為行列鍵盤,這是一種常見的連接方式。矩陣式鍵盤接口見圖2.3.1-1所示,它由行線和列線組成,按鍵位于行、列的交叉點(diǎn)上。當(dāng)鍵被按下時(shí),其交點(diǎn)的行線和列線接通,相應(yīng)的行線或列線上的電平發(fā)生變化,MCU通過(guò)檢測(cè)行或列線上的電平變化可以確定哪個(gè)按鍵被按下。</p><p>  圖2.3.1-1 4×4矩陣鍵盤</p><p>  圖2.3.1-

88、1為一個(gè)4×4行列結(jié)構(gòu),可以構(gòu)成16個(gè)鍵的鍵盤。很明顯,在按鍵數(shù)量多的場(chǎng)合,矩陣鍵盤與獨(dú)立式按鍵鍵盤相比可以節(jié)省很多的I/O口線。</p><p>  矩陣鍵盤不僅在連接上比單獨(dú)式按鍵復(fù)雜,它的按鍵識(shí)別方法也比單獨(dú)式按鍵復(fù)雜。在矩陣鍵盤的軟件接口程序中,常使用的按鍵識(shí)別方法有行掃描法和線反轉(zhuǎn)法。這兩種方法的基本思路是采用循環(huán)查循的方法,反復(fù)查詢按鍵的狀態(tài),因此會(huì)大量占用MCU的時(shí)間,所以較好的方式是采用

89、狀態(tài)機(jī)的方法來(lái)設(shè)計(jì),盡量減少鍵盤查詢過(guò)程對(duì)MCU的占用時(shí)間。</p><p>  圖2.3.1-1中,KEY1、KEY2、KEY3、KEY4為4根列線,作為鍵盤的輸入口(工作于輸入方式)。KEY5、KEY6、KEY7、KEY8為4根行線,工作于輸出方式,由MCU(掃描)控制其輸出的電平值。 </p><p>  行掃描法也稱為逐行掃描查詢法,其按鍵識(shí)別的過(guò)程如下:</p&

90、gt;<p>  將全部行線KEY5-KEY8置低電平輸出,然后讀KEY1-KEY4四根輸入列線中有無(wú)低電平出現(xiàn)。只要有低電平出現(xiàn),則說(shuō)明有鍵按下(實(shí)際編程時(shí),還要考慮按鍵的消抖)。如讀到的都是高電平,則表示無(wú)鍵按下。</p><p>  在確認(rèn)有鍵按下后,需要進(jìn)入確定具體哪一個(gè)鍵閉合的過(guò)程。其思路是:依次將行線置為低電平,并檢測(cè)列線的輸入(掃描),進(jìn)而確認(rèn)具體的按鍵位置。如當(dāng)KEY5輸出低電平時(shí)(

91、KEY5=0、KEY6=1、KEY7=1、KEY8=1),測(cè)到KEY2的輸入為低電平(KEY=1、KEY2=0、KEY3=1、KEY4=1),則可確認(rèn)按鍵S3處于閉合狀態(tài)。通過(guò)以上分析可以看出,MCU對(duì)矩陣鍵盤的按鍵識(shí)別,是采用掃描方式控制行線的輸出和檢測(cè)列線輸入的信號(hào)相配合實(shí)現(xiàn)的。</p><p>  矩陣按鍵的識(shí)別僅僅是確認(rèn)和定位了行和列的交叉點(diǎn)上的按鍵,接下來(lái)還要考慮鍵盤的編碼,即對(duì)各個(gè)按鍵進(jìn)行編號(hào)。在軟件

92、中常通過(guò)計(jì)算的方法或查表的方法對(duì)按鍵進(jìn)行具體的定義和編號(hào)。</p><p>  2.3.2 顯示程序</p><p>  本系統(tǒng)使用LCD1602實(shí)現(xiàn)顯示,只要參照LCD1602的使用手冊(cè)進(jìn)行初始化和程序編寫就可以顯示,即在程序編寫中添加LCD1602的驅(qū)動(dòng)程序。這里的驅(qū)動(dòng)程序主要包括:初始化函數(shù)、設(shè)置顯示坐標(biāo)、寫字符函數(shù)及寫字符串函數(shù)。在時(shí)鐘界面時(shí)顯示時(shí)間的運(yùn)行,在密碼鎖界面時(shí)主要顯示

93、提示信息和輸入的密碼,當(dāng)然,當(dāng)輸入密碼數(shù)字時(shí),輸出不是顯示數(shù)字,而是用“*”顯示代替。</p><p>  2.3.3 時(shí)鐘運(yùn)行子程序</p><p>  當(dāng)系統(tǒng)開始后,LCD1602初始化,然后顯示時(shí)鐘界面,程序在T0中斷,進(jìn)入時(shí)鐘運(yùn)行子程序,其流程圖如圖2.3.3-1所示。</p><p>  圖2.3.3-1 時(shí)鐘運(yùn)行流程圖</p><p

94、>  2.3.4 時(shí)鐘時(shí)、分修改子程序</p><p>  在時(shí)鐘運(yùn)行界面是可以修改時(shí)鐘的時(shí)和分,如圖2.3.4-1所示,S2為時(shí)修改的按鍵,S3為分的修改按鍵.如按一下時(shí)、分加1。當(dāng)分為59的時(shí)候,再按一下S3,分變?yōu)?0,而當(dāng)時(shí)為23的時(shí)候,再按一下S2,時(shí)變?yōu)?0.其流程圖如圖2.3.4-1所示。</p><p>  圖2.3.4-1 時(shí)鐘時(shí)、分修改流程圖</p>

95、;<p>  2.3.5 掉電存儲(chǔ)服務(wù)程序</p><p>  當(dāng)比較密碼的時(shí)候,需要讀AT24C02程序,將存儲(chǔ)在芯片內(nèi)的數(shù)據(jù)讀到RAM中,然后和輸入的密碼相比較。當(dāng)修改密碼的時(shí)候,需要把輸入的密碼保存到AT24C02中。AT24C02的時(shí)序程序如下所示。</p><p>  當(dāng)AT24C02的SCL引腳為高電平期間SDA引腳上產(chǎn)生的電平變化則表示I2C總線工作的“開始”

96、或“停止”兩種狀態(tài):當(dāng)SCL為高電平,SDA由高電平轉(zhuǎn)向低電平時(shí)表示“開始” 狀態(tài),而由低電平轉(zhuǎn)向高電平時(shí)表示“結(jié)束” 狀態(tài)。編程時(shí)要嚴(yán)格按照其時(shí)序要求。其時(shí)序圖如圖2.3.5-1所示。</p><p>  圖2.3.5-1 AT24C02時(shí)序圖</p><p>  AT24C02在讀寫數(shù)據(jù)時(shí),無(wú)論是接受還是發(fā)送一個(gè)字節(jié)之后必須響應(yīng)一個(gè)應(yīng)答信號(hào)才能繼續(xù)工作。圖2.3.5-2為AT24C0

97、2的應(yīng)答信號(hào)時(shí)序圖。</p><p>  圖2.3.5-2 AT24C02的應(yīng)答信號(hào)時(shí)序圖</p><p>  2.3.6 密碼比較子程序</p><p>  當(dāng)輸入密碼后,調(diào)用AT24C02中的密碼進(jìn)行比較,若密碼一致,就驅(qū)動(dòng)開鎖電路,即綠色發(fā)光二極管LED亮,若不一致,紅色發(fā)光二極管LED亮,如果超過(guò)3次輸入的密碼不正確,此時(shí)報(bào)警電路就會(huì)響應(yīng),蜂鳴器響,以及

98、鎖住系統(tǒng)。其程序流程圖如圖2.3.6-1所示。</p><p>  圖2.3.6-1 密碼比較流程圖</p><p>  2.3.7 密碼修改子程序</p><p>  修改密碼時(shí),先輸入舊密碼,如果輸入的密碼正確,再輸入新密碼,否則返回;輸入新密碼后要求再次輸入新密碼,當(dāng)兩次輸入的新密碼一致時(shí),然后存儲(chǔ)到AT24C02中,否則重新輸入新密碼。修改密碼時(shí),如果連

99、續(xù)三次輸入的舊密碼都不正確,報(bào)警電路響應(yīng)。其程序流程圖如圖2.3.7-1所示。</p><p>  圖2.3.7-1 密碼修改流程圖</p><p><b>  3 結(jié)束語(yǔ)</b></p><p>  本數(shù)字密碼鎖終于完成了?;旧蠈?shí)現(xiàn)了所要求的功能,能夠輸入密碼、修改密碼、報(bào)警等。從這些方面來(lái)說(shuō),與市場(chǎng)上的產(chǎn)品沒有很大的區(qū)別。不過(guò),本系統(tǒng)

100、中電磁鎖的部分是用發(fā)光二極管來(lái)表示。單從這點(diǎn)來(lái)說(shuō),差距就很大。如果要用上電磁鎖,就要考慮更多方面。雖然還有些不足,其實(shí)可以做的更好。</p><p>  在課程設(shè)計(jì)完成之際,我要特別感謝我的指導(dǎo)老師XX老師的熱情關(guān)懷和悉心指導(dǎo)。在我撰課程設(shè)計(jì)的過(guò)程中,XX老師傾注了大量的心血和汗水,無(wú)論是在課程設(shè)計(jì)的選題、構(gòu)思和資料的收集方面,還是在課程設(shè)計(jì)的研究方法以及成文定稿方面,我都得到了XX老師悉心細(xì)致的教誨和無(wú)私的幫助

101、,特別是他廣博的學(xué)識(shí)、深厚的學(xué)術(shù)素養(yǎng)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和一絲不茍的工作作風(fēng)使我終生受益,在此表示真誠(chéng)地感謝和深深的謝意。在課程設(shè)計(jì)完成的過(guò)程中,也得到了許多同學(xué)的寶貴建議,在此一并致以誠(chéng)摯的謝意。 </p><p>  附錄1: PCB原理圖</p><p>  附錄2: 仿真原理圖</p><p>  附錄3: 單片機(jī)硬件實(shí)物圖</p><p&g

102、t;<b>  參考文獻(xiàn):</b></p><p>  [1]盧旭錦:基于Keil C的AT24C02串行E2PRO編程,現(xiàn)代電子技術(shù),2007.8,P154-P159</p><p>  [2]李朝青:?jiǎn)纹瑱C(jī)原理及接口技術(shù),北京航空航天大學(xué)出版社,2005.2, P17-P47</p><p>  [3]劉振海:智能密碼鎖微計(jì)算機(jī)信息,電子工

103、業(yè)出版社,2007.12,P32-P36</p><p>  [4]張曉東:帶警報(bào)的密碼電子鎖,家用電器,2001.8,P17-P20</p><p>  [5]徐緯:?jiǎn)纹瑱C(jī)綜合學(xué)習(xí)系統(tǒng)--矩陣鍵盤,電子制作,2007.11,P25-P27</p><p>  [6]戴佳,戴衛(wèi)恒:51單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講.北京電子工業(yè)出版社,2006.5,P154-P1

104、90</p><p>  [7]康華光:電子技術(shù)基礎(chǔ)(第四版),北京:高等教育出版社,1998 .7,P56-P59</p><p>  [8]梁宗善:新型集成塊應(yīng)用,武漢華中理工大出版社,2004.3,P23-P31</p><p>  [9]陳有卿:實(shí)用555時(shí)基電路300例,中國(guó)電力出版社,2005.6,P12-P16</p><p>

105、  [10]沈任元,吳勇:數(shù)字電子技術(shù)基礎(chǔ),機(jī)械工業(yè)出版社,2001.3,P67-P72</p><p>  [11]陳松:數(shù)字邏輯電路,東南大學(xué)出版社,2006.6,P33-P37</p><p>  [12]張慶雙:實(shí)用電子電路200例,機(jī)械工業(yè)出版社,2003.11,P41-P50</p><p>  [13]梅開鄉(xiāng):數(shù)字邏輯電路,電子工業(yè)出版社,2004.4

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論