汪建關(guān) 邵春楓 谷高明 繆傳付
摘? 要:電子密碼鎖具有安全性高、保密性好等優(yōu)點。本文基于單片機STC89C52設計了一種電子密碼鎖系統(tǒng),由單片機控制矩陣鍵盤模塊實現(xiàn)輸入密碼功能,LCD1602液晶模塊顯示密碼鎖相關(guān)信息,繼電器模塊控制開鎖。具有開鎖成功提示、密碼錯誤報警、修改密碼等功能,在防盜場合有著極為廣泛的用途。
關(guān)鍵詞:單片機;電子密碼鎖;報警系統(tǒng)
中圖分類號:TP368.1;TN402? ? ? ?文獻標識碼:A 文章編號:2096-4706(2019)22-0038-03
Abstract:Electronic password lock has the advantages of high security and good confidentiality. This paper designs an electronic password lock system based on STC89C52 single chip computer. The input password function is realized by matrix keyboard module controlled by single chip computer. LCD1602 LCD module displays the information related to password lock. The relay module controls the unlocking. It has the functions of successful prompt for unlocking,password error alarm,password modification,etc. and has a very wide range of applications in anti-theft occasions.
Keywords:MCU;electronic code lock;alarm system.
0? 引? 言
智能門鎖是信息技術(shù)不斷發(fā)展下的新成果。通過人工輸入正確的密碼后才能打開門。智能門鎖具有保密性好、安全可靠、生活便利等優(yōu)點。本文設計基于STC89C52單片機的電子密碼鎖,通過輸入密碼實現(xiàn)開鎖功能,可根據(jù)需要修改密碼,連續(xù)輸入錯誤密碼達3次啟動報警程序。
1? 系統(tǒng)方案設計
本次設計的電子密碼鎖采用STC89C52單片機為核心控制器件,與復位電路加晶振電路構(gòu)成單片機最小系統(tǒng)電路[1]。通過矩陣鍵盤輸入開鎖密碼,當密碼輸入正確時,開鎖驅(qū)動電路實現(xiàn)開鎖功能。當開鎖密碼連續(xù)錯誤輸入達3次,報警電路自動報警并鎖定。存儲電路采用AT24C02存儲芯片儲存設置的密碼。本系統(tǒng)主要包括單片機系統(tǒng)、晶振電路、復位電路、電源模塊、繼電器模塊、LCD1602液晶顯示模塊、4×4鍵盤模塊、存儲模塊和報警模塊。
2? 系統(tǒng)硬件設計
2.1? 單片機硬件電路
本設計選擇的單片機型號為STC89C52單片機,這款單片機是深圳宏晶科技(STC)研發(fā)的一款低功耗、高性能的CMOS8位微控制器,使用經(jīng)典的MCS-51內(nèi)核,在使用上可以兼容51單片機,而且性能比51單片機更加優(yōu)越,運行速度更快,接口電路更加豐富,而且功耗更低[2-3]。
這款單片機的供電低電壓范圍為3.8V~5.5V。內(nèi)部具有8K的Flash和512字節(jié)的RAM,具有4個P0-P3端口,32個I/O端口,其中P3端口具有雙重功能,除了具有普通I/O端口的功能,還具有定時器、串口、外部中斷等復用端口的功能[4]。單片機在運行時最大的晶振頻率可以達到35MHz。程序可以通過UASRT串口進行下載。單片機在外形上有兩種封裝,分為LQFP封裝和DIP封裝[5]。本次設計選擇DIP封裝。
(1)晶振電路。晶振電路又稱為時鐘電路,由一個晶振(11.0592MHz)和兩個電容(30pF)組成,產(chǎn)生震蕩時鐘信號,驅(qū)動單片機工作。STC89C52RC采用外部時鐘電路。通過單片機第18引腳XTAL1和第19引腳XTAL2引腳輸入。
(2)復位電路。STC89C52單片機的復位電路分為手動復位和上電復位兩種,上電復位主要由電阻和電容組成,只在通電時進行復位操作。而手動復位電路可以在必要時通過按鍵實現(xiàn)復位功能。復位電路和單片機的第9個引腳REST連接實現(xiàn)復位功能。
(3)單片機最小系統(tǒng)電路。單片機、晶振電路、復位電路組成了單片機的最小系統(tǒng)電路,給最小系統(tǒng)上電就能保證單片機的正常運行[6]。
2.2? 矩陣鍵盤電路
本設計中的電子密碼鎖,通過4×4矩陣鍵盤輸入密碼,實現(xiàn)對門鎖密碼的輸入和修改。矩陣按鍵的行控制線和單片機的P14-P17連接,矩陣按鍵的列控制線和單片機的P10-P13連接。通過對行、列線的掃描實現(xiàn)按鍵的是否功能。
2.3? 液晶顯示電路
本設計采用LCD1602液晶顯示模塊,顯示密碼鎖的相關(guān)狀態(tài)。液晶的RS、RW、EN引腳和單片機的P25-P27引腳連接,液晶的數(shù)據(jù)接口D0-D7和單片機的P0口連接,為了節(jié)省能源設計了液晶的節(jié)能控制端口,使用單片機的P23端口驅(qū)動三極管Q1實現(xiàn)對液晶背光的控制,當P23端口為低電平時,液晶背光點亮,當P23端口為高電平時,液晶背光關(guān)閉。
2.4? 開鎖電路
密碼鎖開鎖控制部分主要通過單片機控制繼電器實現(xiàn),可以實現(xiàn)對密碼鎖的開鎖和關(guān)鎖控制,通過單片機的P22 I/O端口控制三極管9012導通,當三極管導通后,繼電器線圈通電,此時繼電器會閉合,繼電器開關(guān)端子J1會導通,J1連接的開鎖設備進行開鎖[7]。
2.5? 密碼存儲電路
采用AT24C02存儲芯片存儲密碼,實現(xiàn)電子密碼鎖的密碼保存功能。使用I2C通信協(xié)議與單片機通信[8]。
2.6? 報警電路
當密碼開鎖成功或者連續(xù)輸入錯誤密碼達3次時會進行報警,報警電路是給使用者一個聲音提示的功能,用單片機控制蜂鳴器實現(xiàn)。其中三極管Q2起到驅(qū)動作用,當單片機的P33端口為低電平時,三極管導通,此時蜂鳴器B1通電發(fā)聲實現(xiàn)報警。當單片機的P33端口為高電平時,三極管不導通,蜂鳴器B1不通電,此時不發(fā)出報警聲。
2.7? 電源電路
電源為整個系統(tǒng)提供電能,本次設計中的器件都使用5V直流電。因此在電源設計上選擇了USB接口供電的方式,USB的標準電壓為5V,這樣可以簡化電源電路的設計。DC1可以連接USB設備,SW1是電源開關(guān),當電源開關(guān)按下后開始供電,電源指示燈LED1點亮。
3? 軟件設計
3.1? 主程序
根據(jù)主程序的流程圖來設計電子密碼鎖子程序,進入主程序后系統(tǒng)會初始化。初始化完成后會循環(huán)檢測按鍵是否按下,判斷輸入信號,密碼輸入正確,開鎖電路控制開鎖;密碼輸入錯誤,報警電路進行報警提示。
3.2? 開鎖子程序
開鎖子程序用來實現(xiàn)開鎖密碼錯誤的報警功能。系統(tǒng)會將輸入的密碼與系統(tǒng)密碼對比,密碼輸入正確,開鎖電路控制開鎖,同時顯示開鎖成功。密碼輸入錯誤,系統(tǒng)對錯誤次數(shù)計數(shù),次數(shù)達到3次時報警。
3.3? 修改密碼子程序
系統(tǒng)首先檢測是否為開鎖狀態(tài),然后檢測修改密碼按鍵是否按下,按下后進入密碼修改程序。新密碼需連續(xù)輸入兩次,當兩次輸入的新密碼相同,顯示“修改密碼成功”;兩次輸入的新密碼不同,需重新驗證舊密碼。
3.4? 液晶顯示子程序
本次設計采用LCD1602液晶顯示器件。顯示密碼鎖的工作過程。LCD1602可以同時顯示兩行,每行16個字符。每行都有固定的地址。寫數(shù)據(jù)時地址自動加[9]。
4? 系統(tǒng)的整體測試
4.1? 程序調(diào)試
在本次的程序設計中,使用單片機C語言進行系統(tǒng)程序的編寫,選擇Keil4編譯環(huán)境,在Keil4編譯環(huán)境下可以實現(xiàn)對系統(tǒng)代碼的調(diào)試,生成單片機可執(zhí)行的程序文件。在進行程序編寫前,首先要在Keil4中新建項目工程,在項目工程中新建程序文件,選擇本次設計中使用的單片機型號STC89C52,將單片機的庫文件下載到工程下,之后在編寫程序的時候就可以引用該單片機的頭文件[10]。程序編譯完,可以對程序進行編譯,查看是否有誤。
4.2? 硬件調(diào)試
硬件調(diào)試主要是對整個硬件電路原理圖的調(diào)試。硬件調(diào)試需要按照如下步驟進行:
(1)檢查原理圖。根據(jù)設計的原理圖,對應每個器件的手冊,仔細地檢查原理圖的設計是否正確、每個芯片的各個引腳連接是否正確,確保每個器件連接正確;
(2)通過電路仿真的方式對電路的功能進行仿真,在仿真中可以發(fā)現(xiàn)電路是否有錯誤的地方。
4.3? 仿真設計
仿真設計的主要功能是對設計硬件和軟件進行調(diào)試,并驗證硬件和軟件功能是否滿足設計要求。Proteus仿真軟件是一種功能強大的電子設計自動化軟件,可以提供單片機應用系統(tǒng)的仿真實驗[11]。使用Proteus仿真軟件對電子密碼鎖的密碼輸入功能、密碼錯誤報警功能進行了仿真。整機Proteus原理圖如圖1所示,液晶上提示Input:**此時代表可以輸入密碼。
根據(jù)上面液晶的提示,通過按鍵輸入六位開鎖密碼,輸完密碼后點擊“確認”按鈕,如果密碼正確,驅(qū)動繼電器開鎖電路,開鎖指示燈點亮,開鎖成功。
根據(jù)上面液晶的提示,通過按鍵輸入六位開鎖密碼,輸完密碼后點擊“確認”按鈕,如果密碼錯誤,則門鎖不會打開,繼電器開鎖電路不工作,門鎖開鎖指示燈不會點亮,蜂鳴器發(fā)出“滴滴”聲提示密碼錯誤,LCD1602液晶顯示屏幕上會顯示Password error cishu:01,代表輸入錯誤密碼1次,為密碼輸入錯誤界面。
4.4? 實物制作
制作實物主要按如下步驟進行:
(1)根據(jù)硬件原理圖購買器件,下載每個器件的使用手冊;
(2)使用電烙鐵按照電路圖結(jié)合器件的使用手冊進行焊接,將器件焊接到電路板上;
(3)對焊接的電路板進行檢測,確保焊接正確;
(4)燒錄程序并運行,檢測其功能。經(jīng)檢驗,達到了預定的設計目標。
5? 結(jié)? 論
本文實現(xiàn)通過按鍵輸入密碼開鎖的功能,同時具有錯誤報警功能。使用STC89C52作為控制核心,4×4矩陣鍵盤實現(xiàn)密碼輸入,AT24C02存儲芯片對設置的密碼進行存儲,通過繼電器來控制門鎖開鎖設備,通過LCD1602液晶顯示門鎖的狀態(tài)。在開鎖的過程中,當輸入開鎖密碼連續(xù)錯誤達3次時自動報警,同時密碼輸入功能會被鎖死。本次設計的電子密碼鎖還存在一些不完善的地方,如可以增加指紋識別開鎖、電話報警等功能,以提高安全性能。
參考文獻:
[1] 李建忠.單片機原理與應用 [M].西安:西安電子科技大學出版社,2011.
[2] 靳達.單片機應用系統(tǒng)開發(fā)實例導航 [M].北京:人民郵電出版社,2012.
[3] 沈紅衛(wèi).單片機應用系統(tǒng)設計實例 [M].北京:北京航空航天大學出版社,2016.
[4] 潘永雄.新編單片機原理與應用 [M].西安:西安電子科技大學出版社,2013.
[5] 劉瑞新.單片機原理及應用教程 [M].北京:機械工業(yè)出版社,2015.
[6] 童師白,華成英.模擬電子技術(shù)基礎 [M].北京:高等教育出版社,2012.
[7] 華成英.數(shù)字電子技術(shù)基礎 [M].北京:高等教育出版社,2012.
[8] 張紅潤,張亞凡,鄧洪.傳感器原理與應用 [M].北京:清華大學出版社,2017.
[9] 陳杰,黃鴻.傳感器監(jiān)測與技術(shù) [M].北京:高等教育出版社,2012.
[10] 譚浩強.C語言程序設計:第3版 [M].北京:清華大學出版社,2017.
[11] 周潤景,張麗娜.基于Proteus的電路及單片機系統(tǒng)設計與仿真 [M].北京:北京航空航天大學出版社,2016.
作者簡介:汪建關(guān)(1998.01-),男,漢族,安徽安慶人,本科在讀,研究方向:通信系統(tǒng)、網(wǎng)絡的設計。