18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 單片機 >> 正文

51單片機製作的經濟、安全的電子密碼鎖

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2013-4-7
   一種能防止多次試探密碼的基於單片機的密碼鎖設計方案,根據用戶的10條總體要求,給出了該單片機密碼鎖的硬件電路和軟件程序,同時給出了單片機型號的選擇、硬件設計、軟件流程圖、單片機存儲單元的分配、匯編語言源程序及詳細注釋等內容。很多行業的許多地方都需要密碼鎖,但普通密碼鎖的密碼容易被多次試探而破譯。本文給出了一種能防止多次試探密碼的密碼鎖設計方法,從而有效地克服了上述缺點。

 硬件電路

圖1所示是筆者設計的一種密碼鎖電路。該密碼鎖主要 是以下10條特點:

(1)總共可以設置8位密碼,每位的取值範圍為(wei) 1~8。

(2)用戶可以自行設定和修改密碼。

(3)按每個(ge) 密碼鍵時都有聲音提示。

(4)若鍵入的8位開鎖密碼不完全正確,則報警5秒鍾,以提醒他人注意。

(5)開鎖密碼連續錯3次要報警1分鍾,報警期間輸入密碼無效,以防竊賊多次試探密碼。

(6)鍵入的8位開鎖密碼完全正確才能開鎖,開鎖時要有1秒的提示音。

(7)電磁鎖的電磁線圈每次通電5秒,然後恢複初態。

(8)密碼鍵盤上隻允許有8個(ge) 密碼按鍵。鎖內(nei) 有備用電池,隻有內(nei) 部上電複位時才能設置或修改密碼,因此,僅(jin) 在門外按鍵是不能修改或設置密碼的。

    (9)密碼設定完畢後要有2秒的提示音。

(10)成本低,硬件和軟件都很簡潔可靠,易於(yu) 批量生產(chan) 。

根據總體(ti) 要求分析,該密碼鎖電路所需要的I/O口線少於(yu) 15個(ge) ,若設計得當,程序不會(hui) 超過200條指令,所以可選擇質優(you) 價(jia) 廉的AT89C1051/2051或者GMS1051/2051,而且不需要外接程序存儲(chu) 器和數據存儲(chu) 器及其它擴展部件,所以成本很經濟。

單片機電子密碼鎖電路圖

圖1 電磁鎖原理圖

在圖1所示電路中,P1口連接8個(ge) 密碼按鍵AN1~AN8,開鎖 信號由P3.2輸出,報警和提示音由P3.7輸出。BL是用於(yu) 報警與(yu) 聲音提示的喇叭,K是繼電器控製電磁線圈。

 軟件設計

圖2給出了該單片機密碼鎖電路的軟件流程圖。圖中AA1~AA8以及START、SET、SAVE是程序中的標號,是為(wei) 了理解程序而專(zhuan) 門標在流程圖的對應位置的,分析程序時可以仔細對照參考。

3.1 存儲(chu) 單元的分配

該密碼鎖中RAM存儲(chu) 單元的分配方案如下:

31H~38H:依次存放8位設定的密碼,首位密碼存放在31H單元;

R0:指向密碼地址;

R2:已經鍵入密碼的位數;

R3:存放允許的錯碼次數3與(yu) 實際錯碼次數的差值;

R4至R7:延時用;

00H:錯碼標誌位。

對於(yu) ROM存儲(chu) 單元的分配,由於(yu) 程序比較短,而且占用的存儲(chu) 空間比較少,因此,在無特殊要求時,可以從(cong) 0030H單元(其它地址也可以)開始存放主程序。
 51單片機製電子密碼鎖程序框圖

圖2  電磁鎖程序流程圖


     源程序

下麵是該電子密碼鎖的軟件源程序代碼:

ORG 0000H

AJMP START

ORG 0030H

START:ACALL BP

MOV R0,#31H

MOV R2,#8

SET: MOV P1,#0FFH

MOV A,P1

CJNE A,#0FFH,L8

AJMP SET

L8: ACALL DELAY

CJNE A,#0FFH,SAVE

AJMP SET

SAVE: ACALL BP

MOV @R0A

INC R0

DJNZ R2,SET

MOV R5,#16

D2S: ACALL BP

DJNZ R5,D2S

MOV R0,#31H

MOV R3,#3

AA1: MOV R2,#8

AA2: MOV P1,#0FFH

MOV A,P1

CJNE A,#0FFH, L9

AJMP AA2

L9 ACALL DELAY

CJNE A,#0FFH,AA3

AJMP AA2

AA3: ACALL BP

CLR C

SUBB A, @R0

INC R0

CJNE A,#00H,AA4

AJMP AA5

AA4: SETB 00H

AA5: DJNZ R2,AA2

JB 00HAA6

CLR P3.5

L3 MOV R5,#8

ACALL BP

DJNZ R4,L3

MOV R3,#3

SETB P3.5

AJMP AA1

AA6: DJNZ R3,AA7

MOV R5,#24

L5: MOV R4,#200

L4: ACALL BP

DJNZ R4,L4

DJNZ R5,L5

MOV R3,#3

AA7: MOV R5,#40

ACALL BP

DJNZ R5,AA7

AA8: CLR 00H

AJMP AA1

BP: CLR P3.7

MOV R7,#250

L2: MOV R6,#124

L1: DJNZ R6,L1

CPL P3.7

DJNZ R7,L2

SETB P3.7

RET

DELAYMOV R7,#20

L7: MOV R6,#125

L6: DJNZ R6,L6

DJNZ R7,L7

RET

END 

 應用說明

若按鍵AN1~AN7分別代表數碼1~7,按鍵AN0代表數碼8。在沒有鍵按下時,P1.0~P1.7全是高電平1,若某個(ge) 鍵被按下,相應的口線就變為(wei) 低電平0。假如設定的密碼是61234578,當按鍵AN6被按下時,P1.6變為(wei) 低電平,P1端口其餘(yu) 口線為(wei) 高電平,此時從(cong) P1端口讀入的數值為(wei) 10111111,存到31H單元的密碼值就是10111111,也就是BFH。依此類推,存到32H至38H單元的密碼值分別是FDH、FBH、F7H、EFH、DFH、7FH、FEH。開鎖時必須先按AN6,使從(cong) P1口讀入的第一個(ge) 密碼值與(yu) 31H單元存儲(chu) 的設定值相同,再順序按AN1、AN2、AN3、AN4、AN5、AN7、AN0才能開鎖。否則不能開鎖,同時開始報警。

Tags:單片機,電子密碼鎖,製作  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢