李凱麗+樊建強
【摘要】 本論文采用AT89S51單片機作為主控芯片,密碼程序采用C51語言實現(xiàn),使用3-8譯碼器和數(shù)碼管相互結(jié)合實現(xiàn)密碼顯示。數(shù)碼管以“-”實時顯示當前輸入密碼個數(shù)。密碼輸入正確正常顯示,表示密碼正確指示燈亮;密碼輸入錯誤時,表示密碼錯誤指示燈亮,繼而蜂鳴器發(fā)出警報聲進行報警。
【關(guān)鍵詞】 AT89S51單片機 C51語言 3-8譯碼器 數(shù)碼管
引言
傳統(tǒng)鎖在安全方面有很多隱患,為了保證人們的生命財產(chǎn)安全,提高鎖的安全等級非常必要,現(xiàn)如今越來越多的人開始應(yīng)用安全信息系統(tǒng),在財產(chǎn)安全、隱私保護、機密保護等方面的需求非常迫切。
在此我們研究了電子密碼鎖,電子密碼鎖種類繁多,既有簡單的電路控制產(chǎn)品,又有復(fù)雜基于芯片的控制部分和外圍電路部分、機械部分等性價比高的產(chǎn)品。隨著電子技術(shù)的更新?lián)Q代,電子鎖具的發(fā)展也異常迅速[1],我們可以結(jié)合各種電子密碼鎖開鎖信息,對研究電子密碼鎖產(chǎn)品的多樣化發(fā)展具有非常重大的意義。
一、設(shè)計方案選擇
電子密碼鎖設(shè)計的主控芯片使用單片機,硬件電路還包括數(shù)碼管顯示模塊、聲光報警模塊、鍵盤掃描模塊等,為了能夠?qū)㈦娮渔i的相關(guān)作用充分發(fā)揮出來,需要實現(xiàn)以下功能。
(1)使用數(shù)字鍵盤實現(xiàn)密碼輸入。當按鍵順序與設(shè)計值相符合,并且字符數(shù)相等時,可以將鎖打開。
(2)鍵盤鎖定和報警。首次密碼輸入錯誤,數(shù)碼管顯示錯誤提示,密碼輸入次數(shù)超過
設(shè)定次數(shù),蜂鳴器報警的同時鎖定鍵盤。
(3)輸入密碼功能。當按下一位數(shù)字鍵時,最右邊的數(shù)碼管顯示一個“-”,同時將已
經(jīng)輸入的所有“-”依次向左移動一位。
(4)清除密碼功能。按下清除鍵時清除輸入的所有值并清除所有顯示。
二、基于51單片機的電子密碼鎖硬件電路設(shè)計
通過對電子密碼鎖進行研究,在此選擇AT89S51 單片機作為主控模塊、使用4×4 鍵盤輸入密碼、采用74LS47、74LS138 和三極管設(shè)計顯示模塊與聲光報警模塊。電子密碼鎖的硬件電路設(shè)計系統(tǒng)框圖如圖1所示。
基于51單片機的電子密碼鎖硬件電路主要利用鍵盤對各個模塊進行掃描,在完成數(shù)據(jù)顯示同時也能對密碼進行修改,通過掃描相應(yīng)模塊來完成輸入工作。在完成輸入工作后,顯示模塊能夠為我們提供所需數(shù)據(jù),然后利用聲光報警系統(tǒng)對密碼輸入情況進行判別:紅燈為正確;綠燈及聲音為錯誤。本文所設(shè)計的基于51單片機的電子密碼鎖硬件電路包括四部分,分別為掃描模塊、控制模塊、顯示模塊以及報警系統(tǒng)。
2.1鍵盤掃描模塊電路設(shè)計
掃描模塊主要是對鍵盤掃描模塊電路進行設(shè)計,通過4×4 掃描鍵盤對按鍵及按鍵位置進行判別。在按鍵后,按鍵位置的行線及列線能夠接頭,使得開關(guān)之間接通。在電路中掃描到按鍵后,及時對其使用軟件進行抖動,利用軟件計算時間的延遲,進而得以錯過抖動時間,完成輸入。
2.2單片機控制模塊電路設(shè)計
控制部分選擇AT89S51單片機控制模塊來完成,單片機能夠在該系統(tǒng)中完成顯示、報警等一系列的功能,采用的芯片屬于直插式的集成電路[2],有4 個八位的并行雙向I/O 端口,分別記作P0、P1、P2、P3。第20 引腳為接地端;第40引腳為電源端;第31 引腳通過接高電位來選擇合理的存儲設(shè)施;第18、19 腳處連接晶振(工作頻率為12MHz),其主要作用是產(chǎn)生時鐘信號;第9 腳為復(fù)位腳,該處接通高電位時,能夠中斷單片機的運行狀態(tài)。P0 口連接的是聲光報警器, P2 口連接譯碼器通過動態(tài)掃描來實現(xiàn)數(shù)碼管的驅(qū)動,該譯碼器可以同時驅(qū)動六個數(shù)碼管,P1 口與16 個陣列式按鍵相連實現(xiàn)對鍵盤的掃描。我們利用編程來實現(xiàn)數(shù)碼管的驅(qū)動及數(shù)據(jù)顯示,然后,在設(shè)置相關(guān)的一些指令來實現(xiàn)數(shù)碼管的動態(tài)顯示及報警提示等[3]。
2.3聲光報警模塊電路設(shè)計
當按下開鎖指令后,數(shù)碼管會顯示相應(yīng)的數(shù)組,當數(shù)字相等指示燈顏色顯示綠色,輸入正確;反之,數(shù)值與密碼不符,指示燈顏色顯示紅色,并且會觸發(fā)蜂鳴器的反應(yīng)。
2.4數(shù)碼顯示模塊電路設(shè)計
圖2是數(shù)碼顯示模塊,它包括74LS47、74LS138兩個譯碼器及6個8段數(shù)碼顯示管。系統(tǒng)中的數(shù)據(jù)由編碼器傳送,然后該數(shù)據(jù)會分別由兩個不同的譯碼器進行譯碼,再利用顯示管將數(shù)據(jù)分別顯示出來[4]。
在該系統(tǒng)設(shè)計當中,P2口低4位連接74LS47譯碼器,然后根據(jù)譯碼器的屬性選擇數(shù)碼管,在此選擇共陽極數(shù)碼管類型的七段譯碼器。AT89S51通過不同接口輸出的相應(yīng)數(shù)據(jù)[5],在經(jīng)過譯碼器處理后能顯示出不同數(shù)字,需要注意的是,譯碼器與數(shù)碼管之間還應(yīng)當設(shè)置限流電阻,避免電流過大時數(shù)碼管出現(xiàn)損壞現(xiàn)象。P2.4-P2.6 口接于74LS138譯碼器的三個輸入端,這個譯碼器的輸出端連接在公共極上,利用三極管與數(shù)碼管來實現(xiàn)。然后根據(jù)不同端口輸出量對譯碼器進行控制,通過譯碼器點亮相應(yīng)的數(shù)碼管,三極管在該系統(tǒng)中能起到控制的功能,通過芯片來對數(shù)碼管進行動態(tài)的掃描顯示。
三、系統(tǒng)軟件部分設(shè)計
電子密碼鎖系統(tǒng)中密碼程序使用Keil uVision4軟件進行程序編寫,電路采用Proteus Professional V7.5 SP3進行仿真。
具體操作流程如下,通過掃描鍵盤對系統(tǒng)中的各項功能進行控制,對于系統(tǒng)的初始密碼設(shè)置來說,我們可以利用數(shù)碼管來完成顯示,然后通過按鍵進行輸入,并且在鍵盤中,我們還可以設(shè)置3個按鍵來對密碼進行修改、顯示以及開鎖功能進行操作[6]。當操作人員按下開鎖按鈕以后,數(shù)碼管的顯示數(shù)值同設(shè)計值相同時,綠燈亮;反之,紅燈亮,蜂鳴器發(fā)出聲響,觸動報警裝置。
當單片機復(fù)位以后,系統(tǒng)會啟動初始化,將初始密碼存放到設(shè)定的幾個單元當中(40H~45H),然后重新選擇六個單元(30H~35)存儲數(shù)碼管的數(shù)據(jù),在設(shè)置完成后,系統(tǒng)開始自檢,當自檢完成以后啟動掃描程序,對鍵盤開始掃描,當鍵盤中的按鍵觸發(fā)相應(yīng)程序后,能夠?qū)⒑笤O(shè)置的密碼數(shù)據(jù)顯示到數(shù)碼管中。數(shù)碼管顯示完成后可以重復(fù)啟動子程序掃描鍵盤,該過程循環(huán)進行。
四、 電子密碼鎖硬件電路測試分析
4.1 硬件電路測試
數(shù)碼管在程序啟動后顯示“------”,等待輸入密碼。輸入密碼后,F(xiàn)會逐漸左移,一旦密碼錯誤操作人員按“clr”鍵能夠?qū)σ演斎氲拿艽a進行清除,重新進行輸入。
密碼正確后,數(shù)碼管顯示“PASS”, 如圖3所示,并且LED燈顯示綠色,電路自動完成開鎖開始運行。
如果密碼錯誤,數(shù)碼管會顯示 “ERROR1”,如圖4所示,密碼連續(xù)輸入三次錯誤后,系統(tǒng)的報警系統(tǒng)會自動觸發(fā),LED燈顯示綠色,并且蜂鳴器開始發(fā)聲報警,然后鍵盤自動鎖死,停止相關(guān)操作。找到鍵盤中的“l(fā)ock”鍵來對密碼鎖進行鎖定。數(shù)碼管恢復(fù)初始“------”,黃色指示燈亮起。
4.2系統(tǒng)在仿真調(diào)試可能存在問題及處理措施分析
當操作人員沒有輸入密碼或密碼輸入位數(shù)不夠時按下“enter”鍵,數(shù)碼管界面為 “false”,導(dǎo)致不能正常返回初始界面。解決辦法:“enter”鍵跳轉(zhuǎn)時,跳轉(zhuǎn)到開始即可。
當操作人員輸入正確密碼并按下確認鍵,數(shù)碼管會輸出通過指令,如果操作人員繼續(xù)操作按下“clr”鍵,屏幕上顯示“ERROR1”,觸發(fā)系統(tǒng)的報警裝置,同時數(shù)碼管不能繼續(xù)工作。產(chǎn)生這種現(xiàn)象的主要原因是由于跳轉(zhuǎn)故障,我們可以添加一個標志幫助數(shù)碼管正常工作。
如果系統(tǒng)處于運行狀態(tài)中,用戶開啟密碼鎖后重新對其進行上鎖,在完成相關(guān)操作后,該系統(tǒng)能夠完成上鎖指令,但是在上鎖前系統(tǒng)的報警裝置自動啟動,數(shù)碼管顯示的是密碼錯誤指令。產(chǎn)生這種故障的主要原因是由于系統(tǒng)的運行速度快,造成鍵盤的按鍵恢復(fù)不及時,掃描系統(tǒng)會重新對按鍵進行檢測,“l(fā)ock”的重復(fù)操作會造成系統(tǒng)運行出現(xiàn)故障。針對這種現(xiàn)象,我們可以在完成按鍵后,等待一段時間,當按鍵恢復(fù)后,再執(zhí)行相關(guān)的指令。
五、結(jié)論
本次設(shè)計的基于51單片機的電子密碼鎖硬件電路中采用AT89S51單片機作為主控芯片,密碼程序采用C51語言實現(xiàn),使用3-8譯碼器和數(shù)碼管,相互結(jié)合實現(xiàn)密碼顯示。數(shù)碼管可以實時顯示當前輸入密碼個數(shù)。密碼輸入正確正常顯示,表示密碼正確的指示燈變亮;密碼輸入錯誤時,表示密碼錯誤的指示燈變亮,且蜂鳴器發(fā)出聲音進行報警。該電子密碼鎖運行安全可靠,維護方便。
參 考 文 獻
[1] 李力.《雙處理器控制數(shù)字化焊接電源單片機系統(tǒng)》[M].天津:天津大學出版社, 2007:18-21.
[2] 周潤景,張麗娜,丁莉.基于Proteus的電路及單片機設(shè)計與仿真(第2版)[M].北京:北京航空航天大學出版社,2003: 49-51
[3] 李廣第等.單片機基礎(chǔ)[M].北京:北京航空航天大學出版社,2001:03-06.
[4] V.Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect[J] ,2002 .
[5] Yeager Brent.How to troubleshoot your electronic scale[J]. Powder and Bulk Engineering. 1995 .
[6] Behzad Razavi.Design of Analog CMOS Integrated Circuits[M]. 2001 .