版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘要</b></p><p> 在日常的生活和工作中, 住宅與部門的安全防范、單位的文件檔案、財(cái)務(wù)報(bào)表以及一些個(gè)人資料的保存多以加鎖的辦法來(lái)解決。若使用傳統(tǒng)的機(jī)械式鑰匙開(kāi)鎖,人們常需攜帶多把鑰匙, 使用極不方便, 且鑰匙丟失后安全性即大打折扣。在安全技術(shù)防范領(lǐng)域,具有防盜報(bào)警功能的電子密碼鎖逐漸代替了傳統(tǒng)的機(jī)械式密碼鎖,電子密碼鎖具有安全性高、成本低、功耗低、
2、易操作等優(yōu)點(diǎn)。</p><p> 本文從經(jīng)濟(jì)實(shí)用的角度出發(fā),采用美國(guó)Atmel公司的單片機(jī)AT89S51作為主控芯片與數(shù)據(jù)存儲(chǔ)器單元,結(jié)合外圍的矩陣鍵盤輸入、12864液晶顯示、報(bào)警、開(kāi)鎖等,用C語(yǔ)言編寫的主控芯片控制程序與EEPROM AT24C02讀寫程序相結(jié)合,并用Keil軟件進(jìn)行編譯,設(shè)計(jì)了一款可以多次更改密碼,具有報(bào)警功能的電子密碼控制系統(tǒng)。</p><p> 這種密碼鎖的電
3、路設(shè)計(jì)具有防試探按鍵輸入、智能控制上鎖、開(kāi)鎖、報(bào)警、修改密碼等多種功能。密碼長(zhǎng)度可變、保密性強(qiáng)、靈活性高、應(yīng)用日益廣泛。</p><p> 關(guān)鍵字:AT89S52;24C02;12864;繼電器</p><p><b> Abstract</b></p><p> In the daily life and the work, the w
4、ay to the house's and department's safe guard, unit's document file, the financial reporting as well as some individual material preservation almost need many locks. If we use tradition mechanical key to open
5、, the people often must carry many keys, but it is not extremely convenient. If the key lost, the security will decline greatly. In the safety work guard domain, the lock with security warning function electronic combina
6、tion have replaced the traditional </p><p> This article is based on the economical and practical point of view, uses the United States Atmel Corporation AT89S51 microcontroller as a master chip and the dat
7、a memory unit, it combines with the external matrix keyboard input, LCD digital display, alarm, unlock and so on circuits, dominates by the C programming language chip EEPROM of the control procedures and carries on the
8、translation with Keil software, the password can be changed many times, the electronic the password control also has t</p><p> This password lock circuit design has anti-test button input, intelligent contr
9、ol lock, unlock, alarm and change the password multiple functions. Password length can be changed, great security and high flexible than others, it is widely used</p><p> .Key word: AT89S52 devices; 24 C02;
10、 12864; relay</p><p><b> 目錄</b></p><p><b> 摘要I</b></p><p><b> 目錄I</b></p><p><b> 第一章 緒論1</b></p><p>
11、 1.1 電子密碼鎖簡(jiǎn)介1</p><p> 1.2 電子密碼鎖的發(fā)展趨勢(shì)1</p><p> 1.3 本設(shè)計(jì)所要實(shí)現(xiàn)的目標(biāo)2</p><p> 第二章 總體設(shè)計(jì)方案3</p><p><b> 2.1設(shè)計(jì)要求3</b></p><p> 2.2密碼鎖的論證與選擇3&
12、lt;/p><p> 2.2.1 方案一:采用數(shù)字電路控制3</p><p> 2.2.2 方案二:采用以單片機(jī)為核心的控制方案3</p><p> 2.3系統(tǒng)總體設(shè)計(jì)4</p><p> 第三章 硬件單元模塊設(shè)計(jì)5</p><p> 3.1微處理模塊5</p><p>
13、3.1.1主要元件介紹5</p><p> 3.1.2微處理模塊電路6</p><p><b> 3.2存儲(chǔ)模塊6</b></p><p> 3.2.1主要元件介紹6</p><p> 3.2.2 24c08管腳功能:7</p><p> 3.2.3時(shí)序圖7</p>
14、;<p> 3.2.4存儲(chǔ)模塊電路8</p><p><b> 3.3輸入模塊9</b></p><p> 3.4電源模塊10</p><p> 3.5開(kāi)關(guān)鎖模塊10</p><p> 3.6報(bào)警模塊11</p><p> 3.7顯示模塊11</p>
15、;<p> 3.8紅外模塊電路原理圖12</p><p> 第四章 軟件設(shè)計(jì)14</p><p> 4.1軟件工作流程14</p><p> 4.2密碼修改流程16</p><p> 第五章 調(diào)試與實(shí)現(xiàn)17</p><p> 5.1硬件調(diào)試17</p><p
16、> 5.2軟件調(diào)試17</p><p> 5.3軟件調(diào)試心得18</p><p> 5.4結(jié)果分析19</p><p> 5.5 Proteus仿真19</p><p> 5.6 PCB板制作20</p><p> 第六章 總結(jié)與展望22</p><p><
17、b> 致 謝23</b></p><p><b> 參考文獻(xiàn)24</b></p><p> 附錄1元器件清單25</p><p> 附錄2 程序清單26</p><p> 附錄3成品實(shí)物圖40</p><p><b> 第一章 緒論</
18、b></p><p> 1.1 電子密碼鎖簡(jiǎn)介</p><p> 電子密碼鎖是一種通過(guò)密碼輸入來(lái)控制電路或是芯片工作,從而控制機(jī)械開(kāi)關(guān)的閉合,完成開(kāi)鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡(jiǎn)易的電路產(chǎn)品,也有基于芯片的性價(jià)比較高的產(chǎn)品?,F(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過(guò)編程來(lái)實(shí)現(xiàn)的。其性能和安全性已大大超過(guò)了機(jī)械鎖。其特點(diǎn)如下:</p><p>
19、; 1.保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機(jī)開(kāi)鎖成功率幾乎為零。2.密碼可變,用戶可以隨時(shí)更改密碼,防止密碼被盜,同時(shí)也可以避免因</p><p> 人員的更替而使鎖的密級(jí)下降。3.誤碼輸入保護(hù),當(dāng)輸入密碼多次錯(cuò)誤時(shí),報(bào)警系統(tǒng)自動(dòng)啟動(dòng)。</p><p> 4.無(wú)活動(dòng)零件,不會(huì)磨損,壽命長(zhǎng)。</p><p> 5.使用靈活性好,不像機(jī)械鎖必須佩帶鑰匙才
20、能開(kāi)鎖。</p><p> 6.電子密碼鎖操作簡(jiǎn)單易行,一學(xué)即會(huì)。</p><p> 1.2 電子密碼鎖的發(fā)展趨勢(shì)</p><p> 日常生活和工作中,住宅與部門的安全防范、單位的文件檔案、財(cái)務(wù)報(bào)表以及一些個(gè)人資料的保存多以加鎖的辦法來(lái)解決。目前門鎖主要用彈子鎖,其鑰匙容易丟失;保險(xiǎn)箱主要用機(jī)械密碼鎖,其結(jié)構(gòu)較為復(fù)雜,制造精度要求高,成本高,且易出現(xiàn)故障,人
21、們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。針對(duì)這些鎖具給人們帶來(lái)的不便若使用機(jī)械式鑰匙開(kāi)鎖,為滿足人們對(duì)鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應(yīng)運(yùn)而生。由于電子器件所限,以前開(kāi)發(fā)的電子密碼鎖,其種類不多,保密性差,最基本的就是只依靠最簡(jiǎn)單的模擬電子開(kāi)關(guān)來(lái)實(shí)現(xiàn)的,制作簡(jiǎn)單但很不安全,在后為多是基于EDA來(lái)實(shí)現(xiàn)的,其電路結(jié)構(gòu)復(fù)雜,電子元件繁多,也有使用早先的20引角的2051系列單片機(jī)來(lái)實(shí)現(xiàn)的,但密碼簡(jiǎn)單,
22、易破解。隨著電子元件的進(jìn)一步發(fā)展,電子密碼鎖也出現(xiàn)了很多的種類,功能日益強(qiáng)大,使用更加方便,安全保密性更強(qiáng),由以前的單密碼輸入發(fā)展到現(xiàn)在的,密碼加感應(yīng)元件,實(shí)現(xiàn)了真真的電子加密,用戶只有密碼或電子鑰匙中的一樣,是打不開(kāi)鎖的,隨著電子元件的發(fā)展及人們對(duì)保密性需求的提高出現(xiàn)了越來(lái)越多的電子密碼鎖。出于安全、方便等方面的需要許多電子密碼鎖</p><p> 1.3 本設(shè)計(jì)所要實(shí)現(xiàn)的目標(biāo)</p><
23、;p> 本設(shè)計(jì)采用單片機(jī)為主控芯片,結(jié)合外圍電路,組成電子密碼鎖,用戶想要打開(kāi)鎖,必先通過(guò)提供的鍵盤輸入正確的密碼才能將鎖打開(kāi),密碼輸入錯(cuò)誤有提示,為了提高安全性,當(dāng)密碼輸入錯(cuò)誤將報(bào)警。密碼可以有用戶自己修改設(shè)定,鎖打開(kāi)后才能修改密碼。修改密碼之前必須再次輸入就的密碼,在輸入新密碼的時(shí)候要二次確認(rèn),以防止誤操作。</p><p> 第二章 總體設(shè)計(jì)方案</p><p><b
24、> 2.1設(shè)計(jì)要求</b></p><p> 1.能檢測(cè)柜中有無(wú)物品。</p><p><b> 2.密碼錯(cuò)誤自鎖。</b></p><p><b> 3.液晶在線顯示。</b></p><p><b> 4.按鍵操作。</b></p>
25、<p><b> 5.具有開(kāi)鎖功能。</b></p><p> 2.2密碼鎖的論證與選擇</p><p> 2.2.1 方案一:采用數(shù)字電路控制</p><p> 用以74LS112雙JK觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設(shè)了9個(gè)用戶輸入鍵,其中只有4個(gè)是有效的密碼按鍵,其它的都是干擾按鍵,若按下干擾鍵,鍵盤
26、輸入電路自動(dòng)清零,原先輸入的密碼無(wú)效,需要重新輸入;如果用戶輸入密碼的時(shí)間超過(guò)10秒(一般情況下,用戶不會(huì)超過(guò)10秒,若用戶覺(jué)得不便,還可以修改)電路將報(bào)警20秒,若電路連續(xù)報(bào)警三次,電路將鎖定鍵盤2分鐘,防止他人的非法操作。采用數(shù)字電路設(shè)計(jì)的方案好處就是設(shè)計(jì)簡(jiǎn)單但控制的準(zhǔn)確性和靈活性差。故不采用。</p><p> 2.2.2 方案二:采用以單片機(jī)為核心的控制方案</p><p>
27、由于單片機(jī)種類繁多,各種型號(hào)都有其一定的應(yīng)用環(huán)境,因此在選用時(shí)要多加比較,合理選擇,以期獲得最佳的性價(jià)比。一般來(lái)說(shuō)在選取單片機(jī)時(shí)從下面幾個(gè)方面考慮:性能、存儲(chǔ)器、運(yùn)行速度、I/O口、定時(shí)/計(jì)數(shù)器、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些的還有一些最基本的比如:中斷源的數(shù)量和優(yōu)先級(jí)、工作溫度范圍、有沒(méi)有低電壓檢測(cè)功能、單片機(jī)內(nèi)有無(wú)時(shí)鐘振蕩器、有無(wú)上電復(fù)位功能等。在開(kāi)發(fā)過(guò)程中單片機(jī)還受到:開(kāi)發(fā)工具、
28、編程器、開(kāi)發(fā)成本、開(kāi)發(fā)人員的適應(yīng)性、技術(shù)支持和服務(wù)等等因素?;谝陨弦蛩乇驹O(shè)計(jì)選用單片機(jī)AT89S52作為本設(shè)計(jì)的核心元件,利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的I/O端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)基本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接AT24C02芯片用于密碼的存儲(chǔ),外接12864液晶顯示器用于顯示作用。當(dāng)用戶需要開(kāi)鎖時(shí),先按鍵盤開(kāi)鎖鍵之后按鍵盤的數(shù)字鍵0-9輸入密碼。密碼輸完后按下確認(rèn)鍵,如果密
29、碼輸入正確則開(kāi)鎖,不正確顯示密碼錯(cuò)誤重新輸入密碼,當(dāng)三次密碼錯(cuò)誤則發(fā)出報(bào)警;當(dāng)用戶需要修改密碼時(shí),先按下鍵盤設(shè)置鍵后輸入</p><p> 可以看出方案二控制靈活準(zhǔn)確性好且保密性強(qiáng)還具有擴(kuò)展功能,根據(jù)現(xiàn)實(shí)生活的需要此次設(shè)計(jì)采用此方案。</p><p><b> 2.3系統(tǒng)總體設(shè)計(jì)</b></p><p> 本設(shè)計(jì)主要由單片機(jī)、矩陣鍵盤、液
30、晶顯示器和密碼存儲(chǔ)等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實(shí)現(xiàn)。由用戶通過(guò)連接單片機(jī)的矩陣鍵盤輸入密碼,后經(jīng)過(guò)單片機(jī)對(duì)用戶輸入的密碼與自己保存的密碼進(jìn)行對(duì)比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開(kāi)鎖電路或者報(bào)警電路控制開(kāi)鎖還是報(bào)警,實(shí)際使用時(shí)只要將單片機(jī)的負(fù)載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當(dāng)然也可以用繼電器的常開(kāi)觸點(diǎn)去控制電磁鐵吸合線圈。</p><p> 本系統(tǒng)共有兩
31、部分構(gòu)成,即硬件部分與軟件部分。其中硬件部分由電源輸入部分、鍵盤輸入部分、密碼存儲(chǔ)部分、復(fù)位部分、晶振部分、顯示部分、報(bào)警部分、開(kāi)鎖部分、紅外部分組成,軟件部分對(duì)應(yīng)的由主程序、初始化程序、12864顯示程序、鍵盤掃描程序、啟動(dòng)程序、關(guān)閉程序、建功能程序、密碼設(shè)置程序、EEPROM讀寫程序和延時(shí)程序,紅外線程序等組成。其總體框架如圖2-1所示。</p><p><b> 圖2-1</b>&l
32、t;/p><p> 第三章 硬件單元模塊設(shè)計(jì)</p><p><b> 3.1微處理模塊</b></p><p> 3.1.1主要元件介紹</p><p> AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80
33、C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。</p><p> AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷
34、結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止,如圖3.1所示。</p><p> 圖3.1 AT89S52 單片機(jī)引腳排列圖</p><p>
35、 3.1.2微處理模塊電路</p><p> 單片機(jī)系統(tǒng)由AT89S51芯片、時(shí)鐘電路和復(fù)位電路三部分組成,主要是控制和處理各模塊電路的數(shù)據(jù)輸入、數(shù)據(jù)輸出、顯示、報(bào)警,紅外檢測(cè)等,如圖3.2所示。</p><p> 圖3.2 微處理模塊電路</p><p><b> 3.2存儲(chǔ)模塊</b></p><p> A
36、T24C02是一個(gè)I2C總線接口E2PROM存儲(chǔ)器,用于存儲(chǔ)電子密碼鎖的密碼數(shù)據(jù)。</p><p> 3.2.1主要元件介紹</p><p> AT24C02是美國(guó)ATEML公司生產(chǎn)的低功耗COMS型,I2C總線接口的E2PROM存儲(chǔ)器,其內(nèi)含256x8為存儲(chǔ)空間,具有工作電壓寬(2.5V~5.5V)、擦寫次數(shù)多(大于1000次)、寫入速度快(小于10mS)、抗干擾能力強(qiáng)、數(shù)據(jù)不易丟失
37、、體積小等特點(diǎn)。采用了I2C總線進(jìn)行數(shù)據(jù)讀寫的串行器件,占用很少的資源和I/O線,而且支持在線編程,實(shí)時(shí)存取數(shù)據(jù)十分方便,如圖3.3所示。</p><p> 圖3.3 24C02引腳排列圖</p><p> 3.2.2 24c08管腳功能:</p><p><b> 管腳描述:</b></p><p><b
38、> SCL:串口時(shí)鐘</b></p><p> 24c08串口時(shí)鐘輸入管腳用于產(chǎn)生機(jī)器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘,這是一個(gè)輸入管腳。</p><p> SDA:串口數(shù)據(jù)地址</p><p> 24C08雙向串行數(shù)據(jù)地址管腳用于器件所有數(shù)據(jù)的發(fā)送或接收,SDA是一個(gè)開(kāi)路輸出管腳,可與其他開(kāi)路輸出或集電極開(kāi)路輸出進(jìn)行或(wire-OR)。<
39、;/p><p> A0、A1、A2、A3:器件地址輸入端</p><p> 這些輸入腳用于多個(gè)器件級(jí)聯(lián)時(shí)設(shè)置器件地址,當(dāng)這些腳懸空時(shí)默認(rèn)值為0,(24C01除外)。</p><p> 使用24C08時(shí)最多只可以連接2個(gè)器件,所有地址管腳A0、A1、A3都未使用,管腳可以連接到VSS或懸空,如果只用到一個(gè)24C08A2管腳可以連接到VSS或懸空。</p>
40、<p><b> WP:寫保護(hù)</b></p><p> 如果WP管腳連接到VCC所有內(nèi)容都被寫保護(hù)(只能讀取)。當(dāng)WP連接到VSS或被懸空,允許器件進(jìn)行正常的讀/寫操作。</p><p> 表3.4 24C02引腳說(shuō)明</p><p><b> 3.2.3時(shí)序圖</b></p>&l
41、t;p> II2C總線協(xié)議定義:</p><p> 1.只有在總線空閑時(shí)候才允許啟動(dòng)數(shù)據(jù)傳送。</p><p> 2.在數(shù)據(jù)傳送過(guò)程中,當(dāng)時(shí)鐘線為高電平是,數(shù)據(jù)線必須保持穩(wěn)定狀態(tài),不允許有跳變。時(shí)鐘線為高電平時(shí),數(shù)據(jù)線的任意電平變化將被看作總顯的起始或停止信號(hào)。</p><p><b> 起始信號(hào):</b></p>
42、<p> 時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從高到底的跳變作為IIC總線的起始信號(hào)。</p><p><b> 停止信號(hào):</b></p><p> 時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從低電平到高電平的跳變作為IIC總線的停止信號(hào)。</p><p> 圖3.5 24C02時(shí)序圖</p><p> 3.2.
43、4存儲(chǔ)模塊電路</p><p> 圖中上拉電阻的作用是減少AT24C02的靜態(tài)功耗,由于AT24C02的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只用兩根線SCL(移位脈沖)和SDA(數(shù)據(jù)/地址)與單片機(jī)傳送數(shù)。每當(dāng)成功修改一次密碼,系統(tǒng)就自動(dòng)調(diào)用存儲(chǔ)程序,將新密碼保存在芯片內(nèi);當(dāng)系統(tǒng)需要進(jìn)行密碼識(shí)別時(shí),通過(guò)程序讀取存儲(chǔ)器中的密碼值存入緩沖區(qū),與所輸入密碼進(jìn)行比較,完成密碼鎖的開(kāi)鎖控制,如圖3.6所示
44、。</p><p> 圖3.6 AT24C02模塊電路</p><p><b> 3.3輸入模塊</b></p><p> 鍵盤可以分為獨(dú)立連接式和行列式(矩陣式)兩類。根據(jù)設(shè)計(jì)要求,本電路設(shè)計(jì)采用4×4行列式鍵盤,同時(shí)也能減少鍵盤與單片機(jī)接口時(shí)所占用的I/O線的數(shù)目。</p><p> 矩陣式鍵盤又叫
45、行列式鍵盤。用I/O口線組成行列結(jié)構(gòu),按鍵設(shè)置在行列的交叉點(diǎn)上。本電路采用4條行線和4條列線,即可組成具有4×4個(gè)按鍵的鍵盤。其電路圖如下圖2.4所示。</p><p> 對(duì)鍵的識(shí)別通常用逐行掃描查詢法。首先判別鍵盤中有無(wú)按鍵按下,由單片機(jī)I/O口向鍵盤送(輸出)全掃描字,然后讀入(輸入)列線狀態(tài)來(lái)判斷。方法是:向行線輸出全掃描字00H,把全部行線置為低電平,然后將列線的電平狀態(tài)讀入累加器A中。如果有
46、鍵按下,總會(huì)有一根列線電平拉至低電平,從而使列輸入不全為1。鍵盤中哪一個(gè)鍵按下,是由行線逐行置低電平后,檢查列輸入狀態(tài)實(shí)現(xiàn)的,其方法是:依次給行線送低電平,然后查所有列線狀態(tài),如果全為1,則所按下的鍵不在此行,如果不全為1,則所按下的鍵必在此行,而且是在與零電平列線相交的交點(diǎn)上的那個(gè)鍵,矩陣鍵盤如圖3.7所示。</p><p><b> 圖3.7 矩陣鍵盤</b></p>&
47、lt;p><b> 3.4電源模塊</b></p><p> 給整個(gè)電路模塊提供所需的能量,使電路能夠正常工作。我們采用性能穩(wěn)定可靠、價(jià)格低廉的LM78系列穩(wěn)壓塊如圖3.8所示,由于它內(nèi)部有電流的限制以及過(guò)熱保護(hù)和安全工作區(qū)的保護(hù)使得它不會(huì)輕易損壞,電源模塊如圖3.9所示。</p><p> 圖3.8 7805引腳排列圖</p><p&
48、gt; 圖3.9 電源模塊模塊電路</p><p><b> 3.5開(kāi)關(guān)鎖模塊</b></p><p> 通過(guò)單片機(jī)P3.7控制三極管的工作狀態(tài)來(lái)決定繼電器的斷開(kāi)與吸合,從而達(dá)到開(kāi)關(guān)鎖的目的。</p><p> 當(dāng)用戶輸入的密碼正確而且是在規(guī)定的時(shí)間輸入的話,單片機(jī)便輸出開(kāi)門信號(hào),送到開(kāi)鎖驅(qū)動(dòng)電路,然后驅(qū)動(dòng)電磁鎖,達(dá)到開(kāi)門的目的。<
49、;/p><p> 在本次設(shè)計(jì)中,基于節(jié)省材料的原則,暫時(shí)用發(fā)光二極管代替電磁鎖,發(fā)光管亮,表示鎖開(kāi);滅,表示鎖合,如圖3.10 所示。</p><p> 圖3.10 開(kāi)關(guān)鎖模塊</p><p><b> 3.6報(bào)警模塊</b></p><p> 報(bào)警部分由蜂鳴器發(fā)聲裝置及外圍電路組成,高電平不發(fā)聲,當(dāng)輸入三次密碼錯(cuò)誤
50、時(shí),單片機(jī)的P3.6引腳為低電平,三極管Q1導(dǎo)通蜂鳴器發(fā)聲報(bào)警,如圖3.11所示。</p><p> 圖3.11 報(bào)警模塊電路</p><p><b> 3.7顯示模塊</b></p><p> 本系統(tǒng)采用LCD12864液晶顯示,用于直觀地提示用戶輸入開(kāi)鎖密碼、密碼信息的正誤提示、開(kāi)鎖信息的顯示等,顯示整個(gè)電子密碼鎖的工作狀態(tài),如圖3.
51、12所示。</p><p> 圖3.12 12864液晶顯示模塊電路</p><p> 圖3.13 12864液晶顯示引腳功能表</p><p> 3.8紅外模塊電路原理圖</p><p> 1、紅外模塊電路如圖3.14。</p><p> 圖3.14 紅外模塊電路</p><p>
52、; 如上所示,左圖為紅外輸入,其中P3是紅外接收頭,“1”腳為信號(hào)輸出端,連接到單片機(jī)。“2”腳為接地端,“3”腳為電源端,其中C5起電源濾波作用,R9為信號(hào)端提供上拉電平。紅外線的光譜位于紅色光之外, 波長(zhǎng)是0.76~1.5μm,比紅光的波長(zhǎng)還長(zhǎng)。紅外檢測(cè)是利用紅外線進(jìn)行傳遞信息的一種控制方式,紅外檢測(cè)具有抗干擾,電路簡(jiǎn)單,容易編碼和解碼,功耗小,成本低的優(yōu)點(diǎn)。紅外遙控幾乎適用所有家電的控制。紅外通信的基本原理是發(fā)送端將基帶二進(jìn)制信
53、號(hào)調(diào)制為一系列的脈沖串信號(hào)(載波信號(hào)) ,通過(guò)紅外發(fā)射管發(fā)射紅外信號(hào)。常用的有通過(guò)脈沖寬度來(lái)實(shí)現(xiàn)信號(hào)調(diào)制的脈寬調(diào)制(PWM)和通過(guò)脈沖串之間的時(shí)間間隔來(lái)實(shí)現(xiàn)信號(hào)調(diào)制的脈時(shí)調(diào)制(PPM)兩種方法。脈時(shí)調(diào)制(PPM)是紅外數(shù)據(jù)協(xié)會(huì)(IrDA)和國(guó)際電子電工委員會(huì)(IEEE)都推薦的調(diào)制方式,本設(shè)計(jì)采用脈時(shí)調(diào)制方法,即用兩個(gè)脈沖串之間的時(shí)間間隔來(lái)表示二進(jìn)制信息,數(shù)據(jù)比特的傳送仿照不帶奇偶校驗(yàn)的RS232 [8]通信,首先產(chǎn)生一個(gè)同步頭,然后接
54、著 8 位數(shù)據(jù)比特。</p><p><b> 第四章 軟件設(shè)計(jì)</b></p><p><b> 4.1軟件工作流程</b></p><p> 軟件工作流程包括7個(gè)部分:系統(tǒng)的初始化、調(diào)用顯示、24C08的讀寫操作、校對(duì)開(kāi)鎖、出錯(cuò)報(bào)警處理、數(shù)據(jù)顯示、紅外檢測(cè)。初始化主要包括:中斷和定時(shí)器的初始化,以及系統(tǒng)參數(shù)等的
55、初始化;對(duì)24C08的讀寫操作主要完成對(duì)原先密碼進(jìn)行更改或相關(guān)設(shè)置的目的,然后將更新后的密碼保存到其中。校對(duì)開(kāi)鎖是要對(duì)輸入的密碼和保存在存儲(chǔ)器中的密碼相比較,相同就通過(guò),否則要進(jìn)入出錯(cuò)報(bào)警階段。3次都輸入的是錯(cuò)誤密碼,系統(tǒng)將長(zhǎng)時(shí)間報(bào)警并自鎖,輸入管理員密碼解鎖。其它子模塊均為各個(gè)芯片的具體讀寫操作,通過(guò)單片機(jī)模擬讀寫時(shí)序。</p><p><b> 程序流程圖</b></p>
56、<p><b> 圖4.1 流程圖</b></p><p> 其余子模塊均為單片機(jī)模擬各芯片的讀寫時(shí)序,此處不做仔細(xì)闡述。</p><p><b> 4.2密碼修改流程</b></p><p> 按下更改密碼鍵,提示輸入舊密碼,舊密碼經(jīng)驗(yàn)證后,提示輸入新密碼,兩次輸入新密碼無(wú)誤,按下確認(rèn)鍵,密碼被存入2
57、4C08中,更改密碼成功,如圖4-2。</p><p> 圖4.2 密碼修改流程圖</p><p> 第五章 調(diào)試與實(shí)現(xiàn)</p><p><b> 5.1硬件調(diào)試</b></p><p> 單片機(jī)應(yīng)用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開(kāi)的.許多硬件故障只有通過(guò)軟、硬件聯(lián)調(diào)才能發(fā)現(xiàn),但一般是先排除系統(tǒng)中比較明顯的硬件
58、故障后才和軟件一起聯(lián)調(diào)。常見(jiàn)的硬件故障: (1)邏輯錯(cuò)誤 硬件的邏輯錯(cuò)誤是由于設(shè)計(jì)錯(cuò)誤和焊接過(guò)程中的工藝錯(cuò)誤而造成的,包括錯(cuò)線、開(kāi)路、短路等,其中最常見(jiàn)的是短路故障。 (2)元器件錯(cuò)誤 元器件錯(cuò)誤的原因有器件損壞或性能不符合要求,電解電容、二極管的極性接反或集成塊裝反等。 (3)可靠性差 應(yīng)用系統(tǒng)可靠性差的原因很多,如內(nèi)部和外部的干擾、電壓紋波系數(shù)過(guò)大、器件負(fù)載過(guò)重等均會(huì)造成系統(tǒng)的可靠性差。另外,走線和
59、布置的不合理也會(huì)造成系統(tǒng)可靠性差。 (4)電源故障 </p><p> 電源故障包括:電壓值不符合設(shè)計(jì)要求、電源功率不足、負(fù)載能力差、紋波太重等。 硬件調(diào)試辦法 脫機(jī)調(diào)試是在加電前,先用萬(wàn)用表等工具,按圖紙仔細(xì)核對(duì)線路是否正確,并對(duì)元器件的安裝、型號(hào)、規(guī)格等進(jìn)行仔細(xì)檢查,特別焊接時(shí)有無(wú)走線之間相互短路等。</p><p><b> 5.2軟件調(diào)試</b>
60、</p><p> 程序在KEIL C51上調(diào)試,采用模塊程序設(shè)計(jì)技術(shù),則逐個(gè)模塊調(diào)好后再進(jìn)行系統(tǒng)程序總調(diào)。 對(duì)于模塊結(jié)構(gòu)程序.要一個(gè)個(gè)子程序分別調(diào)試。調(diào)試時(shí),一定要符合入口條件和出口條件,調(diào)試可用單步運(yùn)行和斷點(diǎn)運(yùn)行方式,通過(guò)檢查用者系統(tǒng)的CPU現(xiàn)場(chǎng)情況、RAM的內(nèi)容和I/O口的狀態(tài),檢測(cè)程序執(zhí)行結(jié)果是否符合設(shè)計(jì)要求,有無(wú)循環(huán)錯(cuò)誤、有無(wú)機(jī)器碼錯(cuò)誤以及轉(zhuǎn)移地址的錯(cuò)誤,同時(shí),還可以發(fā)現(xiàn)系統(tǒng)中存在的硬件設(shè)計(jì)錯(cuò)
61、誤和軟件算法錯(cuò)誤。 各程序模塊通過(guò)后,則可以把相關(guān)功能塊連在一起進(jìn)行總調(diào)。這個(gè)階段若有故障,可以考慮各子程序運(yùn)行時(shí)是否破壞了現(xiàn)場(chǎng),緩沖單元、工作寄存器是否發(fā)生沖突,標(biāo)志位的建立和清除是否有誤,堆棧區(qū)是否有溢出,輸入設(shè)備的狀態(tài)是否正常等等,若用者系統(tǒng)是在開(kāi)發(fā)機(jī)的監(jiān)控程序下運(yùn)行時(shí),還要考慮用者緩沖單元是否和監(jiān)控程序的工作單元發(fā)生沖突。 單步和斷點(diǎn)調(diào)試后,還應(yīng)進(jìn)行連續(xù)調(diào)試,用以確定定時(shí)精度、CPU的實(shí)時(shí)響應(yīng)等問(wèn)題。 當(dāng)全部
62、調(diào)試和修改完成后,將程序固化到AT89S51中。進(jìn)行整機(jī)調(diào)試。各功能實(shí)現(xiàn)則調(diào)試完成。</p><p><b> 5.3軟件調(diào)試心得</b></p><p> 1.由于Keil C對(duì)中文支持不太好,因而會(huì)出現(xiàn)顯示的光標(biāo)與光標(biāo)實(shí)際所在不一致的現(xiàn)象,這會(huì)對(duì)修改中文注釋造成影響。在電腦界面下面,我們可以把字體設(shè)置為Courier,這樣就可以顯示正常。</p>
63、<p> 2.當(dāng)使用有片外內(nèi)存的MCU(如W77E58,它有1K片外內(nèi)存)的時(shí)候,肯定要設(shè)置標(biāo)志位,并且編譯方式要選擇大模式,否則會(huì)出錯(cuò)。</p><p> 3.當(dāng)使用Keil C跟蹤程序運(yùn)行狀態(tài)的時(shí)候,要把引起Warning的語(yǔ)句屏蔽,否則有可能跟蹤語(yǔ)句的時(shí)候會(huì)出錯(cuò)。</p><p> 4.在調(diào)用數(shù)組的時(shí)候,Keil C是首先把數(shù)組Load進(jìn)內(nèi)存。如果要在C中使用長(zhǎng)數(shù)組
64、的時(shí)候,我們可以使用code關(guān)鍵字,這樣就實(shí)現(xiàn)了匯編的DB的功能,Keil C是不會(huì)把標(biāo)志code的數(shù)組Load入內(nèi)存的,它會(huì)直接讀取Rom。</p><p> 5.當(dāng)編程涉及到有關(guān)通信,時(shí)序是很重要的。拉高管腳的執(zhí)行速度遠(yuǎn)遠(yuǎn)比檢查管腳電平的要快。</p><p> 6.在等待管腳電平變化的時(shí)候,我們需要設(shè)置好超時(shí)處理,否則程序就會(huì)因?yàn)橐粋€(gè)沒(méi)有預(yù)計(jì)的錯(cuò)誤而死鎖。</p>
65、<p> 7.能用C語(yǔ)言實(shí)現(xiàn)的地方,盡量不要用匯編,尤其在算法的實(shí)現(xiàn),用匯編是晦澀難懂。</p><p> 8.程序的幾個(gè)參數(shù)數(shù)組所占篇幅很大,其中液晶背景數(shù)組最長(zhǎng),有四千個(gè)Byte,因而把那些初始化數(shù)組都放在另外一個(gè)C文件,在主文件使用使用關(guān)鍵字extern定義,這樣就不會(huì)對(duì)主文件的編寫造成干擾。</p><p> 9.所有函數(shù)之間的相關(guān)性越低越有利于以后功能的擴(kuò)展。&l
66、t;/p><p><b> 5.4結(jié)果分析</b></p><p> 通過(guò)以上的測(cè)試分析,超市存物柜密碼鎖能夠?qū)崿F(xiàn)密碼開(kāi)關(guān)鎖功能,在沒(méi)有輸入密碼前12864液晶顯示界面模式,當(dāng)有人隨意按某個(gè)鍵后,系統(tǒng)退出界面模式進(jìn)入輸入密碼模式,輸入三次密碼仍然錯(cuò)誤系統(tǒng)報(bào)警,按鍵進(jìn)入恢復(fù)出廠模式,輸入管理員密碼解鎖后蜂鳴器停止報(bào)警,恢復(fù)了出廠設(shè)置。如果要更改原密碼,在輸入原密碼后,按
67、鍵進(jìn)入密碼修改模式,鍵入兩次新密碼無(wú)誤后,按確認(rèn)鍵后密碼修改成功。</p><p> 5.5 Proteus仿真</p><p> 在硬件和軟件都能實(shí)現(xiàn)的條件下,利用Proteus進(jìn)行仿真,通過(guò)不停的調(diào)試與改正,最后終于實(shí)現(xiàn)了密碼鎖的功能,Proteus仿真結(jié)果如圖5-1所示。</p><p> 當(dāng)連好各個(gè)模塊電路的導(dǎo)線后,導(dǎo)入芯片程序,運(yùn)行該密碼鎖仿真電路,
68、通過(guò)按鍵可以進(jìn)行密碼鎖的開(kāi)鎖,修改密碼,錯(cuò)誤密碼3次以上報(bào)警的操作,LCD顯示屏顯示相應(yīng)的操作現(xiàn)象,密碼正確可以開(kāi)鎖,進(jìn)而可以修改密碼,密碼錯(cuò)誤三次以上由喇叭發(fā)出報(bào)警聲,如果系統(tǒng)出現(xiàn)錯(cuò)誤還可以通過(guò)復(fù)位電路進(jìn)行復(fù)位。</p><p> 總之,在原有的理論基礎(chǔ)上,通過(guò)Proteus能夠成功的進(jìn)行密碼鎖基本操作的仿真,實(shí)現(xiàn)了相關(guān)的功能。如圖5-1。</p><p><b> 圖5-
69、1</b></p><p> 5.6 PCB板制作</p><p><b> 圖5-2</b></p><p> 第六章 總結(jié)與展望</p><p> 以上為畢業(yè)期間所作的畢業(yè)論文---超市存物柜密碼鎖設(shè)計(jì),它經(jīng)過(guò)多次修改和整理,可以滿足設(shè)計(jì)的基本要求。輸入密碼時(shí),如三次輸入錯(cuò)誤,則進(jìn)行報(bào)警,在輸入
70、時(shí),12864顯示為“*”,在修改密碼時(shí),則顯示數(shù)字。次設(shè)計(jì)還具有防盜功能,如對(duì)密碼控制系統(tǒng)進(jìn)行破壞,有報(bào)警功能。</p><p> 通過(guò)對(duì)該課題的研究,加深對(duì)所學(xué)知識(shí)的理解,提高對(duì)課外知識(shí)的學(xué)習(xí)能力, 增強(qiáng)知識(shí)的應(yīng)用能力,提高解決實(shí)際問(wèn)題的能力,培養(yǎng)自我創(chuàng)新意識(shí)。積累實(shí)踐經(jīng)驗(yàn),為以后的發(fā)展打下基礎(chǔ),也為以后我們自己在這方面的發(fā)展打下基礎(chǔ),并能夠在這方面培養(yǎng)自己的興趣。&
71、lt;/p><p> 畢業(yè)設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程,隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握單片機(jī)的開(kāi)發(fā)技術(shù)是十分重要的。</p><p> 通過(guò)這次畢業(yè)設(shè)計(jì),無(wú)論從選題到定稿,從理論到實(shí)踐都
72、使我學(xué)到了很多東西,它不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書本上所沒(méi)有學(xué)到過(guò)的知識(shí)。同時(shí)也明白了理論與實(shí)踐相結(jié)合的重要性,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。</p><p><b> 致 謝</b></p><p> 三年的大學(xué)生活不知不
73、覺(jué)中就要結(jié)束了,在這段難忘的生活中,有許多美好的回憶,在畢業(yè)論文設(shè)計(jì)之中,我的老師和我的同學(xué)都不吝的指導(dǎo)我,我需要感謝的人太多太多,首先要感謝我的學(xué)校,感謝在這三年中讓我領(lǐng)悟到誠(chéng)實(shí)做人,踏實(shí)做事,扎實(shí)做學(xué)問(wèn)的深刻道理,讓我從一個(gè)懵懂得高中生變成一個(gè)成熟的大學(xué)生,其次我要感謝的是我的導(dǎo)師*老師。雖然*老師平日里工作繁多,但在我做畢業(yè)設(shè)計(jì)的每個(gè)階段,都給予我悉心的指導(dǎo)和幫助,關(guān)心我們每個(gè)階段所做的工作,當(dāng)然,還要感謝寢室的兄弟們?cè)谖彝瓿烧撐?/p>
74、的過(guò)程中給予我的幫助和鼓勵(lì),也是他們陪我度過(guò)了這四年的生活,感謝能有這段美好的記憶。</p><p> 現(xiàn)在即將揮別我的學(xué)校、老師、同學(xué),還有我三年的大學(xué)生活,雖然依依不舍,但是對(duì)未來(lái)的路,我充滿了信心。最后,感謝在大學(xué)期間認(rèn)識(shí)我和我認(rèn)識(shí)的所有人,有你們的陪伴,才有我大學(xué)生活的絢麗多彩。</p><p><b> 參考文獻(xiàn)</b></p><p
75、> [1] 王文海,彭可,周歡喜,單片機(jī)應(yīng)用與實(shí)踐項(xiàng)目化教程.北京化學(xué)工業(yè)出版社,2010.6。</p><p> [2] 郭天祥,新概念51單片機(jī)C語(yǔ)言教程—入門、提高、開(kāi)發(fā)、擴(kuò)展全攻略.北京:電子工業(yè)出版社,2009.1。</p><p> [3] 祖龍起. 一種新型可編程密碼鎖. 大連輕工業(yè)學(xué)院學(xué)報(bào),2002,(01)。;</p><p> [4
76、] 李明喜. 新型電子密碼鎖的設(shè)計(jì). 機(jī)電產(chǎn)品開(kāi)發(fā)與創(chuàng)新,2004,(03)。</p><p> [5] 王寬仁. 可靠安全的智能密碼鎖.電子技術(shù)應(yīng)用.2001年第2期。</p><p> [6] 張毅剛,彭喜元,姜守達(dá),喬立巖,新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)第三版,哈爾濱工業(yè)大學(xué)出版社,2009.8。</p><p><b> 附錄1元器件清單&l
77、t;/b></p><p><b> 附錄2 程序清單</b></p><p> /*-----------------------------------------------------------------------</p><p><b> 密碼鎖源程序</b></p><p&
78、gt; ----------------------------------------------------------------------**/</p><p> #include<reg52.h></p><p> #include <INTRINS.H></p><p> #include<string.h>
79、</p><p> #include"iic.h"</p><p> #include"keyscan.h"</p><p> #include"LCD12864.h"</p><p> #include "hongwai.h"</p>&l
80、t;p> #define uchar unsigned char</p><p> #define uint unsigned int </p><p> sbit shuchu=P3^2;</p><p> sbit jieyong=P2^7;</p><p> uchar code lcd_table1[]={"
81、 --密碼鎖-- "};</p><p> uchar code lcd_table2[]={"您好,請(qǐng)輸入密碼"};</p><p> uchar code lcd_table3[]={"******"};</p><p> uchar code lcd_table4[]={"☆★◇◆◆◇★
82、☆"};</p><p> uchar code lcd_table5[]={"恭喜您密碼對(duì)了!"};</p><p> uchar code lcd_table6[]={" 輸入錯(cuò)誤?。?!"};</p><p> uchar code lcd_table7[]={"請(qǐng)輸入新的密碼 "}
83、;</p><p> uchar code lcd_table8[]={"請(qǐng)?jiān)俅屋斎朊艽a "};</p><p> uchar code lcd_table9[]={"密碼修改成功!!"};</p><p> uchar code lcd_table10[]={"密碼修改失敗?。?quot;};</p&
84、gt;<p> uchar code lcd_table11[]={" "};</p><p> uchar code lcd_table12[]={"B-->修改密碼 "};</p><p> uchar code lcd_table13[]={"按任意鍵返回 "
85、;};</p><p> uchar code lcd_table14[]={"已鎖定,輸入無(wú)效"};</p><p> uchar code lcd_table15[]={"如有必要,請(qǐng)聯(lián)系"};</p><p> uchar code lcd_table16[]={"開(kāi)鎖公司,切勿強(qiáng)"};<
86、/p><p> uchar code lcd_table17[]={"行開(kāi)鎖! "};</p><p> uchar mima_table5[]={2,3,4,5,6,7};//原始密碼</p><p> uchar mima_table2[]={10,10,10,10,10,10};//輸入密碼緩存</p><
87、;p> uchar mima_table3[]={10,10,10,10,10,10};//改密輸入緩存</p><p> uchar mima_table4[]={10,10,10,10,10,10};//改密確認(rèn)輸入緩存</p><p> uchar mima_table1[]={10,10,10,10,10,10};//原始密碼</p><p>
88、 uchar iic_add;</p><p> void delayms()</p><p><b> {</b></p><p><b> uint i;</b></p><p> for(i=0;i<300;i++);</p><p><b>
89、 }</b></p><p> void main()</p><p><b> {</b></p><p> uint knum=16;</p><p> uchar i,k=0;</p><p> uchar gaimi=0,querengaimi=0,zisuo=0;&
90、lt;/p><p> jieyong=0;</p><p> lcm_init();</p><p><b> SDA=1;</b></p><p><b> SCL=1;</b></p><p> /*iic_add=0x00;</p><p>
91、; for(i=0;i<6;i++)</p><p><b> {</b></p><p> iic_write(iic_add, mima_table5[i]);</p><p> iic_add++;</p><p> delayms(); </p><p>
92、<b> }*/</b></p><p> iic_add=0x00;</p><p> for(i=0;i<6;i++)</p><p><b> {</b></p><p> mima_table1[i]=iic_readtoaddr(iic_add);</p>
93、<p> iic_add++;</p><p> delayms();</p><p><b> } </b></p><p> //****************************</p><p> /**lcm_weizhi(0,0);</p>
94、<p><b> i=0;</b></p><p> while(i<6)</p><p><b> {</b></p><p> write_sj(mima_table1[i]+0x30);</p><p><b> i++;</b></p&g
95、t;<p><b> }</b></p><p> while(1); **/</p><p> //****************************</p><p><b> while(1)</b></p><p><b> {</b>&
96、lt;/p><p><b> knum=16;</b></p><p> knum=keyscan();</p><p> //write_zl(0x01);</p><p><b> do</b></p><p><b> {</b></p
97、><p> knum=keyscan();</p><p> lcm_weizhi(0,0);</p><p><b> i=0;</b></p><p> while(lcd_table1[i]!='\0')</p><p><b> {&
98、lt;/b></p><p> write_sj(lcd_table1[i]);</p><p><b> i++;</b></p><p><b> } </b></p><p> lcm_weizhi(1,0);</p><p><b> i=0
99、;</b></p><p> while(lcd_table2[i]!='\0')</p><p><b> {</b></p><p> write_sj(lcd_table2[i]);</p><p><b> i++;</b></p><
100、p><b> }</b></p><p> }while(knum==16);</p><p> if(knum<=9)//密碼輸入</p><p><b> {</b></p><p> mima_table2[k]=knum;//將鍵值賦到輸入緩存中</p>
101、<p><b> k++;</b></p><p> lcm_weizhi(2,0);</p><p><b> i=0;</b></p><p> while(i<k)</p><p><b> {</b></p><p>
102、; write_sj(lcd_table3[i]);</p><p><b> i++;</b></p><p><b> }</b></p><p><b> if(k>6)</b></p><p><b> k=0;</b></p
103、><p><b> }</b></p><p> lcm_weizhi(3,0);</p><p><b> i=0;</b></p><p> while(i<k)</p><p><b> {</b></p><p&g
104、t; write_sj(mima_table2[i]+0x30);</p><p><b> i++;</b></p><p><b> } </b></p><p> if(knum==10)//確認(rèn)開(kāi)鎖</p><p><b> {</b></p>
105、<p><b> k=0;</b></p><p> write_zl(0x01);</p><p> if(mima_table2[0]==mima_table1[0]&&mima_table2[1]==mima_table1[1]</p><p> &&mima_table2[2]==m
106、ima_table1[2]&&mima_table2[3]==mima_table1[3]</p><p> &&mima_table2[4]==mima_table1[4]&&mima_table2[5]==mima_table1[5])//輸入正確</p><p> //if(strcmp(mima_table2,mima_tab
107、le1))</p><p><b> {</b></p><p><b> zisuo=0;</b></p><p><b> gaimi=1;</b></p><p> knum=keyscan();</p><p> while(knum
108、==16)</p><p><b> {</b></p><p> knum=keyscan();</p><p> lcm_weizhi(0,0);</p><p><b> i=0;</b></p><p> while(lcd_table4[i]!='
109、\0')</p><p><b> {</b></p><p> write_sj(lcd_table4[i]);</p><p><b> i++;</b></p><p><b> }</b></p><p> lcm_weizhi
110、(1,0);</p><p><b> i=0;</b></p><p> while(lcd_table5[i]!='\0')</p><p><b> {</b></p><p> write_sj(lcd_table5[i]);</p><p>
111、<b> i++;</b></p><p><b> }</b></p><p> lcm_weizhi(2,0);</p><p><b> i=0;</b></p><p> while(lcd_table12[i]!='\0')</p>
112、;<p><b> {</b></p><p> write_sj(lcd_table12[i]);</p><p><b> i++;</b></p><p><b> }</b></p><p> lcm_weizhi(3,0);</p>
113、<p><b> i=0;</b></p><p> while(lcd_table13[i]!='\0')</p><p><b> {</b></p><p> write_sj(lcd_table13[i]);</p><p><b> i++
114、;</b></p><p><b> }</b></p><p><b> shuchu=0;</b></p><p><b> }</b></p><p> for(i=0;i<=6;i++)</p><p> mima_t
115、able2[i]=10;</p><p><b> }</b></p><p> else//輸入錯(cuò)誤</p><p><b> {</b></p><p><b> zisuo++;</b></p><p><b> gaimi=0
116、;</b></p><p> knum=keyscan();</p><p> while(knum==16)</p><p><b> {</b></p><p> knum=keyscan();</p><p> lcm_weizhi(1,0);</p>&
117、lt;p><b> i=0;</b></p><p> while(lcd_table6[i]!='\0')</p><p><b> {</b></p><p> write_sj(lcd_table6[i]);</p><p><b> i++;<
118、/b></p><p><b> }</b></p><p> lcm_weizhi(2,0);</p><p><b> i=0;</b></p><p> while(lcd_table13[i]!='\0')</p><p><b&g
119、t; {</b></p><p> write_sj(lcd_table13[i]);</p><p><b> i++;</b></p><p><b> }</b></p><p><b> }</b></p><p><
120、b> }</b></p><p> lcm_weizhi(2,0);</p><p><b> i=0;</b></p><p> while(lcd_table11[i]!='\0')</p><p><b> {</b></p><
121、p> write_sj(lcd_table11[i]);</p><p><b> i++;</b></p><p><b> }</b></p><p> lcm_weizhi(3,0);</p><p><b> i=0;</b></p>&l
122、t;p> while(lcd_table11[i]!='\0')</p><p><b> {</b></p><p> write_sj(lcd_table11[i]);</p><p><b> i++;</b></p><p><b> }</b
123、></p><p><b> }</b></p><p> ///***********************************</p><p> if(knum==11&&gaimi==1) //改密</p><p><b> {</b></p>
124、<p> write_zl(0x01);</p><p> knum=keyscan();</p><p><b> do</b></p><p><b> {</b></p><p> knum=keyscan();</p><p> lcm_wei
125、zhi(0,0);</p><p><b> i=0;</b></p><p> while(lcd_table1[i]!='\0')</p><p><b> {</b></p><p> write_sj(lcd_table1[i]);</p><p&
126、gt;<b> i++;</b></p><p><b> } </b></p><p> lcm_weizhi(1,0);</p><p><b> i=0;</b></p><p> while(lcd_table7[i]!='\0')</p
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文--超市存包柜密碼鎖的設(shè)計(jì)
- 畢業(yè)論文_超市存包柜密碼鎖的設(shè)計(jì)
- 密碼鎖畢業(yè)設(shè)計(jì)
- 無(wú)限密碼鎖畢業(yè)設(shè)計(jì)
- 電子密碼鎖畢業(yè)設(shè)計(jì)
- 密碼鎖畢業(yè)設(shè)計(jì)論文
- 電子密碼鎖畢業(yè)設(shè)計(jì)
- 電子密碼鎖畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---電子密碼鎖設(shè)計(jì)
- 電子密碼鎖設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 電子密碼鎖的畢業(yè)設(shè)計(jì)
- 電子密碼鎖畢業(yè)設(shè)計(jì)論文
- 紅外遙控密碼鎖畢業(yè)設(shè)計(jì)
- 電子密碼鎖畢業(yè)設(shè)計(jì)論文
- 電子密碼鎖畢業(yè)設(shè)計(jì) (2)
- 畢業(yè)設(shè)計(jì)220數(shù)字密碼鎖設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)220數(shù)字密碼鎖設(shè)計(jì)
- 電子密碼鎖設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 電子密碼鎖的畢業(yè)設(shè)計(jì)論文
- 單片機(jī)密碼鎖畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論