- 相關(guān)推薦
能防止多次試探密碼的單片機(jī)密碼鎖
摘要:提出了一種能防止多次試探密碼的基于單片機(jī)的密碼鎖設(shè)計方案,根據(jù)用戶的10條總體要求,給出了該單片機(jī)密碼鎖的硬件電路和軟件程序,同時給出了單片機(jī)型號的選擇、硬件設(shè)計、軟件流程圖、單片機(jī)存儲單元的分配、匯編語言源程序及詳細(xì)注釋等內(nèi)容。關(guān)鍵詞:單片機(jī);密碼鎖;密碼
。币
很多行業(yè)的許多地方都需要密碼鎖,但普通密碼鎖的密碼容易被多次試探而破譯。本文給出了一種能防止多次試探密碼的密碼鎖設(shè)計方法,從而有效地克服了上述缺點(diǎn)。
。灿布娐
圖1所示是筆者設(shè)計的一種密碼鎖電路。該密碼鎖主要是按照以下10條用戶要求進(jìn)行設(shè)計的:
。ǎ保┕玻肝幻艽a,每位的取值范圍為1~8。
。ǎ玻┯脩艨梢宰孕性O(shè)定和修改密碼。
。ǎ常┌疵總密碼鍵時都有聲、光提示。
(4)若鍵入的8位開鎖密碼不完全正確,則報警5秒鐘,以提醒他人注意。
(5)開鎖密碼錯3次要報警10分鐘,報警期間輸入密碼無效,以防竊賊多次試探密碼。
。ǎ叮╂I入的8位開鎖密碼完全正確才能開鎖,開鎖時要有1秒的提示音。
。ǎ罚╇姶沛i的電磁線圈必須用脈沖驅(qū)動,每次通電時間不多于2秒,以防燒壞。
(8)密碼鍵盤上只允許有8個密碼按鍵和1個發(fā)光管。鎖內(nèi)有備用電池,只有內(nèi)部上電復(fù)位時才能設(shè)置或修改密碼,因此,僅在門外按鍵是不能修改或設(shè)置密碼的。
。ǎ梗┟艽a設(shè)定完畢后要有2秒的提示音。
。ǎ保埃┏杀疽容^低,硬件和軟件都要盡可能簡潔可靠,易于批量生產(chǎn)。
根據(jù)總體要求分析,該密碼鎖電路所需要的I/O口線少于15個,若設(shè)計得當(dāng),程序不會超過200條指令,所以可選擇質(zhì)優(yōu)價廉的AT89C1051/2051或者GMS1051/2051,而且不需要外接程序存儲器和數(shù)據(jù)存儲器及其它擴(kuò)展部件。
在圖1所示電路中,P1口連接8個密碼按鍵AN1~AN8,開鎖脈沖由P3.5輸出,報警和提示音由P3.7輸出。BL是用于報警與聲音提示的喇叭,發(fā)光管D1用于報警和提示,L是電磁鎖的電磁線圈。
。耻浖O(shè)計
圖2給出了該單片機(jī)密碼鎖電路的軟件流程圖。圖中?AA1~AA8以及START、SET、SAVE是程序中的標(biāo)號,是為了理解程序而專門標(biāo)在流程圖的對應(yīng)位置的,分析程序時可以仔細(xì)對照參考。
。常贝鎯卧姆峙
該密碼鎖中RAM存儲單元的分配方案如下:
。常保取常福龋阂来未娣牛肝辉O(shè)定的密碼,首位密碼存放在31H單元;
。遥埃褐赶蛎艽a地址;
。遥玻阂呀(jīng)鍵入密碼的位數(shù);
。遥常捍娣旁试S的錯碼次數(shù)3與實(shí)際錯碼次數(shù)的差值;
。遥粗粒遥罚貉訒r用;
。埃埃龋哄e碼標(biāo)志位。
對于ROM存儲單元的分配,由于程序比較短,而且占用的存儲空間比較少,因此,在無特殊要求時,可以從0030H單元(其它地址也可以)開始存放主程序。
3.2源程序
下面是該電子密碼鎖的軟件源程序代碼:
。希遥牵埃埃埃埃
。粒剩停校樱裕粒遥
ORG0030H
。樱裕粒遥裕海粒茫粒蹋蹋拢
。停
。郑遥,#31H
。停希郑遥,#8
。樱牛裕海停希郑校,#0FFH
MOVA,P1
。茫剩危牛粒#埃疲疲,L8
AJMPSET
。蹋福海粒茫粒蹋蹋模牛蹋粒
CJNEA,#0FFH,SAVE
。粒剩停校樱牛
SAVE:ACALLBP
。停希郑溃遥?A
。桑危茫遥
。模剩危冢遥玻樱牛
。停希郑遥担#保
。模玻樱海粒茫粒蹋蹋拢
。模剩危冢遥,D2S
。停希郑遥,#31H
。停希郑遥常#
。粒粒保海停希郑遥,#8
AA2:MOVP1,#0FFH
。停希郑,P1
CJNEA,#0FFH,L9
。粒剩停校粒粒
L9?ACALLDELAY
。茫剩危牛,#0FFH,AA3
。粒剩停校粒粒
AA3:ACALLBP
。茫蹋遥
。樱眨拢拢,@R0
。桑危茫遥
。茫剩危牛,#00H,AA4
。粒剩停校粒粒
AA4:SETB00H
。粒粒担海模剩危冢遥,AA2
。剩拢埃埃?AA6
CLRP3.5
。蹋?MOVR5,#8
。粒茫粒蹋蹋拢
DJNZR4,L3
MOVR3,#3
。樱牛裕拢校常
AJMPAA1
。粒粒叮海模剩危冢遥,AA7
。停希郑遥担#玻
。蹋担海停希郑遥矗#玻埃
。蹋矗海粒茫粒蹋蹋拢
。模剩危冢遥,L4
。模剩危冢遥,L5
。停希郑遥,#3
。粒粒罚海停希郑遥担#矗
。粒茫粒蹋蹋拢
DJNZR5,AA7
AA8:CLR00H
。粒剩停校粒粒
。拢校海茫蹋遥校常
。停希郑遥罚#玻担
。蹋玻海停希郑遥,#124
。蹋保海模剩危冢遥,L1
。茫校蹋校常
。模剩危冢遥,L2
。樱牛裕拢校常
。遥牛
。模牛蹋粒?MOVR7,#20
。蹋:MOVR6,#125
。蹋:DJNZR6,L6
DJNZR7,L7
RET
。牛危
4應(yīng)用說明
若按鍵AN1~AN7分別代表數(shù)碼1~7,按鍵AN0代表數(shù)碼8。在沒有鍵按下時,P1.0~P1.7全是高電平1,若某個鍵被按下,相應(yīng)的口線就變?yōu)榈碗娖剑啊<偃缭O(shè)定的密碼是61234578,當(dāng)按鍵AN6被按下時,P1.6變?yōu)榈碗娖,P1端口其余口線為高電平,此時從P1端口讀入的數(shù)值為10111111,存到31H單元的密碼值就是10111111,也就是BFH。依此類推,存到32H至38H單元的密碼值分別是FDH、FBH、F7H、EFH、DFH、7FH、FEH。開鎖時必須先按AN6,使從P1口讀入的第一個密碼值與31H單元存儲的設(shè)定值相同,再順序按AN1、AN2、AN3、AN4、AN5、AN7、AN0才能開鎖。否則不能開鎖,同時開始報警。
【能防止多次試探密碼的單片機(jī)密碼鎖】相關(guān)文章:
教學(xué)生學(xué)會“試探”08-05
幼兒英語教學(xué)試探08-17
小學(xué)生興趣作文試探08-17
夏的密碼08-10
密碼的作文12-19
《密碼》作文05-11
“密碼”作文06-10
硬件密碼組件與軟件密碼組件的比較研究08-06
初中作文教學(xué)方法試探08-05