劉佳樂
(蘭州工業(yè)學(xué)院電氣工程學(xué)院,甘肅 蘭州 730000)
該文分析的系統(tǒng)是由4×4矩陣鍵盤、LCD1602報(bào)警系統(tǒng)、單片機(jī)AT89S52和顯示部分等構(gòu)成,該系統(tǒng)具有修改和設(shè)置用戶6位密碼、密碼錯(cuò)誤報(bào)警、超次鎖定和超次報(bào)警等功能。該文的密碼鎖設(shè)計(jì)是使用PO單片機(jī)LCD控制顯示,密碼正確有“password ok!”提示,如果是錯(cuò)誤會(huì)出現(xiàn)“password error!”該提示,錯(cuò)誤輸入3次會(huì)自動(dòng)鎖定。P1口矩陣控制鍵盤包括0~9個(gè)數(shù)字,還有A-F功能鍵。另外,除了這些密碼功能,還能實(shí)現(xiàn)遙控功能控制密碼鎖,關(guān)于整體系統(tǒng)框架的設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
單片機(jī)最小系統(tǒng)是由晶振電路、復(fù)位電路組成。晶振電路是通過XTAL2和XTAL1引腳與晶體振蕩器12MHz進(jìn)行連接,形成了一個(gè)內(nèi)部振蕩電路,該模塊是由一個(gè)晶振、兩個(gè)電容組成。其中引腳XTAL2和XTAL1與電容C1和C2進(jìn)行連接。該部分的兩個(gè)電容具有快速起振、穩(wěn)定振蕩頻率的功能,其中電容值是20 pF,內(nèi)部振蕩方式應(yīng)用比較廣泛,其獲得的時(shí)鐘信號(hào)相對(duì)穩(wěn)定。
鍵盤的設(shè)計(jì)是4×4矩陣式的行列鍵盤,每條垂直線和水平線都是相互交叉但不連通的,一般都是利用按鍵進(jìn)行連接。這樣每個(gè)端口構(gòu)成一個(gè)4×4=16的按鍵,在單片機(jī)系統(tǒng)中這種行列式矩陣鍵盤,在執(zhí)行程序中需要先等待按鍵指令,之后確認(rèn)都按下按鍵程序,連接每個(gè)鍵垂直和水平端口,比如:如果垂直輸入掃描碼,這時(shí)同一行獲取的掃描碼的bit是相同的,而水平線是讀取掃描的,這時(shí)會(huì)線輸入掃描的動(dòng)作,之后才是讀取輸入的信息,經(jīng)過系統(tǒng)分析,才能確定哪個(gè)鍵被使用。
該文分析的電子密碼鎖是利用程序頻率促使蜂鳴器發(fā)出聲音,之后將頻率發(fā)送給輸出端口并輸出即可。使用LED燈判斷是否輸入正確密碼,如果是錯(cuò)誤面lED燈會(huì)顯示紅色,這時(shí)蜂鳴器會(huì)自動(dòng)出現(xiàn)報(bào)警聲,如果密碼正確,則綠色的LED燈亮。
通過LED信息提示,用戶可以了解輸入的密碼是否正確,從而正確開鎖。如果密碼輸入正確,這時(shí)系統(tǒng)會(huì)判斷按鍵是否被按下,之后單片機(jī)會(huì)發(fā)出開門信號(hào),開鎖驅(qū)動(dòng)電路接收到指令,會(huì)驅(qū)動(dòng)電磁鎖,這時(shí)即可將鎖打開。開鎖電路是由開鎖、驅(qū)動(dòng)2個(gè)部分構(gòu)成,其中驅(qū)動(dòng)電路由D5、T10、R1組成,D5是提示開鎖、T10一般選擇三極管功率較小可以滿足實(shí)際需求,比如:9014。開鎖系統(tǒng)包括C4、D6、T11工程,其中,C4、D6是負(fù)責(zé)消除電磁鎖被電磁干擾,或是出現(xiàn)反向高電壓情況。T11可以選擇中功率三極管,比如8050,電磁鎖選擇都是根據(jù)實(shí)際需求,但要注意保證吸合力有一定的余量。本次分析為了節(jié)省材料,臨時(shí)選擇發(fā)光二極管來替換電磁鎖,發(fā)光管亮表示已經(jīng)開鎖,如果是燈滅,表示沒有開鎖。
電子密碼鎖一般在辦公室或是家庭中的門鎖上使用,一般都是通過電磁鐵吸合,將門關(guān)閉,只有輸入正確密碼,才能打開鎖。門鎖的密碼用戶自己可以設(shè)置或是修改,門鎖還有自動(dòng)報(bào)警功能。電子密碼鎖是根據(jù)液晶屏信息顯示,選擇開鎖或是修改密碼。如果開鎖,需要掃描鍵盤輸入密碼,之后保存數(shù)組,再選擇正確的密碼數(shù)據(jù)進(jìn)行比較,根據(jù)指示燈LED顯示開鎖。如果密碼輸入錯(cuò)誤,會(huì)自動(dòng)報(bào)警,并有錯(cuò)誤提示。如果想要修改密碼,需要將新密碼保存到系統(tǒng)中,開鎖程序包括主程序、子服務(wù)中斷程序。主程序主要是讀取鍵盤數(shù)值,并顯示屏幕信息和判斷密碼。子服務(wù)中斷程序就是將密碼復(fù)位再進(jìn)行密碼鎖開鎖、上鎖、報(bào)警等處理。當(dāng)程序進(jìn)入初始化,再分析鍵盤數(shù)值是否輸入,如果選擇輸入開始進(jìn)入步驟程序,選擇開鎖或是密碼修改,如果鍵盤沒有輸入,則需要返回。
為了保證程序更好地進(jìn)行調(diào)試和閱讀,這里將外圍電路設(shè)計(jì)成為不同的子程序,包括按鍵掃描、程序顯示、左移鍵值、右移程序、讀存儲(chǔ)器程序、報(bào)警程序和保存密碼程序等。
該文通過Proteus軟件對(duì)密碼鎖進(jìn)行了仿真實(shí)驗(yàn),證明該軟件可以實(shí)現(xiàn)軟件硬件同時(shí)設(shè)計(jì),如果還沒有制作硬件,可以利用繪制的軟件電路圖,將程序加載編譯,在電腦上完成仿真調(diào)試,從而分析軟件設(shè)計(jì)上存在的錯(cuò)誤再進(jìn)行調(diào)試,可以有效減少設(shè)計(jì)周期。
進(jìn)入Proteus ISIS編輯窗口,在元件列表中單擊“P”按鈕,進(jìn)入對(duì)話框“Pick Device”,之后添加元件。如果沒有元件,可以使用芯片來代替,達(dá)到功能兼容效果。
密碼鎖電路圖繪制完成后,將AT89C51單片機(jī)晶振頻率設(shè)置為12 MHz,之后加載“*.HEX”文件。
在編輯窗口,點(diǎn)擊圖表“運(yùn)行”或是菜單“Debug”,并在菜單中選擇“Execute”,即可看到模擬仿真的結(jié)果。
在調(diào)整單步調(diào)試中,打開“Debug”菜單中的“Watch Window”窗口以及“XX器件編號(hào)”,觀察儲(chǔ)存器、寄存器的數(shù)值變化。
經(jīng)過仿真設(shè)計(jì)反復(fù)調(diào)試,電子密碼鎖可以基本實(shí)現(xiàn):識(shí)別對(duì)比輸入的密碼、判斷密碼、開鎖、自動(dòng)報(bào)警、儲(chǔ)存密碼、修改密碼?;趩纹瑱C(jī)進(jìn)行電子密碼設(shè)計(jì),單片機(jī)屬于主控芯片,同時(shí)與外圍電路進(jìn)行連接,構(gòu)成電子密碼鎖。在單片機(jī)2個(gè)線路上設(shè)置電阻,可以有效減少功耗。這種程序設(shè)計(jì)比較簡單、設(shè)計(jì)方法可靠、成本比較低、使用安全性高,而且能夠滿足日常鎖的需求,有使用價(jià)值。