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