版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 本 科 畢 業(yè) 設(shè) 計(論文)</p><p> 題目 基于單片機的電子密碼鎖設(shè)計</p><p> 院(系部) </p><p> 專業(yè)名稱 電子信息工程 </p><p> 年級班級 </p><p> 學(xué)生姓名
2、 </p><p> 指導(dǎo)教師 </p><p> 2011年 月 日</p><p><b> 摘要</b></p><p> 本課題設(shè)計了一種基于單片機的數(shù)字電子密碼鎖,這種數(shù)字電子密碼鎖以單片機作為數(shù)據(jù)處理主控芯片。</p><p
3、> 電子密碼鎖的設(shè)計主要由四部分組成:4×4矩陣鍵盤接口電路、以AT89S52芯片為核心的密碼鎖的數(shù)據(jù)處理及控制電路、掉電情況下依然能保存密碼的EEPROM存儲器芯片,輸出七段顯示電路。另外系統(tǒng)還有LED提示燈,報警蜂鳴器,單片機復(fù)位電路等。</p><p> 電子密碼鎖設(shè)計的關(guān)鍵問題是實現(xiàn)密碼的輸入、清除、開鎖、更改等功能。同時該密碼鎖具有設(shè)計方法合理,簡單易行,成本低,安全實用等特點,符合
4、住宅,辦公室等場所的用鎖要求,具有推廣價值。</p><p> 關(guān)鍵詞 單片機 密碼鎖 4*4矩陣鍵盤 EEPROM存儲芯片 實用經(jīng)濟</p><p><b> Abstract</b></p><p> This project designed a digital electronic lock which used a M
5、CU as data process and control chip. The main functions digital electronic lock are as follows:</p><p> The design of the electronic password lock is mainly made up of four parts: 4×4 matrix keyboard
6、 interface circuit, data processing and control circuit, eeprom memory chip that is used to keep password when the lock loses power and display circuit. In addition the system also consists of LED lights, alarm buzzers,
7、single-chip reset circuit and so on..The key question of the electronic lock designing is the realization of functions, such as the input password, clear password, unlock, change passwo</p><p> Key words:
8、SCM Cipher lock 4*4matrix keyboard EEPROM Practical economy </p><p><b> 目錄</b></p><p><b> 1 緒論1</b></p><p> 1.1國內(nèi)外研究綜述1</p><p> 1.2選題的
9、目的和意義2</p><p> 1.3本論文的任務(wù)3</p><p> 2電子密碼鎖總體設(shè)計4</p><p> 2.1系統(tǒng)總體設(shè)計4</p><p><b> 2.2單片機5</b></p><p> 2.3密碼存儲芯片選擇6</p><p> 2
10、.4鍵盤輸入方案比較8</p><p> 2.5顯示方案比較10</p><p> 3電子密碼鎖的硬件設(shè)計12</p><p> 3.1系統(tǒng)結(jié)構(gòu)框圖12</p><p> 3.2主控部分13</p><p> 3.3顯示部分13</p><p> 3.4鍵盤輸入部分14
11、</p><p> 3.5密碼存儲部分15</p><p> 3.6電源部分16</p><p> 3.7其它功能部分18</p><p> 3.8 電子密碼鎖的電路原理圖21</p><p> 4電子密碼鎖的軟件組成22</p><p> 4.1系統(tǒng)軟件設(shè)計流程22&l
12、t;/p><p> 4.2 Keil uVision2軟件介紹23</p><p> 4.3各主要部分的功能實現(xiàn)程序設(shè)計24</p><p> 4.3.1初始化程序設(shè)計24</p><p> 4.3.2按鍵處理程序設(shè)計27</p><p> 4.3.3密碼更改程序設(shè)計31</p><
13、p><b> 5系統(tǒng)仿真34</b></p><p> 5.1系統(tǒng)仿真過程34</p><p> 5.2仿真調(diào)試中遇到的問題及解決辦法35</p><p><b> 總結(jié)36</b></p><p><b> 致謝37</b></p>&
14、lt;p><b> 參考文獻(xiàn)38</b></p><p><b> 附錄39</b></p><p><b> 1 緒論</b></p><p> 1.1國內(nèi)外研究綜述</p><p> 在電子鎖出現(xiàn)以前人們廣泛的使用機械鎖,但是隨著時間的推移機械鎖已不能滿
15、足人們的要求,于是電子鎖應(yīng)用而生。以前由于電子器件所限,開發(fā)的電子密碼鎖種類不多,保密性差,最基本的就是只依靠最簡單的模擬電子開關(guān)來實現(xiàn)的,制作雖簡單但很不安全。 </p><p> 現(xiàn)在電子鎖的技術(shù)可以說是時時的在進(jìn)步,出現(xiàn)了很多性能強,安全可靠的新型電子鎖。如:遙控式電子密碼鎖,卡式電子鎖,生物特征電子鎖等。但是應(yīng)用廣泛的還是鍵盤式電子密碼鎖。</p><p> 遙控式電子密碼鎖:
16、優(yōu)點是傳輸信息量可以很大、速度極快、人眼識別不出來,又無法在光路徑上用儀器捕獲信號進(jìn)行復(fù)制,因此保密性極高。缺點是需要隨身保管遙控器即鑰匙,對于某些方面來說不是很實用。</p><p> 卡式密碼鎖:能夠在卡中存儲大量的個人信息,即容量非常的大,并且可以實現(xiàn)一卡多用。但是卡式密碼鎖也有很大的缺陷,開鎖用的卡很可能受到一些電子產(chǎn)品的磁干擾,出現(xiàn)“失效”; 同時卡也很容易被丟失,丟失了卡就需要盡快的取消卡的授權(quán),一
17、面?zhèn)€人的重要信息丟失,這個過程也是相當(dāng)麻煩的。</p><p> 生物特征電子鎖:人的某些與生俱來的個性特征(如手、眼睛、聲音的特征)幾乎不可重復(fù),作為“鑰匙”就是唯一的。但是生物特征電子鎖需要大量的個人身體上的信息,這就使其處理上會變得復(fù)雜,這也確定了生物特征電子鎖目前僅適用于極個別的行業(yè)。</p><p> 鍵盤式電子鎖:主要依靠的是鍵盤輸入密碼驗證,不需要攜帶專一的“鑰匙”,只需
18、要記住密碼即可。鍵盤式電子鎖有采用數(shù)字電路控制的,但控制的準(zhǔn)確性和靈活性比較的差;有以單片機為核心的鍵盤式電子鎖,它的性能比較的穩(wěn)定,而且性價比也比較的高,受到了廣泛的關(guān)注。盡管新式電子防盜鎖層出不窮,但鍵盤式電子密碼鎖仍然“老樹發(fā)新芽”,在市場上居于主流地位。</p><p> 伴隨著科學(xué)技術(shù)的發(fā)展,電子的應(yīng)用技術(shù)的提高,又出現(xiàn)了一些帶有微型處理器的智能電子鎖,它除了具有電子密碼鎖的功能外,還引入了智能化管理
19、的功能,從而使電子密碼鎖具有更高的安全性和可靠性。目前發(fā)達(dá)國家大規(guī)模使用的智能門禁系統(tǒng),就是一種使用多種更加安全,可靠方法來實現(xiàn)大門管理的新型電子密碼鎖。發(fā)達(dá)國家的電子密碼鎖技術(shù)已經(jīng)相當(dāng)?shù)某墒?,智能化、集成化程度很高。而我國的?yīng)用還不是很廣泛,一般應(yīng)用在一些高級的場所之中,例如銀行的保險柜、保險箱、高級酒店等,家居應(yīng)用很少。我國的電子密碼鎖的技術(shù)也是比較落后的,不是很成熟。開發(fā)的密碼鎖大多采用的是普通的數(shù)字電路設(shè)計生產(chǎn)的,與機械鎖相比較
20、的確存在著很多的優(yōu)點,但智能化的程度不高,編碼的組合很少。</p><p> 1.2選題的目的和意義</p><p> 在我們的日常生活中,經(jīng)常會遇到一些地方需要進(jìn)行防護,而這些地方的防護多是以使用各種各樣的鎖來進(jìn)行的。常見的大致有兩個大的方面,一種是機械鎖,一種是電子密碼鎖鎖。傳統(tǒng)簡單的機械鎖一般是結(jié)構(gòu)比較的簡單,很容易遭到外部的破壞,而機密復(fù)雜的大型機械鎖又比較的笨重,不適合大眾的
21、需要。在科學(xué)技術(shù)不斷發(fā)展的今天,電子密碼鎖已經(jīng)受到了越來越多的關(guān)注。電子密碼鎖具有保密性高,無靈活零件,不會磨損,壽命長,靈活性好等特點。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品。但是電子密碼鎖也存在著缺陷1.價格比較的昂貴;2推廣性不強。現(xiàn)在采用單片機制作的電子鎖就克服了這些缺陷。單片機具有體積小、功能強,性價比高等特點,廣泛應(yīng)用于電子產(chǎn)品?;趩纹瑱C的電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制
22、機械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。</p><p> 本次選題的就是設(shè)計一種基于單片機控制的具有本機開鎖和報警功能的電子密碼鎖,在電子密碼鎖的顯示和鍵盤輸入有方案的比較,使電子密碼鎖更加的實用經(jīng)濟,能夠?qū)嶋H生活中得到廣泛的應(yīng)用。</p><p> 用單片機制作的電子鎖有以下的特點:1.保密性好,采用的是多位密碼輸入。2.破解保護,能夠及時的鎖定鍵盤報警。3.界面簡潔,密碼操
23、作也非常簡單。</p><p> 1.3 本論文的任務(wù)</p><p> 本設(shè)計的電子密碼鎖的實現(xiàn)是基于單片機的,任務(wù)及工作如下:</p><p> 1、在Proteus軟件環(huán)境中進(jìn)行硬件電路圖的設(shè)計。</p><p> 2、在Keil軟件環(huán)境中進(jìn)行系統(tǒng)的軟件編程,并進(jìn)行程序源文件的編譯和調(diào)試,最后生成.hex文件。此.hex文件是硬
24、件電路運行實現(xiàn)的源代碼來源。</p><p> 3、把.hex文件加載到單片機芯片,然后在Proteus軟件環(huán)境中運行硬件電路。</p><p> 2 電子密碼鎖總體設(shè)計</p><p><b> 2.1系統(tǒng)總體設(shè)計</b></p><p> 本設(shè)計主要由單片機、矩陣鍵盤、LED數(shù)碼管顯示和密碼存儲等部分組成。其
25、中矩陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實現(xiàn)。由用戶通過連接單片機的矩陣鍵盤輸入密碼,后經(jīng)過單片機對用戶輸入的密碼與自己保存的密碼進(jìn)行對比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路或者報警電路控制開鎖還是報警,實際使用時只要將單片機的負(fù)載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當(dāng)然也可以用繼電器的常開觸點去控制電磁鐵吸合線圈。其設(shè)計原理框圖如圖2.1所示:</p><p><b>
26、 圖2.1 原理框圖</b></p><p> 單片機:本部分的功能包括寫入和讀取各種控制命令及數(shù)據(jù)處理,同時還要對各執(zhí)行單元進(jìn)行控制。單片機是整個系統(tǒng)的控制核心及數(shù)據(jù)處理核心。</p><p> 鍵盤部分:本部分由用戶通過鍵盤輸入各種信息送入到單片機進(jìn)行處理。</p><p> 顯示部分:本部分完成的是單片機處理后的數(shù)據(jù)和信息的顯示以及系統(tǒng)提示
27、信息的顯示。</p><p> 密碼存儲部分:本部分完成存儲原始密碼和用戶更改密碼數(shù)據(jù)的功能。</p><p> 其它部分:本部分的目的是為了提高系統(tǒng)的可用性和實用性。主要包括電源部分、復(fù)位部分、晶振部分、開鎖部分和報警部分。電源部分主要的功能是為單片機提供適當(dāng)?shù)墓ぷ麟娫?,同時也為其它的部分提供電源。復(fù)位部分功能是使單片機在出現(xiàn)故障時進(jìn)行成功的復(fù)位。晶振部分功能是給單片機提供時鐘。開鎖
28、部分主要是根據(jù)單片機數(shù)據(jù)處理的結(jié)果驅(qū)動繼電器控制開鎖的操作。報警部分主要的功能就是在錯誤操作下實現(xiàn)報警提示。</p><p><b> 2.2單片機選擇</b></p><p> 單片機的種類繁多,各種型號都有其一定的應(yīng)用環(huán)境,因此在選用時要多加比較,合理選擇,以期獲得最佳的性價比。在多數(shù)的電子設(shè)計中,基于性價比的考慮,8位單片機為首選。8位單片機中以MCS-51
29、系列單片機及其兼容機所占的份額最大。MCS-51的硬件結(jié)構(gòu)決定了其指令系統(tǒng)不會發(fā)生變化。因此在對不同公司的單片機進(jìn)行選型時,只需要比較芯片內(nèi)部資源即可。</p><p> 在以前的電子設(shè)計中,應(yīng)用比較廣泛的是AT89C51單片機,但是該單片機存在著致命的缺陷不支持ISP功能。Atmel公司現(xiàn)在已停止了AT89C51的生產(chǎn),而加上了ISP功能的AT89S51、AT89S52誕生了。AT89S系列單片機在工藝上進(jìn)行
30、了改進(jìn),采用了0.35mm的新工藝,不但降低了成本,而且增加了功能,提升了單片機的性能,提高了市場競爭力。</p><p> AT89S系列單片機新增了許多功能,性能也有了較大的提升,但是價格仍舊與AT89C系列的價格相差不大。新增的功能之中最具影響力的就是ISP在線編程功能,這個功能的優(yōu)勢在于,改寫單片機Flash存儲器內(nèi)的程序時不需要把芯片從工作環(huán)境中剝離,是一個強大易用的功能。</p>&l
31、t;p> 顯然,AT89S系列單片機在性能上要比AT89C系列的單片機優(yōu)良的多,而且價格也沒有什么提高。所以選擇AT89S系列作為本系統(tǒng)的的主控部分。而AT89S系列中的89S51和89S52在實際應(yīng)用中最多,本設(shè)計中軟件部分需要大量的程序編程,89S51內(nèi)的程序存儲器太小,不能滿足要求,因此選擇AT89S系列的AT89S52作為本設(shè)計的主控部分。</p><p> AT89S52是一種低功耗、高性能C
32、MOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(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 口線
33、,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。</p><p> AT89S52引腳圖如圖
34、2.2所示:</p><p> 圖2.2 AT89S52引腳圖</p><p> AT89S52引腳功能說明如下:</p><p><b> VCC:電源電壓</b></p><p><b> GND:地</b></p><p> P0 口:P0口是一個8位漏極開路
35、的雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口,每位能驅(qū)動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0內(nèi)部上拉電阻被激活。 在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。 </p><p> P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I
36、/O 口,P1 輸出緩沖器能驅(qū)動(吸收或輸出電流)4 個 TTL 邏輯門電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(TTL)。 此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2 的觸發(fā)輸入(P1.1/T2EX),在flash編程和校驗時,P1口接收低8位地址字節(jié)。</p>&
37、lt;p> P1端口引腳的第二功能如表1所示</p><p> 表1 P1端口引腳的第二功能</p><p> P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外
38、部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。 </p><p> P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P3 輸出緩沖器能驅(qū)
39、動4 個 TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(TTL)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能。如表2所示:</p><p><b> 表2</b></p><p> 此外,P3口還接收一些用于FLASH閃存編程和程序校驗的
40、控制信號。</p><p> RST——復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位。WDT溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRTO位(地址8EH)可打開或關(guān)閉該功能。DISRTO位缺省為RESET輸出高電平打開狀態(tài)。</p><p> ALE/PROG——當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址
41、的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。</p><p> P
42、SEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89S52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將有兩次有效的PSEN信號。</p><p> EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)
43、部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。</p><p> XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。</p><p> XTAL2:振蕩器反相放大器的輸出端。</p><p> 2.3密碼存儲芯片選擇</p><p> 本部分主要是論證密碼存儲芯片的選型。存儲器的類型按功能分
44、只讀存儲器(Read-Only Memory,簡稱ROM)和隨機存取存儲器(Random Access Memory,簡稱RAM)。隨機存取存儲器與只讀存儲器的根本區(qū)別在于:隨機存儲器在正常工作狀態(tài)時可隨時向存儲器里寫入數(shù)據(jù)或從中讀出數(shù)據(jù),在存儲器斷電后信息全部丟失。</p><p> 只讀存儲器又分為固定掩膜存儲器和可編程存儲器。固定掩膜存儲器在生產(chǎn)時就根據(jù)用戶的要求把數(shù)據(jù)和程序固化其中,其中的內(nèi)容用戶不可以
45、再修改,只能讀出。而可編程存儲器便于用戶根據(jù)自己的需要來寫入特定的信息,根據(jù)存儲矩陣中存儲單元電路的結(jié)構(gòu)不同,可編程的ROM有PROM、EPROM和EEPROM等三種。PROM的編程是由用戶而不是生產(chǎn)廠家完成,增加了靈活性,但編程是一次性的,且可靠性較差,目前已很少使用。EPROM作為一種可以多次擦除和重寫的ROM,克服了掩膜式ROM和PROM只能一次性寫入的缺點,滿足了實際工作中需要多次修改程序或數(shù)據(jù)的可能,前提條件是存儲矩陣中現(xiàn)有的
46、程序或數(shù)據(jù)必須首先擦除。EPROM的擦除和編程寫入是采用專門的編程器設(shè)備完成的,并且擦除的周期比較的長。電可擦除可編程只讀存儲器EEPROM也稱E2PROM。與EPROM擦除時把整個芯片的內(nèi)容全變成“1”不同,EEPROM的擦除可以按字節(jié)分別進(jìn)行,且字節(jié)的編程和擦除都只需10ms,并且不需要將芯片從機器上拔下以及諸如用紫外線光源照射等特殊操作,可以在線進(jìn)行擦除和編程寫入。因此根據(jù)設(shè)計的要求,采用的是EEPROM。常見的EEPROM<
47、;/p><p> 表3 AT24C系列EEPROM對比表</p><p> 本設(shè)計中存儲的數(shù)據(jù)不多,因此選用AT24C02即可滿足要求。</p><p> AT24C02是美國Atmel公司的低功耗CMOS型EEPROM,內(nèi)含256×8位存儲空間,具有工作電壓寬(2.5~5.5 V)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10 ms)、抗干擾能
48、力強、數(shù)據(jù)不易丟失、體積小、掉電情況下可以繼續(xù)保存數(shù)據(jù)等特點。AT24C02芯片作為系統(tǒng)的從器件,它與主器件之間的通信遵循I²C總線協(xié)議,I²C總線協(xié)議規(guī)定,任何將數(shù)據(jù)傳送到總線的器件作為發(fā)送器。任何從總線接受數(shù)據(jù)的器件為接收器。數(shù)據(jù)傳送是由產(chǎn)生串行時鐘和所有起始停止信號的主器件控制的。主器件和從器件都可以作為發(fā)送器或者是接收器。AT24C02的引腳如圖2.3所示:</p><p> 圖2.
49、3 AT24C02的引腳</p><p><b> 引腳的功能:</b></p><p> 串行時鐘(SCL):用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時鐘。</p><p> 串行數(shù)據(jù)/地址(SDA):用于器件所有數(shù)據(jù)的發(fā)送或接收,SDA是一個開漏輸出管腳,可與其它開漏輸出或集電極開路輸出進(jìn)行線。</p><p> 器
50、件地址輸入端(A0、A1和A2):用于多個器件級聯(lián)時設(shè)置器件地址,當(dāng)有多個從器件連接在I²C總線上時,此端口用于選擇不同的從器件。本次設(shè)計中三個引腳全部接地。</p><p> 寫保護(WP):如果WP管腳連接到VCC,所有的內(nèi)容都被寫保護(只能讀)。當(dāng)WP管腳連接地線或懸空,允許器件進(jìn)行正常的讀/寫操作。</p><p> 2.4鍵盤輸入方案比較</p>&l
51、t;p> 鍵盤輸入是現(xiàn)階段電子設(shè)計中最常用、最實用的輸入設(shè)備。設(shè)計中常用的鍵盤輸入方案有兩種:獨立式鍵盤、矩陣式鍵盤。</p><p><b> 獨立式鍵盤</b></p><p> 獨立式按鍵是指直接用I/O口線構(gòu)成的單個按鍵的電路。每個獨立式按鍵單獨占有一根I/O口線,每個按鍵的工作狀態(tài)都是獨立的不會影響到其他的按鍵的工作狀態(tài)。獨立式按鍵的電路如圖2.
52、4所示:</p><p> 圖2.4 獨立式按鍵電路原理圖</p><p> 通常獨立式鍵盤的按鍵輸入都采用低電平有效,上拉電阻保證了按鍵的斷開,I/O口線有確定的高電平。獨立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但是每個按鍵都需要獨立的I/O口,如果按鍵的數(shù)量較多的時候,I/O就會造成極大的浪費。</p><p><b> 矩陣式鍵盤</b>
53、;</p><p> 行列式鍵盤又叫矩陣式鍵盤。用I/O口線組成行列結(jié)構(gòu),按鍵位于行列的交點位置上。矩陣式鍵盤電路原理如圖2.5所示:</p><p> 圖2.5 矩陣式鍵盤電路原理圖</p><p> 本次設(shè)計中電子密碼鎖的鍵盤中,出去0-9的數(shù)字鍵外,還需要一些輔助的功能鍵,總體上來說按鍵的數(shù)量是相當(dāng)?shù)亩嗟?。采用獨立式按鍵的方案,會對單片機的I/O口造成很
54、大的浪費;采用矩陣式的按鍵方案就比較的適用于本次設(shè)計。</p><p><b> 2.5顯示方案比較</b></p><p> 設(shè)計中常用的輸出顯示設(shè)備有兩種:數(shù)碼管和LCD</p><p><b> LCD顯示方案</b></p><p> LCD是一種被動式的顯示器,利用液晶能改變光線通
55、過方向的特性,來達(dá)到顯示的目的。LCD顯示清晰美觀,具有功能低、抗干擾能力強的優(yōu)點,廣泛應(yīng)用于儀器儀表、控制系統(tǒng)等。液晶顯示器的驅(qū)動方式由電極引線的選擇方式確定,選擇了液晶顯示器之后便無法改變驅(qū)動的方式。</p><p> 當(dāng)LCD顯示筆端上兩個電極電壓相位相同時,兩電極之間的電位差為0,該字段就不顯示;當(dāng)兩個電極電壓的相位相反時,兩電極之間的電位差為兩倍的方波電壓,該字段顯示。其原理電路如圖2.6所示:<
56、;/p><p><b> 圖2.6 原理電路</b></p><p><b> 數(shù)碼管顯示方案</b></p><p> 七段數(shù)碼管顯示器是有8個發(fā)光二極管組成的(a,b,c,d,e,f,g),LED七段數(shù)碼管的顯示即相應(yīng)的發(fā)光二極管導(dǎo)通或者是截斷,不同的組合等到的字符顯示不一樣的。數(shù)碼管顯示的數(shù)據(jù)內(nèi)容比較的直觀,一個數(shù)
57、碼管可以顯示一位,多個數(shù)碼管就可以顯示多位,且程序設(shè)計和外圍電路設(shè)計都十分的簡單。數(shù)碼管顯示的每一位都需要有一個8位輸出口控制,當(dāng)需要較多的數(shù)碼管顯示的時候,單片機如果要直接控制各個數(shù)碼管的顯示是不可能的,因為沒有足夠的I/O口線進(jìn)行控制。通常采用串口發(fā)送數(shù)據(jù),然后用串行輸入并行輸出的移位寄存器來驅(qū)動數(shù)碼顯示器。實際應(yīng)用中,簡單的可以使用三極管來驅(qū)動,但是本設(shè)計為了使顯示更加的穩(wěn)定,采用的是74HC164串行移位寄存器來驅(qū)動。</
58、p><p> 本次設(shè)計,顯示的東西不需要很復(fù)雜,信息也較少,用數(shù)碼管顯示完全可以滿足要求,而使用LCD顯示成本可能會比較的高,所以采用數(shù)碼管顯示。</p><p> 3電子密碼鎖的硬件設(shè)計</p><p> 本部分主要介紹基于AT89S52單片機的電子密碼鎖的硬件設(shè)計。系統(tǒng)的硬件部分由鍵盤輸入部分、密碼存儲部分、顯示部分、電源輸入部分、復(fù)位部分、晶振部分、報警部分
59、、開鎖部分組成。</p><p><b> 3.1系統(tǒng)結(jié)構(gòu)框圖</b></p><p> 系統(tǒng)以AT89S52單片機作為數(shù)據(jù)和控制部分;以矩陣鍵盤輸入作為鍵盤輸入部分的方式;數(shù)碼管顯示作為數(shù)據(jù)輸出顯示部分;由繼電器控制電磁閥動作的開鎖電路作為開鎖部分;蜂鳴器作為報警部分,系統(tǒng)的硬件結(jié)構(gòu)框圖如圖3.1所示:</p><p> 圖3.1 系統(tǒng)
60、的硬件結(jié)構(gòu)圖</p><p><b> 3.2主控部分</b></p><p> 本次設(shè)計中,選用Ateml公司的51系列單片機AT89S52芯片作為電子密碼鎖的數(shù)據(jù)處理及操作控制芯片。只有單片機芯片是無法完成數(shù)據(jù)處理及控制功能的,必須有附加的電路,使單片機芯片組成一個可運行的系統(tǒng)才能實現(xiàn)其功能。本次設(shè)計,由AT89S52單片機連同附加電路構(gòu)成的單片機最小系統(tǒng)作為
61、主控。電路圖如圖3.2所示:</p><p><b> 圖3.2 最小系統(tǒng)</b></p><p><b> 3.3顯示部分</b></p><p> 電子密碼鎖采用數(shù)碼管進(jìn)行顯示,經(jīng)過單片機處理過的數(shù)據(jù)信息都由數(shù)碼管進(jìn)行顯示。單片機數(shù)據(jù)傳輸采用串行方式,數(shù)據(jù)通過單片機的串行數(shù)據(jù)口P3.0(RXD)進(jìn)行發(fā)送,接著應(yīng)用
62、74HC164串行移位寄存器把串行的數(shù)據(jù)轉(zhuǎn)換成8位的并行數(shù)據(jù),驅(qū)動LED 數(shù)碼管。74HC164芯片中,沒有數(shù)據(jù)鎖存器,使串行數(shù)據(jù)每到達(dá)一位,直接就被送到數(shù)碼管中,造成數(shù)據(jù)顯示不穩(wěn)定。為了使數(shù)據(jù)顯示穩(wěn)定,在移位寄存器和數(shù)碼管之間加入數(shù)據(jù)鎖存器,來穩(wěn)定數(shù)碼管的數(shù)據(jù)顯示。顯示部分如圖3.3所示:</p><p> 圖3.3 顯示部分電路圖</p><p><b> 3.4鍵盤輸入
63、部分</b></p><p> 在電子密碼鎖中各種信息的輸入都是通過鍵盤輸入部分完成的。把單個按鍵按照4*4組成鍵盤,四條行線連接到單片機的P1.0-P1.3四條I/O口線上, 四條列線連接到單片機的P1.4-P1.7四條I/O口線上,運行的時候,單片機通過控制P1口得高低電平,然后根據(jù)變化進(jìn)行判斷。單片機向行線輸入高電平,向列線輸入低電平,按鍵未被按下之前保持電平給定不變,按鍵按下,行線的高電平變
64、成低電平。同樣對列線進(jìn)行判定,即可判斷所輸入的信息。鍵盤部分的電路連接如圖3.4所示:</p><p> 圖3.4 鍵盤部分電路圖</p><p><b> 3.5密碼存儲部分</b></p><p> 在電子密碼鎖中,存入的密碼是需要永久的保存的。在設(shè)計中采用了在掉電的情況下依然能夠保存數(shù)據(jù)的EEPROM存儲芯片24C02存儲密碼。設(shè)計
65、的密碼鎖因為只需要存儲6位密碼,數(shù)據(jù)量很小,所以24C02的地址選擇端口直接接地,時鐘輸入端口(SCK)和數(shù)據(jù)輸入端口(SDA)和單片機的相連即可。電路連接如圖3.5所示:</p><p> 圖3.5 密碼存儲部分電路圖</p><p><b> 3.6電源部分</b></p><p> 密碼鎖主控制部分電源需要用5V直流電源供電,把頻率
66、為50Hz、有效值為220V的單相交流電壓轉(zhuǎn)換為幅值穩(wěn)定的5V直流電壓。其主要原理是把交流電經(jīng)過電源變壓器、整流電路、濾波電路、穩(wěn)壓電路轉(zhuǎn)換成穩(wěn)定的直流電壓。
67、
68、 </p><p> 由于輸入電壓為電網(wǎng)電壓,一般情況下所需直流電壓的數(shù)值和電網(wǎng)電壓的有效值相差較大,因而電源變壓器的作用顯現(xiàn)出來起到降壓作用。降壓后還是交流電壓,所以需要整流電路把交流電壓轉(zhuǎn)換成直流電壓。由于經(jīng)整流電路整流后的電壓含有較大的交流分量,會影響到負(fù)載電路的正常工作。需通過低通濾波電路濾波,使輸出電壓平滑。穩(wěn)壓電路的功能是使輸出直流
69、電壓基本不受電網(wǎng)電壓波動和負(fù)載電阻變化的影響,從而獲得穩(wěn)定性足夠高的直流電壓。</p><p> 為了防止停電情況的發(fā)生,本電路后備了UPS電源,它包括市電供電電路,停電檢測電路,電子開關(guān)切換電路,蓄電池充電電路和蓄電池組成。主電源如圖3.6所示:</p><p><b> 圖3.6 主電路圖</b></p><p> 220V市電通過變
70、壓器降壓成12V的交流電,再經(jīng)過整流橋整流,7805穩(wěn)壓到5V送往電子切換電路,由于本電路功耗較少,所以選用10W的小型變壓器。</p><p> 由R2,R3,R4,R5及J1構(gòu)成電壓比較器,正常情況下,V+<V- J1輸出高電平,繼電器的常閉觸點和市電相連;當(dāng)市電斷開,V+>V- J6時,由Q1,Q2構(gòu)成的達(dá)林頓管使繼電器K1開啟,將其常開觸電將蓄電池和電路相連,實現(xiàn)市電和蓄電池供電的切換,保證
71、電子密碼鎖的正常工作(視電池容量而定持續(xù)時間)。Q3,Q4構(gòu)成的蓄電池自動充電電路,它在電池充滿后自動停止充電,其中D5亮為正在充電,D7為工作指示。由R8,R11,Q4構(gòu)成電壓檢測電路,蓄電池電壓低,則Q3,Q4導(dǎo)通,實現(xiàn)對其充電;充滿后,Q3,Q4截止,停止充電,同時D5熄滅,電路中C6的作用是濾除干擾信號。如圖3.7、3.8所示:</p><p> 圖3.7 停電檢測及電子開關(guān)切換電路</p>
72、<p> 圖3.8 蓄電池自動充放電電路</p><p><b> 3.7其它功能部分</b></p><p> 密碼鎖系統(tǒng)中主要的為以上的幾個部分,但是為了使系統(tǒng)更加的完善,還需要一些附加的部分。</p><p><b> 復(fù)位部分</b></p><p> 單片機復(fù)位是使
73、CPU和系統(tǒng)中的其它功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,單片機剛開始接上電源,斷電或者是發(fā)生故障時都需要復(fù)位。單片機的復(fù)位輸入RST腳持續(xù)兩個機器周期高電平將使單片機復(fù)位。復(fù)位部分如圖3.9所示:</p><p> 圖3.9 復(fù)位部分電路</p><p><b> 報警部分</b></p><p> 報警部分是由陶瓷壓
74、電發(fā)聲裝置及外圍電路組成。當(dāng)密碼輸入不正確是會發(fā)出警報。報警電路如圖3.10所示:</p><p> 圖3.10 報警電路</p><p><b> 晶振部分</b></p><p> 本部分是為單片機提供時鐘控制信號,采用的電路是外接晶振和電容組成的并聯(lián)諧振回路。AT89S52引腳XTAL1和XTAL2與晶體振蕩器及電容C2、C1按圖4
75、-7所示方式連接。晶振、電容C1、C2及片內(nèi)與非門(作為反饋、放大元件)構(gòu)成了電容三點式振蕩器,振蕩信號頻率與晶振頻率及電容C1、C2的容量有關(guān),但主要由晶振頻率決定,范圍在0~33MHz之間,電容C1、C2取值范圍在5~30pF之間。根據(jù)實際情況,本設(shè)計中采用12MHZ做為系統(tǒng)的外部晶振。電容取值為20pF。如圖3.11所示:</p><p> 圖3.11 晶振部分電路</p><p>
76、;<b> 開鎖部分</b></p><p> 當(dāng)輸入正確的密碼的時候,單片機的其中一個引腳線發(fā)出信號,經(jīng)過三極管放大后,由繼電器驅(qū)動電磁閥動作將鎖打開。同時綠色的指示燈將會點亮。開鎖電路如圖3.12所示:</p><p> 圖3.12 開鎖電路</p><p> 3.8 電子密碼鎖的電路原理圖</p><p>
77、 根據(jù)系統(tǒng)所需要實現(xiàn)的功能,進(jìn)行的原理圖設(shè)計如圖3.13所示:</p><p> 圖3.13 電子密碼鎖的電路原理圖</p><p> 4電子密碼鎖的軟件組成</p><p> 4.1系統(tǒng)軟件設(shè)計流程</p><p> 本設(shè)計的軟件程序設(shè)計主要有(1)初始化程序(2)按鍵功能實現(xiàn)程序 (3)密碼修改程序(4)報警程序等組成。<
78、/p><p> 系統(tǒng)的總體流程圖如圖4.1所示:</p><p> 圖4.1 系統(tǒng)的總體流程圖</p><p> 4.2 Keil uVision2軟件介紹</p><p> 單片機開發(fā)中除必要的硬件外,同樣離不開軟件,本系統(tǒng)的軟件編程設(shè)計是在Keil軟件環(huán)境中完成的。我們寫的C語言、匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機器碼有兩種方法,
79、一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器
80、等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果使用C語言編程,那么Keil幾乎就是不二之選。即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令人事半功倍。</p><p> Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與
81、匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。</p><p> Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。
82、</p><p> 4.3各主要部分的功能實現(xiàn)程序設(shè)計</p><p> 4.3.1初始化程序設(shè)計</p><p> 電子密碼鎖系統(tǒng)在接通電源后,首先要對系統(tǒng)進(jìn)行初始化。初始化過程包括密碼鎖上鎖,密碼的讀入,LED數(shù)碼管的顯示內(nèi)容初始化,設(shè)定系統(tǒng)狀態(tài)指示等。流程圖如圖4.2所示:</p><p> 圖4.2 初始化程序設(shè)計流程圖<
83、;/p><p><b> 初始化程序如下:</b></p><p><b> ORG0000H</b></p><p> LJMPFIRST</p><p><b> ORG000BH</b></p><p> LJMPINT_T0<
84、/p><p><b> ORG0100H</b></p><p> FIRST:MOVSET_TIMES,#0;新密碼輸入次數(shù)清零</p><p> 從24C01C中讀數(shù)據(jù),數(shù)據(jù)送AT89C51中38H開始的16個字節(jié)中</p><p> MOVSLA,#0A0H;寫入控制字</p>
85、<p> MOVSUBA,#00H;目標(biāo)地址</p><p> MOVNUMBYTE,#6;寫入的字節(jié)數(shù)</p><p> LCALLIRDNBYTE;開始寫數(shù)據(jù)</p><p> BEGIN:MOVCNT_ERROR,#00H;密碼錯誤次數(shù)清零</p><p> START:C
86、LR LED_YELLOW;上鎖指示燈</p><p> SETBLED_GREEN;開鎖指示燈滅</p><p> SETBLED_RED;密碼錯誤指示燈滅</p><p> MOVKEY_CNT_SET,#00H</p><p> MOVCNT_A,#00H</p><p
87、> MOVCNT_B,#00H</p><p> MOVKEY_CNT,#00H</p><p> MOVLINE,#00H</p><p> MOVROW,#00H</p><p> MOVVAL,#00H</p><p> MOVWORD_ADRESS,#4CH</p
88、><p> MOVLED_BIT_1,#0AH ;數(shù)碼管全"-"</p><p> MOVLED_BIT_2,#0AH</p><p> MOVLED_BIT_3,#0AH</p><p> MOVLED_BIT_4,#0AH</p><p> MOVLED_B
89、IT_5,#0AH</p><p> MOVLED_BIT_6,#0AH</p><p> MOVKEY_1,#00H ;輸入密碼存儲區(qū)清0</p><p> MOVKEY_2,#00H</p><p> MOVKEY_3,#00H</p><p> MOVKEY_4,
90、#00H</p><p> MOVKEY_5,#00H</p><p> MOVKEY_6,#00H</p><p> MOVTMOD,#01H ;初始化定時器T0</p><p> MOVTH0,#(65536-700)/256</p><p> MOVTL0,#(
91、65536-700)MOD256</p><p> MOVIE,#82H</p><p> 4.3.2按鍵處理程序設(shè)計</p><p><b> ?。ń榻B)</b></p><p> 圖4.3 按鍵處理程序流程圖</p><p><b> 按鍵處理程序如下:<
92、;/b></p><p><b> A0: NOP</b></p><p> LSCAN:MOVP1,#0F0H ;掃描行碼,把四條“行”線置成低電平</p><p> L1:JNBP1.0,L2 ;檢測第一行是否有鍵按下</p><p> LCALLDLY_S ;消
93、除鍵盤抖動</p><p> JNBP1.0,L2 ;確認(rèn)第一行有鍵按下</p><p> MOVLINE,#00H ;把值送到指定內(nèi)存,等待計算</p><p> LJMPRSCAN ;跳轉(zhuǎn)到鍵值計算部分</p><p> L2:JNBP1.1,L3</p><p>
94、; LCALLDLY_S</p><p> JNBP1.1,L3</p><p> MOVLINE,#01H</p><p> LJMPRSCAN</p><p> L3:JNBP1.2,L4</p><p> LCALLDLY_S</p><p> JNB
95、P1.2,L4</p><p> MOVLINE,#02H</p><p> LJMPRSCAN</p><p> L4:JNBP1.3,a0</p><p> LCALLDLY_S</p><p> JNBP1.3,a0</p><p> MOVLINE,#0
96、3H</p><p> RSCAN:MOVP1,#0FH;掃描列碼</p><p> C1:JNBP1.4,C2</p><p> MOVROW,#00H</p><p> LJMPCALCU</p><p> C2:JNBP1.5,C3</p><p>
97、; MOVROW,#01H</p><p> LJMPCALCU</p><p> C3:JNBP1.6,C4</p><p> MOVROW,#02H</p><p> LJMPCALCU</p><p> C4:JNBP1.7,C1</p><p> M
98、OVROW,#03H</p><p> LJMPCALCU</p><p> CALCU:MOVA,LINE ;計算鍵值</p><p> MOVB,#04H</p><p><b> MULAB</b></p><p> ADDA,ROW</p&g
99、t;<p> MOVVAL,A ;把鍵值存入VAL單元</p><p> CJNE A,#0AH,J1 ;是否為"CLR"鍵</p><p> JNBLED_GREEN,CLR_KEY ;檢測是否已開鎖</p><p> MOV R1,KEY_CNT</p>
100、<p> CJNE R1,#00H,J2 ;判斷已按鍵次數(shù)為零?</p><p> LCALL ALARM_1 ;調(diào)用報警子程序</p><p> LCALL FALSE ;數(shù)碼管顯示“FALSE”</p><p> LJMP START</p>&l
101、t;p> CLR_KEY: LCALL ALARM_1 ;鎖開狀態(tài)下,按CLR的處理方法,調(diào)用報警子程序</p><p> LCALL FALSE ;顯示“FALSE”</p><p> LJMP A1</p><p> J2:LCALL SHIFTR ;顯示內(nèi)容右移一位</p><p
102、> DEC KEY_CNT</p><p> LCALL BCD</p><p> LCALL DISP ;等待按鍵抬起</p><p> W00:LCALL DLY_1S</p><p> MOV A,P1</p><p> CJNE A,#
103、0FH,W01</p><p> LJMP A0</p><p> W01:MOVA ,P1</p><p> CJNE A,#0F0H,W02</p><p> LJMP A0</p><p> W02:SJMP W00</p><
104、p> J1:MOV A,VAL</p><p> CJNE A,#0CH,J11 ;是否為SET鍵</p><p> LCALL DLY_S</p><p> JB LED_GREEN,SET_ERROR</p><p><b> ……</b></p>
105、<p> J11:MOV A,VAL</p><p> CJNE A,#0DH,J22 ;是否為LOCK鍵</p><p> LCALL DLY_S</p><p> JNB LED_GREEN,LOCK</p><p><b> ……</b><
106、;/p><p> J22:MOV A,VAL</p><p> CJNE A,#0BH,J3_TEMP ;是否為"ENTER"鍵</p><p> LJMP TTTTTT</p><p> J3_TEMP: LJMPJ3</p><p><b>
107、……</b></p><p> 4.3.3密碼更改程序設(shè)計</p><p> 密碼鎖的密碼就相當(dāng)于我們?nèi)粘I钪杏玫降蔫€匙,而電子密碼鎖可以根據(jù)用戶的需要,隨時更改原有的密碼,來提高密碼鎖的安全性,密碼修改功能是保證密碼鎖有效的重要保障。在密碼修改子程序中,用戶只有在開鎖狀態(tài)下才能進(jìn)行修改,即要求用戶知道原有的密碼,否則無法打開密碼鎖,更無法修改其密碼??驁D如圖4.4所示:
108、</p><p> 圖4.4 密碼更改程序設(shè)計流程圖</p><p><b> 密碼更改程序如下:</b></p><p> SET_P:CLRLED_GREEN;更改系統(tǒng)狀態(tài)及屏幕顯示內(nèi)容</p><p> SETBLED_YELLOW</p><p> SETBLED_RED
109、</p><p> MOVLED_BIT_1,#0CH ;關(guān)閉全部數(shù)碼管</p><p> MOVLED_BIT_2,#0CH</p><p> MOVLED_BIT_3,#0CH</p><p> MOVLED_BIT_4,#0CH</p><p> MOVLED_BIT_5,#
110、0CH</p><p> MOVLED_BIT_6,#0CH</p><p><b> LCALLBCD</b></p><p> LCALLDISP</p><p> A0_SET:NOP;按鍵檢測并計算鍵值存放在VAL單元</p><p> …….
111、;按鍵處理部分</p><p> CJNEA,#02H,TIMES1;判斷是否已輸入兩次新密碼</p><p> LCALLDLY_1S</p><p> MOVA,WORD_6;逐位比較密碼,不一致則重新設(shè)置</p><p> CJNEA,KEY_1,J_RSET</p><p> MOV
112、R0,#59H</p><p> MOV@R0,#33H</p><p> MOVA,WORD_5</p><p> CJNEA,KEY_2,J_RSET</p><p> MOVA,WORD_4</p><p> CJNEA,KEY_3,J_RSET</p><p> M
113、OVA,WORD_3</p><p> CJNEA,KEY_4,J_RSET</p><p> MOVA,WORD_2</p><p> CJNEA,KEY_5,J_RSET</p><p> MOVA,WORD_1</p><p> CJNEA,KEY_6,J_RSET</p>&
114、lt;p> 向24C01C中寫數(shù)據(jù),數(shù)據(jù)存放在24C01C中4CH開始的16個字節(jié)中</p><p><b> ……</b></p><p> TIMES1:MOVR0,#WORD_1SET;第一次新密碼暫存內(nèi)存中</p><p> MOVWORD_1 , @R0</p><p> MOVR0,#
115、WORD_2SET</p><p> MOVWORD_2 , @R0</p><p> MOVR0,#WORD_3SET</p><p> MOVWORD_3 , @R0</p><p> MOVR0,#WORD_4SET</p><p> MOVWORD_4 , @R0</p>&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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計---基于單片機的電子密碼鎖
- 畢業(yè)設(shè)計----基于單片機的電子密碼鎖
- 畢業(yè)設(shè)計---基于單片機的電子密碼鎖設(shè)計
- 畢業(yè)設(shè)計-- 基于單片機的電子密碼鎖設(shè)計
- 基于單片機的電子密碼鎖設(shè)計畢業(yè)設(shè)計
- 基于單片機的電子密碼鎖的畢業(yè)設(shè)計
- 畢業(yè)設(shè)計--基于單片機的電子密碼鎖設(shè)計
- 基于單片機控制的電子密碼鎖畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---基于單片機的電子密碼鎖的設(shè)計
- 畢業(yè)設(shè)計(論文)基于單片機的電子密碼鎖設(shè)計
- 基于單片機電子密碼鎖畢業(yè)設(shè)計
- 基于單片機的密碼鎖 畢業(yè)設(shè)計
- 畢業(yè)設(shè)計 利用單片機實現(xiàn)電子密碼鎖
- 單片機控制的電子密碼鎖設(shè)計畢業(yè)設(shè)計
- 基于單片機的密碼鎖設(shè)計【畢業(yè)設(shè)計】
- 基于單片機的電子密碼鎖設(shè)計
- 畢業(yè)設(shè)計---利用單片機實現(xiàn)電子密碼鎖
- 基于單片機的密碼鎖設(shè)計【畢業(yè)設(shè)計】
- 基于單片機的電子密碼鎖設(shè)計
- 畢業(yè)設(shè)計--基于單片機電子密碼鎖設(shè)計
評論
0/150
提交評論