馮美艷 宋志陽
(安陽學院航空工程學院,河南 安陽 455000)
單片機控制的電子密碼鎖不僅操作簡單、成本低而且準確性高,正常情況下可以通過指紋開鎖,安全性高。在鑰匙管理員請假或不在工作崗位時,可以通過密碼來開鎖,使用之后可以及時零成本的更換密碼[1],極大的方便租房、實驗室和買賣看房等業務,同時也解決了傳統機械鑰匙和IC 容易丟失的問題。
系統如圖1 所示:由STC89C52 單片機系統、LCD 顯示系統、ZFM-60 指紋識別系統、FLASH 系統、按鍵系統、報警系統、電子鎖系統和電源系統組成[2]。

圖1 系統總體設計圖
系統由設置模式和開鎖模式兩部分組成。系統上電,若設置按鍵按下,系統進入設置模式。設置模式中,需要先輸入一次密碼確認。確認密碼后,選擇設置指紋或設置密碼。設置指紋系統中可以選擇錄入指紋和刪除指紋。設置密碼模式中可以選擇注冊、更新和刪除密碼。設置模式完成后,系統保存新數據。系統上電,若沒有設置按鍵按下,則進入開鎖模式。如果識別到指紋,則進入指紋開鎖模式,指紋識別系統將識別到的指紋特征文件通過UART 傳到單片機,單片機將接受到的指紋特征文件同FLASH 中保存的指紋特征文件進行比對,比對成功則亮綠燈開鎖。反之不開鎖,示警。若按鍵按下的不是設置鍵則進入密碼開鎖模式,輸入六個數字,通過串口送入單片機模塊。單片機模塊將輸入的密碼同FLASH 中存儲的密碼相比對,比對成功亮綠燈開鎖,反之示警[3]。
STC89C52 單片機有40 個管腳,32 個I/O 口,3 個定時器和4 路中斷。連接正確的復位系統、晶振系統和電源系統就可以讓單片機運行。
復位系統連接在單片機的RST 接口處,作用為:系統上電,復位系統將單片機寄存器和存儲系統恢復初始值或整定值。同時復位系統配置有一個機械開關。如果需要人為復位時,可以按下按鍵實現強制復位。本設計中選用了10μF 的電容以及10kΩ 的電阻作為復位電路的電容與電阻[4]。
晶振系統和單片機的XTAL1 和XTAL2 連接。作用為:產生時鐘信號,提供合適的時鐘頻率。
電源系統采用5V 轉3.3V 模塊實現,可以為單片機提供3.3V 電壓或5V 電壓[5]。
指紋識別系統采用ZFM-60 模塊。模塊可以實現指紋采集、強化、生成特征文件。系統在FLASH 中配有指紋緩沖區或指紋庫用于存儲指紋特征文件。模塊的通信方式可以為UART 或USB。本次設計采用的將模塊是4 和5 管腳與單片機系統與單片機的P3.0(第10 管腳RXD)和P3.1(第11 管腳TXD)連接進行UART 通信。系統上電后,指紋識別系統向單片機發送一個握手信號0x55,握手成功后可以進行通信。
LCD 顯示系統如圖2 所示,主要采用LCD12864 模塊。該設計將LCD 顯示系統的第4~6 管腳和單片機的P0.5~P0.7 管腳(第32~34 管腳)相連接、LCD 顯示系統的7~14 管腳和單片機的P2 口(第21~27 管腳)連接。作用為:

圖2 LCD 顯示系統原理圖
(1)顯示當前密碼鎖的狀態。系統上電,顯示請輸入密碼或刷指紋。
(2)在進行指紋的錄入、刪除、保存和密碼的注冊、更新、刪除和保存時,起提示下一步和顯示作用。
(3)開鎖成功時,顯示歡迎光臨,開鎖成功。開鎖不成功時,顯示密碼錯誤/指紋錯誤,請輸入密碼或刷指紋。三次開鎖不成功時,顯示系統鎖定,請三分鐘后再試。
按鍵系統如圖3 所示:由矩陣鍵盤組成。8 個接口同與單片機最小系統的P1 口(第10~17 管腳)連接,優點是可以提高I/O的利用率。它用4 條I/O 線作為行線,4 條I/O 線作為列線組成的鍵盤。在行線和列線的每一個交叉點上設置一個按鍵。這樣鍵盤中按鍵個數是4×4 個。分別表示數字0~9、返回上一步、確定、設置、向上鍵和向下鍵。當有按鍵按下時且為按下數字鍵時,進入密碼開鎖模式,密碼正確,綠燈亮開鎖。當按下設置鍵時進入設置模式。向上鍵和向下鍵為在系統做選擇時使用。

圖3 按鍵系統原理圖
報警系統主要由蜂鳴器系統和燈光顯示系統組成。蜂鳴器系統與單片機系統的P0.3 接口(第36 管腳)連接。蜂鳴器報警系統主要由一個1K 電阻、蜂鳴器和三極管組成。燈光顯示系統與單片機系統的P0.4 接口(第35 管腳)連接。燈光顯示系統由一個1K 電阻和紅色發光二極管D1 組成。當輸入正確的密碼或指紋時,單片機向蜂鳴器和發光二極管D1 發送一個高電平,示警系統不工作。當輸入錯誤的密碼或指紋時,單片機向蜂鳴器和發光二極管D1 發送一個低電平,D1 亮紅燈和蜂鳴器滴滴5s示警。
電子鎖系統如圖4 所示:單片機系統的P3.0 接口(第10 管腳)接電子鎖系統,控制電子鎖的打開和關閉。電子鎖系統如圖4 所示由2 個1K 電阻,1 個綠色發光二極管D3、1 個接觸器線圈、1 個繼電器和電源組成。作用為:當輸入正確的指紋或密碼時,單片機向電子鎖系統發送一個低電平,三極管導通,接觸器線圈帶電,繼電器吸合,綠色發光二極管D3 亮,鎖打開。反之發送一個高電平,發光二極管D3 不亮,繼電器斷開,鎖閉合。接觸器外反解一個穩壓二極管,其保護接觸器的作用。當門鎖沒電時,可以通過在J3 接電源強制門鎖打開。

圖4 電子鎖系統原理圖
存儲系統電路圖如圖5 所示。可以存儲100 枚指紋,系統采用AT24C02 存儲指紋特征文件。存儲系統的第12347 管腳接地,第8 管腳直接接地,第56 管腳和單片機系統的P3.1 和P3.2管腳(第11 和第12 管腳)連接用于讀寫指紋特征文件。

圖5 存儲系統原理圖
系統軟件設計采用KEIL 軟件編譯。KEIL 軟件采用C 語言進行編譯,相對于匯編代碼來說在結構上、可讀性上、功能性和可維護性上由明顯的進步。
系統軟件流程主要分為設置模式流程和開鎖模式流程。系統的優先級為設置模式大于開鎖模式。開鎖模式中指紋開鎖模式大于密碼開鎖模式。系統上電,系統就不斷掃描是否有設置按鍵按下,有則進入設置模式,無則進入開鎖模式。如圖6 所示,設置模式中需要確定系統密碼,確定后可以選擇設置指紋還是設置密碼。設置指紋中可以進行指紋的錄入、增加和刪除。設置密碼中可以進行密碼的更改和刪除。設置完成后,將最新信息存入FLASH。

圖6 設置模式流程圖
開鎖模式中,如圖7 所示,系統不斷掃描是否有指紋輸入,若有則進入指紋開鎖模式,將輸入的指紋的特征文件同系統中存儲的特征文件進行比對,比對成功則開鎖,反之示警。若無指紋輸入但有0~9 的按鍵按下,則進入密碼開鎖模式。密碼正確開鎖,密碼不正確示警。電子鎖開鎖后倒計時120s 后自動閉合。連續示警三次后,電子鎖鎖定三分鐘,不允許任何形式的開鎖。

圖7 開鎖模式流程圖
設置模式中如果要錄入新的指紋,要先與單片機進行握手,握手成功后,采集兩次指紋,生成一個指紋特征文件,存入FLASH 中。

LCD 顯示系統程序主要實現上電顯示歡迎光臨,請刷指紋或輸入密碼。在設置模式時顯示,請輸入密碼,分兩行顯示指紋模式和密碼模式。進入指紋模式后上下顯示錄入新指紋和刪除指紋。進入密碼模式顯示更換密碼和刪除密碼。完成后顯示返回和保存,保存后返回首頁。
LCD12864_pos(1,2);
LCD12864_writebyte("歡迎光臨,請刷指紋或輸入密碼");//上電顯示
LCD12864_pos(0,1);
LCD12864_writebyte("指紋模式");
LCD12864_pos(1,1);
LCD12864_writebyte("密碼模式");//顯示選擇模式界面
16 個按鍵對應的信息不同。有按鍵按下且進入開鎖模式時,輸入六個數字開鎖。如果為設置模式且為密碼模式時,對比新舊密碼,將新密碼存入密碼數組。當按下返回鍵時,系統返回初始界面。

本文設計的電子密碼鎖能夠實現指紋開鎖和密碼開鎖兩種開鎖方式。指紋密碼鎖系統能有效地完成指紋錄入、指紋搜索、指紋比對和刪除指紋開鎖方式安全、便捷。密碼開鎖模式可以實現密碼注冊、更新和刪除開鎖方式方便,不需要特定人群就可以開鎖。