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