采用AT89C52單片機的多用戶(hù)密碼鎖方案設計
3.2 顯示電路本文引用地址:http://dyxdggzs.com/article/171982.htm
電路主要使用七段數碼管。單片機通過(guò)P2口將要顯示的數據信號傳送到數碼管,直接控制數碼管的顯示,從而點(diǎn)亮數碼管。由于單片機的時(shí)鐘頻率達到12 MHz,所以,看不到數據是一位一位傳輸的。從人類(lèi)視覺(jué)的角度上看,就仿佛是全部數碼管同時(shí)顯示的一樣。由單片機控制數碼管顯示1~3,分別表示3個(gè)用戶(hù)。硬件電路主要是7段顯示譯碼器的a~g對應接到單片機的P2.0~P2.6,通過(guò)查表得到要顯示的數值。電路如圖3所示。
4 軟件設計
4.1 軟件設計思想
整個(gè)系統的設計重點(diǎn)在于區分3個(gè)用戶(hù)的進(jìn)入。只有主用戶(hù)進(jìn)入之后才可以對自己及客人用戶(hù)的密碼進(jìn)行修改。其他用戶(hù)進(jìn)入是不可以對自己的密碼進(jìn)行修改的。
程序設計主要包括了密碼修改程序、密碼輸入程序、報警程序、控鍵掃描程序、數字鍵轉換程序和功能鍵轉換程序。在整個(gè)程序的運行過(guò)程中,控鍵掃描程序放在中斷服務(wù)子程序中,每隔150ms進(jìn)行一次掃描。密碼修改程序,在設計中每個(gè)用戶(hù)進(jìn)入系統時(shí)都已加了標注,以確保密碼被修改時(shí)可以準確的分辨出修改密碼的用戶(hù)是哪個(gè),用戶(hù)對密碼是否有修改權。
4.2 主程序的設計
先判斷密碼是否輸入,如密碼輸入,則將密碼輸入到密碼輸入緩沖區,密碼輸入完成,確認后進(jìn)行密碼比對,區別出哪個(gè)用戶(hù)進(jìn)入密碼鎖系統,比對成功之后用標志位區別主人用戶(hù)和來(lái)賓用戶(hù)。在密碼修改程序中。首先,判斷是否是主人用戶(hù)。其次,判斷是否有密碼修改要求,在滿(mǎn)足上述兩個(gè)條件的情況下再進(jìn)入密碼修改程序。兩次新密碼的輸入相同話(huà)則表示密碼修改成功。接下來(lái)是報警子程序,用寄存器累加連續輸入的錯誤密碼的次數,達到3次則產(chǎn)生報警信號。最后是顯示子程序,用來(lái)顯示當前進(jìn)入系統的用戶(hù)。主程序流程圖如圖4所示。

5 結束語(yǔ)
文中設計的密碼鎖既能確保密碼可以被有權用戶(hù)進(jìn)行修改,還有限制用戶(hù)對自己或別人密碼進(jìn)行修改等功能。以AT89C52單片機芯片為核心,同時(shí)給出系統總體設計方案,硬件模塊電路及軟件設計。
評論