基于AT89C52單片機(jī)的多用戶密碼鎖設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
安全防盜已成為社會問題。而鎖自古以來就是把守門戶的鐵將軍,人們對它要求甚高,既要安全可靠地防盜,又要使用方便,這也是制鎖者長期以來研制的主題。
文中設(shè)計(jì)的電子密碼鎖和市面銷售的AB鎖有類似之處,但主要區(qū)別在于設(shè)計(jì)的這個(gè)密碼鎖由主人決定客人進(jìn)入的密碼,不需要通過換鎖來防止用過該鎖的人再次進(jìn)入,而且只有主人才有對密碼的修改權(quán)。
1 方案設(shè)計(jì)思想
文中的多用戶密碼鎖設(shè)有一個(gè)管理員用戶,管理員對密碼有修改權(quán)。另設(shè)有兩個(gè)來賓用戶,可以根據(jù)管理員提供的密碼開鎖,自己則不可以任意修改密碼。更換住戶時(shí),只需要管理員更換密碼即可,這樣就避免了換鎖帶來的麻煩,節(jié)約了成本。
密碼鎖的設(shè)計(jì)采用通用板制作,所以涉及到元器件的排布和走線問題。由于帶有一個(gè)管理員用戶(主人用戶),可以對自己和兩個(gè)來賓用戶的密碼進(jìn)行修改,而且還要限制兩個(gè)來賓用戶的對密碼的修改權(quán)。所以,在密碼修改程序上需要精心處理,在進(jìn)入密碼修改程序時(shí)有兩個(gè)條件。首先,是主用戶進(jìn)入的系統(tǒng);其次是密碼修改按鍵被按下。在密碼輸入程序上也要特別的注意,區(qū)分并確認(rèn)是哪個(gè)用戶進(jìn)入當(dāng)前系統(tǒng),即用戶名和密碼需對號入座,這也是設(shè)計(jì)的關(guān)鍵所在。
2 系統(tǒng)結(jié)構(gòu)與原理
2.1 系統(tǒng)結(jié)構(gòu)
多用戶密碼鎖電路設(shè)計(jì)共分為6部分:電源、用戶顯示單元、晶振電路、鍵盤電路、編程控制部分、功能顯示單元。通過排版、布局,把這6個(gè)部分組合起來,構(gòu)成一個(gè)完整的多用戶密碼鎖控制電路,如圖1所示。
2.2 系統(tǒng)原理
首先,要有晶振電路產(chǎn)生工作時(shí)鐘送至單片機(jī)內(nèi)部的各個(gè)部件使其正常工作。其次,用AT89C5l的并行口P1接4×4矩陣鍵盤,以P1.0~P1.3作輸出線,以P1.4~P1.7作輸入線。矩陣的行線和列線分別通過兩并行接口和CPU通信。通過掃描得出的行值和列值的組合來識別被按下的按鍵的編碼以完成密碼的輸入、用戶名的輸入和切換,以及確定、取消命令、密碼修改命令、用戶切換命令和關(guān)鎖命令的輸入。再者,單片機(jī)通過P2口將要顯示的數(shù)據(jù)信號傳送到數(shù)碼管,直接控制數(shù)碼管的顯示,從而點(diǎn)亮數(shù)碼管,顯示當(dāng)前用戶。整個(gè)系統(tǒng)實(shí)現(xiàn)了各種信號提示功能的實(shí)現(xiàn)。
3 各功能模塊電路設(shè)計(jì)
3.1 鍵盤電路
密碼鎖要輸入密碼就肯定要使用鍵盤。設(shè)計(jì)的是4×4的鍵盤,除了0~9這10個(gè)數(shù)字鍵之外,還有“確定”、“取消”、“密碼修改”、“關(guān)鎖”、“用戶切換”、和“顯示開關(guān)”。4×4矩陣排列能有效的節(jié)約端口資源,避免使用端口擴(kuò)展模塊。鍵盤安裝時(shí),按鍵按照4×4格式進(jìn)行矩陣排列。在P1.4~P1.7輸出線上接拉高電阻,讓端口能準(zhǔn)確的置高、置低。拉高電阻的另一端則連接在一起接5 V電源。電路如圖2所示。
3.2 顯示電路
電路主要使用七段數(shù)碼管。單片機(jī)通過P2口將要顯示的數(shù)據(jù)信號傳送到數(shù)碼管,直接控制數(shù)碼管的顯示,從而點(diǎn)亮數(shù)碼管。由于單片機(jī)的時(shí)鐘頻率達(dá)到12 MHz,所以,看不到數(shù)據(jù)是一位一位傳輸?shù)摹娜祟愐曈X的角度上看,就仿佛是全部數(shù)碼管同時(shí)顯示的一樣。由單片機(jī)控制數(shù)碼管顯示1~3,分別表示3個(gè)用戶。硬件電路主要是7段顯示譯碼器的a~g對應(yīng)接到單片機(jī)的P2.0~P2.6,通過查表得到要顯示的數(shù)值。電路如圖3所示。
4 軟件設(shè)計(jì)
4.1 軟件設(shè)計(jì)思想
整個(gè)系統(tǒng)的設(shè)計(jì)重點(diǎn)在于區(qū)分3個(gè)用戶的進(jìn)入。只有主用戶進(jìn)入之后才可以對自己及客人用戶的密碼進(jìn)行修改。其他用戶進(jìn)入是不可以對自己的密碼進(jìn)行修改的。
程序設(shè)計(jì)主要包括了密碼修改程序、密碼輸入程序、報(bào)警程序、控鍵掃描程序、數(shù)字鍵轉(zhuǎn)換程序和功能鍵轉(zhuǎn)換程序。在整個(gè)程序的運(yùn)行過程中,控鍵掃描程序放在中斷服務(wù)子程序中,每隔150ms進(jìn)行一次掃描。密碼修改程序,在設(shè)計(jì)中每個(gè)用戶進(jìn)入系統(tǒng)時(shí)都已加了標(biāo)注,以確保密碼被修改時(shí)可以準(zhǔn)確的分辨出修改密碼的用戶是哪個(gè),用戶對密碼是否有修改權(quán)。
4.2 主程序的設(shè)計(jì)
先判斷密碼是否輸入,如密碼輸入,則將密碼輸入到密碼輸入緩沖區(qū),密碼輸入完成,確認(rèn)后進(jìn)行密碼比對,區(qū)別出哪個(gè)用戶進(jìn)入密碼鎖系統(tǒng),比對成功之后用標(biāo)志位區(qū)別主人用戶和來賓用戶。在密碼修改程序中。首先,判斷是否是主人用戶。其次,判斷是否有密碼修改要求,在滿足上述兩個(gè)條件的情況下再進(jìn)入密碼修改程序。兩次新密碼的輸入相同話則表示密碼修改成功。接下來是報(bào)警子程序,用寄存器累加連續(xù)輸入的錯(cuò)誤密碼的次數(shù),達(dá)到3次則產(chǎn)生報(bào)警信號。最后是顯示子程序,用來顯示當(dāng)前進(jìn)入系統(tǒng)的用戶。主程序流程圖如圖4所示。
5 結(jié)束語
文中設(shè)計(jì)的密碼鎖既能確保密碼可以被有權(quán)用戶進(jìn)行修改,還有限制用戶對自己或別人密碼進(jìn)行修改等功能。以AT89C52單片機(jī)芯片為核心,同時(shí)給出系統(tǒng)總體設(shè)計(jì)方案,硬件模塊電路及軟件設(shè)計(jì)。