楊軍平
(江蘇中國科學院能源動力研究中心,江蘇 連云港 222000)
本文提供的是一個利用STC89C52單片機配合使用C語言編程控制來完成相應防盜功能的密碼鎖的研究方案。這種智能電子鎖的硬件電路設計具備了編制、更改6位明碼、多次輸入密碼失敗報警等功能,另外它具備了管理員后臺解鎖、輸入時長報警和輸入次數過多鎖定鍵盤等防多次試探的功能,此外還增加了掉電存儲功能。本系統設計成本低廉,功能實用。
本論文提出的防盜密碼鎖實現方案是以STC89C52單片機為中心器件。而且輔助對應相關外圍硬件電路,來實現完成相關功能操縱動作。例如實現明碼的編制和存儲、修改比對和驅動液晶顯示、電流驅動電磁繼電器的同時時時監控流經它的相關電流值、傳感器得到報警信號可以即時接受并且數據可以即時傳送給單片機。當STC89C52感應到由鍵盤按入的數字密碼后,便通過已經存儲在電可擦可編程只讀存儲器中的密碼比對,因為這六位密碼能夠實現299多萬種組合以方便使用者按照自己的意愿更改,所以保密的程度非常好,而密碼的組合順序可以是持續布列或者非持續布列的,假設密碼輸入準確,那么單片機就驅動繼電器進行打開操作;如果密碼輸入錯誤,那么使用者可以第二次輸入密碼,密碼以能夠輸入三次為上限;但是連續按三回數字都出現錯誤,那么STC89C52經過通訊線路給蜂鳴器傳遞信號實現鳴響達到報警效果。
系統是將STC89C52與4×4矩陣鍵盤、掉電存儲芯片等外圍硬件通過信號線連接而成。我們通過矩陣鍵盤來按下密碼并利用按鍵或直接修改程序的方式完成密碼的設置或修改。通過液晶屏幕顯示出輸入的密碼和狀態,同時也可以按下唯一無定義的鍵來供用戶選擇是否讓密碼顯示實際數字還是顯示米字符。本設計利用仿真軟件成功仿真出密碼鎖的功能,如果需要的話,我們只需在現實生活應用時把繼電器改裝為由電磁鐵控制的吸合線圈,或者直接利用繼電器常開常閉點來使電磁鐵吸合或松開線圈從而達到閉鎖或開鎖目的。STC89C52會自動識別并存儲人們打開密碼鎖動作時流經繼電器的驅動電流,把這個電流值當作狀態信息傳遞到的STC89C52的CPU進行分析,并且STC89C52會時時感應到密碼識別程序的報警信息,這個識別程序是自身保持無窮輪回的,單片機把這個報警信號通過的P2.0端口傳遞到蜂鳴器實現報警。
系統設計方案是基于用STC89C52作為主機運算器,外圍電路元器件包含AT24C02芯片、矩陣鍵盤、繼電器、開鎖LED燈、1602液晶和蜂鳴器等。其中選擇AT24C02實現密碼掉電存儲,繼電器模擬開鎖而且能夠外接電磁鎖,發光二極管為開鎖指示燈。(1)有報警、鎖定鍵盤功能,如果密碼輸入錯誤3次,系統會鎖住鍵盤1分鐘并有蜂鳴器聲音報警提示,1分鐘后可以再次輸入密碼。(2)可以設置修改密碼(6位數的密碼)(0~9之間任意數字),修改密碼之前必須再次輸入原始密碼,關鍵的一步是輸入新密碼的時候要連續輸入兩次,當只有按下確認,并且兩次輸入完全一致時才可以改密完成,否則修改不成功,這主要是為了防止誤操作。(3)密碼支持掉電保存功能,應用AT24C02芯片保存密碼,可以隨時修改密碼,密碼輸入過程中,可按清除鍵逐個刪除已輸入的數字。(4)在按下密碼狀態時,用戶可以自主選擇顯示或者隱藏已經輸入的數字。這一步是通過按無定義鍵實現的。(5)有管理員密碼,即使忘記密碼也不怕,只要輸入管理員密碼就可以把密碼還原成初始密碼。可以雙重保護,萬一管理員密碼忘記了,我們想辦法找回密碼,按下密碼還原鍵3秒后可以把密碼還原成初始密碼,要連接按下3秒才能還原,防止誤操作。本設計設置的用戶初始密碼為123456,管理員密碼為888888,如果要更改初始密碼或管理員密碼,我們可以更改對應的C語言程序來實現。值得一提的是液晶背光有可控功能,當沒有按鍵按下30s后,液晶背光可以自動關閉,再有按鍵按下就可以重新點亮背光,不管是白天還是晚上都可以節約電能,既節能又不影響操作。
本系統研究方案采用STC89C52作為主控制器。按照理想中要實現的功能,簡單分成了四個主要的功能單元:主控制器、鍵盤、24C02、LCD1602等。系統整體框圖如圖1。

圖1 系統框圖
STC89C52作為主控制單元器件,它與外圍器件硬件連線設計如圖2所示。

圖2 單片主控電路
如圖3是系統的主程序流程圖,密碼如果按入錯誤會在LCD上出現error提示。當成功輸入6位開鎖密碼時,才可以打開密碼鎖。

圖3 主程序流程圖
密碼鎖系統利用仿真軟件protel對各功能單元做了硬件電路的設計,通過Keil軟件和Proteus,進行程序編程和實物仿真。圖4為密碼鎖仿真電路。

圖4 電子密碼鎖仿真電路
本設計是由電源輸入部分、鍵盤輸入部分、密碼存儲部分、復位部分、晶振部分、顯示部分、報警部分、開鎖部分組成,根據實際情況鍵盤輸入部分選擇4×4矩陣鍵盤。實際使用時只要將單片機的負載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當然也可以用繼電器的常開觸點去控制電磁鐵吸合線圈,單片機將每次開鎖操作和此時電磁執行器的驅動電流值作為狀態信息發送給單片機的芯片處理,同時將接收來自無限循環的密碼識別程序的報警信息也發送給智能報警器,從而使整個密碼鎖正常運行。