孫韓
摘 要:本文采用ATMEL公司的AT89C51 MCU為主控芯片,開發(fā)設(shè)計了E2PROM、晶振、矩陣按鍵鍵盤、報警、開鎖等外圍功能模塊,用C語言編寫了系統(tǒng)主控程序和各功能模塊執(zhí)行程序,完成了電子密碼鎖控制系統(tǒng)硬件設(shè)計、軟件編程和系統(tǒng)調(diào)試。該密碼鎖控制系統(tǒng)密碼6~12位長度可變、可反復(fù)修改;密碼編碼量大,安全性能高;能實現(xiàn)智能上鎖、開鎖;具備防試探性密碼輸入開鎖,誤碼報警等功能。有一定的學(xué)術(shù)和應(yīng)用價值。
關(guān)鍵詞:密碼鎖;AT89C51 MCU;報警;矩陣鍵盤
中圖分類號: TP391 文獻標志碼: A 文章編號: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)機械鎖具由于機構(gòu)簡單、安裝便捷、價格便宜、使用方便等特點,在家庭門鎖中占據(jù)絕對優(yōu)勢。但同時,第一,傳統(tǒng)機械鎖具是利用鑰匙與鎖芯的機械配合來工作的,每4000道鎖具就有2把鑰匙是相同或類似的,存在安全缺陷;第二,傳統(tǒng)機械鎖具由于本身機械結(jié)構(gòu)的局限性,可以不需要鑰匙配合開鎖,故安全性低;第三,鑰匙不能丟失,否則房主無法打開鎖具,而任何撿到的人都可使用該鑰匙打開相應(yīng)的鎖具;第四,機械鑰匙易復(fù)制,不宜在流動性比較大的賓館等場合使用;第五,機械鑰匙和鎖芯質(zhì)地較軟,反復(fù)使用,易損壞。
電子密碼防盜鎖可自我設(shè)置開鎖密碼,通過密碼輸入與比對來控制電路或芯片,進而驅(qū)動機械開關(guān)的開閉,來實現(xiàn)開鎖和關(guān)鎖的任務(wù)。與傳統(tǒng)機械鎖相比,電子密碼防盜鎖具有以下優(yōu)點:第一,密碼位數(shù)多,編碼信息量大,隨機開鎖概率極小,安全性高;第二,用戶可根據(jù)需要隨時更改密碼,避免密碼信息泄露造成的安全隱患;第三,密碼為無形信息,避免隨身攜帶,同時也避免因丟失和被撿到造成的安全隱患;第四,無活動部件,不磨損,壽命長;第四,可與小區(qū)安?;蚺沙鏊鶊缶到y(tǒng)互聯(lián)互通,實現(xiàn)遠程安防報警等。電子密碼防盜鎖得到越來越多的重視和使用。
1 系統(tǒng)方案
1.1 電子密碼防盜鎖功能指標
(1)初始密碼為6位,“111111”。在正確輸入原密碼的條件下,用戶可自行修改、設(shè)置新密碼。
(2)密碼為純數(shù)字,密碼位數(shù)6~12位,可自定義。
(3)密碼通過鍵盤輸入。若密碼輸入正確,芯片控制驅(qū)動機械開關(guān)開鎖。
(4)門合上,芯片自動控制驅(qū)動機械開關(guān)關(guān)鎖。
(5)密碼有三次輸入機會。三次密碼輸入錯誤,芯片控制鎖具鎖死(延遲一段時間后才能再次輸入密碼開鎖),并通過聲、光等形式報警。
(6)內(nèi)置電源電量不足時,可外接電源,使系統(tǒng)重啟功能。
(7)預(yù)留擴展功能。將報警裝置與業(yè)主手機、小區(qū)物業(yè)或派出所報警系統(tǒng)互聯(lián),實現(xiàn)遠程監(jiān)控報警。
1.2 方案設(shè)計
通過對MCU密碼鎖和數(shù)字電路密碼鎖技術(shù)方案的分析對比,數(shù)字電路密碼鎖不具有確定的靈活6~12位密碼位數(shù)自定義功能,不符合本研究的設(shè)計要求,故選擇基于MCU的電子密碼鎖設(shè)計,利用單片機編程靈活、接口豐富、控制精確等的特點,實現(xiàn)設(shè)計目標功能方案。。再從MCU的I/O接口、串行接口、存儲器、運行速度、定時/計數(shù)器、功耗、封裝形式以及保密性、抗干擾性、性價比等全面權(quán)衡,選擇基于AT89C51單片機為主控模塊的電子密碼防盜鎖。
2 系統(tǒng)硬件設(shè)計
系統(tǒng)硬件主要包括AT89C51 MCU主控模塊、鍵盤輸入模塊、密碼存儲模塊、開鎖模塊、報警模塊等[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公司高密度非易失存儲技術(shù)制造,8位CPU和4k閃爍存儲器集成在同一芯片內(nèi),緊湊高效,且性價比高。具有32位可編程I/O線;可編程串行通道;5個中斷源;2個16位定時/計數(shù)器;低功耗閑置和掉電模式;長壽命存儲器可以反復(fù)寫/擦10000次,數(shù)據(jù)保留時間長達10年等。AT89C51 MCU為自動控制和嵌入式系統(tǒng)提供多種靈活高效廉價解決方案[2-3]。管腳引線說明詳見AT89C51芯片說明書。
系統(tǒng)電路原理圖如圖2所示。
圖2 系統(tǒng)電路原理圖
Fig.2 Circuit schematic diagram of system
2.2 E2PROM存儲模塊
該模塊采用ATMEL公司的AT42C02 2kB字節(jié)可擦除存儲芯片。該芯片為CMOS型寬電壓(2.5~5.5V)工作,大于1萬次可擦寫,抗干擾能力強。采用8引腳DIP封裝,有2線串行總線與單片機通訊,自帶地址寄存器。每寫入或讀出一個字節(jié)數(shù)據(jù),寄存器自動加1,可方便密碼位數(shù)自定義。斷電情況下信息可保留10年以上。
2.3 鍵盤輸入模塊
鍵盤輸入模塊采用4×4按鍵鍵盤設(shè)計。因按鍵較多,故沒有采取獨立式按鍵鍵盤設(shè)計。與獨立按鍵鍵盤相比,矩陣式鍵盤設(shè)計可節(jié)省一半的I/O口。在行和列的交叉點設(shè)置按鍵??梢酝ㄟ^程序來自主設(shè)定鍵盤上每個按鍵的功能。
與獨立式鍵盤的等待處理程序相比,矩陣式行列鍵盤執(zhí)行掃描處理程序。需要注意的是,機械按鍵在開斷瞬間會有抖動現(xiàn)象。為保持電平穩(wěn)定,當掃描檢測程序檢測到有按鍵按下時,會執(zhí)行一個延遲程序,采用軟件消抖。
2.4 復(fù)位模塊
復(fù)位電路的作用是使CPU和其他功能模塊都恢復(fù)到一個確定的初始狀態(tài),并從這個初始狀態(tài)開始工作。本系統(tǒng)設(shè)計了外觸發(fā)手動復(fù)位和自觸發(fā)自動復(fù)位兩種復(fù)位方式。系統(tǒng)執(zhí)行完整的操作過程,返回主程序后,都會自動復(fù)位。
2.5 晶振模塊
本設(shè)計晶振電路采用電容三點式振蕩器結(jié)構(gòu),由晶振、電容C2/C3、以及芯片內(nèi)的與非門構(gòu)成,使用AT89C51的XTAL1he XTAL2引腳,通過調(diào)節(jié)電容值來改變振蕩信號頻率。本設(shè)計采用20pF、12MHz外部晶振信號。
2.6 開鎖模塊
密碼輸入正確,單片機輸出開鎖信號,通過放大電路驅(qū)動電磁鎖吸合,控制機械裝置開鎖。
2.7 報警模塊
報警電路由外圍控制電路和壓電陶瓷發(fā)生裝置組成。正常情況下不發(fā)生。有按鍵按下時,每按一下,發(fā)生一次。密碼輸入正確,直接開鎖不發(fā)聲。密碼輸入錯誤,單片機P2.1引腳轉(zhuǎn)變成低電平,蜂鳴器發(fā)聲,提示密碼輸入錯誤,系統(tǒng)復(fù)位。當密碼輸入錯誤達到三次,單片機P2.1引腳轉(zhuǎn)變成低電平,蜂鳴器持續(xù)發(fā)聲報警。
3 系統(tǒng)軟件設(shè)計
系統(tǒng)程序主要由主程序、按鍵功能設(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è)計,具有6~12位自定義可修改密碼、4×4矩陣按鍵鍵盤密碼輸入開閉門鎖、誤操作和密碼輸入錯誤報警等功能。編碼量巨大,隨機重合率極低,安全系數(shù)高。系統(tǒng)結(jié)構(gòu)合理、功能先進,器件選擇科學(xué)適宜、性價比高。設(shè)計中結(jié)合兼顧鎖身外殼、閉鎖部件等,保密防盜性能優(yōu)越。
本裝置預(yù)留接口,可外聯(lián)攝像頭拍攝控制開關(guān),密碼輸入錯誤時自發(fā)啟動攝像系統(tǒng)拍攝及畫面?zhèn)鬏?,也可將報警信號通過物聯(lián)網(wǎng)與戶主手機、物業(yè)或派出所安保防盜系統(tǒng)互通互聯(lián),實現(xiàn)遠程聯(lián)防報警。
參考文獻:
[1] 趙全利. 單片機原理及應(yīng)用教程[M].第三版. 北京:機械工業(yè)出版社,2013:78-81.
[2] 張志良.單片機原理與控制技術(shù)[M].北京:機械工業(yè)出版社,2002:78-81.
[3] 喻萍,郭文川.單片機原理與接口技術(shù)[M].北京:化學(xué)工業(yè)出版社,2006:195-197.