武紅玉
(許昌學(xué)院電信學(xué)院 河南 許昌 461000)
電子密碼鎖的研究開(kāi)始于20世紀(jì)30年代,在一些特殊場(chǎng)所應(yīng)用。這種鎖是通過(guò)鍵盤輸入一組密碼完成開(kāi)鎖過(guò)程。研究這種鎖的初衷,就是為提高鎖的安全性。由于電子鎖的密鑰量(密碼量)極大,可以與機(jī)械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需記住一組密碼,無(wú)需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被越來(lái)越多的人所欣賞。
本文是以AT89C51為核心的單片機(jī),結(jié)合矩陣鍵盤、24C04A存儲(chǔ)系統(tǒng)等來(lái)實(shí)現(xiàn)以下幾個(gè)功能:
(1)設(shè)置6位密碼,密碼通過(guò)按鍵輸入,若密碼正確,則將鎖打開(kāi)。
(2)密碼可以由用戶自己修改設(shè)定(只支持6位密碼),鎖打開(kāi)后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時(shí)候需要確認(rèn),以防止誤操作。
(3)密碼輸入錯(cuò)誤,系統(tǒng)通過(guò)報(bào)警、數(shù)碼顯示器進(jìn)行錯(cuò)誤提示。
圖1-1 電路框圖
本設(shè)計(jì)主要由單片機(jī)、矩陣鍵盤、液晶顯示器和密碼存儲(chǔ)等4部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實(shí)現(xiàn)。由用戶通過(guò)連接單片機(jī)的矩陣鍵盤輸入密碼,后經(jīng)過(guò)單片機(jī)對(duì)用戶輸入的密碼與自己保存的密碼進(jìn)行對(duì)比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開(kāi)鎖電路或者報(bào)警電路控制開(kāi)鎖還是報(bào)警。其原理如圖1-1所示。
AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位 CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器[1]。
LM016l與LCD1602原理是一樣的,只不過(guò)PROTEUS中016L沒(méi)顯示調(diào)亮度的那兩個(gè)端口,但并不影響。液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點(diǎn),因此,在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用,現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件了。這里介紹一款LCD016L液晶顯示模塊,它可以顯示兩行,每行16個(gè)字符,采用單+5V電源供電,外圍電路配置簡(jiǎn)單,價(jià)格便宜,具有很高的性價(jià)比。
單片機(jī)XIAL1和XIAL2分別接22PF的電容,中間再并個(gè)12MHZ的晶振,形成單片機(jī)的晶振電路[2]。
Microchip公司的 24C04A是 4K位或 8K電可擦除PROM。芯片由2個(gè)或者4個(gè)256*8位存儲(chǔ)器塊構(gòu)成,并具有兩線串行接口??稍陔娫措妷旱偷?.5V的條件下工作,等待電流和額定電流分別僅為5uA和1mA。24C04A還具有16個(gè)字節(jié)數(shù)據(jù)的頁(yè)面寫(xiě)能力。24C04A支持雙向兩線總線和數(shù)據(jù)傳輸規(guī)程。若器件傳送數(shù)據(jù)到總線上,則定義器件為發(fā)送器;若器件接收數(shù)據(jù),則定義器件為接收器??偩€必須在一個(gè)主器件控制下工作,主器件產(chǎn)生串行時(shí)鐘,控制總線存取,并且產(chǎn)生開(kāi)始和停止條件。同時(shí)24C04A作為從器件工作,主器件和從器件都可以工作于發(fā)送器或接收器的狀態(tài),但工作于何種方式由主器件決定。
矩陣式鍵盤的結(jié)構(gòu)與工作原理如下:在鍵盤中的按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式[3]。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,只需要單片機(jī)的一個(gè)端口就可以構(gòu)成4×4=16個(gè)按鍵,比直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵。鍵盤電路圖如下圖2-1所示。
確定矩陣式鍵盤上是否有鍵被按下,我們采用一種“行掃描法”,又被稱為掃描查詢法,是一種最常用的按鍵識(shí)別方法[4]。設(shè)計(jì)是先將列線置于高電平,再進(jìn)行行線掃描,若有行線為高電平,則確定有按鍵被按下,并將相應(yīng)的行線編號(hào)存放;再轉(zhuǎn)移到列線的掃描程序,首先將行線置于高電平,再進(jìn)行列線掃描,若有列線為高平,則確定有按鍵被按下,并將相應(yīng)的列線編號(hào)存放。
圖2-1 鍵盤電路
為了使電子密碼鎖系統(tǒng)在密碼解鎖成功時(shí)具有更加直觀的顯示效果,所以設(shè)計(jì)一個(gè)發(fā)光二極管燈就顯得必不可少,通過(guò)按鍵輸入密碼鎖解鎖。當(dāng)密碼輸入正確時(shí),單片機(jī)的EA管腳輸出高電平,使解鎖燈點(diǎn)亮,達(dá)到提示成功功能。當(dāng)輸入密碼不正確報(bào)警。為了實(shí)現(xiàn)電子密碼鎖的功能,在編程方面要多方面考慮,可以完成當(dāng)輸入密碼正確時(shí)發(fā)出指令到解鎖成功報(bào)警電路,使其解鎖燈亮和喇叭提示。
本系統(tǒng)軟件設(shè)計(jì)由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、鍵功能程序、密碼設(shè)置程序、AT24C04驅(qū)動(dòng)程序程序等組成。
流程圖如下圖3-1所示,開(kāi)始接上電源,程序進(jìn)行初始化設(shè)置,然后在鍵盤上輸入密碼,此系統(tǒng)進(jìn)行鍵盤掃描,然后啟動(dòng)程序,進(jìn)行保護(hù),再次在鍵盤上輸入密碼,系統(tǒng)進(jìn)行掃描如和之前一樣,則執(zhí)行程序,如不是,則執(zhí)行另一種程序,最后結(jié)束。
開(kāi)始按下設(shè)置鍵,輸入舊密碼,如果錯(cuò)誤,進(jìn)行報(bào)警程序。如輸入正確,可以改密碼,確認(rèn)后再次輸入更改后密碼,如兩次輸入一樣,則更改成功。
圖3-1 程序總體流程框圖
本設(shè)計(jì)的密碼鎖能實(shí)現(xiàn)基本的密碼鎖功能,還能添加調(diào)電存儲(chǔ)、聲光提示甚至添加遙控控制功能,且可以滿足現(xiàn)在的安全需求。
[1]周志平.電子密碼鎖設(shè)計(jì)[J].浙江萬(wàn)里學(xué)院學(xué)報(bào),2010,23(5):73-76.
[2]童詩(shī)白.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,1998.
[3]侯聰玲,彭衛(wèi)東.基于AT89C51單片機(jī)的電子密碼鎖的設(shè)計(jì)[J].教師,2011(26):122-122.
[4]侯聰玲,彭衛(wèi)東.基于AT89C51單片機(jī)的電子密碼鎖的設(shè)計(jì)[J].教師,2011(26):122-122.