孫韓
摘 要:本文采用ATMEL公司的AT89C51 MCU為主控芯片,開發(fā)設(shè)計(jì)了E2PROM、晶振、矩陣按鍵鍵盤、報(bào)警、開鎖等外圍功能模塊,用C語言編寫了系統(tǒng)主控程序和各功能模塊執(zhí)行程序,完成了電子密碼鎖控制系統(tǒng)硬件設(shè)計(jì)、軟件編程和系統(tǒng)調(diào)試。該密碼鎖控制系統(tǒng)密碼6~12位長(zhǎng)度可變、可反復(fù)修改;密碼編碼量大,安全性能高;能實(shí)現(xiàn)智能上鎖、開鎖;具備防試探性密碼輸入開鎖,誤碼報(bào)警等功能。有一定的學(xué)術(shù)和應(yīng)用價(jià)值。
關(guān)鍵詞:密碼鎖;AT89C51 MCU;報(bào)警;矩陣鍵盤
中圖分類號(hào): TP391 文獻(xiàn)標(biāo)志碼: A 文章編號(hào):2095-2163(2015)04-
The Design of Combination Lock based on AT89C51 MCU
SUN Han
(School of Electronic Information Engineering, Anhui University, Hefei 230601, China)
Abstract: This paper adopts AT89C51 MCU as main control chip of ATMEL company, develops and designs E2PROM chips, the crystals, matrix keyboard, alarm, lock and unlock, and other peripheral function module. After that, the paper also uses the C language to write the program of the master control system and each function module, completes the hardware design of control system, software programming and debugging of electronic combination lock. The well-designed password length can be 6 ~ 12, and can be changed; Large amount of password code, safety performance is high; To realize intelligent lock and unlock; Had prevent tentative password input, Password input error reporting alarm, etc. The design in this paper has high academic and application value.
Key word: Combination Lock; AT89C51 MCU; Alarm; Matrix Keyboard
傳統(tǒng)機(jī)械鎖具由于機(jī)構(gòu)簡(jiǎn)單、安裝便捷、價(jià)格便宜、使用方便等特點(diǎn),在家庭門鎖中占據(jù)絕對(duì)優(yōu)勢(shì)。但同時(shí),第一,傳統(tǒng)機(jī)械鎖具是利用鑰匙與鎖芯的機(jī)械配合來工作的,每4000道鎖具就有2把鑰匙是相同或類似的,存在安全缺陷;第二,傳統(tǒng)機(jī)械鎖具由于本身機(jī)械結(jié)構(gòu)的局限性,可以不需要鑰匙配合開鎖,故安全性低;第三,鑰匙不能丟失,否則房主無法打開鎖具,而任何撿到的人都可使用該鑰匙打開相應(yīng)的鎖具;第四,機(jī)械鑰匙易復(fù)制,不宜在流動(dòng)性比較大的賓館等場(chǎng)合使用;第五,機(jī)械鑰匙和鎖芯質(zhì)地較軟,反復(fù)使用,易損壞。
電子密碼防盜鎖可自我設(shè)置開鎖密碼,通過密碼輸入與比對(duì)來控制電路或芯片,進(jìn)而驅(qū)動(dòng)機(jī)械開關(guān)的開閉,來實(shí)現(xiàn)開鎖和關(guān)鎖的任務(wù)。與傳統(tǒng)機(jī)械鎖相比,電子密碼防盜鎖具有以下優(yōu)點(diǎn):第一,密碼位數(shù)多,編碼信息量大,隨機(jī)開鎖概率極小,安全性高;第二,用戶可根據(jù)需要隨時(shí)更改密碼,避免密碼信息泄露造成的安全隱患;第三,密碼為無形信息,避免隨身攜帶,同時(shí)也避免因丟失和被撿到造成的安全隱患;第四,無活動(dòng)部件,不磨損,壽命長(zhǎng);第四,可與小區(qū)安保或派出所報(bào)警系統(tǒng)互聯(lián)互通,實(shí)現(xiàn)遠(yuǎn)程安防報(bào)警等。電子密碼防盜鎖得到越來越多的重視和使用。
1 系統(tǒng)方案
1.1 電子密碼防盜鎖功能指標(biāo)
(1)初始密碼為6位,“111111”。在正確輸入原密碼的條件下,用戶可自行修改、設(shè)置新密碼。
(2)密碼為純數(shù)字,密碼位數(shù)6~12位,可自定義。
(3)密碼通過鍵盤輸入。若密碼輸入正確,芯片控制驅(qū)動(dòng)機(jī)械開關(guān)開鎖。
(4)門合上,芯片自動(dòng)控制驅(qū)動(dòng)機(jī)械開關(guān)關(guān)鎖。
(5)密碼有三次輸入機(jī)會(huì)。三次密碼輸入錯(cuò)誤,芯片控制鎖具鎖死(延遲一段時(shí)間后才能再次輸入密碼開鎖),并通過聲、光等形式報(bào)警。
(6)內(nèi)置電源電量不足時(shí),可外接電源,使系統(tǒng)重啟功能。
(7)預(yù)留擴(kuò)展功能。將報(bào)警裝置與業(yè)主手機(jī)、小區(qū)物業(yè)或派出所報(bào)警系統(tǒng)互聯(lián),實(shí)現(xiàn)遠(yuǎn)程監(jiān)控報(bào)警。
1.2 方案設(shè)計(jì)
通過對(duì)MCU密碼鎖和數(shù)字電路密碼鎖技術(shù)方案的分析對(duì)比,數(shù)字電路密碼鎖不具有確定的靈活6~12位密碼位數(shù)自定義功能,不符合本研究的設(shè)計(jì)要求,故選擇基于MCU的電子密碼鎖設(shè)計(jì),利用單片機(jī)編程靈活、接口豐富、控制精確等的特點(diǎn),實(shí)現(xiàn)設(shè)計(jì)目標(biāo)功能方案。。再從MCU的I/O接口、串行接口、存儲(chǔ)器、運(yùn)行速度、定時(shí)/計(jì)數(shù)器、功耗、封裝形式以及保密性、抗干擾性、性價(jià)比等全面權(quán)衡,選擇基于AT89C51單片機(jī)為主控模塊的電子密碼防盜鎖。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件主要包括AT89C51 MCU主控模塊、鍵盤輸入模塊、密碼存儲(chǔ)模塊、開鎖模塊、報(bào)警模塊等[1]。系統(tǒng)硬件總體框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
Fig.1 Structure diagram of system
2.1 AT89C51主控模塊
AT89C51是一種低功耗、高性能8位CMOS微處理器(MCU),與工業(yè)MCS-51的指令集和管腳完全兼容。使用ATMEL公司高密度非易失存儲(chǔ)技術(shù)制造,8位CPU和4k閃爍存儲(chǔ)器集成在同一芯片內(nèi),緊湊高效,且性價(jià)比高。具有32位可編程I/O線;可編程串行通道;5個(gè)中斷源;2個(gè)16位定時(shí)/計(jì)數(shù)器;低功耗閑置和掉電模式;長(zhǎng)壽命存儲(chǔ)器可以反復(fù)寫/擦10000次,數(shù)據(jù)保留時(shí)間長(zhǎng)達(dá)10年等。AT89C51 MCU為自動(dòng)控制和嵌入式系統(tǒng)提供多種靈活高效廉價(jià)解決方案[2-3]。管腳引線說明詳見AT89C51芯片說明書。
系統(tǒng)電路原理圖如圖2所示。
圖2 系統(tǒng)電路原理圖
Fig.2 Circuit schematic diagram of system
2.2 E2PROM存儲(chǔ)模塊
該模塊采用ATMEL公司的AT42C02 2kB字節(jié)可擦除存儲(chǔ)芯片。該芯片為CMOS型寬電壓(2.5~5.5V)工作,大于1萬次可擦寫,抗干擾能力強(qiáng)。采用8引腳DIP封裝,有2線串行總線與單片機(jī)通訊,自帶地址寄存器。每寫入或讀出一個(gè)字節(jié)數(shù)據(jù),寄存器自動(dòng)加1,可方便密碼位數(shù)自定義。斷電情況下信息可保留10年以上。
2.3 鍵盤輸入模塊
鍵盤輸入模塊采用4×4按鍵鍵盤設(shè)計(jì)。因按鍵較多,故沒有采取獨(dú)立式按鍵鍵盤設(shè)計(jì)。與獨(dú)立按鍵鍵盤相比,矩陣式鍵盤設(shè)計(jì)可節(jié)省一半的I/O口。在行和列的交叉點(diǎn)設(shè)置按鍵。可以通過程序來自主設(shè)定鍵盤上每個(gè)按鍵的功能。
與獨(dú)立式鍵盤的等待處理程序相比,矩陣式行列鍵盤執(zhí)行掃描處理程序。需要注意的是,機(jī)械按鍵在開斷瞬間會(huì)有抖動(dòng)現(xiàn)象。為保持電平穩(wěn)定,當(dāng)掃描檢測(cè)程序檢測(cè)到有按鍵按下時(shí),會(huì)執(zhí)行一個(gè)延遲程序,采用軟件消抖。
2.4 復(fù)位模塊
復(fù)位電路的作用是使CPU和其他功能模塊都恢復(fù)到一個(gè)確定的初始狀態(tài),并從這個(gè)初始狀態(tài)開始工作。本系統(tǒng)設(shè)計(jì)了外觸發(fā)手動(dòng)復(fù)位和自觸發(fā)自動(dòng)復(fù)位兩種復(fù)位方式。系統(tǒng)執(zhí)行完整的操作過程,返回主程序后,都會(huì)自動(dòng)復(fù)位。
2.5 晶振模塊
本設(shè)計(jì)晶振電路采用電容三點(diǎn)式振蕩器結(jié)構(gòu),由晶振、電容C2/C3、以及芯片內(nèi)的與非門構(gòu)成,使用AT89C51的XTAL1he XTAL2引腳,通過調(diào)節(jié)電容值來改變振蕩信號(hào)頻率。本設(shè)計(jì)采用20pF、12MHz外部晶振信號(hào)。
2.6 開鎖模塊
密碼輸入正確,單片機(jī)輸出開鎖信號(hào),通過放大電路驅(qū)動(dòng)電磁鎖吸合,控制機(jī)械裝置開鎖。
2.7 報(bào)警模塊
報(bào)警電路由外圍控制電路和壓電陶瓷發(fā)生裝置組成。正常情況下不發(fā)生。有按鍵按下時(shí),每按一下,發(fā)生一次。密碼輸入正確,直接開鎖不發(fā)聲。密碼輸入錯(cuò)誤,單片機(jī)P2.1引腳轉(zhuǎn)變成低電平,蜂鳴器發(fā)聲,提示密碼輸入錯(cuò)誤,系統(tǒng)復(fù)位。當(dāng)密碼輸入錯(cuò)誤達(dá)到三次,單片機(jī)P2.1引腳轉(zhuǎn)變成低電平,蜂鳴器持續(xù)發(fā)聲報(bào)警。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)程序主要由主程序、按鍵功能設(shè)置程序、鍵盤掃描程序(包括延時(shí)消抖程序)、密碼設(shè)置程序、開鎖程序、顯示程序等組成。主程序流程圖、開鎖程序流程圖和密碼設(shè)置程序流程圖分別如圖3、圖4和圖5所示。
圖3 主程序流程圖 圖4 開鎖程序流程圖 圖5 修改密碼程序流程圖
Fig.3 Program flow chart Fig.4 Program flow chart Fig.5 Program flow chart
of the main program of the unlock of change the password
4 結(jié)束語
本電子密碼鎖基于AT89C51 MCU設(shè)計(jì),具有6~12位自定義可修改密碼、4×4矩陣按鍵鍵盤密碼輸入開閉門鎖、誤操作和密碼輸入錯(cuò)誤報(bào)警等功能。編碼量巨大,隨機(jī)重合率極低,安全系數(shù)高。系統(tǒng)結(jié)構(gòu)合理、功能先進(jìn),器件選擇科學(xué)適宜、性價(jià)比高。設(shè)計(jì)中結(jié)合兼顧鎖身外殼、閉鎖部件等,保密防盜性能優(yōu)越。
本裝置預(yù)留接口,可外聯(lián)攝像頭拍攝控制開關(guān),密碼輸入錯(cuò)誤時(shí)自發(fā)啟動(dòng)攝像系統(tǒng)拍攝及畫面?zhèn)鬏敚部蓪?bào)警信號(hào)通過物聯(lián)網(wǎng)與戶主手機(jī)、物業(yè)或派出所安保防盜系統(tǒng)互通互聯(lián),實(shí)現(xiàn)遠(yuǎn)程聯(lián)防報(bào)警。
參考文獻(xiàn):
[1] 趙全利. 單片機(jī)原理及應(yīng)用教程[M].第三版. 北京:機(jī)械工業(yè)出版社,2013:78-81.
[2] 張志良.單片機(jī)原理與控制技術(shù)[M].北京:機(jī)械工業(yè)出版社,2002:78-81.
[3] 喻萍,郭文川.單片機(jī)原理與接口技術(shù)[M].北京:化學(xué)工業(yè)出版社,2006:195-197.