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