淺談能防止多次試探密碼的單片機(jī)密碼鎖論文
摘要:
提出了一種能防止多次試探密碼的基于單片機(jī)的密碼鎖設(shè)計(jì)方案,根據(jù)用戶的10條總體要求,給出了該單片機(jī)密碼鎖的硬件電路和軟件程序,同時(shí)給出了單片機(jī)型號(hào)的選擇、硬件設(shè)計(jì)、軟件流程圖、單片機(jī)存儲(chǔ)單元的分配、匯編語(yǔ)言源程序及詳細(xì)注釋等內(nèi)容。
關(guān)鍵詞:
單片機(jī);密碼鎖;密碼
1 引言
很多行業(yè)的許多地方都需要密碼鎖,但普通密碼鎖的密碼容易被多次試探而破譯。本文給出了一種能防止多次試探密碼的密碼鎖設(shè)計(jì)方法,從而有效地克服了上述缺點(diǎn)。
2 硬件電路
圖1所示是筆者設(shè)計(jì)的一種密碼鎖電路。該密碼鎖主要是按照以下10條用戶要求進(jìn)行設(shè)計(jì)的:
。ǎ保┕玻肝幻艽a,每位的取值范圍為1~8。
。ǎ玻┯脩艨梢宰孕性O(shè)定和修改密碼。
。ǎ常┌疵總(gè)密碼鍵時(shí)都有聲、光提示。
。ǎ矗┤翩I入的8位開鎖密碼不完全正確,則報(bào)警5秒鐘,以提醒他人注意。
。ǎ担╅_鎖密碼錯(cuò)3次要報(bào)警10分鐘,報(bào)警期間輸入密碼無(wú)效,以防竊賊多次試探密碼。
。ǎ叮╂I入的8位開鎖密碼完全正確才能開鎖,開鎖時(shí)要有1秒的提示音。
。ǎ罚╇姶沛i的電磁線圈必須用脈沖驅(qū)動(dòng),每次通電時(shí)間不多于2秒,以防燒壞。
(8)密碼鍵盤上只允許有8?jìng)(gè)密碼按鍵和1個(gè)發(fā)光管。鎖內(nèi)有備用電池,只有內(nèi)部上電復(fù)位時(shí)才能設(shè)置或修改密碼,因此,僅在門外按鍵是不能修改或設(shè)置密碼的。
。ǎ梗┟艽a設(shè)定完畢后要有2秒的提示音。
。ǎ保埃┏杀疽容^低,硬件和軟件都要盡可能簡(jiǎn)潔可靠,易于批量生產(chǎn)。
根據(jù)總體要求分析,該密碼鎖電路所需要的I/O口線少于15個(gè),若設(shè)計(jì)得當(dāng),程序不會(huì)超過200條指令,所以可選擇質(zhì)優(yōu)價(jià)廉的AT89C1051/2051或者GMS1051/2051,而且不需要外接程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器及其它擴(kuò)展部件。
在圖1所示電路中,P1口連接8?jìng)(gè)密碼按鍵AN1~AN8,開鎖脈沖由P3.5輸出,報(bào)警和提示音由P3.7輸出。BL是用于報(bào)警與聲音提示的'喇叭,發(fā)光管D1用于報(bào)警和提示,L是電磁鎖的電磁線圈。
3 軟件設(shè)計(jì)
圖2給出了該單片機(jī)密碼鎖電路的軟件流程圖。圖中煟粒粒。粒粒敢约埃樱裕粒遥、SET、SAVE是程序中的標(biāo)號(hào),是為了理解程序而專門標(biāo)在流程圖的對(duì)應(yīng)位置的,分析程序時(shí)可以仔細(xì)對(duì)照參考。
。常 存儲(chǔ)單元的分配
該密碼鎖中RAM存儲(chǔ)單元的分配方案如下:
。常保取常福龋阂来未娣牛肝辉O(shè)定的密碼,首位密碼存放在31H單元;
R0:指向密碼地址;
R2:已經(jīng)鍵入密碼的位數(shù);
R3:存放允許的錯(cuò)碼次數(shù)3與實(shí)際錯(cuò)碼次數(shù)的差值;
。遥粗粒遥罚貉訒r(shí)用;
。埃埃龋哄e(cuò)碼標(biāo)志位。
對(duì)于ROM存儲(chǔ)單元的分配,由于程序比較短,而且占用的存儲(chǔ)空間比較少,因此,在無(wú)特殊要求時(shí),可以從0030H單元(其它地址也可以)開始存放主程序。
3.2 源程序
下面是該電子密碼鎖的軟件源程序代碼:
。希遥 0000H
。粒剩停 START
ORG 0030H
。樱裕粒遥裕海粒茫粒蹋 BP
MOV R0,#31H
。停希 R2,#8
。樱牛裕 MOV P1,#0FFH
。停希 A,P1
CJNE A,#0FFH,L8
。粒剩停 SET
L8: ACALL DELAY
。茫剩危 A,#0FFH,SAVE
。粒剩停 SET
。樱粒郑牛 ACALL BP
。停希 @R0煟
。桑危 R0
。模剩危 R2,SET
。停希 R5,#16
。模玻樱 ACALL BP
DJNZ R5,D2S
MOV R0,#31H
。停希 R3,#3
AA1: MOV R2,#8
。粒粒玻 MOV P1,#0FFH
。停希 A,P1
。茫剩危 A,#0FFH, L9
AJMP AA2
。蹋 ACALL DELAY
。茫剩危 A,#0FFH,AA3
。粒剩停 AA2
AA3: ACALL BP
。茫蹋 C
。樱眨拢 A, @R0
。桑危 R0
。茫剩危 A,#00H,AA4
。粒剩停 AA5
。粒粒矗 SETB 00H
AA5: DJNZ R2,AA2
。剩 00H煟粒粒
。茫蹋 P3.5
。蹋 MOV R5,#8
。粒茫粒蹋 BP
。模剩危 R4,L3
。停希 R3,#3
SETB P3.5
。粒剩停 AA1
。粒粒叮 DJNZ R3,AA7
。停希 R5,#24
。蹋担 MOV R4,#200
。蹋矗 ACALL BP
DJNZ R4,L4
DJNZ R5,L5
MOV R3,#3
。粒粒罚 MOV R5,#40
。粒茫粒蹋 BP
。模剩危 R5,AA7
AA8: CLR 00H
。粒剩停 AA1
。拢校 CLR P3.7
MOV R7,#250
。蹋玻 MOV R6,#124
L1: DJNZ R6,L1
。茫校 P3.7
。模剩危 R7,L2
。樱牛裕 P3.7
。遥牛
。模牛蹋粒贌MO R7,#20
。蹋: MOV R6,#125
L6: DJNZ R6,L6
。模剩危 R7,L7
RET
。牛危
4 應(yīng)用說明
若按鍵AN1~AN7分別代表數(shù)碼1~7,按鍵AN0代表數(shù)碼8。在沒有鍵按下時(shí),P1.0~P1.7全是高電平1,若某個(gè)鍵被按下,相應(yīng)的口線就變?yōu)榈碗娖剑。假如設(shè)定的密碼是61234578,當(dāng)按鍵AN6被按下時(shí),P1.6變?yōu)榈碗娖,P1端口其余口線為高電平,此時(shí)從P1端口讀入的數(shù)值為10111111,存到31H單元的密碼值就是10111111,也就是BFH。依此類推,存到32H至38H單元的密碼值分別是FDH、FBH、F7H、EFH、DFH、7FH、FEH。開鎖時(shí)必須先按AN6,使從P1口讀入的第一個(gè)密碼值與31H單元存儲(chǔ)的設(shè)定值相同,再順序按AN1、AN2、AN3、AN4、AN5、AN7、AN0才能開鎖。否則不能開鎖,同時(shí)開始報(bào)警。
【淺談能防止多次試探密碼的單片機(jī)密碼鎖論文】相關(guān)文章:
淺談寫作的教學(xué)論文08-20
淺談教育論文的寫作12-15
淺談議論文的寫作要求論文12-29
淺談醫(yī)學(xué)論文的格式構(gòu)成論文09-04
淺談酒文化論文04-08
淺談?wù)撐牡膶懽髦笇?dǎo)09-17
淺談?wù)Z文教學(xué)論文的寫作10-20
淺談遼代文學(xué)的寫作與流傳論文12-04
淺談初中寫作技巧訓(xùn)練的論文07-18