版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于單片機(jī)的電子密碼鎖設(shè)計(jì)</p><p><b> 摘 要</b></p><p> 在日常的生活和工作中, 住宅與部門的安全防范、單位的文件檔案、財(cái)務(wù)報(bào)表以及一些個(gè)人資料的保存多以加鎖的辦法來解決。若使用傳統(tǒng)的機(jī)械式鑰匙開鎖,人們常需攜帶多把鑰匙, 使用極不方便, 且鑰匙丟失后安全性即大打折扣。傳統(tǒng)的門鎖既要備有大量的鑰匙,又要擔(dān)心鑰匙丟
2、失后的麻煩。隨著單片機(jī)的問世,出現(xiàn)了帶微處理器的密碼鎖,它除具有電子密碼鎖的功能外,還引入了智能化、科技化等功能,從而使密碼鎖具有很高的安全性、可靠性,受到了廣大用戶的親睞。</p><p> 本系統(tǒng)由AT89C51單片機(jī)系統(tǒng)(主要是AT89C51單片機(jī)最小系統(tǒng))、4×4矩陣鍵盤、LCD1602顯示和報(bào)警系統(tǒng)等組成,具有設(shè)置、修改六位用戶密碼、超次報(bào)警、密碼錯(cuò)誤報(bào)警等功能(本設(shè)計(jì)由P0口控制LCD顯示
3、,密碼正確顯示password ok! 密碼錯(cuò)誤顯示password error!超過三次輸入錯(cuò)誤啟動(dòng)報(bào)警功能。 </p><p> 經(jīng)實(shí)驗(yàn)證明,該密碼鎖具有設(shè)計(jì)方法合理,簡單易行,成本低,安全實(shí)用等特點(diǎn),符合住宅、辦公室用鎖要求,具有推廣價(jià)值。</p><p> 關(guān)鍵詞: AT89C51,LCD1602,電子密碼鎖,4×4矩陣鍵盤</p><p>&
4、lt;b> 目 錄</b></p><p><b> 前 言1</b></p><p><b> 第1章 概述2</b></p><p> 1.1 電子密碼鎖簡介2</p><p> 1.2 電子密碼鎖發(fā)展趨勢2</p><p> 1.3
5、 本設(shè)計(jì)所要實(shí)現(xiàn)的目標(biāo)3</p><p> 1.4 電子密碼鎖設(shè)計(jì)的具體要求3</p><p> 1.5 總體設(shè)計(jì)方案選定4</p><p> 第2章 硬件設(shè)計(jì)5</p><p> 2.1 單片機(jī)AT89C51簡介5</p><p> 2.1.1 主要特性5</p><p>
6、; 2.1.2 引腳功能說明6</p><p> 2.2 液晶顯示LCD1602的介紹9</p><p> 2.3 硬件電路的設(shè)計(jì)11</p><p> 2.3.1 硬件設(shè)計(jì)原理11</p><p> 2.3.2 最小系統(tǒng)的設(shè)計(jì)12</p><p> 2.3.3 芯片擦除15</p>
7、<p> 2.3.4 開鎖機(jī)構(gòu)15</p><p> 2.3.5 鍵盤設(shè)計(jì)16</p><p> 2.3.6 顯示電路設(shè)計(jì)18</p><p> 2.4 電路設(shè)計(jì)總圖19</p><p> 第3章 系統(tǒng)軟件設(shè)計(jì)20</p><p> 3.1 系統(tǒng)軟件設(shè)計(jì)總體流程20</p&g
8、t;<p> 3.2 主程序模塊20</p><p> 3.3 鍵盤掃描及程序流程圖21</p><p> 3.4 系統(tǒng)密碼及開鎖程序流程圖23</p><p> 第4章 程序調(diào)試25</p><p> 4.1 系統(tǒng)調(diào)試過程25</p><p> 4.2 系統(tǒng)調(diào)試結(jié)果27</
9、p><p><b> 結(jié)論29</b></p><p><b> 參考文獻(xiàn)30</b></p><p><b> 附 錄32</b></p><p><b> 前 言</b></p><p> 隨著社會物質(zhì)財(cái)富的日益增長
10、和人們生活水平的提高,安全成為現(xiàn)代居民最關(guān)心的問題之一。此外電子技術(shù)的飛速發(fā)展,給傳統(tǒng)的機(jī)械鎖帶來了巨大的變革,現(xiàn)代的電子技術(shù)與機(jī)械技術(shù)相結(jié)合,產(chǎn)生了一大批智能鎖:指紋鎖、IC卡辨識、遙控鎖、聲控鎖等先進(jìn)的鎖具。雖然這類產(chǎn)品安全性高,但是這類產(chǎn)品的特點(diǎn)是針對特定指紋或有效卡,只能適用于保密要求高且僅供個(gè)人使用的箱、柜、房間等。而且卡片式IC卡還有易丟失等特點(diǎn),加上其生產(chǎn)成本高,安裝使用不方便,一定程度上限制了這類產(chǎn)品的普及和推廣。<
11、;/p><p> 由于數(shù)字、字符、圖形圖像、人體生物特征和時(shí)間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子密碼鎖獲得高度的保密性,如防范森嚴(yán)的金庫,需要使用復(fù)合信息密碼的電子密碼鎖,這樣對盜賊而言是“道高一尺、魔高一丈”。組合使用信息也能夠使電子密碼鎖獲得無窮擴(kuò)展的可能,使產(chǎn)品多樣化,對用戶而言是“千挑百選、自得其所”。</p><p> 本文介紹的是一種基于ST89C51單片
12、機(jī)和4*4矩陣鍵盤的硬件設(shè)計(jì)和軟件實(shí)現(xiàn)方法,這種電路設(shè)計(jì)具有防試探按鍵輸入、智能控制上鎖、開鎖、報(bào)警、修改密碼等多種功能。保密性強(qiáng),靈活性高,外接各種執(zhí)行機(jī)構(gòu),可廣泛用于車輛、大門、保險(xiǎn)柜等各種需上鎖的場合。</p><p><b> 第1章 概述</b></p><p> 1.1 電子密碼鎖簡介</p><p> 電子密碼鎖是一種通過密
13、碼輸入來控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價(jià)比較高的產(chǎn)品。現(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過編程來實(shí)現(xiàn)的。其性能和安全性已大大超過了機(jī)械鎖。其特點(diǎn)如下:</p><p> (1) 保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機(jī)開鎖成功率幾乎為零。</p><p> (2) 密碼可變,用戶可以隨
14、時(shí)更改密碼,防止密碼被盜,同時(shí)也可以避免因人員的更替而使鎖的密級下降。</p><p> (3) 誤碼輸入保護(hù),當(dāng)輸入密碼多次錯(cuò)誤時(shí),報(bào)警系統(tǒng)自動(dòng)啟動(dòng)。</p><p> (4) 無活動(dòng)零件,不會磨損,壽命長。</p><p> (5) 使用靈活性好,不像機(jī)械鎖必須佩帶鑰匙才能開鎖。</p><p> ?。?) 電子密碼鎖操作簡單易行,
15、一學(xué)即會。</p><p> 1.2 電子密碼鎖發(fā)展趨勢</p><p> 在日常生活和工作中,住宅與部門的安全防范、單位的文件檔案、財(cái)務(wù)報(bào)表以及一些個(gè)人資料的保存多以加鎖的辦法來解決。目前門鎖主要用彈子鎖,其鑰匙容易丟失;保險(xiǎn)箱主要用機(jī)械密碼鎖,其結(jié)構(gòu)較為復(fù)雜,制造精度要求高,成本高,且易出現(xiàn)故障,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。針對這些鎖具給人們帶
16、來的不便若使用機(jī)械式鑰匙開鎖,為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應(yīng)運(yùn)而生。它的出現(xiàn)為人們的生活帶來了很大的方便,有很廣闊的市場前景。由于電子器件所限,以前開發(fā)的電子密碼鎖,其種類不多,保密性差,最基本的就是只依靠最簡單的模擬電子開關(guān)來實(shí)現(xiàn)的,制作簡單但很不安全,在后為多是基于EDA來實(shí)現(xiàn)的,其電路結(jié)構(gòu)復(fù)雜,電子元件繁多,也有使用早先的20引角的2051系列單片機(jī)來實(shí)現(xiàn)的,但密碼簡單,易破解。隨著電子元件的進(jìn)一
17、步發(fā)展,電子密碼鎖也出現(xiàn)了很多的種類,功能日益強(qiáng)大,使用更加方便,安全保密性更強(qiáng),由以前的單密碼輸入發(fā)展到現(xiàn)在的,密碼加感應(yīng)元件,實(shí)現(xiàn)了真真的電子加密,用戶只有密碼或電子鑰匙中的一樣,是打不開鎖的,隨著電子元件的發(fā)展及人們對保密性需求的提高出現(xiàn)了越</p><p> 出于安全、方便等方面的需要許多電子密碼鎖已相繼問世。但這類產(chǎn)品的特點(diǎn)是針對特定有效卡、指紋或聲音有效,且不能實(shí)現(xiàn)遠(yuǎn)程控制,只能適用于保密要求高且供
18、個(gè)人使用的箱、柜、房間等。由于數(shù)字、字符、圖形圖像、人體生物特征和時(shí)間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子防盜鎖獲得高度的保密性,如防范森嚴(yán)的金庫,需要使用復(fù)合信息密碼的電子防盜鎖,這樣對盜賊而言是“道高一尺、魔高一丈”。組合使用信息也能夠使電子防盜鎖獲得無窮擴(kuò)展的可能,使產(chǎn)品多樣化,對用戶而言是“千挑百選、自得其所”。可以看出組合使用電子信息是電子密碼鎖以后發(fā)展的趨勢。</p><p>
19、1.3 本設(shè)計(jì)所要實(shí)現(xiàn)的目標(biāo)</p><p> 本設(shè)計(jì)采用單片機(jī)為主控芯片,結(jié)合外圍電路,組成電子密碼鎖,用戶想要打開鎖,必先通過提供的鍵盤輸入正確的密碼才能將鎖打開,密碼輸入錯(cuò)誤有提示,為了提高安全性,當(dāng)密碼輸入錯(cuò)誤三次將報(bào)警。密碼可以由用戶自己修改設(shè)定,鎖打開后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時(shí)候需要二次確認(rèn),以防止誤操作。</p><p> 1.4 電子密
20、碼鎖設(shè)計(jì)的具體要求</p><p> ?。?)本設(shè)計(jì)為了防止密碼被竊取要求在輸入密碼時(shí)在LCD屏幕上顯示*號。</p><p> ?。?)設(shè)計(jì)開鎖密碼位六位密碼的電子密碼鎖。</p><p> ?。?)能夠LCD顯示在密碼正確時(shí)顯示PASSWORD OK,密碼錯(cuò)誤時(shí)顯示PASSWORD ERROR,輸入密碼時(shí)顯示INPUT PASSWORD。</p>
21、<p> (4)實(shí)現(xiàn)輸入密碼錯(cuò)誤超過限定的三次電子密碼鎖定。</p><p> (5)4×4的矩陣鍵盤其中包括0-9的數(shù)字鍵和A-F的功能鍵</p><p> ?。?)本產(chǎn)品具備報(bào)警功能,當(dāng)輸入密碼錯(cuò)誤時(shí)蜂鳴器響并且LED燈亮。</p><p> (7)密碼可以由用戶自己修改設(shè)定(只支持6位密碼),修改密碼之前必須再次輸入密碼,在輸入新密
22、碼時(shí)候需要二次確認(rèn),以防止誤操作 。</p><p> 1.5 總體設(shè)計(jì)方案選定</p><p> 采用一種是用以AT89C51為核心的單片機(jī)控制方案。</p><p> 選用單片機(jī)AT89C51 作為本設(shè)計(jì)的核心元件,利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的IO端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)基本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制
23、,外接LCD1602顯示器用于顯示作用。其原理如下圖1-1所示:</p><p> 圖1-1 單片機(jī)控制密碼鎖原理框圖</p><p><b> 第2章 硬件設(shè)計(jì)</b></p><p> 2.1 單片機(jī)AT89C51簡介 </p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM
24、—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,和閃爍存儲器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C20與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和
25、輸出管腳相兼容。由于將多功能8位CPU51是它的一種精簡版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p> 圖2-1 AT89C51與AT89C2051</p><p> 2.1.1 主要特性 </p><p> ? (1)與MCS-51 兼容; </p><p>
26、048697;? (2)4K字節(jié)可編程閃爍存儲器; </p><p> ? (3)壽命:1000寫/擦循環(huán); </p><p> (4)數(shù)據(jù)保留時(shí)間:10年; </p><p> ? (5)全靜態(tài)工作:0Hz-24Hz;</p><p> ? (6)三級程序存儲器鎖定;<
27、;/p><p> ? (7)128*8位內(nèi)部RAM; </p><p> ? (8)32可編程I/O線; </p><p> ? (9)兩個(gè)16位定時(shí)器/計(jì)數(shù)器; </p><p> ? (10)5個(gè)中斷源; </p><p>
28、1048697;? (11)可編程串行通道; </p><p> ? (12)低功耗的閑置和掉電模式; </p><p> ? (13)片內(nèi)振蕩器和時(shí)鐘電路; </p><p> 2.1.2 引腳功能說明 </p><p> 圖2-2 單片機(jī)引腳圖</p><p>&l
29、t;b> Vcc:電源電壓 </b></p><p><b> GND:接地 </b></p><p> P0口:P0口是一組8位漏極開路型雙向I/0口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,
30、在訪問期間激活內(nèi)部上拉電阻。在F1ash編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。 </p><p> P1口:Pl 是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,Pl的輸出緩沖級可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對端口寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號拉低時(shí)會輸出一個(gè)電流(IIL
31、),F(xiàn)lash編程和程序校驗(yàn)期間,Pl接收低8位地址。 </p><p> P2 口:P2 是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號拉低時(shí)會輸出一個(gè)電流(IIL),在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如
32、執(zhí)行MOVX@DPTR指令)時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX@Ri 指令)時(shí),P2 口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存器的內(nèi)容),在整個(gè)訪問期間不改變。Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和其它控制信號。 </p><p> P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/0 口。P3 口輸出緩沖級可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TT
33、L邏輯門電路。P3口除了作為一般的I/0口線外,更重要的用途是它的第二功能,如下表所示:P3口還接收一些用于Flash閃速存儲器編程和程序校驗(yàn)的控制信號 </p><p> RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。WDT 溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRT0 位(地址8EH)可打開或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態(tài)
34、。 </p><p> ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的正脈沖信號,因此它可對外輸出時(shí)鐘或用于定時(shí)目的。 </p><p> PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C51 由外部程序存儲器取指令(或數(shù)據(jù))
35、時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。當(dāng)訪問外部數(shù)據(jù)存儲器,沒有兩次有效的PSEN信號。 </p><p> EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。F1ash存儲器編程時(shí),該引腳加上+1
36、2V的編程電壓Vpp。 </p><p> XTALl:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。 </p><p> XTAL2:振蕩器反相放大器的輸出端。 </p><p> 89C51相對于89C51增加的新功能包括:</p><p> (1)ISP在線編程功能,這個(gè)功能的優(yōu)勢在于改寫單片機(jī)存儲器內(nèi)的程序不需要把芯片從工作環(huán)境中
37、剝離,是一個(gè)強(qiáng)大易用的功能。</p><p> ?。?)最高工作頻率為33MHz,89C51的極限工作頻率為24MHz,就是說C51具有更高的工作頻率,從而具有了更快的計(jì)算速度。</p><p> (3)具有雙工UART串行通道。</p><p> (4)內(nèi)部集成看門狗計(jì)時(shí)器,不再需要像C51那樣外接看門狗計(jì)時(shí)器單元電路。</p><p>
38、; (5)雙數(shù)據(jù)指示器。</p><p> ?。?)電源關(guān)閉標(biāo)識。</p><p> (7)全新的加密算法,這使得對于89C51的解密變?yōu)椴豢赡埽绦虻谋C苄源蟠蠹訌?qiáng),這樣就可以有效地保護(hù)知識產(chǎn)權(quán)不被侵犯。</p><p> ?。?)兼容性方面:向下完全兼容51全部字系列產(chǎn)品。</p><p> ?。?)程序存儲器寫入方式:二者的寫入程序
39、的方式不同,89C51只支持并行寫入,同時(shí)需要VPP燒寫高壓。89C51則支持Isp在線編程寫入技術(shù)。串行寫入、速度更快、穩(wěn)定性更好,燒寫電壓也僅僅需要4~5V即可。</p><p> (10)電源范圍:89C51電源范圍寬達(dá)4~5.5V,而89C51在低于4.8V和高于5.3V的時(shí)候則無法正常工作。</p><p> ?。?1)燒寫壽命更長:89C51標(biāo)稱的1000次,實(shí)際最少是100
40、0~10000次,這樣更有利于初學(xué)者反復(fù)燒寫,降低學(xué)習(xí)成本。</p><p> 綜上所述本設(shè)計(jì)選定AT89C51。</p><p> 2.2 液晶顯示LCD1602的介紹</p><p> 1.LM1602字符型模塊的性能</p><p> 重量輕:<100g;</p><p> 體積?。?lt;11m
41、m 厚;</p><p> 功耗低:10—15mW;</p><p> 顯示內(nèi)容:192 種字符(5×7 點(diǎn)字型);</p><p> 32 種字符(5×10 點(diǎn)字型);</p><p> 可自編8(5×7)或許(5×10)種字符;</p><p> 指令功能強(qiáng):可組合
42、成各種輸入、顯示、移位方式以滿足不同的要求;</p><p> 接口簡單方便:可與8 位微處理器或微控制器相聯(lián);</p><p> 工作溫度寬:0—50oC</p><p> 可靠性高:壽命為50,000 小時(shí)(25oC)</p><p><b> 2.基本原理</b></p><p>&
43、lt;b> (1)液晶體</b></p><p> 液晶板上排列著若干5×7 或5×10 點(diǎn)陣的字符顯示位,每個(gè)顯示位可顯示1 個(gè)字符,從規(guī)格上分為每行8、16、20、24、32、40 位,有一行、兩行及四行三類。</p><p><b> ?。?)工作電路</b></p><p> 它由KS0066
44、、KS0065 及幾個(gè)電阻電容組成。KS0065 是擴(kuò)展顯示字符用的(例如:16 個(gè)字符×1 行模塊就可不用KS0065,16 個(gè)字符×2 行模塊就要用1 片KS0065)</p><p> 接口方面,有8 條數(shù)據(jù),三條控線??膳c微處理器或微控制相連,通過送入數(shù)據(jù)和指令,就可使模塊正常工作。</p><p> (3)LCD 驅(qū)動(dòng)器和控制器</p>&l
45、t;p> A.LCD 驅(qū)動(dòng)器KS0065</p><p> KS0065 是用低功耗CMOS 技術(shù)制造的大規(guī)模LCD 驅(qū)動(dòng)IC。它既可當(dāng)行驅(qū)動(dòng)用,也可以當(dāng)列驅(qū)動(dòng)用,由20×2Bin 二進(jìn)制移位寄存器、20×2Bin 數(shù)據(jù)鎖存器和20×2Bin 驅(qū)動(dòng)器組成</p><p><b> 功能:</b></p><
46、p> a.40 通道點(diǎn)陣LCD 驅(qū)動(dòng);</p><p> b.可選擇當(dāng)做行驅(qū)動(dòng)或列驅(qū)動(dòng);</p><p> c.輸入/輸出信號:輸出,能產(chǎn)生20×2 個(gè)LCD 驅(qū)動(dòng)波型;輸入,接受控制器送出的串行數(shù)據(jù)和控制信號,偏壓(V1—V6);</p><p><b> 特性:</b></p><p> a
47、.顯示驅(qū)動(dòng)偏壓低:靜態(tài)~1/5;</p><p> b.電源電壓:+5V+10%;</p><p> c.顯示驅(qū)動(dòng)電源:-5V;</p><p> d.CMOS 處理;</p><p> e.60 引腳、塑封;</p><p> B.LCD 控制器KS0066</p><p> KS
48、0066 是用低功耗CMOS 技術(shù)制造的大規(guī)模點(diǎn)陣LCD控制器(兼帶驅(qū)動(dòng)器),和4Bin/8Bin 微處理器相連連,它能使點(diǎn)陣LCD 顯示大小英文字母、符號。應(yīng)用KS0066,用戶能有少量元件就可組成一個(gè)完整點(diǎn)陣LCD 系統(tǒng)。</p><p><b> 特性:</b></p><p> a.容易和Bin/8Bin Mpu 相連;</p><p&
49、gt; b.可選擇5×7 或5×10 點(diǎn)字符;</p><p> c.顯示數(shù)據(jù)RAM 容量:80×8Bin(80 字符);</p><p> d.字符發(fā)生器ROM 能提供戶所需字符庫或標(biāo)準(zhǔn)庫;字符容量:192 個(gè)字符(5×7 點(diǎn)字符);32 個(gè)字符(5×10 點(diǎn)字符);</p><p> e.DDRAM 和C
50、GRAM 都能從Mpu 讀取數(shù)據(jù);</p><p> f.輸出信號:16 個(gè)行掃信號(common singnal),40 個(gè)列掃信號(sengment singnal)</p><p><b> g.電源復(fù)位電路;</b></p><p> h.顯示占空比:1/8duty(1Line,5×7dots+Cursor);1/11
51、duty(1Line,5×10dote+Cuesor);1/16 duty(2Line,5×7dots+Cuesir);</p><p><b> i.振蕩電路;</b></p><p> j.指令:11 種;</p><p> k.80 引腳、塑封。</p><p><b> (4
52、)技術(shù)參數(shù)</b></p><p><b> 表2-1極限參數(shù)</b></p><p> 2.3 硬件電路的設(shè)計(jì)</p><p> 2.3.1 硬件設(shè)計(jì)原理</p><p> 本設(shè)計(jì)主要由單片機(jī)、矩陣鍵盤、液晶顯示器和密碼存儲等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實(shí)現(xiàn)。由用戶通過連接
53、單片機(jī)的矩陣鍵盤輸入密碼,后經(jīng)過單片機(jī)對用戶輸入的密碼與自己保存的密碼進(jìn)行對比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路或者報(bào)警電路控制開鎖還是報(bào)警,實(shí)際使用時(shí)只要將單片機(jī)的負(fù)載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當(dāng)然也可以用繼電器的常開觸點(diǎn)去控制電磁鐵吸合線圈。</p><p> 本系統(tǒng)共有兩部分構(gòu)成,即硬件部分與軟件部分。其中硬件部分由電源輸入部分、鍵盤輸入部分、密碼存儲部分、復(fù)位部
54、分、晶振部分、顯示部分、報(bào)警部分、開鎖部分組成,軟件部分對應(yīng)的由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、啟動(dòng)程序、關(guān)閉程序、建功能程序、密碼設(shè)置程序、EEPROM讀寫程序和延時(shí)程序等組成。其原理框圖如圖2-3所示:</p><p> 圖2-3 電子密碼鎖原理框圖</p><p> 本設(shè)計(jì)單片機(jī)硬件資源的分配:</p><p> P0.0~P0.7用于
55、LCD液晶顯示作用。</p><p> P3.7和P2.7用于蜂鳴器和報(bào)警燈的控制。</p><p> P2.6用于開鎖電路的控制。</p><p> P1.0~P1.7用于鍵盤電路的控制。</p><p> P2.0~P2.2用于LCD顯示模塊的控制端口的控制。</p><p> 2.3.2 最小系統(tǒng)的設(shè)計(jì)
56、</p><p> 當(dāng)MCS-5l系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和開關(guān)復(fù)位。圖2-4即為手動(dòng)(開關(guān))復(fù)位電路: </p><p> 圖2-4 手動(dòng)復(fù)位電路</p><p><b>
57、復(fù)位后的狀態(tài)</b></p><p> a.復(fù)位后PC值為0000H,表明復(fù)位后的程序從0000H開始執(zhí)行。</p><p> b.SP值為07H,表明堆棧底部在07H,一般需要重新設(shè)置SP值。</p><p> c.P0~P3口值為FFH。P0~P3口用作輸入口時(shí),必須先寫入“1”。單片機(jī)在復(fù)位后,已使P0~P3口每一端線為“1”,為這些端線用作
58、輸入口做好了準(zhǔn)備。WDT溢出將使該引腳輸出高電平,所以本設(shè)計(jì)采用圖2-5的手動(dòng)復(fù)位電路:</p><p> 圖2-5 本設(shè)計(jì)手動(dòng)復(fù)位電路</p><p> AT89C51 中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1 和XTAL2 分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖2-3-4。外接石英晶體
59、(或陶瓷諧振器)及電容Cl、C2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容Cl、C2 雖然沒有十分嚴(yán)格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30pF±10pF,而如使用陶瓷諧振器建議選擇40pF±10F。用戶也可以采用外部時(shí)鐘。采用外部時(shí)鐘的電路如圖2-5所示。這種情況下,外部時(shí)鐘脈沖接到XTAL1端,即內(nèi)部時(shí)鐘發(fā)
60、生器的輸入端,XTAL2則懸空。由于外部時(shí)鐘信號是通過一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號的,所以對外部時(shí)鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。 </p><p> 圖2-6 單片機(jī)自激震蕩電路</p><p> 由于單片機(jī)有內(nèi)部振蕩器,所以本設(shè)計(jì)采用圖2-7的晶振電路:</p><p><b>
61、 圖2-7 晶振電路</b></p><p> 2.3.3 芯片擦除 </p><p> 整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。 </p><p> 此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以
62、在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。</p><p> 2.3.4 開鎖機(jī)構(gòu) </p><p> 用戶通過LCD提示信息,用鍵盤輸入正確密碼,從而達(dá)到開鎖的目的。當(dāng)用戶輸入的密碼正確并且是在按下
63、確定鍵的話,單片機(jī)便輸出開門信號,送到開鎖驅(qū)動(dòng)電路,然后驅(qū)動(dòng)電磁鎖,達(dá)到開門的目的。電路驅(qū)動(dòng)和開鎖兩級組成。由D4、三極管組成驅(qū)動(dòng)電路,其中三極管可以選擇普通的小功率三極管如9014、9018都可以滿足要求;開鎖部分由繼電器實(shí)現(xiàn),繼電器的選用要視情況而定,但是吸合力要足夠且由一定的余量。 </p><p> D1作為開鎖的提示,當(dāng)輸入密碼正確時(shí),D1亮;本設(shè)計(jì)電子鎖控制電路主要由繼電器、三極管和發(fā)光二極管構(gòu)成。
64、電子鎖控制電路圖如圖2-3-6所示:</p><p> 圖2-8 電磁鎖控制電路圖</p><p> 繼電器線圈的一個(gè)引腳接電源正極,另一端接NPN三極管的集電極。三極管的基極通過一個(gè)電阻接單片機(jī)的引腳。當(dāng)LOCKCON輸出高電平時(shí),三極管導(dǎo)通,繼電器線圈得電,觸點(diǎn)閉合,相當(dāng)于電子鎖閉鎖;當(dāng)LOCKCON輸出低電平時(shí),三極管截止,繼電器線圈失電,觸點(diǎn)釋放,發(fā)光二極管D1亮,相當(dāng)于電子鎖
65、開鎖。圖中普通二極管是繼電器線圈的續(xù)流二極管,為感應(yīng)電動(dòng)勢提供回路,以免損壞三極管。</p><p> 2.3.5 鍵盤設(shè)計(jì) </p><p> 本設(shè)計(jì)就采用行列式鍵盤,同時(shí)也能減少鍵盤與單片機(jī)接口時(shí)所占用的I/O線的數(shù)目,在按鍵比較多的時(shí)候,通常采用這樣方法。 </p><p> 每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個(gè)按鍵來連通,利用
66、這種行列式矩陣結(jié)構(gòu)只需要N條行線和M條列線,即可組成具有N×M個(gè)按鍵的鍵盤。 </p><p> 在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無按鍵按下的程序段。 </p><p> ?。?)4×4矩陣鍵盤的工作原理 </p><p> 在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣
67、形式,如下圖所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時(shí),采用矩陣法來做鍵盤是合理的。</p><p><b> ?。?)掃描原理 <
68、;/b></p><p> 把每個(gè)鍵都分成水平和垂直的兩端接入,比如說掃描碼是從垂直的入,那就代表那一行所接收到的掃描碼是同一個(gè)bit,而讀入掃描碼的則是水平,掃描的動(dòng)作是先輸入掃描碼,再去讀取輸入的值,經(jīng)過比對之后就可知道是哪個(gè)鍵被按下。 </p><p> 比如說掃描碼送入01111111,前面的0111是代表此時(shí)掃描第一行P1.0列,而后面的1111是讓讀取的4行接腳先設(shè)為
69、VDD,若此時(shí)第一行的第三列按鍵被按下,那讀取的結(jié)果就會變成01111101(注意1111變成1101),其中LSB的第三個(gè)bit會由1變成0,這是因?yàn)檫@個(gè)按鍵被按下之后,會被垂直的掃描碼電位short,而把讀取的LSB的bit電位拉到0,此即為掃描原理。 </p><p> 由於這種按鍵是機(jī)械式的開關(guān),當(dāng)按鍵被按下時(shí),鍵會震動(dòng)一小段時(shí)間才穩(wěn)定,為了避免讓8051誤判為多次輸入同一按鍵。 </p>
70、<p> 我們必須在偵測到有按鍵被按下,就Delay一小段時(shí)間,使鍵盤以達(dá)穩(wěn)定狀態(tài),再去判讀所按下的鍵,就可以讓鍵盤的輸入穩(wěn)定。圖2-9為鍵盤整體??驁D: </p><p> 圖2-9 鍵盤整體模框圖</p><p> 2.3.6 顯示電路設(shè)計(jì) </p><p> 顯示設(shè)計(jì)采用字符型液晶屏設(shè)計(jì),由單片機(jī)的P0口控制顯示,由P2.0~P2.2控制
71、LCD的控制端口。本系統(tǒng)設(shè)計(jì)的顯示電路是為了給使用者以提示而設(shè)置的為達(dá)到界面友好的目的,顯示部分由液晶顯示LCD1602取代普通的數(shù)碼管完成。開鎖時(shí),按下鍵盤上的開鎖按鍵后,利用鍵盤上的數(shù)字鍵0-9輸入密碼,每按下一個(gè)數(shù)字鍵后在顯示器上顯示一個(gè)*,輸入多少位就顯示多少個(gè)*。當(dāng)密碼輸入完成時(shí),按下確認(rèn)鍵,如果輸入的密碼正確的話, LCD顯示“IUPUT RIGHT”,單片機(jī)其中P2.6引腳會輸出低電平,使三極管導(dǎo)通,電磁鐵吸合,繼電器開關(guān)
72、跳轉(zhuǎn),電子密碼鎖被打開,如果密碼不正確,LCD顯示屏?xí)@示“IUPUT ERROR”,P2.6輸出的是高電平,電子密碼鎖不能打開。通過LCD顯示屏,可以清楚地判斷出密碼鎖所處的狀態(tài)。電路圖如圖2-10所示:</p><p> 圖2-10 LCD液晶顯示電路圖</p><p> 2.4 電路設(shè)計(jì)總圖</p><p> Proteus軟件是Labcenter El
73、ectronics公司的一款電路設(shè)計(jì)與仿真軟件,它包括ISIS、ARES等軟件模塊,ARES模塊主要用來完成PCB的設(shè)計(jì),而ISIS模塊用來完成電路原理圖的布圖與仿真。Proteus的軟件仿真基于VSM技術(shù),它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大量的單片機(jī)芯片,比如MCS-51系列、PIC系列等等,以及單片機(jī)外圍電路,比如鍵盤、LED、LCD等等。通過Proteus軟件的使用我們能夠輕易地獲得一個(gè)功能齊全、實(shí)用方便的單片機(jī)
74、實(shí)驗(yàn)室。 </p><p> 本密碼鎖采用proteus進(jìn)行電路圖設(shè)計(jì),經(jīng)過元件選型,用萬能實(shí)驗(yàn)版進(jìn)行硬件焊接,以實(shí)現(xiàn)硬件部分。圖2-11為proteus設(shè)計(jì)的密碼鎖電路圖整體電路圖:</p><p> 圖2-11 設(shè)計(jì)整體電路圖</p><p> 第3章 系統(tǒng)軟件設(shè)計(jì)</p><p> 3.1 系統(tǒng)軟件設(shè)計(jì)總體流程</p>
75、;<p> 因設(shè)計(jì)主要是作用匯編語言來開發(fā)的51單片機(jī)項(xiàng)目程序,所以首先必須有一個(gè)可以在Windows XP或Windows vista操作系統(tǒng)下執(zhí)行的匯編語言編譯器,本設(shè)計(jì)采用Keil編譯器進(jìn)行編程,因?yàn)樗梢灾С忠幌盗械?1單片機(jī)。圖3-1為主程序流程圖: </p><p> 圖3-1 主程序的流程圖</p><p><b> 3.2 主程序模塊</
76、b></p><p> 主程序主要是完成系統(tǒng)初始化、設(shè)置中斷向量、檢查有無鍵按下、以及調(diào)用顯示等等。主程序部分如下所示:</p><p> en bit p2.2;將lcd的en管腳連接到單片機(jī)的p2.2口</p><p> rw bit p2.1;將lcd的rw管腳連接到單片機(jī)的p2.1口</p><p> rs
77、 bit p2.0;將lcd的rs管腳連接到單片機(jī)的p2.0口</p><p> display equ p0;將lcd的顯示端口連接到p0口上</p><p> speaker bit p3.7;蜂鳴器連接到p3.7口</p><p> led bit p2.7;開鎖信號連到p2.7口</p><p>
78、 open bit p2.6;開鎖電路的控制端連接到p2.6口</p><p> returnbit bit 20h.1;</p><p> ORG 0000h;程序開始地址</p><p> LJMP start;</p><p> ORG 000bh;</p><p> LJMP in
79、termit_t0;</p><p> ORG 001bh;</p><p> LJMP intermit_t1;</p><p> ORG 0030h;</p><p><b> start:</b></p><p> MOV sp,#60h;</p><p>
80、<b> lcall sy </b></p><p> s_initialization;調(diào)用子程序sys_initialization</p><p> 3.3 鍵盤掃描及程序流程圖 </p><p> 鍵盤采用查詢的方式,放在主程序中,當(dāng)沒有按鍵按下的時(shí)候,單片機(jī)循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回
81、。</p><p> (1)矩陣式鍵盤的按鍵識別方法:</p><p> 確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。</p><p> 行掃描法:行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下。</p><p> a.判斷鍵盤中有無鍵按下 將全部行線Y0-Y3置低電平,然后檢測列線
82、的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。</p><p> b.判斷閉合鍵所在的位置 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線
83、交叉處的按鍵就是閉合的按鍵。</p><p> ?。?)下面給出一個(gè)具體的例子:</p><p> 單片機(jī)的P1口用作鍵盤I/O口,鍵盤的列線接到P1口的低4位,鍵盤的行線接到P1口的高4位。列線P1.0-P1.3分別接有4個(gè)上拉電阻到正電源+5V,并把列線P1.0-P1.3設(shè)置為輸入線,行線P1.4-P.17設(shè)置為輸出線。4根行線和4根列線形成16個(gè)相交點(diǎn)。</p>&l
84、t;p> a.檢測當(dāng)前是否有鍵被按下。檢測的方法是P1.4-P1.7輸出全“0”,讀取P1.0-P1.3的狀態(tài),若P1.0-P1.3為全“1”,則無鍵閉合,否則有鍵閉合。</p><p> b.去除鍵抖動(dòng)。當(dāng)檢測到有鍵按下后,延時(shí)一段時(shí)間再做下一步的檢測判斷。</p><p> c.若有鍵被按下,應(yīng)識別出是哪一個(gè)鍵閉合。方法是對鍵盤的行線進(jìn)行掃描。P1.4-P1.7按下述4種組
85、合依次輸出:</p><p> P1.7 1 1 1 0</p><p> P1.6 1 1 0 1</p><p> P1.5 1 0 1 1</p><p> P1.4 0 1 1 1</p><p> 在每組行輸出時(shí)讀取P1.0-P1.3,若全為“1”,則表示為“0”這一行沒有鍵閉合,否則有鍵閉合。由此
86、得到閉合鍵的行值和列值,然后可采用計(jì)算法或查表法將閉合鍵的行值和列值轉(zhuǎn)換成所定義的鍵值</p><p> 其程序流程如圖3-2所示:</p><p> 圖3-2 鍵盤掃描程序流程圖</p><p> 3.4 系統(tǒng)密碼及開鎖程序流程圖 </p><p> 由于設(shè)計(jì)是分模塊化進(jìn)行,所以子程序是整體軟件系統(tǒng)的組成部分,子程序不但可以使程序化
87、整為零,使其復(fù)雜簡單化,同時(shí)也方便閱讀,修改等,每個(gè)功能模塊都有它自己的子程序,在本設(shè)計(jì)中是用LCD顯示數(shù)據(jù),所以就要用到顯示子程序,設(shè)計(jì)中用的是矩陣鍵盤,所以就用到鍵盤掃描子程序,例如還有顯示初始化子程序、LCD忙檢測子程序、關(guān)閉狀態(tài)顯示子程序、開鎖狀態(tài)顯示子程序、密碼輸入及修改狀態(tài)顯示子程序、密碼輸入錯(cuò)誤后的提示子程序等。如下圖3-3為密碼修改子程序流程圖,圖3-4為開鎖程序流程圖:</p><p> 圖3
88、-3 設(shè)置密碼子</p><p> 圖3-4 輸入密碼開鎖流程圖</p><p><b> 第4章 程序調(diào)試 </b></p><p> 4.1 系統(tǒng)調(diào)試過程</p><p> 在硬件支持的環(huán)境下,用proteus設(shè)計(jì)好的電路,Keil編好的程序編譯成芯片可識別的C51文件,利用PC機(jī)寫進(jìn)proteus程序圖芯片
89、內(nèi)進(jìn)行仿真測試,并對其出現(xiàn)的錯(cuò)誤進(jìn)行修改,由圖4-1~圖4-3可看出最終調(diào)試成功。 </p><p> 圖4-1 keil編譯程序成功</p><p> 圖4-2 keil生成hex文件</p><p> 圖4-3 proteus調(diào)用keil的hex文件進(jìn)行仿真</p><p> 4.2 系統(tǒng)調(diào)試結(jié)果</p><p
90、> 調(diào)試結(jié)果共有三種狀態(tài),第一種狀態(tài)為上鎖狀態(tài),此時(shí)若要開鎖則需輸入正確密碼。第二種為輸入密碼,若密碼正確,開鎖成功且此時(shí)綠燈亮。第三種狀態(tài)為輸入密碼錯(cuò)誤,需重新輸入密碼。若輸入次數(shù)達(dá)到三次則報(bào)警啟動(dòng)。調(diào)試結(jié)果如下圖所示:</p><p> 圖4-4 初始上鎖狀態(tài)</p><p> 圖4-5 密碼正確綠燈亮</p><p> 圖4-6 密碼錯(cuò)誤啟動(dòng)報(bào)警
91、</p><p><b> 結(jié)論</b></p><p> 本學(xué)期的課程設(shè)計(jì)總算完成了,回顧起此次單片機(jī)課程設(shè)計(jì),至今我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次畢業(yè)設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的。剛開始時(shí)我不知該從何
92、著手,后來參考了一些文獻(xiàn),我便開始設(shè)計(jì)自己的課程設(shè)計(jì)。我用的是單片機(jī)芯片實(shí)現(xiàn)主控,LCD顯示,矩陣鍵盤等部件。我對這些知識掌握的不太好,所以在作設(shè)計(jì)時(shí)遇到一些問題,但通過不斷努力,終于把密碼鎖的思路和模型定了下來,去整理和修改程序。我們?nèi)チ藞D書館借一些參考書,上網(wǎng)找一些相關(guān)資料,并且在指導(dǎo)老師翁老師的指導(dǎo)下,我最終都逐個(gè)克服了遇到的難題。而且我用的是C語言來實(shí)現(xiàn)的控制,這次的應(yīng)用鞏固了我的C語言知識。總之我覺得只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,
93、必須把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。</p><p><b> !</b></p><p><b> 參考文獻(xiàn)</b></p><p> [1]楊西明,朱騏主編.單片機(jī)編程與應(yīng)用入門[M].北京:機(jī)械工業(yè)出版社.2004(06)
94、60;</p><p> [2]先鋒工作室編著.單片機(jī)程序設(shè)計(jì)實(shí)例[J].北京:清華大學(xué)出版社.2003</p><p> [3]謝宜仁主編. 單片機(jī)實(shí)用技術(shù)問答[J].北京:人民郵電出版社. 2003</p><p> [4]梁麗.電子密碼鎖的計(jì)算機(jī)仿真設(shè)計(jì)[J].計(jì)算機(jī)仿真,2005</p><p> [5]房小翠,王金鳳編著.單
95、片機(jī)實(shí)用系統(tǒng)設(shè)計(jì)技術(shù)[M].北京:國防工業(yè)出版社.1999(06)</p><p> [6]王寬仁.可靠安全的智能密碼鎖[J].電子技術(shù)應(yīng)用. 2001</p><p> [7]李捷,陳典濤,陳建華,等.一種基于單片機(jī)的電子密碼鎖的設(shè)計(jì) [J].農(nóng)機(jī)化研究,2004</p><p> [8]董繼成. 能防止多次試探密碼的單片機(jī)密碼鎖[J].國外電子元器件.20
96、04</p><p> [9]趙益丹,徐曉林,周振峰編著.電子密碼鎖的系統(tǒng)原理、設(shè)計(jì)程序及流程圖[J].嘉興學(xué)院學(xué)報(bào),2003</p><p> [10]張培仁.基于C語言編程 MCS- 51單片機(jī)原理與應(yīng)用[M].北京: 清華大學(xué)出版社,2002(12)</p><p> [11]李朝清. PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù)[M]. 北京:北京航空航天大學(xué)出版社 ,
97、 1999(02)</p><p> [12]路而紅.專用集成電路設(shè)計(jì)與電子設(shè)計(jì)自動(dòng)化[M].北京:清華大學(xué)出版社,2004(08)</p><p> [13]劉文濤.MCS-51單片機(jī)培訓(xùn)教程(C51)版[M].北京:電子工業(yè)出版社,2005(8) </p><p> [14]王為青 程國鋼.單片機(jī)Keil Cx51 應(yīng)用開發(fā)技術(shù)[M].北京:人民郵電出版社
98、,2007(03)</p><p> [15]范風(fēng)強(qiáng) 蘭嬋麗.單片機(jī)語言C51應(yīng)用實(shí)戰(zhàn)集錦[M].電子工業(yè)出版社,2003</p><p> [16]龔運(yùn)新.單片機(jī)C語言開發(fā)技術(shù)[J].北京:清華大學(xué)出版社,2006</p><p> [17]貝貝.單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法[M].北京:清華大學(xué)出版社,2006(07)</p><p&
99、gt; [18]王宜懷.單片機(jī)原理及其嵌入式應(yīng)用教程[M].北京::北京希望電子出版社,2002(12)</p><p><b> 附 錄 </b></p><p><b> 程序代碼</b></p><p> en bit p2.2;</p><p> rw bit p2.1;</
100、p><p> rs bit p2.0;</p><p> display equ p0;</p><p> speaker bit p3.7;</p><p> led bit p2.7;</p><p> open bit p2.6;</p><p> returnbit bit 2
101、0h.1;</p><p> ORG 0000h;</p><p> LJMP start;</p><p> ORG 000bh;</p><p> LJMP intermit_t0;</p><p> ORG 001bh;</p><p> LJMP intermit_t1;&l
102、t;/p><p> ORG 0030h;</p><p><b> start:</b></p><p> MOV sp,#60h;</p><p> lcall sys_initialization;</p><p> main0: lcall strat_display;</p&
103、gt;<p><b> main:</b></p><p> clr speaker</p><p><b> clr led;</b></p><p><b> setb tr0;</b></p><p> lcall key;</p>
104、<p> cjne a,#'A',next1;</p><p> LJMP set_password;</p><p> next1: cjne a,#'B',next2;</p><p> LJMP input_password;</p><p> next2: ajmp main;<
105、;/p><p> sys_initialization:</p><p><b> clr led;</b></p><p> setb open;</p><p> clr speaker;</p><p> MOV 34h,#'1'; </p><p&
106、gt; MOV 35h,#'2';</p><p> MOV 36h,#'3';</p><p> MOV 37h,#'4';</p><p> MOV 38h,#'5';</p><p> MOV 39h,#'6';
107、 ;存放初始密碼</p><p> MOV r7,#12;</p><p> MOV r0,#40h;</p><p> loop: MOV @r0,#10h;</p><p><b> inc r0;</b></p><p> djnz r7,loop;
108、 ;密碼鍵值存放區(qū)清零完畢</p><p> lcall delay0_1s;</p><p> MOV p0,#03h;</p><p> call write_instruction; ;液晶軟復(fù)位</p><p> MOV p0,#01h;</p>&
109、lt;p> call write_instruction;</p><p> mov p0,#3fh;</p><p> call write_instruction;</p><p> mov p0,#0fh;</p><p> call write_instruction;</p><p> mo
110、v p0,#06h;</p><p> call write_instruction; ;液晶初始化完畢</p><p> mov r4,#10;</p><p> mov tmod,#11h;</p><p> mov th0,#0b0h;</p><p><b&
111、gt; setb ea;</b></p><p> setb et0; ;定時(shí)器t0,0.5s定時(shí)中斷初始化完畢</p><p> ret; ;系統(tǒng)初始化完畢</p><p> intermit_t0:</p><p><b>
112、; push acc;</b></p><p><b> push psw;</b></p><p> mov th0,#3ch;</p><p> mov tl0,#0b0h;</p><p> djnz r4,return;</p><p><b> clr
113、led;</b></p><p> mov r4,#10;</p><p> return: pop psw;</p><p><b> pop acc;</b></p><p><b> reti;</b></p><p> intermit_t1:&
114、lt;/p><p><b> push acc;</b></p><p><b> push psw;</b></p><p> mov th1,#9eh;</p><p> mov tl1,#58h;</p><p> djnz r4,return_t1;</p
115、><p><b> clr led;</b></p><p> cpl speaker;</p><p> mov r4,#10;</p><p> return_t1:pop psw;</p><p><b> pop acc;</b></p><
116、p><b> reti;</b></p><p> ;;;;;;;;;;;;;;;;; 鍵盤掃描</p><p> key: call ks;</p><p><b> jnz k1;</b></p><p><b> jmp key;</b></p>
117、;<p><b> k1:</b></p><p> call delay;</p><p><b> call ks;</b></p><p><b> jnz k2;</b></p><p><b> jmp key;</b>&
118、lt;/p><p><b> k2:</b></p><p><b> clr tr0;</b></p><p><b> clr led;</b></p><p> mov r2,#0feh;</p><p> mov r6,#00h;</
119、p><p> k3:mov a,r2;</p><p><b> mov p1,a;</b></p><p><b> mov a,p1;</b></p><p> jb acc.4,l1;</p><p><b> mov a,#0;</b>&l
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的電子密碼鎖設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的電子密碼鎖設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)報(bào)告--基于單片機(jī)的電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)控制的電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)控制的電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)控制的電子密碼鎖
- 基于單片機(jī)控制的電子密碼鎖課程設(shè)計(jì)
- 基于單片機(jī)的電子密碼鎖的課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--電子密碼鎖
- 基于單片機(jī)的電子密碼鎖設(shè)計(jì) 單片機(jī)課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)--電子密碼鎖報(bào)告
- 單片機(jī)課程設(shè)計(jì)---電子密碼鎖報(bào)告
- 單片機(jī)課程設(shè)計(jì)--門禁電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)----電子密碼鎖報(bào)告
- 單片機(jī)-密碼鎖課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-密碼鎖
- 單片機(jī)課程設(shè)計(jì)--密碼鎖
評論
0/150
提交評論