電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品。應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過編程來實(shí)現(xiàn)的。
設(shè)計(jì)實(shí)現(xiàn)的功能
輸入密碼:
(1)、開始執(zhí)行時數(shù)碼管每一位都顯示“米”,點(diǎn)輸入密碼數(shù)碼管只有第一位顯示“米”,點(diǎn)擊數(shù)字鍵進(jìn)行數(shù)字選擇;
(2)、按下“確認(rèn)”鍵后跳到第二個數(shù)字,操作同第一步;
(3)、當(dāng)四個密碼選中完畢,按下“確認(rèn)輸入”鍵,顯示輸入的密碼;
(4)、按下“開鎖”鍵,若密碼正確,同時顯示*YES,密碼鎖打開;
(5)、按下“開鎖”鍵,若密碼錯誤,則顯示ERRO,密碼鎖不能打開,按下“輸入密碼”鍵,即可重新輸入密碼。
更改密碼:
(1)、在顯示*YES時,按下“更改密碼”鍵后,輸入新的四位密碼;
(2)、按下“確認(rèn)輸入”鍵,顯示新密碼,按下“確認(rèn)”鍵,即可設(shè)定新密碼。
錯誤警報(bào):
若輸入錯誤密碼超過5次,警報(bào)會自動響起,只有再次輸入正確密碼后方可解除警報(bào)。
硬件電路設(shè)計(jì)
相關(guān)芯片簡介
1. 8255
第一片8255
定義A.B.C口都為輸出狀態(tài),A.B口控制數(shù)碼管的輸入口,對應(yīng)相應(yīng)的段碼表,來顯示。C口的PC0,PC1經(jīng)過2-4譯碼器,來激活數(shù)碼管1,2,3,4通道,并采用00,01,10,11,循環(huán)輸出的方式,使數(shù)碼管通道循環(huán)激活,實(shí)現(xiàn)動態(tài)顯示。
第二片8255
定義A,B,C口都為輸入狀態(tài),對應(yīng)輸入相應(yīng)的按鈕狀態(tài),對應(yīng)相應(yīng)的程序,實(shí)現(xiàn)相應(yīng)功能。
2. 8253
使用0通道,方式3,對輸入的始終信號分頻,當(dāng)輸入密碼次數(shù)大于5次時,初始化8253,并發(fā)出警報(bào)提示聲。當(dāng)輸入密碼正確后,激活1通道,警報(bào)提示聲接觸。
3. 2-4譯碼器
由于8086運(yùn)行速度過快,數(shù)碼管動態(tài)顯示出現(xiàn)顯示不全的現(xiàn)象,因此PC0,PC1輸出經(jīng)過2-4譯碼器之后,再激活數(shù)碼管,起到緩沖作用。
4. 16位數(shù)碼管
16位數(shù)碼管的數(shù)碼管,由16個引腳控制,低電平有效,其中A-H控制外圈0, K-M控制內(nèi)部*
S1-s4是通道控制,高電平有效。
仿真電路總體設(shè)計(jì)
本實(shí)驗(yàn)設(shè)計(jì)中,硬件部分涉及到了8086CPU、可編程并行接口8255A,并配合74LS373鎖存器、74LS245緩沖器、74LS138譯碼器等基本元器件,實(shí)現(xiàn)了設(shè)想的電子密碼鎖。
8255A:如圖,8255A的D0~D7端口與CPU數(shù)據(jù)線ADO~AD7相接,CPU通過控制線的片選、讀、寫信號接口對8255A進(jìn)行讀、寫與片選操作。外設(shè)接口端的A0-A7八個開關(guān)連接245的A0-A7端口,將外設(shè)信息傳送到245中,鍵入密碼輸入、密碼確定、修改密碼等多種功能。
開關(guān)功能
如圖,A口的PA0-PA7端口通過鎖存器與數(shù)碼管相連用于外圈顯示,B口的PB0-PB7端口通過74LS373鎖存器與數(shù)碼管進(jìn)行連接用于內(nèi)部“米”字格的顯示。
軟件編程設(shè)計(jì)
按鍵控制
(1)、控制字
給8255A輸入端口控制字: void fun82531()
{
__asm
{
mov dx, 0x8006
mov al, 0x37
out dx, al
}
outp(GATE0,0x02);
outp(GATE0,0x00);
}
void fun82532()
{
__asm
{
mov dx, 0x8006
mov al, 0x77
out dx, al
}
outp(GATE0,0x99); outp(GATE0,0x99); }
(2)、密碼鍵入控制
整個過程中主要是對是否有按鍵信息輸入進(jìn)行掃描判斷,并將所得信息與燈管編號進(jìn)行比對,確定所選擇要鍵入數(shù)字的燈管。當(dāng)目前的燈管數(shù)字被選出后,自動跳到下一個燈管,直到四位數(shù)字全部選擇完畢。
字符動態(tài)顯示
四位密碼選出后,顯示四位選定數(shù)字,然后檢測密碼正確性,8255A通過端口A、B、C讀取指令,根據(jù)檢測結(jié)果,密碼正確則輸出代碼顯示*YES,錯誤則顯示ERRO。
更改密碼,鍵入“更改密碼”控制字后,與輸入密碼的流程相同,先選擇燈管,待選定數(shù)字后跳至下一個,直到四位數(shù)字全部選定,然后鍵入“確認(rèn)更改”指令,則密碼更改成功。
系統(tǒng)實(shí)現(xiàn)
proteus仿真實(shí)驗(yàn)
如圖,為本實(shí)驗(yàn)的Proteus仿真模擬圖,整個實(shí)驗(yàn)共用到8086CPU一個、74LS245一個、可編程并行接口8255A一個,74LS273鎖存器三個、74LS138譯碼器一個、數(shù)碼管一個、與非門兩個、開關(guān)八個、電阻八個。
評論