


摘? 要:在現代化信息社會,電子密碼鎖已經開始向大眾普及,基于此背景,對電子密碼鎖的設計展開了研究。主要提供一種以STC89S52單片機為核心的電子密碼鎖的相關設計思路;選用STC89S52單片機為微控制器,實現密碼鎖的開鎖、輸入和識別功能。采用了一款EEPROM芯片24C02作為密碼存儲單元,實現電子密碼鎖的可靠性與安全性,能夠為用戶帶來便捷的使用體驗。
關鍵詞:電子密碼鎖;STC89C52單片機;電路仿真
中圖分類號:TP368.1? ? ? 文獻標識碼:A 文章編號:2096-4706(2020)16-0020-04
Design of Electronic Code Lock Based on STC89S52 Single Chip Computer
SHEN Deming
(School of Communication and Electronics,Jiangxi Science and Technology Normal University,Nanchang? 330013,China)
Abstract:In the modern information society,smart code locks have begun to be popularized by the public. Based on this background,the design of electronic code locks has been studied. It mainly provides a related design idea of electronic code lock with STC89S52 single-chip microcomputer as the core;mainly uses STC89S52 single-chip microcomputer as microcontroller to achieve the unlocking,input and identification functions of the code lock. An EEPROM chip 24C02 is used as the password storage unit to realize the reliability and security of the electronic password lock,which can bring users a convenient experience.
Keywords:electronic code lock;STC89S52 single chip microcomputer;circuit simulation
0? 引? 言
隨著社會經濟與科學的不斷發展,人們需要隨身攜帶的東西越來越少,可鑰匙依然是大家生活中必須要隨身攜帶的物品,筆者就被出門經常忘記帶鑰匙所困擾。故想利用大學所學的單片機設計、電路板制作和調試以及模擬電路課程的知識來設計一把電子密碼鎖,可以與機械鎖配合使用,只需要記住一組用于解鎖的數字就可以避免帶鑰匙、丟鑰匙的煩惱并且可以避免因鑰匙被仿制而留下安全隱患。電子密碼鎖的研究早在20世紀30年代就開始了,在一些特殊場所應用,現在在西方發達國家,電子密碼鎖已被廣泛應用于智能防盜系統中,而我國目前智能防盜系統整體與國際相比較為落后,大部分家庭使用的還是機械鎖,國內電子鎖市場尚未形成,因此本文提供一種電子密碼鎖的設計思路,通過方案設計、元件選型、模擬仿真等步驟,驗證了該思路的可行性,希望可以為電子密碼鎖的研發提供借鑒。
1? 系統方案設計
在此方案中,針對電子密碼鎖進行設計的核心控制器件主要是STC89S52單片機,同時還在其中加入了復位電路加晶振電路,由此完成單片機最小系統電路的設計[1]。在本設計中,主要是通過將外圍電路加到矩陣鍵盤上實現密碼輸入和其他功能的設置,只有在密碼輸入正確的情況下,才能驅動實際電路中繼電器控制吸合線圈即驅動電路中開鎖功能的實現,外接顯示器用于顯示,每鍵入一位密碼,顯示位數隨輸入增加而增加,但不顯示實際數字,用*代替,密碼輸入完成后,顯示PASSWORD OK開鎖成功,顯示PASSWORD ERROR密碼錯誤。同時,為保證設計系統的安全性,在密碼輸入錯誤三次后,便會觸自動發報警電路,并將系統暫時鎖定。在密碼儲存電路中采用24C02存儲芯片來完成密碼的儲存設置。設計原理圖如圖1所示。
2? 系統硬件設計
2.1? 最小系統電路
最小系統電路包括單片機及其所需的必要的電源、時鐘、復位等部件,能使單片機處于正常的運行狀態中。在此方案中,選擇的是型號為STC89S52的單片機,只要將單片機接上復位電路和晶振電路即可構成最小應用系統。在選擇過程中主要考慮到型號性能較高,功率耗損較低等優點,是一款價值性較高的8位CMOS微控制器。內核所使用的是較為普遍的MCS51,既能夠實現51單片機的兼容,又能夠在工作性能上略勝一籌。從整個系統能夠以更高效率運行,也能夠將接口電路設計得更為多樣化,并且能夠實現功率耗損的較好控制[2,3]。
該單片機具有8 KB的Flash和512 B的RAM,共有四個P0-P3端口,32位I/O口線,看門狗定時器(Watch Dog Timer,WDT)。掉電保護方式下,RAM中的內容也會被保存,直到下一個中斷或硬件復位為止。最高運作頻率35 MHz,一個機器周期需要的時鐘周期數可設置為6T或12T可選。程序可以直接使用UASRT串口進行下載。在外形設計上,該單片機包括了LQFP、DIP兩種封裝方式,本次設計選擇的是后者。本系統硬件部分主要包括晶振電路、復位電路、STC89S52單片機、開鎖電路、液晶顯示電路等。原理框圖如圖2所示。
2.1.1? 晶振電路
單片機設計中的核心要素,亦被稱為時鐘電路。在晶振電路設計中,包括一個晶振以及兩個電容共同組成,兩個電容的加入是為了更好地達到諧振要求。從現階段來看,大部分單片機所采用的都是內部時鐘,但這種設計容易受到外部因素的影響,因此為保障系統設計的嚴謹與精細,本次采用的是外接式晶振電路。設計中采用12 MHz外部晶振。電容取值30 pf。通過單片機XTAL1和XTAL2與片內與非門構成電容三點式振蕩器。
2.1.2? 復位電路
當在STC89S52單片機的RST引腳引入高電平并保持2個機器周期時,單片機內部就執行復位操作。復位操作設計,包括兩種形式:一種是手動復位,另一種則是上電復位。其中后者包括了電阻和電容兩種器件組成。手動復位的復位方式是需要通過開關來達到其復位效果。本設計中手動復位,通過RST引腳與電源VCC接通實現。相對自動復位,手動復位可以避免死機時無法可靠復位的情況。
2.2? 矩陣鍵盤電路
本設計采用行列式鍵盤[4],能夠達到針對性密碼的基本功能,例如輸入和更改密碼。與直接法的鍵盤相比,矩陣模式的鍵盤設置在設計與識別方面都更具復雜性,通常采用這種鍵盤對付按鍵較多的情況。矩陣式鍵盤行控制線與列控制線在交叉的地方并不會直接相通,而是以按鍵設置完成水平與垂直線的連接。在本設計中,水平線可以與STC89S52單片機的P1.0~P1.3相通,垂直水平線和STC89S52單片機的P1.4~P1.7連接。在此基礎上,通過對水平線與垂直線的掃描達到按鍵的確認功能。
2.3? 液晶顯示電路
在本次設計中,顯示模塊采用了LM016L字符型液晶顯示器進行顯示,能夠呈現出密碼鎖所處的具體狀態。液晶控制端口RS.RW.E引腳和單片機P2.6、P2.7、P2.8引腳連接,液晶數據接口AD0~AD7和單片機的P0.1~P0.7口連接,用于LCD液晶顯示作用。同時,還設計了節能控制端口,從而實現最大程度的能源節約效果。在密碼正確時單片機P3.6輸出低電平,導通三極管,開鎖成功指示燈LED-Yellow亮。LCD顯示PASSWORD OK,反之,密碼錯誤時顯示PASSWORD ERROR。通過液晶顯示器可以清楚判斷出鎖的開關狀態。
2.4? 開鎖電路
在開鎖電路設計中,大多都是采用繼電器控制實施的,可以針對傳輸信號類別執行電路開合任務。在密碼輸入確認無誤時,單片機會向系統輸出開鎖信號,經過繼電器模板,通電后便可以開鎖。具體分析,密碼正確時,在單片機的P3.6 I/O端口發出信號,經端口的三極管9012放大,進而使得繼電器處于閉合狀態[5],繼電器吸合帶動鎖桿伸縮,隨后鎖鉤在彈簧作用下彈起,便可以實現開鎖功能。
2.5? 密碼存儲電路
相對而言,儲存器與單片機傳輸的數據偏少,因此便不會與主線形成競爭關系,在密碼存儲中采用的是運用較為廣泛的24C02存儲芯片。此類芯片能夠滿足掉電狀態下的密碼存儲,此外,該部分還具備獨立的寫保護作用。而且他是采用了I2C總線式進行數據讀寫的串行器件,占用很少的資源和I/O線,并且支持在線編程,進行數據實時的存取十分方便。
2.6? 報警電路
該系統設計,能夠將輸入的每一個數字都與原先設定好的數值進行對比,只有在每個數值都與設定值符合時才能開鎖。在輸入過程中只能有三次機會,如若連續三次輸入密碼皆不正確,就會自動開啟報警系統,在重新復位后才能繼續使用。報警電路主要是通過蜂鳴器實現的,以三極管[6]為驅動,從而使蜂鳴器能夠根據輸入密碼的正確與否確認警報聲是否發出。
3? 軟件設計
3.1? 主程序
主程序流程圖如圖3所示,流程說明:主程序啟動后,密碼鎖初始化,監聽子程序監聽鍵盤輸入信號,同時調用亮燈子程序,監聽到指定鍵盤輸入信號調用模式B,輸入密碼識別按鍵,若輸入信號與程序初始化密碼一致,則調用開鎖子程序,執行開鎖,若不一致,報警電路則進行報警提示,監聽子程序持續監聽鍵盤輸入信號。監聽子程序監聽到指定鍵盤輸入信號調用模式A修改密碼子程序。
3.2? 開鎖子程序
開鎖子程序的功能是通過判斷輸入信號是否與初始信號保持一致,在密碼輸入與原定信號完全一致后,便會啟動開鎖。在開鎖子程序內會另用if語句[7]將輸入密碼與原定密碼進行逐個對比,并且在輸入錯誤信號后,還會對錯誤次數進行統計,若輸入信號連續三次與初始密碼不一致則調用報警子程序,流程如圖4所示。
3.3? 修改密碼子程序
監聽程序監聽到修改密碼按鍵信號A,調用修改密碼子程序,修改密碼子程序檢測舊密碼輸入并按下確認鍵后為開鎖狀態,若為開鎖狀態,持續監聽按鍵輸入信號。當2次輸入新密碼一致則提示密碼修改成功,若不一致則退出修改密碼子程序,并且需要重新輸入舊密碼驗證。若不是開鎖狀態則直接退出修改密碼子程序,流程如圖5所示。
3.4? 液晶顯示子程序
顯示器件采用的是LM016L液晶顯示屏,液晶板上排列著若干5×7或5×10點陣的字符顯示位,每個顯示位可顯示1個字符,在工作過程中可以同時顯示2行字符,每行字符長度限制為16個。每一行具有固定的地址,與微控制通過送入數據和指令,使模塊正常工作。
4? 系統的測試
4.1? 程序調試
運用C語言對系統進行編寫,并借助Keil4編譯環境對系統代碼進行相應的調試,進一步形成可操作的程序文件。需要對相應程序進行編譯、跟蹤執行以及檢查程序。
4.2? 硬件調試
眾所周知,系統的組成需要多個模塊的組合,而模塊的基礎單位是元器件,因此,對于任何一個設計系統的調試與檢查都要針對元器件進行檢查。在元器件檢查完成后再進一步對原理圖進行檢查,以電路仿真的方式對電路功能進行全面檢查,查找漏洞。在確保軟件運行沒有問題、單片機和電源沒有異常的情況下再檢查外圍電路,尤其注意當金屬基引腳安裝于LCD時溫度不當、焊接時間過長容易出現損壞的問題。
4.3? 仿真設計
通過Proteus軟件的使用,我們能夠輕易地獲得一個功能齊全、實用方便的單片機實驗平臺[8]。從而確定系統設計是否能夠符合其運用要求,保障系統設計程序的可靠性與安全性。在電子密碼鎖的系統設計中,運用仿真軟件Proteus進行本次設計的仿真。Proteus的軟件仿真基于VSM技術,它能仿真大量的單片機芯片,比如MCS51系列、以及LCD、按鍵等外圍電路。通過Proteus對按鍵輸入密碼控制STC89S52單片機開鎖以及信號不匹配的報警功能進行仿真。圖6為本次系統的仿真設計原理圖。
根據系統提示,在鍵盤上輸入密碼,并且按下確認鍵,如若輸入密碼與原始保持一致,繼電器便能夠吸合、電路開鎖,開鎖成功指示燈亮起。
根據系統提示,在鍵盤上輸入密碼,并且按下確認鍵,如若輸入密碼與原始存在錯誤對應,開鎖子程序無法啟動,繼電器無法實現供電,同時蜂鳴器發出聲音。顯示屏上出現密碼錯誤提示,并在三次之后啟動報警系統。
4.4? 仿真效果
(1)LCD顯示模式選擇A or B,按下B,LCD顯示屏上下劃線閃爍,等待輸入密碼。每鍵入一位密碼,LCD顯示位數隨輸入增加而增加,但不顯示實際數字,用*代替,按下D鍵確定,顯示PASSWORD OK,五秒鐘后自動返回模式選擇主界面;(2)按下B,輸入錯誤密碼,按下確認鍵D,LCD顯示PASSWORD ERROR,蜂鳴器報警;(3)返回主界面模式選擇,按下A進行修改密碼,輸入正確密碼,按下確認鍵D。此時為開鎖狀態,鍵入新密碼后按確認,再輸入一遍新密碼并確認。LCD顯示change Password Succeed,然后返回主界面模式選擇;(4)再次按B輸入密碼,鍵入新密碼,密碼鎖開鎖LCD顯示PASSWORD OK。
5? 結? 論
電子元件的不斷發展,為電子密碼鎖的完善與優化帶來了更大的發展空間,進一步保障了人們的財產安全與系統的可靠性。在本次電子鎖設計中,通過以STC89S52單片機為核心的電路,融入了開鎖、修改、液晶顯示等多項子程序,保障了電子密碼鎖的基本功能,并能夠在密碼信號輸入三次后調用報警系統,提高安全性,優化用戶體驗。在設計過程中,還運用仿真技術對系統進行檢查與調試,進而確認系統運行的有效性。但在本次設計中也同樣有部分缺陷,在今后的設計中需要進一步的優化與完善,提高系統的安全性,力求滿足大眾的多元化需求。
參考文獻:
[1] 李建忠.單片機原理與應用:第2版 [M].西安:西安電子科技大學出版社,2008.
[2] 靳達.單片機應用系統開發實例導航 [M].北京:人民郵電出版社,2003.
[3] 沈紅衛.單片機應用系統設計實例與分析 [M].北京:北京航空航天大學出版社,2003.
[4] 金桂,向國梁.基于C語言STC89C52單片機電子密碼鎖的設計與仿真 [J].現代電子技術,2010,33(19):176-178+182.
[5] 閻石.數字電子技術基礎:第6版 [M].北京:高等教育出版社,2016.
[6] 童師白,華成英.模擬電子技術基礎:第4版 [M].北京:高等教育出版社,2011.
[7] 譚浩強.C語言程序設計:第3版 [M].北京:清華大學出版社,2014.
[8] 周澗景,張麗鄭.基于Proteus的電路及單片機系統設計與仿真 [M].北京:北京航空航天大學出版社,2006.
作者簡介:沈德明(1998—),男,漢族,江西南昌人,本科在讀,研究方向:電子信息工程。