武紅玉
(許昌學院電信學院 河南 許昌 461000)
電子密碼鎖的研究開始于20世紀30年代,在一些特殊場所應用。這種鎖是通過鍵盤輸入一組密碼完成開鎖過程。研究這種鎖的初衷,就是為提高鎖的安全性。由于電子鎖的密鑰量(密碼量)極大,可以與機械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需記住一組密碼,無需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被越來越多的人所欣賞。
本文是以AT89C51為核心的單片機,結合矩陣鍵盤、24C04A存儲系統等來實現以下幾個功能:
(1)設置6位密碼,密碼通過按鍵輸入,若密碼正確,則將鎖打開。
(2)密碼可以由用戶自己修改設定(只支持6位密碼),鎖打開后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要確認,以防止誤操作。
(3)密碼輸入錯誤,系統通過報警、數碼顯示器進行錯誤提示。

圖1-1 電路框圖
本設計主要由單片機、矩陣鍵盤、液晶顯示器和密碼存儲等4部分組成。其中矩陣鍵盤用于輸入數字密碼和進行各種功能的實現。由用戶通過連接單片機的矩陣鍵盤輸入密碼,后經過單片機對用戶輸入的密碼與自己保存的密碼進行對比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路或者報警電路控制開鎖還是報警。其原理如圖1-1所示。
AT89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位 CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器[1]。
LM016l與LCD1602原理是一樣的,只不過PROTEUS中016L沒顯示調亮度的那兩個端口,但并不影響。液晶顯示模塊具有體積小、功耗低、顯示內容豐富、超薄輕巧等優點,因此,在袖珍式儀表和低功耗應用系統中得到越來越廣泛的應用,現在字符型液晶顯示模塊已經是單片機應用設計中最常用的信息顯示器件了。這里介紹一款LCD016L液晶顯示模塊,它可以顯示兩行,每行16個字符,采用單+5V電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比。
單片機XIAL1和XIAL2分別接22PF的電容,中間再并個12MHZ的晶振,形成單片機的晶振電路[2]。
Microchip公司的 24C04A是 4K位或 8K電可擦除PROM。芯片由2個或者4個256*8位存儲器塊構成,并具有兩線串行接口。可在電源電壓低到2.5V的條件下工作,等待電流和額定電流分別僅為5uA和1mA。24C04A還具有16個字節數據的頁面寫能力。24C04A支持雙向兩線總線和數據傳輸規程。若器件傳送數據到總線上,則定義器件為發送器;若器件接收數據,則定義器件為接收器。總線必須在一個主器件控制下工作,主器件產生串行時鐘,控制總線存取,并且產生開始和停止條件。同時24C04A作為從器件工作,主器件和從器件都可以工作于發送器或接收器的狀態,但工作于何種方式由主器件決定。
矩陣式鍵盤的結構與工作原理如下:在鍵盤中的按鍵數量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式[3]。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,只需要單片機的一個端口就可以構成4×4=16個按鍵,比直接將端口線用于鍵盤多出了一倍,而且線數越多,區別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵。鍵盤電路圖如下圖2-1所示。
確定矩陣式鍵盤上是否有鍵被按下,我們采用一種“行掃描法”,又被稱為掃描查詢法,是一種最常用的按鍵識別方法[4]。設計是先將列線置于高電平,再進行行線掃描,若有行線為高電平,則確定有按鍵被按下,并將相應的行線編號存放;再轉移到列線的掃描程序,首先將行線置于高電平,再進行列線掃描,若有列線為高平,則確定有按鍵被按下,并將相應的列線編號存放。

圖2-1 鍵盤電路
為了使電子密碼鎖系統在密碼解鎖成功時具有更加直觀的顯示效果,所以設計一個發光二極管燈就顯得必不可少,通過按鍵輸入密碼鎖解鎖。當密碼輸入正確時,單片機的EA管腳輸出高電平,使解鎖燈點亮,達到提示成功功能。當輸入密碼不正確報警。為了實現電子密碼鎖的功能,在編程方面要多方面考慮,可以完成當輸入密碼正確時發出指令到解鎖成功報警電路,使其解鎖燈亮和喇叭提示。
本系統軟件設計由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、鍵功能程序、密碼設置程序、AT24C04驅動程序程序等組成。
流程圖如下圖3-1所示,開始接上電源,程序進行初始化設置,然后在鍵盤上輸入密碼,此系統進行鍵盤掃描,然后啟動程序,進行保護,再次在鍵盤上輸入密碼,系統進行掃描如和之前一樣,則執行程序,如不是,則執行另一種程序,最后結束。
開始按下設置鍵,輸入舊密碼,如果錯誤,進行報警程序。如輸入正確,可以改密碼,確認后再次輸入更改后密碼,如兩次輸入一樣,則更改成功。

圖3-1 程序總體流程框圖
本設計的密碼鎖能實現基本的密碼鎖功能,還能添加調電存儲、聲光提示甚至添加遙控控制功能,且可以滿足現在的安全需求。
[1]周志平.電子密碼鎖設計[J].浙江萬里學院學報,2010,23(5):73-76.
[2]童詩白.模擬電子技術基礎[M].北京:高等教育出版社,1998.
[3]侯聰玲,彭衛東.基于AT89C51單片機的電子密碼鎖的設計[J].教師,2011(26):122-122.
[4]侯聰玲,彭衛東.基于AT89C51單片機的電子密碼鎖的設計[J].教師,2011(26):122-122.