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