孫鵬宇,魏立明
(吉林建筑大學(xué)電氣與計算機學(xué)院,吉林 長春 130118)
智能密碼鎖是靠密碼控制鎖的正常工作,當(dāng)人們輸入密碼的時候,采用電路進行開鎖。智能鎖的樣式種類繁多:采用數(shù)字邏輯電路、采用FPGA 中VHDL 語言來控制、也有采用在電子行業(yè)中最基本的51 單片機驅(qū)動的。目前市場上應(yīng)用較為廣泛的智能鎖都是以芯片為核心,通過編程使得軟硬件結(jié)合實現(xiàn)智能鎖的基本功能,以達到人們所需的基本要求。該智能鎖的性能及安全性已經(jīng)遠(yuǎn)遠(yuǎn)超過了傳統(tǒng)的機械鎖,并且該鎖的特點在于保密性強,隨機輸入密碼成功開鎖的概率為零;可以隨時修改自己設(shè)置的密碼,從而防止密碼被竊;無需像傳統(tǒng)的機械鎖攜帶鑰匙才能開鎖,操作性簡單,使用的靈活性好并且壽命長。
本文設(shè)計的電路是以STC89C52 為核心組成的閉環(huán)控制系統(tǒng)。利用單片機的靈活編程特點和I/O端口控制的準(zhǔn)確性,從而實現(xiàn)智能密碼鎖的基本功能。該系統(tǒng)設(shè)計的總體框架如圖1 所示。
圖1 智能鎖設(shè)計的總框圖
本設(shè)計采用STC89C52,它是一款性價比高的芯片[1]。芯片中的掉電模式,該模式中除外部中斷外,復(fù)位電路、晶體振蕩器電路、定時器、串口等其他外部電路均處于停止工作狀態(tài)。另外一種模式是休眠模式,該模式中相關(guān)的外圍電路皆處于運作狀態(tài),單片機中一些沒有接觸到的存儲器及寄存器里面的數(shù)值保持不變。因此,芯片正常工作時的功耗為4 mA~7 mA,在空閑模式時其功耗降至2 mA。STC89C52 的結(jié)構(gòu)有40 個引腳,芯片的引腳可以分為電源引腳、時鐘引腳、控制引腳。該芯片內(nèi)部結(jié)構(gòu)和引腳分配如圖2 所示。
圖2 STC89C52 引腳分配圖
本文使用的繼電器主要用于解鎖功能。它是一種電控裝置,具有輸入輸出相互轉(zhuǎn)換的關(guān)系特性。每當(dāng)輸入電壓和輸入電流達到一定值時,繼電器就會被電路控制的輸出電路斷開或接通。繼電器模塊本身具有非常明顯的特點,例如:占用空間小、使用壽命長、運行相對穩(wěn)定等。該器件的內(nèi)部是由3 個部分組成,即線圈、鐵片、接觸簧片。該器件的工作原理如下:插電時線圈就會自動產(chǎn)生電流從而發(fā)生磁現(xiàn)象,該器件當(dāng)中的鐵片會因為磁性的關(guān)系,自動把彈簧貼到鐵片上,從而使繼電器正常工作[2]。相反,當(dāng)電源斷開時,它們會互相排斥,從而達到電路通斷的效果。該繼電器的引腳如圖3 所示。
圖3 繼電器引腳圖
為了使密碼鎖的密碼顯示效果更好,本系統(tǒng)采用LCD12864 液晶顯示器,本顯示器自帶中文庫,顯示時會更加簡潔[3]。因此,本設(shè)計的密碼顯示模塊采用液晶屏LCD12864 來完成。該液晶屏的工作原理是每當(dāng)按下鍵盤上面的啟動鍵時,液晶屏就會自行開啟,使該顯示處于開啟狀態(tài)。反之,按下關(guān)閉鍵盤后,屏幕變黑處于關(guān)閉狀態(tài)。如果啟動鍵和關(guān)閉鍵都沒有按下去,液晶屏就會一直處于出廠時的狀態(tài)。當(dāng)智能密碼鎖進行開啟時,只要按下開啟鍵,利用矩陣鍵盤上的數(shù)字0~9 來輸入自己所設(shè)置的密碼,當(dāng)按下相應(yīng)的數(shù)字,液晶顯示器就會自動顯示出一個*,設(shè)置了多少位密碼,該屏幕也會顯示對應(yīng)的個數(shù)。當(dāng)密碼輸入完成后按下確認(rèn)鍵時,若密碼正確,該12864 型的LCD 顯示屏?xí)@示正確,從而會使單片機其中的引腳輸出低電平,會與液晶顯示屏模塊相連的器件自動導(dǎo)通,從而使密碼鎖打開,一旦輸入密碼錯誤,顯示不正確,此時單片機當(dāng)中的引腳輸出高電平,使得密碼鎖無法打開。因此,只要利用該顯示模塊,就可以完全知道該智能鎖是否處于開鎖狀態(tài)。該液晶顯示模塊原理如圖4 所示。
本文開鎖模塊采用繼電器進行設(shè)計以實現(xiàn)模擬開鎖,該模塊主要是由電磁式繼電器、三極管及電阻組成[4]。該電路的主要功能就是當(dāng)密碼輸入正確后會實現(xiàn)開鎖,本電路電阻的一個引腳與單片機其中的一個引腳相連接時,單片機產(chǎn)生低電平的時候,經(jīng)過電阻和三極管的放大之后,從而驅(qū)動繼電器中的電磁閥以實現(xiàn)開鎖。當(dāng)輸入密碼正確后,單片機才能將繼電器控制,繼電器中的閥門打開之后使電磁片下壓,從而使智能密碼鎖開鎖,反之一直處于初始狀態(tài)[5]。開鎖模塊的核心原理如圖5 所示。
圖4 12864 型LCD 液晶顯示模塊原理圖
圖5 繼電器驅(qū)動開鎖模塊原理圖
本文主要采用C 語言來進行程序設(shè)計,利用51單片機的編譯器完成。該智能密碼鎖的軟件設(shè)計主要是由主程序、矩陣鍵盤程序、報警程序、密碼設(shè)置程序、顯示程序等組成,其整體流程如圖6 所示。
本模塊當(dāng)中,開鎖的程序也是跟之前一樣,當(dāng)密碼輸入完成后,單片機會自動判斷出密碼正確與否,要是輸入密碼正確的話,繼電器就相當(dāng)于模擬成開關(guān),會自動的開鎖,要是輸入的密碼不正確且>3 次,單片機中的報警模塊也會自動發(fā)生報警,該密碼鎖的程序流程如圖7 所示。
圖6 智能密碼鎖整體流程圖
圖7 智能鎖程序流程圖
程序調(diào)試及編譯過程中如果出現(xiàn)錯誤需要訂正,根據(jù)對話框的錯誤提示雙擊,自動會顯示錯誤的地方然后修改,一直修改到正確為止,但由于程序的復(fù)雜性,若出現(xiàn)了小警告,可是沒有出現(xiàn)錯誤,在此也可以忽略小警告,如圖8 所示。
圖8 文件調(diào)試成功
本文采取STC89C52 為核心模塊進行智能密碼鎖的控制設(shè)計,設(shè)計中將各個模塊電路區(qū)分開以形成模塊化,使得設(shè)計簡潔明了。硬件中對開鎖模塊、繼電器模塊、液晶顯示屏等進行詳細(xì)闡述,軟件程序中對主程序、開鎖程序的流程圖進行了說明。最后進行系統(tǒng)編譯與調(diào)試,為智能密碼鎖的應(yīng)用奠定理論基礎(chǔ)。