基于stc89c52單片機的電子密碼鎖畢業(yè)設(shè)計_第1頁
已閱讀1頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于STC89C52單片機的電子密碼鎖</p><p>  學(xué)生姓名: xx </p><p>  學(xué)生學(xué)號: xxxxx </p><p>  院(系): 電氣信息工程學(xué)院 </p><p>  年級專業(yè): 2010級

2、電子信息工程2班 </p><p>  指導(dǎo)教師: </p><p><b>  二〇一三年六月</b></p><p><b>  摘 要</b></p><p>  隨著人們生活水平的提高,如何實現(xiàn)家庭防盜這一問題也變的尤其的突出,傳統(tǒng)的機械

3、鎖由于其構(gòu)造的簡單,被撬的事情屢見不鮮,電子密碼鎖具有安全性能高,成本低,功耗低,操作簡單等優(yōu)點使其作為防盜衛(wèi)士的角色越來越重要。</p><p>  從經(jīng)濟(jì)實用角度出發(fā),采用51系列單片機,設(shè)計一款可更改密碼,LCD1602顯示,具有報警功能,該電子密碼鎖體積小,易于開發(fā),成本較低,安全性高,能將其存儲的現(xiàn)場歷史數(shù)據(jù)及時上報給上位機系統(tǒng),實現(xiàn)網(wǎng)絡(luò)實時監(jiān)控,方便管理人員及時分析和處理數(shù)據(jù)。其性能和安全性已大大超過

4、了機械鎖,特點有保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖,隨機開鎖成功率幾乎為零;密碼可變, 用戶可以經(jīng)常更改密碼,防止密碼被盜,同時也可以避免因人員的更替而使鎖的密級下降;誤碼輸入保護(hù)。當(dāng)輸入密碼多次錯誤時,報警系統(tǒng)自動啟動;電子密碼鎖操作簡單易行,受到廣大用戶的親睞。</p><p>  關(guān)鍵詞 單片機, 密碼鎖, 更改密碼, LCD1602</p><p><b>  目

5、錄</b></p><p>  摘要……………………………………………………………………………………I</p><p><b>  1 緒論</b></p><p>  1.1電子密碼鎖簡介……………………………………………………………………………1</p><p>  1.2 電子密碼鎖的發(fā)展趨勢………

6、…………………………………………………………1</p><p>  2 設(shè)計方案……………………………………………………………………………………3</p><p>  3 主要元器件…………………………………………………………………………………4</p><p>  3.1 主控芯片STC89C52………………………………………………………………………4<

7、/p><p>  3.2 晶體振蕩器………………………………………………………………………………8</p><p>  3.3 LCD顯示密碼模塊的設(shè)計………………………………………………………………9</p><p>  3.3.1 LCD1602簡介………………………………………………………………………9</p><p>  3.3.2 LC

8、D1602液晶顯示模塊與單片機連接電路………………………………………11</p><p>  4 硬件系統(tǒng)設(shè)計……………………………………………………………………………12</p><p>  4.1 設(shè)計原理…………………………………………………………………………………12</p><p>  4.2 電源輸入電路………………………………………………………………

9、……………12</p><p>  4.3 矩陣鍵盤…………………………………………………………………………………13</p><p>  4.4 復(fù)位電路…………………………………………………………………………………14</p><p>  4.5 晶振電路…………………………………………………………………………………14</p><p>

10、  4.6 報警電路…………………………………………………………………………………15</p><p>  4.7 顯示電路…………………………………………………………………………………15</p><p>  4.8 開鎖電路…………………………………………………………………………………16</p><p>  4.9 電路總體構(gòu)成…………………………………………

11、…………………………………16</p><p>  5 軟件程序設(shè)計……………………………………………………………………………18</p><p>  5.1 主程序流程介紹…………………………………………………………………………18</p><p>  5.2 鍵盤模塊流程圖…………………………………………………………………………19 </p>&

12、lt;p>  5.3 顯示模塊流程圖…………………………………………………………………………21</p><p>  5.4 修改密碼流程圖…………………………………………………………………………22</p><p>  5.5 開鎖和報警模塊流程圖………………………………………………………………23</p><p>  6 電子密碼鎖的系統(tǒng)調(diào)試及仿真………

13、………………………………………………25</p><p>  6.1硬件電路調(diào)試及結(jié)果分析………………………………………………………………25</p><p>  6.2軟件調(diào)試及功能分析……………………………………………………………………25</p><p>  6.2.1調(diào)試過程……………………………………………………………………………25</p>

14、<p>  6.2.2 仿真結(jié)果分…………………………………………………………………………26</p><p>  6.3 仿真全圖…………………………………………………………………………………28</p><p>  7 結(jié)論…………………………………………………………………………………………29</p><p>  參考文獻(xiàn)………………………………

15、………………………………………………………30</p><p>  附錄:……………………………………………………………………………………………31</p><p><b>  1 緒論</b></p><p>  1.1電子密碼鎖簡介</p><p>  電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機

16、械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品?,F(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。其性能和安全性已大大超過了機械鎖。其特點如下:</p><p>  1) 保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機開鎖成功率幾乎為零。2) 密碼可變,用戶可以隨時更改密碼,防止密碼被盜,同時也可以避免因</p><p>  

17、人員的更替而使鎖的密級下降。3) 誤碼輸入保護(hù),當(dāng)輸入密碼多次錯誤時,報警系統(tǒng)自動啟動。</p><p>  4) 無活動零件,不會磨損,壽命長。</p><p>  5) 使用靈活性好,不像機械鎖必須佩帶鑰匙才能開鎖。</p><p>  6) 電子密碼鎖操作簡單易行,一學(xué)即會。</p><p>  1.2 電子密碼鎖的發(fā)展趨勢<

18、/p><p>  日常生活和工作中,住宅與部門的安全防范、單位的文件檔案、財務(wù)報表以及一些個人資料的保存多以加鎖的辦法來解決。目前門鎖主要用彈子鎖,其鑰匙容易丟失;保險箱主要用機械密碼鎖,其結(jié)構(gòu)較為復(fù)雜,制造精度要求高,成本高,且易出現(xiàn)故障,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。針對這些鎖具給人們帶來的不便若使用機械式鑰匙開鎖,為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖

19、應(yīng)運而生。由于電子器件所限,以前開發(fā)的電子密碼鎖,其種類不多,保密性差,最基本的就是只依靠最簡單的模擬電子開關(guān)來實現(xiàn)的,制作簡單但很不安全,在后為多是基于EDA來實現(xiàn)的,其電路結(jié)構(gòu)復(fù)雜,電子元件繁多,也有使用早先的20引角的2051系列單片機來實現(xiàn)的,但密碼簡單,易破解。隨著電子元件的進(jìn)一步發(fā)展,電子密碼鎖也出現(xiàn)了很多的種類,功能日益強大,使用更加方便,安全保密性更強,由以前的單密碼輸入發(fā)展到現(xiàn)在的,密碼加感應(yīng)元件,實現(xiàn)了真真的電子加密

20、,用戶只有密碼或電子鑰匙中的一樣,是打不開鎖的,隨著電子元件的發(fā)展及人們對保密性需求的提高出現(xiàn)了越來越多的電子密碼鎖。出于安全、方便等方面的需要許多電子密碼鎖</p><p><b>  2 設(shè)計方案</b></p><p>  采用以單片機為核心的控制方案</p><p>  由于單片機種類繁多,各種型號都有其一定的應(yīng)用環(huán)境,因此在選用時要

21、多加比較,合理選擇,以期獲得最佳的性價比。一般來說在選取單片機時從下面幾個方面考慮:性能、存儲器、運行速度、I/O口、定時/計數(shù)器、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些的還有一些最基本的比如:中斷源的數(shù)量和優(yōu)先級、工作溫度范圍、有沒有低電壓檢測功能、單片機內(nèi)有無時鐘振蕩器、有無上電復(fù)位功能等。在開發(fā)過程中單片機還受到:開發(fā)工具、編程器、開發(fā)成本、開發(fā)人員的適應(yīng)性、技術(shù)支持和服務(wù)等等因素?;?/p>

22、以上因素本設(shè)計選用單片機STC89C52作為本設(shè)計的核心元件,利用單片機靈活的編程設(shè)計和豐富的I/O端口,及其控制的準(zhǔn)確性,實現(xiàn)基本的密碼鎖功能。在單片機的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接LCD1602液晶顯示屏用于顯示作用。當(dāng)用戶需要開鎖時,先按鍵盤開鎖鍵之后按鍵盤的數(shù)字鍵0-9輸入密碼。密碼輸完后按下確認(rèn)鍵,如果密碼輸入正確則開鎖,不正確則重新輸入密碼,當(dāng)三次密碼錯誤則發(fā)出報警;當(dāng)用戶需要修改密碼時,先按下鍵

23、盤設(shè)置鍵后輸入原來的密碼,只有當(dāng)輸入的原密碼正確開鎖后才</p><p><b>  3 主要元器件</b></p><p>  3.1 主控芯片STC89C52</p><p>  1)STC89C52單片機的主要特性如下: </p><p>  Stc89c52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器(FPERO

24、M—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,stc的stc89c52是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案,stc89c52芯片引腳圖如圖3-1所示

25、。</p><p>  圖3-1 stc89c52芯片引腳圖</p><p><b>  主要特性:</b></p><p>  ·與MCS-51 兼容 </p><p>  ·8K字節(jié)可編程閃爍存儲器 </p><p>  ·壽命:1000寫/擦循環(huán)</p&

26、gt;<p>  ·數(shù)據(jù)保留時間:10年</p><p>  ·全靜態(tài)工作:0Hz-24Hz</p><p>  ·三級程序存儲器鎖定</p><p>  ·128*8位內(nèi)部RAM</p><p>  ·32可編程I/O線</p><p>  ·

27、兩個16位定時器/計數(shù)器</p><p><b>  ·6個中斷源 </b></p><p><b>  ·可編程串行通道</b></p><p>  ·低功耗的閑置和掉電模式</p><p>  ·片內(nèi)振蕩器和時鐘電路 </p><p&g

28、t;  2)STC89C52RC 引腳功能說明:</p><p>  1、主電源引腳VSS和VSS </p><p>  STC89C52芯片引腳圖</p><p>  VSS——(40腳)接+5V電壓;</p><p>  VSS——(20腳)接地。 </p

29、><p>  2、外接晶體引腳XTAL1和XTAL2 </p><p>  XTAL1(19腳)接外部晶體的一個引腳。在單片機內(nèi)部,它是一個反相放大器的輸入端,這個放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外部振蕩器時,對HMOS單片機,此引腳應(yīng)接地;對SHMOS單片機,此引腳作為驅(qū)動端。 </p><p>  XTAL2(18腳)接外晶體的另一端。在單片機內(nèi)部,接至上述振蕩器的反

30、相放大器的輸出端。采用外部振蕩器時,對HMOS單片機,該引腳接外部振蕩器的信號,即把外部振蕩器的信號直接接到內(nèi)部時鐘發(fā)生器的輸入端;對XHMOS,此引腳應(yīng)懸浮。 </p><p>  3、控制或與其它電源復(fù)用引腳RST/VPD、ALE/PROG、PSEN和EA/VPP </p><p> ?、賀ST/VPD(9腳)當(dāng)振蕩器運行時,在此腳上出現(xiàn)兩個機器周期的高電平將使單片機復(fù)位。推薦在此引腳

31、與VSS引腳之間連接一個約8.2k的下拉電阻,與VSS引腳之間連接一個約10μF的電容,以保證可靠地復(fù)位。 </p><p>  VSS掉電期間,此引腳可接上備用電源,以保證內(nèi)部RAM的數(shù)據(jù)不丟失。當(dāng)VSS主電源下掉到低于規(guī)定的電平,而VPD在其規(guī)定的電壓范圍(5±0.5V)內(nèi),VPD就向內(nèi)部RAM提供備用電源。 </p><p> ?、贏LE/PROG(30腳):當(dāng)訪問外部存貯

32、器時,ALE(允許地址鎖存)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍以不變的頻率周期性地出現(xiàn)正脈沖信號,此頻率為振蕩器頻率的1/6。因此,它可用作對外輸出的時鐘,或用于定時目的。然而要注意的是,每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。ALE端可以驅(qū)動(吸收或輸出電流)8個LS型的TTL輸入電路。 對于EPROM單片機(如8751),在EPROM編程期間,此引腳用于輸入編程脈沖(PROG)。 </p&g

33、t;<p> ?、跴SEN(29腳):此腳的輸出是外部程序存儲器的讀選通信號。在從外部程序存儲器取指令(或常數(shù))期間,每個機器周期兩次PSEN有效。但在此期間,每當(dāng)訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN信號將不出現(xiàn)。PSEN同樣可以驅(qū)動(吸收或輸出)8個LS型的TTL輸入。 </p><p> ?、蹺A/VPP(引腳):當(dāng)EA端保持高電平時,訪問內(nèi)部程序存儲器,但在PS(程序計數(shù)器)值超過0FF

34、FH(對851/8751/80S51)或1FFFH(對8052)時,將自動轉(zhuǎn)向執(zhí)行外部程序存儲器內(nèi)的程序。當(dāng)EA保持低電平時,則只訪問外部程序存儲器,不管是否有內(nèi)部程序存儲器。對于常用的8031來說,無內(nèi)部程序存儲器,所以EA腳須常接地,這樣才能只選擇外部程序存儲器。 </p><p>  對于EPROM型的單片機(如8751),在EPROM編程期間,此引腳也用于施加21V的編程電源(VPP)。</p>

35、;<p>  4.控制或與其它電源復(fù)用引腳 RST/Vpd,ALE/PROG,PSEN 和EA/Vpp。</p><p>  RST/Vpd 當(dāng)振蕩器運行時。在此引腳上出現(xiàn)兩個機器同期的高電平(由低到高跳變),將使單片機復(fù)位。</p><p>  在 VSS掉電期間,此引腳可接上備用電源,由 Vpd向內(nèi)部 RAM提供備用電源,以保持內(nèi)部RAM中的數(shù)據(jù)。</p>

36、<p>  ALE/PROG 正常操作時為ALE功能(允許地址錢存),提供把地址的低字節(jié)鎖存到外部鎖存器。ALE引腳以不變的頻率(振蕩周期的1/6)周期性地發(fā)出正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。但要注意,每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過一個 ALE脈沖。 ALE端可以驅(qū)動(吸收或輸出電流)八個 LSTTL電路。</p><p>  對于 EPROM型單片機,在 EPROM編程期間

37、,此引腳接收編程脈沖(PROG功能)。</p><p>  PSEN 外部程序存儲器讀選通信號輸出端。在從外部程序存儲器取指令(或數(shù)據(jù))期間;PSEN 在每個機器周期內(nèi)兩次有效。 PSEN 同樣可以驅(qū)動八個LSTTL輸入。</p><p>  EA/Vpp EA為內(nèi)部程序存儲器和外部程序存儲器選擇端。當(dāng)EA為高電平時,訪問內(nèi)部程序存儲器(PS值小于4K)。當(dāng)EA為低電平時,則訪問外部程序存

38、儲器。對于EPROM型單片機,在EPROM編程期間,此引腳上加21VEPROM編程電源(Vpp)。</p><p>  5、輸入/輸出(I/O)引腳P0、P1、P2、P3(共32根) </p><p>  ①P0口(39腳至32腳):是雙向8位三態(tài)I/O口,在外接存儲器時,與地址總線的低8位及數(shù)據(jù)總線復(fù)用,能以吸收電流的方式驅(qū)動8個LS型的TTL負(fù)載。 </p><p&

39、gt; ?、赑1口(1腳至8腳):是準(zhǔn)雙向8位I/O口。由于這種接口輸出沒有高阻狀態(tài),輸入也不能鎖存,故不是真正的雙向I/O口。P1口能驅(qū)動(吸收或輸出電流)4個LS型的TTL負(fù)載。對8052、8032,P1.0引腳的第二功能為T2定時/計數(shù)器的外部輸入,P1.1引腳的第二功能為T2EX捕捉、重裝觸發(fā),即T2外部控制端。對EPROM編程和程序驗證時,它接收低8位地址。 </p><p> ?、跴2口(21腳至28

40、腳):是準(zhǔn)雙向8位I/O口。在訪問外部存儲器時,它可以作為擴(kuò)展電路高8位地址總線送出高8位地址。在對EPROM編程和程序驗證期間,它接收高8位地址。P2可以驅(qū)動(吸收或輸出電流)4個LS型的TTL負(fù)載。 </p><p> ?、躊3口(10腳至17腳):是準(zhǔn)雙向8位I/O口,在MSS-51中,這8個引腳還用于專門功能,是復(fù)用雙功能口。P3能驅(qū)動(吸收或輸出電流)4個LS型的TTL負(fù)載。 </p>&

41、lt;p>  作為第一功能使用時,就作為普通I/O口用,功能和操作方法與P1口相同。作為第二功能使用時,各引腳的定義如表所示。 </p><p>  值得強調(diào)的是,P3口的每一條引腳均可獨立定義為第一功能的輸入輸出或第二功能。如表3-1。</p><p>  表3-1 P3口管腳備選功能</p><p><b>  3.2 晶體振蕩器</b&

42、gt;</p><p>  晶體振蕩器,簡稱晶振,其作用在于產(chǎn)生原始的時鐘頻率,這個頻率經(jīng)過頻率發(fā)生器的放大或縮小后就成了電腦中各種不同的總線頻率。以聲卡為例,要實現(xiàn)對模擬信號44.1kHz或48kHz的采樣,頻率發(fā)生器就必須提供一個44.1kHz或48kHz的時鐘頻率。如果需要對這兩種音頻同時支持的話,聲卡就需要有兩顆晶振。但是現(xiàn)在的娛樂級聲卡為了降低成本,通常都采用SCR將輸出的采樣頻率固定在48kHz,但是

43、SRC會對音質(zhì)帶來損害,而且現(xiàn)在的娛樂級聲卡都沒有很好地解決這個問題?,F(xiàn)在應(yīng)用最廣泛的是石英晶體振蕩器。 石英晶體振蕩器是一種高精度和高穩(wěn)定度的振蕩器,石英晶體振蕩器也稱石英晶體諧振器,它用來穩(wěn)定頻率和選擇頻率,是一種可以取代LC諧振回路的晶體諧振元件。石英晶體振蕩器廣泛地應(yīng)用在電視機、影碟機、錄像機、無線通訊設(shè)備、電子鐘表、單片機、數(shù)字儀器儀表等電子設(shè)備中。為數(shù)據(jù)處理設(shè)備產(chǎn)生時鐘信號和為特定系統(tǒng)提供基準(zhǔn)信號。在單片機中為其提供

44、時鐘頻率。</p><p>  石英晶體振蕩器是利用石英晶體(二氧化硅的結(jié)晶體)的壓電效應(yīng)制成的一種諧振器件,它的基本構(gòu)成大致是:從一塊石英晶體上按一定方位角切下薄片(簡稱為晶片,它可以是正方形、矩形或圓形等),在它的兩個對應(yīng)面上涂敷銀層作為電極,在每個電極上各焊一根引線接到管腳上,再加上封裝外殼就構(gòu)成了石英晶體諧振器,簡稱為石英晶體或晶體、晶振。其產(chǎn)品一般用金屬外殼封裝,也有用玻璃殼、陶瓷或塑料封裝的。只要在晶

45、體振子板極上施加交變電壓,就會使晶片產(chǎn)生機械變形振動,此現(xiàn)象即所謂逆壓電效應(yīng)。當(dāng)外加電壓頻率等于晶體諧振器的固有頻率時,就會發(fā)生壓電諧振,從而導(dǎo)致機械變形的振幅突然增大。</p><p>  時鐘信號用來提供單片機片內(nèi)的各種微操作的時間基準(zhǔn),時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。MCS-51單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反向放大器,引腳XTAL1和XTAL2分別是此放大電器的輸入端和輸出端,

46、由于采用內(nèi)部方式時,電路簡單,所得的時鐘信號比較穩(wěn)定,實際使用中常采用這種方式,外接晶體振蕩器(簡稱晶振)或陶瓷諧振器就構(gòu)成了內(nèi)部振蕩方式,片內(nèi)高增益反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起可構(gòu)成一個自激振蕩器并產(chǎn)生振蕩時鐘脈沖。外接晶體以及電容C2和C3構(gòu)成并聯(lián)諧振電路,它們起穩(wěn)定振蕩頻率、快速起振的作用,其值為30pF左右,晶振頻率選11.0592MHz </p><p>  3.3 LCD顯示

47、密碼模塊的設(shè)計</p><p>  顯示模塊主要由LCD1602顯示屏組成,他顯示的是鍵盤輸入的密碼,以及密碼正確與錯誤的提示。當(dāng)輸入密碼時,出于安全性的考慮,顯示的密碼是有*號代替,為暗密。當(dāng)輸入六位密碼后按下確認(rèn)鍵,系統(tǒng)會與存于ROM的密碼對比, 若密碼錯誤,顯示屏?xí)@示Error,若密碼正確,顯示屏?xí)@示Right。</p><p>  3.3.1 LCD1602簡介</p&

48、gt;<p>  1) 1602功能介紹</p><p>  1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因為如此所以他不能顯示圖形。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符

49、液晶模塊(顯示字符和數(shù)字)。 </p><p>  2) 1602LCD 采用標(biāo)準(zhǔn)的 14腳(無背光)或 16腳(帶背光)接口,各引腳接口說明如下表3-2所示: </p><p>  表3-2 引腳功能說明</p><p>  其引腳圖如下圖3-2所示:</p><p>  圖3-2 LCD1602引腳圖</p><

50、p><b>  LCD寄存器的選擇</b></p><p>  表3-3 LCD寄存器的選擇</p><p>  3.3.2 LCD1602液晶顯示模塊與單片機連接電路</p><p>  圖3-3 LCD1602液晶顯示模塊與單片機連接電路</p><p><b>  4 硬件系統(tǒng)設(shè)計</

51、b></p><p><b>  4.1 設(shè)計原理</b></p><p>  本設(shè)計主要由單片機、矩陣鍵盤、液晶顯示器和密碼存儲等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實現(xiàn)。由用戶通過連接單片機的矩陣鍵盤輸入密碼,后經(jīng)過單片機對用戶輸入的密碼與自己保存的密碼進(jìn)行對比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路或者報警電路控制開鎖

52、還是報警,實際使用時只要將單片機的負(fù)載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當(dāng)然也可以用繼電器的常開觸點去控制電磁鐵吸合線圈。</p><p>  本系統(tǒng)共有兩部分構(gòu)成,即硬件部分與軟件部分。其中硬件部分由電源輸入部分、鍵盤輸入部分、密碼存儲部分、復(fù)位部分、晶振部分、顯示部分、報警部分、開鎖部分組成,軟件部分對應(yīng)的由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、啟動程序、關(guān)閉程序、建功能程序、密碼設(shè)置程

53、序、EEPROM讀寫程序和延時程序等組成。</p><p>  圖4-1 組成原理</p><p>  4.2 電源輸入電路</p><p>  三端集成穩(wěn)壓器LM7805和LM7905是作為固定輸出電壓的典型應(yīng)用。正常工作時,輸入、輸出電壓差為2--3V。電容C為輸入穩(wěn)定電容,其作用是減小紋波,消振、抑制高頻和脈沖干擾,它一般為0.1--1uF。電容C為輸出穩(wěn)定

54、電容,其作用是改善負(fù)載的瞬態(tài)響應(yīng),它一般為1uF。使用三端穩(wěn)壓器時要根據(jù)輸出電流的大小選擇加散熱器,否則會由于過熱而無法工作到額定電流。</p><p>  圖4-2 電源輸入電路</p><p><b>  4.3 矩陣鍵盤</b></p><p>  由于本設(shè)計所用到的按鍵數(shù)量較多而不適合用獨立按鍵式鍵盤。采用的是矩陣式按鍵鍵盤,它由行線

55、和列線組成,也稱行列式鍵盤,按鍵位于行列的交叉點上,密碼鎖的密碼由鍵盤輸入完成,與獨立式按鍵鍵盤相比,要節(jié)省很多I/O口。本設(shè)計中使用的這個4*4鍵盤不但能完成密碼的輸入還能作特別功能鍵使用,比如清空顯示功能等。鍵盤的每個按鍵功能在程序設(shè)計中設(shè)置 。其大體功能(看鍵盤按鍵上的標(biāo)記)及與單片機引腳接法。</p><p>  圖4-3 矩陣鍵盤</p><p><b>  4.4

56、復(fù)位電路</b></p><p>  單片機復(fù)位是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復(fù)位后PC=0000H,使單片機從第—個單元取指令。無論是在單片機剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復(fù)位。在復(fù)位期間(即RST為高電平期間),P0口為高組態(tài),P1-P3口輸出高電平;外部程序存儲器讀選通信號PSEN無效。地址鎖存信號ALE也為高電平。根據(jù)實際情

57、況選擇如圖2-8所示的復(fù)位電路。該電路在最簡單的復(fù)位電路下增加了手動復(fù)位按鍵,在接通電源瞬間,電容C1上的電壓很小,復(fù)位下拉電阻上的電壓接近電源電壓,即RST為高電平,在電容充電的過程中RST端電壓逐漸下降,當(dāng)RST端的電壓小于某一數(shù)值后,CPU脫離復(fù)位狀態(tài),由于電容C1足夠大,可以保證RST高電平有效時間大于24個振蕩周期,CPU能夠可靠復(fù)位。增加手動復(fù)位按鍵是為了避免死機時無法可靠復(fù)位。當(dāng)復(fù)位按鍵按下后電容C1通過R5放電。當(dāng)電容C

58、1放電結(jié)束后,RST端的電位由R11與R15分壓比決定。由于R11<<R15 因此RST為高電平,CPU處于復(fù)位狀態(tài),松手后,電容C1充電,RST端電位下降,CPU脫離復(fù)位狀態(tài)。R11的作用在于</p><p>  圖4-4 復(fù)位電路</p><p><b>  4.5 晶振電路</b></p><p>  STC89C52引腳X

59、TAL1和XTAL2與晶體振蕩器及電容C2、C1按下圖所示方式連接。晶振、電容C2/C3及片內(nèi)與非門(作為反饋、放大元件)構(gòu)成了電容三點式振蕩器,振蕩信號頻率與晶振頻率及電容C1、C2的容量有關(guān),但主要由晶振頻率決定,范圍在0~33MHz之間,電容C2、C3取值范圍在30pF左右。根據(jù)實際情況,本設(shè)計中采用11.0592MHZ做系統(tǒng)的外部晶振。電容取值為33pF。</p><p>  圖4-5 晶振電路<

60、/p><p><b>  4.6 報警電路</b></p><p>  報警部分由陶瓷壓電發(fā)聲裝置及外圍電路組成,加電后不發(fā)聲,當(dāng)有鍵按下時,“?!甭?,每按一下,發(fā)聲一次,密碼正確時,不發(fā)聲直接開鎖,當(dāng)密碼輸入錯誤時,單片機的P3.3引腳為低電平,三極管T3導(dǎo)喇叭發(fā)出噪鳴聲報警。</p><p>  圖4-6 報警電路</p>&l

61、t;p><b>  4.7 顯示電路</b></p><p>  LCD1602液晶顯示屏顯示。</p><p>  圖4-7 顯示電路</p><p><b>  4.8 開鎖電路</b></p><p>  通過單片機開鎖執(zhí)行機構(gòu),發(fā)光二極管D1發(fā)光以替代達(dá)到開鎖的目的。</p&

62、gt;<p>  圖4-8 開鎖電路</p><p><b>  開鎖原理:</b></p><p>  圖4-9 開鎖原理</p><p>  4.9 電路總體構(gòu)成</p><p>  在確定了選用什么型號的單片機后,就要確定在外圍電路,其外圍電路包括電源輸入部分、鍵盤輸入部分、復(fù)位部分、晶振部分、顯

63、示部分、報警部分、開鎖部分組成,根據(jù)實際情況鍵盤輸入部分選擇4*4矩陣鍵盤,顯示部分選擇LCD1602液晶顯示屏來完成。本次設(shè)計的各大模塊在上述章節(jié)中已仔細(xì)介紹了,將各大模塊融合在一起后組成電子密碼鎖硬件電路,鍵盤輸入模塊和LCD1602液晶顯示屏顯示模塊是最主要的兩大模塊,鍵盤主要是完成密碼的輸入、修改密碼、消除密碼等等任務(wù)。而顯示模塊則是主要完成輸入密碼的顯示以及密碼輸入正確或者錯誤的提示。而剩余的就是報警模塊、開鎖模塊以及單片機的

64、最小系統(tǒng)。開鎖顧名思義就是密碼輸入正確后打開大門,而報警主要是為安全著想,當(dāng)有人非法入侵時便于抓住犯人。單片機最小系統(tǒng)則是單片機正常運行的保障??偟挠布娐啡鐖D4-10。</p><p>  圖4-10 總電路圖</p><p><b>  5 軟件程序設(shè)計</b></p><p>  電子密碼鎖的軟件設(shè)計是整個電子密碼鎖可靠安全運行的關(guān)鍵

65、,密碼鎖軟件程序分為主程序、延時程序、LCD1602液晶顯示屏顯示程序、修改密碼程序、掃描鍵盤輸入程序、報警程序。密碼通過矩陣鍵盤輸入,并且在LCD1602液晶顯示屏上顯示,如果輸入密碼正確,則可以直接開鎖。如果不正確,并且3次以上輸入不正確,則啟動報警系統(tǒng),觸發(fā)蜂鳴器發(fā)聲。如果要修改密碼,則需要在輸入基礎(chǔ)密碼判別正確后,輸入修改后的密碼,通過系統(tǒng)確認(rèn)后方可修改密碼。為了完成上述任務(wù),在進(jìn)行軟件設(shè)計時,通常把整個過程分成若干個部分,每一

66、部分叫做一個模塊。而本次設(shè)計分為四大模塊,分別是鍵盤輸入模塊、LCD1602液晶顯示屏顯示模塊、開鎖和報警模塊以及修改密碼模塊,通過主程序來實現(xiàn)控制。</p><p>  5.1主程序流程介紹</p><p>  主程序主要內(nèi)容是各程序模塊的調(diào)用,并利用各模塊進(jìn)行電子密碼鎖功能的實現(xiàn),即是鍵盤輸入密碼并在LCD1602液晶顯示屏顯示密碼,當(dāng)密碼輸入完成后,單片機會將輸入進(jìn)的密碼與原單片機內(nèi)

67、部所儲存的密碼進(jìn)行對比,如若密碼正確,則代表電磁吸合器的發(fā)光二極管會發(fā)光,同時LCD1602液晶顯示屏?xí)@示出正確的密碼;如若密碼錯誤,會啟動計數(shù)器計數(shù),當(dāng)錯誤次數(shù)超過三次時,報警系統(tǒng)會啟動即是蜂鳴器會發(fā)出報警聲,以提醒保安。流程圖如圖5-1所示。</p><p>  圖5-1 主程序流程</p><p>  5.2 鍵盤模塊流程圖</p><p>  鍵盤輸入

68、模塊主要包含鍵盤的掃描、延時去抖、找到鍵值以及返回鍵值。鍵盤掃描時循環(huán)的,程序編寫是會使其進(jìn)入是循環(huán),這樣可以檢驗出是否有按鍵按下,如果無按鍵按下就會進(jìn)入等待有按鍵按下的狀態(tài),如果有按鍵按下的話就進(jìn)入延時去抖的步驟,這樣可以肯定的確定掃描到的按鍵是否被按下。經(jīng)過去抖之后就是確定按鍵的位置即是第幾行和第幾列,找到按鍵后,就是確定鍵值并返回按鍵值,每一次掃描到有鍵按下后,最后都要有釋放閉合按鍵的步驟,這是為了避免影響下一次鍵盤的掃描和按鍵值

69、的讀取。流程圖如圖5-2所示</p><p>  圖5-2 鍵盤模塊流程</p><p>  按鍵的消抖子程序所示:</p><p>  if(press_on!=0XF0)//--按鍵消抖---(時間自定)</p><p><b>  {</b></p><p>  delay(50);&l

70、t;/p><p>  press_on=KEY_IO;</p><p><b>  }</b></p><p>  確定鍵值的子程序如下所示:</p><p>  switch(row)</p><p><b>  {</b></p><p>  case

71、 0xe0:row=0;break;</p><p>  case 0xd0:row=1;break;</p><p>  case 0xb0:row=2;break;</p><p>  case 0x70:row=3;break;</p><p><b>  }</b></p><p>  s

72、witch(col)</p><p><b>  {</b></p><p>  case 0x07:col=0;break;</p><p>  case 0x0b:col=1;break;</p><p>  case 0x0d:col=2;break;</p><p>  case 0x0e

73、:col=3;break;</p><p><b>  }</b></p><p>  recieve=key_value[row][col]; </p><p><b>  }</b></p><p>  5.3顯示模塊流程圖</p><p>  LCD顯示模塊的軟

74、件設(shè)計主要包含開始、初始化LCD、清除LCD、寫LCD四個過程。其中寫包含寫數(shù)據(jù)和寫字符。</p><p><b>  寫數(shù)據(jù)的部分程序:</b></p><p>  //寫數(shù) (5位數(shù)據(jù))</p><p>  void printf_data(uchar row,uchar col,uchar count,uint dat)</p>

75、;<p><b>  {</b></p><p>  uchar sh1,sh2,sh3,sh4,sh5;</p><p>  sh5=dat/10000;</p><p>  sh4=dat%10000/1000;</p><p>  sh3=dat%1000/100;</p><p&

76、gt;  sh2=dat%100/10;</p><p>  sh1=dat%10;</p><p>  write_adr(0x0c);</p><p>  switch(row)</p><p><b>  {</b></p><p>  case 1:row=0x80;break;</

77、p><p>  case 2:row=0xc0;break;</p><p>  default:break;</p><p><b>  }</b></p><p>  write_adr(row+col-1);</p><p>  delay(500);</p><p> 

78、 if(count>=5)</p><p>  write_data(sh5+48);</p><p>  if(count>=4) </p><p>  write_data(sh4+48);</p><p>  if(count>=3)</p><p>  write_data(sh3+48);&

79、lt;/p><p>  if(count>=2) </p><p>  write_data(sh2+48);</p><p>  if(count>=1)</p><p>  write_data(sh1+48);</p><p><b>  寫字符的小程序為:</b></p>

80、;<p><b>  //寫一段字符</b></p><p>  void printf_char(uchar row,uchar col,uchar Inbuffer[31])</p><p><b>  {</b></p><p><b>  uchar i;</b></p&

81、gt;<p>  write_adr(0x0c);</p><p>  switch(row)</p><p><b>  {</b></p><p>  case 1:row=0x80;break;</p><p><b> ?。?lt;/b></p><p>&l

82、t;b>  流程圖5-3如下:</b></p><p>  圖5-3 顯示模塊流程圖</p><p>  5.4修改密碼流程圖</p><p>  修改密碼模塊主要是在輸入密碼正確之后,按下14鍵即是修改密碼鍵就能進(jìn)入修改密碼界面,其流程分為四個步驟,分別為按下14鍵并啟動定時、輸入修改的密碼、按下確認(rèn)鍵11鍵、LCD的顯示。修改密碼的部分程序如

83、下:</p><p><b>  //改密碼</b></p><p>  void ch_word(void)</p><p><b>  {</b></p><p>  unsigned char recieve=0xff,b[10],j=0;</p><p>  LCD_

84、CLR();</p><p>  printf_char(1,1,"new_password%d");</p><p>  while(recieve!=11)</p><p><b>  {</b></p><p>  recieve=keypad();</p><p> 

85、 delay(10000);</p><p>  if(recieve<=9&&recieve>=0)</p><p><b>  {</b></p><p>  b[j]=recieve;</p><p>  printf_data(2,j+1,1,recieve);</p>

86、;<p><b>  j++;</b></p><p><b>  }</b></p><p>  else if(recieve==12)</p><p><b>  {</b></p><p>  if(j!=0)</p><p>

87、;<b>  { </b></p><p>  a[j]='\0';</p><p>  printf_char(2,j," %d"); </p><p>  j--; </p><p><b>  }</b></p><p>

88、;<b>  } </b></p><p>  流程圖如圖5-4所示:</p><p>  圖5-4 修改密碼流程圖</p><p>  5.5開鎖和報警模塊流程圖</p><p>  開鎖和報警模塊主要任務(wù)是把從鍵盤輸入到單片機的密碼和本身保存在單片機中的密碼進(jìn)行對比,如果正確就開鎖,如果錯誤的話就進(jìn)行計數(shù)

89、并顯示在LCD液晶顯示屏上,當(dāng)輸入密碼的錯誤次數(shù)達(dá)到3次就進(jìn)入報警模式,啟動蜂鳴器報警。其流程圖如圖5-5所示。</p><p>  圖5-5 報警流程圖</p><p>  6 電子密碼鎖的系統(tǒng)調(diào)試及仿真</p><p>  6.1硬件電路調(diào)試及結(jié)果分析</p><p>  硬件調(diào)試首先檢查電路板焊接是否有誤,檢查有是否出現(xiàn)虛焊、漏焊、

90、線路短接、元器件引腳是否錯誤焊接等等問題,然后檢查電路中某些元器件是否起作用,最后利用一些小程序測試LCD1602是否完好無損。</p><p>  檢測單片機是否工作可通過觀察示波器顯示的波形是否衰減,或者利用萬用表測一下18,19腳的電壓,應(yīng)該有個2-3V就說明起振了,另外,ALE如果有信號或者有電壓也說明單片機工作了。我采用利用萬用表側(cè)18、19腳的電壓,其結(jié)果顯示為2.3V。</p><

91、;p>  檢測電路有無虛焊可用萬用表的二極管檔來檢測,當(dāng)把萬用表的紅黑兩表筆接觸在焊接線路的兩端后,萬用表發(fā)出聲音,則說明沒有虛焊。檢查電路是否短路也是利用同一原理。</p><p>  6.2軟件調(diào)試及功能分析</p><p>  軟件調(diào)試即是把已經(jīng)寫好的C語言程序載入到軟件調(diào)試工具,檢查軟件是否有設(shè)法錯誤,再根據(jù)軟件提示對本程序進(jìn)行修改,直到?jīng)]有錯誤再生成單片機能運行的機器碼,再

92、用51開發(fā)板或其它單片機寫入工具把機器碼寫入單片機進(jìn)行實際的程序調(diào)試,根據(jù)實際情況再對程序的不足加以修改,直到滿足設(shè)計要求。本設(shè)計采用Proteus和KEIL軟件進(jìn)行仿真、調(diào)試,首先在在Proteus軟件上進(jìn)行硬件電路的描繪,其次在KEIL軟件編寫電子密碼鎖的源程序,源程序經(jīng)過匯編后產(chǎn)生Hex文件,最后將生成的目標(biāo)文件添加到單片機中仿真調(diào)試。</p><p><b>  6.2.1調(diào)試過程</b&

93、gt;</p><p>  首先打開KEIL C51主程序,新建工程,新建文本框?qū)懭氤绦颍4?,檢查是否有語法錯誤,經(jīng)反復(fù)檢查無誤后匯編,生成51單片機可執(zhí)行的HEX文件。然后用與51開發(fā)板相匹配的寫入軟件把HEX文件寫入單片機。</p><p>  圖6-1 KEIL c51調(diào)試介面</p><p>  圖6-2 程序?qū)懭虢缑?lt;/p><p

94、>  6.2.2仿真結(jié)果分析</p><p>  當(dāng)系統(tǒng)通電進(jìn)入初始化狀態(tài)后,LCD顯示屏?xí)@示W(wǎng)elcome,結(jié)果如圖6-3所示。</p><p>  圖6-3 系統(tǒng)初始化</p><p>  當(dāng)進(jìn)入輸入密碼階段時,依次按下按鍵上的數(shù)字鍵1,2,3,4,5,6后,LCD顯示屏顯示如圖6-4所示。</p><p>  圖6-4 輸入

95、密碼階段仿真圖</p><p>  當(dāng)按下確定鍵11鍵后,顯示屏上顯示正確且二極管燈亮,表示密碼正確開門,如圖6-5所示。</p><p>  圖6-5 輸入密碼正確時仿真圖</p><p>  按下確認(rèn)鍵后,二極管不亮且顯示屏上顯示Error,表示密碼輸入錯誤,門的鎖不會打開。如圖6-6所示。</p><p>  圖6-6 輸入密碼錯誤

96、仿真圖</p><p>  當(dāng)需要修改密碼時,只需按下14鍵即可進(jìn)入到修改密碼界面,修改成功后顯示success,修改錯誤后顯示屏?xí)@示fail。</p><p>  圖6-7 修改密碼仿真圖</p><p>  圖6-8 修改失敗仿真圖</p><p><b>  6.3 仿真全圖</b></p>

97、<p>  圖6-9 仿真全圖</p><p><b>  7 結(jié)論</b></p><p>  本次設(shè)計通過硬件電路設(shè)計、軟件編程、硬件調(diào)試、軟件調(diào)試以及系統(tǒng)調(diào)試完成了設(shè)計要求,達(dá)到了設(shè)計目的。本次設(shè)計最終的結(jié)果如下:</p><p>  電子密碼鎖通過鍵盤能成功進(jìn)行輸入密碼;</p><p>  LCD

98、液晶顯示屏上能顯示輸入的密碼;</p><p>  能判斷輸入的密碼是否正確并且能顯示判斷結(jié)果;</p><p>  能在密碼輸入正確后開門;</p><p>  能在密碼輸入錯誤次數(shù)達(dá)到三次以上后進(jìn)行報警;</p><p>  能在開門后通過一按鍵對原有密碼進(jìn)行更改;</p><p>  能用*代替顯示輸入的密碼數(shù)字

99、,隱藏了密碼,這實現(xiàn)了密碼保護(hù)。</p><p>  但是在實現(xiàn)上述功能時,也存在許多不足。第一,在密碼輸入正確時除了要使代表電磁吸合器的發(fā)光二極管發(fā)光以外,還應(yīng)該加上語音模塊,提示門開,這樣更人性化一些。第二,密碼輸入錯誤次數(shù)小于三次時,也應(yīng)該采取措施提醒。第三,密碼修改部分,本次設(shè)計實現(xiàn)的不是很好,密碼能進(jìn)行修改但是只能修改第一個密碼。第四,本次設(shè)計的電子密碼鎖,安全方面還可以提高進(jìn)步。本設(shè)計中的報警系統(tǒng)只是

100、一個簡單的系統(tǒng),要應(yīng)用于實際生活還需要進(jìn)一步改進(jìn)。</p><p>  電子鎖是信息化時代發(fā)展的產(chǎn)物,應(yīng)時而生,我相信隨著科技的不斷發(fā)展,將來的電子鎖一定更加完美,更加人性化,更加便宜,更加安全。本次設(shè)計中還有待完善的地方還很多。首先,修改密碼可進(jìn)一步完善,實現(xiàn)有不管多少戶住戶和多少個密碼,都能修改密碼。其次,也是最重要的安全防問題,報警途徑很多,有視屏監(jiān)視和發(fā)出報警聲提醒值班的保安等等。未來,電子密碼鎖需要大面

101、積占據(jù)市場首先必須要突破的就是安全問題,如果解決了這個問題,電子密碼鎖就能在鎖的行業(yè)所向披靡。最后本次設(shè)計還可以精進(jìn)的地方就是輸入密碼錯誤時的處理方法。在輸入密碼錯誤次數(shù)在三次以內(nèi)時,也應(yīng)該采取措施。比如禁止輸入三秒或者也用發(fā)聲模塊提醒,只要發(fā)聲頻率不一致就可區(qū)分。</p><p><b>  參 考 文 獻(xiàn)</b></p><p>  [1] 余永權(quán),汪明慧,黃英

102、.單片機在控制系統(tǒng)中的應(yīng)用[M].北京:電子工業(yè)出版社,2009</p><p>  [2] 周潤景,張麗敏,王偉.Altium Designer原理圖與PCB設(shè)計[M].北京:電子工業(yè)出版社,2009</p><p>  [3] 蔣同澤.現(xiàn)代移動通信系統(tǒng)[M].北京:電子工業(yè)出版社,1998</p><p>  [4] 張毅剛.單片機原理及應(yīng)用[M],北京:高等

103、教育出版社,2003</p><p>  [5] 張云.基于GSM的短消息業(yè)務(wù)協(xié)議分析[J].北京:電子工業(yè)出版社,2001</p><p>  [6] 劉法治.常用電子元器件及典型芯片應(yīng)用技術(shù)[M],北京:機械工業(yè)出版社,2007</p><p>  [7] 張迎.單片微型計算機原理、應(yīng)用及接口技術(shù)[M].國防工業(yè)出版社.2007.1</p><

104、;p>  [8] 石東海.單片機數(shù)據(jù)通信技術(shù)從入門到精通[M].西安電子科技大學(xué)出版社.2007.2</p><p><b>  附錄:</b></p><p><b>  PCB布局:</b></p><p>  /**************************************************

105、******************************</p><p><b>  功能鍵</b></p><p>  S6---S15數(shù)字鍵0-9</p><p>  S16---更改密碼S17---更改密碼完畢后確認(rèn)</p><p>  S18---重試密碼、重新設(shè)定S19---關(guān)閉密碼鎖</p&

106、gt;<p>  初始密碼:000000 密碼位數(shù):6位</p><p>  注意:掉電后,所設(shè)密碼會丟失,重新上點時,密碼恢復(fù)為原始的000000</p><p>  與P1相連的8位發(fā)光LED點亮代表鎖被打開;熄滅代表鎖被鎖上</p><p><b>  程序功能:</b></p><p><b

107、>  1、開鎖:</b></p><p>  下載程序后,直接按六次S7(即代表數(shù)字1),8位LED亮,鎖被打開,輸入密碼時,</p><p>  六位數(shù)碼管依次顯示小橫杠。</p><p><b>  2、更改密碼:</b></p><p>  只有當(dāng)開鎖(LED亮)后,該功能方可使用。</p&

108、gt;<p>  首先按下更改密碼鍵S16,然后設(shè)置相應(yīng)密碼,此時六位數(shù)碼管會顯示設(shè)置密碼對應(yīng)</p><p>  的數(shù)字。最后設(shè)置完六位后,按下S17確認(rèn)密碼更改,此后新密碼即生效。</p><p><b>  3、重試密碼:</b></p><p>  當(dāng)輸入密碼時,密碼輸錯后按下鍵S18,可重新輸入六位密碼。</p&g

109、t;<p>  當(dāng)設(shè)置密碼時,設(shè)置中途想更改密碼,也可按下此鍵重新設(shè)置。</p><p><b>  4、關(guān)閉密碼鎖:</b></p><p>  按下S19即可將打開的密碼鎖關(guān)閉。</p><p>  推薦初級演示步驟:輸入原始密碼000000---按下更改密碼按鍵S16---按0到9設(shè)置密碼---按S17</p>

110、<p>  確認(rèn)密碼更改---按S18關(guān)閉密碼鎖---輸入新的密碼打開密碼鎖</p><p>  *******************************************************************************/</p><p>  #include<reg52.h></p><p>  #def

111、ine uchar unsigned char</p><p>  #define uint unsigned int</p><p>  uchar old1,old2,old3,old4,old5,old6; //原始密碼000000</p><p>  uchar new1,new2,new3,new4,new5,new6; //每次MCU采集到的密碼輸入&

112、lt;/p><p>  uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入數(shù)碼管顯示的變量</p><p>  uchar wei,key,temp;</p><p>  bit allow,genggai,ok,wanbi,retry,close; //各個狀態(tài)位</p><p>  sbit dula=P2^

113、6;</p><p>  sbit wela=P2^7;</p><p>  sbit beep=P2^3;</p><p>  unsigned char code table[]=</p><p>  {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,</p><p>  

114、0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};</p><p>  void delay(unsigned char i)</p><p><b>  {</b></p><p>  uchar j,k;</p><p>  for(j=i;j>0;j--)</p

115、><p>  for(k=125;k>0;k--);</p><p><b>  }</b></p><p>  void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)</p><p><b>  {</b></p>

116、<p><b>  dula=0;</b></p><p>  P0=table[a];</p><p><b>  dula=1;</b></p><p><b>  dula=0;</b></p><p><b>  wela=0;</b>

117、</p><p><b>  P0=0xfe;</b></p><p><b>  wela=1;</b></p><p><b>  wela=0;</b></p><p><b>  delay(5);</b></p><p>

118、  P0=table[b];</p><p><b>  dula=1;</b></p><p><b>  dula=0;</b></p><p><b>  P0=0xfd;</b></p><p><b>  wela=1;</b></p>

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論