沈小倩
(江蘇聯合職業技術學院無錫機電分院,江蘇無錫 214028)
電子密碼鎖是一種通過密碼輸入來控制電路工作、機械開關動作,完成開鎖、閉鎖任務的電子產品,是現代生活中常用的工具。其特點有:(1)保密性好,編碼量多,遠遠大于彈子鎖;(2)密碼可變,可防止密碼被盜,多次輸入密碼錯誤時,可自動啟動報警系統;(3)操作簡單方便,成本低[1]。特別是使用微處理器的智能電子密碼鎖,除了具有密碼鎖的基本功能外,還可以引入智能化管理,從而使電子密碼鎖具有更高的安全性和可靠性。
本文介紹了以AT89C51單片機為核心,矩陣鍵盤、數碼管顯示、繼電器等為外圍電路來完成電子密碼鎖的設計方案,并利用YL-236單片機實訓考核裝置中的相應模塊驗證了功能。
結合電子密碼鎖的基本功能,設計具體要求如下。
(1)使用4×4矩陣鍵盤作為密碼鎖的輸入,用4位LED數碼管顯示相應的密碼;使用繼電器控制密碼鎖的開關。
(2)初始密碼設置為“1234”。按下4×4鍵盤的數字鍵時,對應的數字存入密碼最低位,原來顯示的內容及密碼依次向高位移動,最高位丟棄。為了保密起見字符顯示用“-”來代替。
(3)按“確定”鍵,比較輸入密碼和設定密碼,相同則開鎖,不同則清除,密碼鎖保持關閉狀態。多次輸入錯誤密碼則報警燈亮。
分析設計要求,電路原理圖如圖1所示。
(1)矩陣鍵盤
矩陣鍵盤適用于按鍵數量較多的場合,4×4矩陣鍵盤能夠滿足設定功能的要求[2]。按鍵包括數字鍵和功能鍵,數字鍵為0~9,功能鍵包括確認鍵、鑰匙鍵、刪除鍵、重置鍵、移位鍵、密碼鍵[3]。按鍵分布如圖2所示,其中密碼鍵為管理員專用。
(2)繼電器模塊電路內部驅動
當LOCK接口中輸入低電平時,光電耦合器U1導通,繼電器RL1線圈得電,同時LED燈點亮;若LOCK接口輸入高電平,光電耦合器U1不工作,RL1線圈不得電,同時LED燈熄滅。即通過單片機的I/O口輸出電平到輸入端KA6控制繼電器的工作:單片機輸出低電平,觸點動作;輸出高電平,觸點不動作。

圖1 電子密碼鎖的電路原理圖

圖2 按鍵圖
(3)模塊選擇與連線
使用YL-236實訓考核裝置實現方案的硬件模塊接線圖如圖3所示。選擇裝置中的MCU01、MCU02、MCU04、MCU05、MCU06模塊并進行電路連接,并接好系統電源。

圖3 電子密碼鎖模塊接線圖
(1)主程序
系統采用C語言編寫,主要包括主程序和子程序。主程序完成初始化、開鎖、修改密碼等功能。子程序主要完成顯示、按鍵識別等功能。主程序流程圖如圖4所示。
(2)子程序
矩陣鍵盤的掃描方式通常有兩種:掃描法和反轉法。掃描法要逐行(或逐列)掃描查詢,當被按下的鍵處于最后一行(或列)時,要經過多次掃描才能獲得行列值。
反轉法則相對簡單:先將行線編程為輸入線,列線編程為輸出線,并將輸出線輸出全置“0”,則到行線中電平由高變到低所在行為按鍵所在行。第二步與第一步相反,將行線編程為輸出線,列線編程為輸入線,并將輸出線全置“0”,則列線中電平由高變低所在的列即為按鍵所在的列。最后將兩次所得鍵值相加就得到了按鍵的鍵值[4]。
數碼管顯示子程序較簡單,此處不再贅述。
(1)硬件電路連接。選擇所需的模塊并進行布局,將相應模塊用導線連接。
(2)軟件編程并保存、編譯和鏈接,將目標代碼寫入單片機。

圖4 主程序流程圖
(3)接通電源,運行單片機。按下按鍵,當輸入正確時,數碼管顯示“PASS”,輸入錯誤時,顯示“Err”,同時控制繼電器模塊相應動作。密碼連續輸錯三次,自動鎖定三分鐘,報警小燈亮。
本方案是基于C51單片機的成本低、實用性強的電子密碼鎖設計。通過檢測:系統可以正常開鎖及修改、保存密碼,各參數均滿足設計與實用要求。電子鎖是信息化時代發展的產物,應時而生,相信隨著科技的不斷發展,未來的電子密碼鎖將會更加人性化,更加安全。