燕秀秀
(山西工程職業(yè)學(xué)院,山西 太原 030009)
隨著科技的發(fā)展和進(jìn)步,各類先進(jìn)新科技技術(shù)被應(yīng)用到實(shí)際生活當(dāng)中,給生活增加了不少便利。比如,針對安全加密鎖,就出現(xiàn)了智能密碼鎖,它相對傳統(tǒng)的彈子鎖和機(jī)械鎖,解決了鎖距的行程距離短,容易被技術(shù)開啟,鑰匙可隨意配置等缺點(diǎn),它只需要設(shè)置幾位數(shù)字密碼就可完成安全鎖的功能,讓出行更加安全便捷,在實(shí)際生活中得到了廣泛的應(yīng)用。綜合便捷和安全因素的考慮,本文使用STC15W4K32S430I作為核心芯片,結(jié)合其他外圍器件設(shè)計了一款具有修改密碼功能的智能密碼鎖。
智能密碼鎖能夠?qū)崿F(xiàn)按鍵輸入密碼、自動開關(guān)鎖、修改密碼、指示燈狀態(tài)顯示等功能。智能密碼鎖各個組成部分包括STC15W4K32S430I主控制芯片、矩陣鍵盤、蜂鳴器、LED指示燈、繼電器、數(shù)碼管等,如圖1所示。STC15W4K32S430I芯片實(shí)現(xiàn)整個系統(tǒng)的控制和數(shù)據(jù)處理;矩陣鍵盤可以進(jìn)行密碼的輸入、清除或修改操作;蜂鳴器和LED信號燈實(shí)現(xiàn)聲光報警指示,直觀給出結(jié)果;繼電器實(shí)現(xiàn)門鎖的開關(guān)控制,數(shù)碼管模塊進(jìn)行智能密碼鎖的狀態(tài)指示以及實(shí)時的數(shù)字密碼顯示,STC15W4K32S430I主控芯片內(nèi)部含有E2PROM,實(shí)現(xiàn)預(yù)設(shè)密碼的存儲。
關(guān)于智能密碼鎖的需求分析如下:
1) LED狀態(tài)指示燈有紅、黃、綠三種顏色,分別對應(yīng)“密碼錯誤”、“密碼修改”、“密碼輸入”三種狀態(tài);
2) 數(shù)碼管能夠?qū)崟r顯示輸入的數(shù)值和狀態(tài);
3) E2PROM中存儲預(yù)設(shè)密碼,可被單片機(jī)讀寫,實(shí)現(xiàn)數(shù)據(jù)交換;
4) 4×4矩陣按鍵上分布有數(shù)字鍵0~9、“輸入”鍵、“清除”鍵、“修改”鍵,以及三個備用按鍵,支持?jǐn)U展功能;
5) I/O口連接三極管驅(qū)動繼電器開合,實(shí)現(xiàn)智能密碼鎖開關(guān)功能。
圖1 智能密碼鎖系統(tǒng)結(jié)構(gòu)框圖
根據(jù)需求分析,能得到智能密碼鎖的主要7個狀態(tài):初始狀態(tài)、密碼輸入狀態(tài)、密碼驗(yàn)證狀態(tài)、密碼驗(yàn)證正確狀態(tài)、密碼驗(yàn)證錯誤狀態(tài)、密碼修改狀態(tài)以及等待5 s無操作狀態(tài)。在這7種不同狀態(tài)下,分別有不同的響應(yīng),如表1所示,將各個狀態(tài)使用變量標(biāo)號Mode來表示,每個狀態(tài)使用一個從0到6中確定的數(shù)字表示。
表1 智能密碼鎖狀態(tài)表
初始狀態(tài)下,繼電器關(guān)閉、LED燈和蜂鳴器關(guān)閉;在密碼輸入過程當(dāng)中,由矩陣按鍵輸入密碼,數(shù)碼管顯示“H”樣字母以及按鍵數(shù)字,同時綠色LED燈點(diǎn)亮;在密碼驗(yàn)證狀態(tài)下,從單片機(jī)中E2PROM中讀取預(yù)設(shè)密碼進(jìn)行驗(yàn)證;如果密碼輸入正確,也就是密碼驗(yàn)證正確狀態(tài)時,數(shù)碼管顯示0pen字樣,同時繼電器打開;如果密碼驗(yàn)證錯誤狀態(tài)則繼電器關(guān)閉,同時紅燈亮,蜂鳴器發(fā)出聲音進(jìn)行提醒,數(shù)碼管顯示Error字樣;最后要求智能密碼鎖支持密碼修改,密碼修改的前提必須是要在密碼輸入正確的狀態(tài)下進(jìn)行,同時黃燈亮,數(shù)碼管顯示“C”樣字母及按鍵新密碼,然后進(jìn)行密碼保存到E2PROM,方便下次進(jìn)行密碼驗(yàn)證,同時要求在密碼輸入過程中允許進(jìn)行密碼輸入的清除;為了能夠更加地安全,我們規(guī)定無任何操作大于5 s則進(jìn)入待機(jī)狀態(tài),也就是初始狀態(tài)。
采用4×4的矩陣鍵盤,對應(yīng)的功能名稱如圖2所示。在軟件設(shè)計中采用矩陣鍵盤行列式掃描確定按下的按鍵。
圖2 矩陣鍵盤功能名稱圖
在電子產(chǎn)品中,蜂鳴器是非常常見的一種元器件,廣泛應(yīng)用于計算機(jī)、打印機(jī)、報警器、電子玩具等等,通常作為發(fā)聲裝置。當(dāng)密碼輸入錯誤時,采用無源蜂鳴器進(jìn)行三次間斷的發(fā)聲報警。其軟件流程圖和軟件設(shè)計如圖3所示,其中BUZZ為硬件上單片機(jī)控制蜂鳴器所使用的控制端口,且輸出PWM信號驅(qū)動蜂鳴器發(fā)出聲音,當(dāng)驅(qū)動輸出為低電平,且不是PWM信號時,表示蜂鳴器沒有觸發(fā),蜂鳴器處于關(guān)閉狀態(tài),初始化蜂鳴器為低電平0。具體的發(fā)聲頻率由for循環(huán)中的延時長短控制,間隔時長由for循環(huán)外部的延時時長控制。
圖3 蜂鳴器軟件流程圖、蜂鳴器軟件設(shè)計圖
LED燈組包括紅、黃、綠色,為了區(qū)分智能密碼鎖的不同工作狀態(tài),綠燈點(diǎn)亮表示智能密碼鎖正在輸入密碼按鍵值,黃燈點(diǎn)亮表示正在進(jìn)行密碼修改工作,紅燈點(diǎn)亮表示密碼輸入錯誤??梢栽O(shè)置不同的位變量給三個LED燈。
根據(jù)需要配置對應(yīng)的單片機(jī)端口,當(dāng)對應(yīng)的LED燈要被點(diǎn)亮?xí)r,設(shè)置對應(yīng)的位變量值為0或者1來控制LED燈的亮滅。
繼電器的軟件設(shè)置類似于LED燈的設(shè)置,都是配置對應(yīng)的單片機(jī)端口,通過單片機(jī)輸出高低電平控制繼電器的打開和關(guān)閉,實(shí)現(xiàn)門鎖的開關(guān)。
采用8位數(shù)碼管3641AS和74HC595實(shí)現(xiàn)密碼顯示和狀態(tài)字樣的顯示。74HC595是一個功能非常強(qiáng)大的移位緩存器,由SCK信號腳控制數(shù)據(jù)信號輸入的脈沖,信號輸入的0或者1都是SDL腳決定的。由SCK與SDL共同控制信號的輸入[1]。單片機(jī)向74HC595發(fā)送一個字節(jié)數(shù)據(jù)[2]。
首先是對3個數(shù)據(jù)端作引腳定義。
然后是單片機(jī)向74HC595發(fā)送一個字節(jié)的函數(shù)Send_595(u8 dat),形參為dat。
最后是輸出位碼Send_595(T_COM[display_index])和段碼Send_595(t_display[LED8[display_index]]),位碼數(shù)組依次為0x01,0x02,0x03,0x04,0x05,0x06,0x07,分別表示8位數(shù)碼管,段碼數(shù)組t_display位標(biāo)準(zhǔn)的單個數(shù)碼管的字符顯示集合。
STC15W4K32S430I芯片內(nèi)部包含E2PROM,可以完成對預(yù)設(shè)密碼的讀寫操作。也就是智能密碼鎖的密碼驗(yàn)證時對預(yù)設(shè)密碼的讀以及密碼修改時對密碼的保存。使用IAP技術(shù)進(jìn)行對E2PROM讀寫操作,假設(shè)預(yù)設(shè)密碼為6位數(shù)字,使用E2PROM的幾個相關(guān)寄存器相關(guān)位。首先是控制寄存器IAP_CONTR,相關(guān)讀寫位是第0、第1、第2和第7位,第7位為使能位,只有當(dāng)它是1的時候,允許IAP讀寫E2PROM,否則是禁止對E2PROM讀寫。而第0、第1和第2位是設(shè)置CPU等待多長時間。然后是設(shè)置命令寄存器IAP_CMD,相關(guān)位是第0位和第1位,MS1和MS0為00時候,E2PROM是待機(jī)模式,不進(jìn)行操作。當(dāng)為01時,對E2PROM區(qū)進(jìn)行字節(jié)讀?。划?dāng)為10時,對E2PROM區(qū)進(jìn)行字節(jié)編程;當(dāng)為11時,對E2PROM區(qū)進(jìn)行扇區(qū)擦除。其次,是設(shè)置操作的E2PROM的地址寄存器IAP_ADDRH和IAP_ADDRL,分別是高位地址寄存器,用來指定地址的高8位,低位寄存器用來指定地址的低8位。最后,數(shù)據(jù)操作寄存器IAP_DATA,是對相關(guān)數(shù)據(jù)進(jìn)行的操作,將要寫入E2PROM中的數(shù)據(jù)放在數(shù)據(jù)寄存器中,或者從E2PROM中讀出來的數(shù)據(jù)也在此寄存器中。需要特別注意的是,使用IAP技術(shù)操作時,都要對命令觸發(fā)寄存器先寫入5AH,再寫入A5H,那么IPA命令才會生效。這樣就可以對智能密碼鎖的密碼讀取判斷和密碼修改進(jìn)行操作了。
假設(shè)智能密碼鎖初始預(yù)設(shè)密碼是6個1。測試步驟如表2所示。
表2 智能密碼鎖軟件測試表
本文結(jié)合智能密碼鎖的實(shí)際需求,以STC15W4K32S430I為主控芯片,應(yīng)用矩陣鍵盤、數(shù)碼管、LED燈、蜂鳴器等,設(shè)計了一款智能密碼鎖系統(tǒng)。后續(xù)的發(fā)展可以考慮采用無線傳播紅外或者藍(lán)牙等技術(shù),進(jìn)行遠(yuǎn)程控制實(shí)現(xiàn)智能密碼鎖物聯(lián)網(wǎng)功能。