防止多次試探密碼的單片機(jī)密碼鎖方案介紹
AJMP SET 本文引用地址:http://m.butianyuan.cn/article/171337.htm
SAVE: ACALL BP
MOV @R0?A
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 00H?AA6
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
DELAY?MOV R7,#20
L7: MOV R6,#125
L6: DJNZ R6,L6
DJNZ R7,L7
RET
END
4 應(yīng)用說(shuō)明
若按鍵AN1~AN7分別代表數(shù)碼1~7,按鍵AN0代表數(shù)碼8。在沒(méi)有鍵按下時(shí),P1.0~P1.7全是高電平1,若某個(gè)鍵被按下,相應(yīng)的口線就變?yōu)榈碗娖剑啊<偃缭O(shè)定的密碼是61234578,當(dāng)按鍵AN6被按下時(shí),P1.6變?yōu)榈碗娖?,P1端口其余口線為高電平,此時(shí)從P1端口讀入的數(shù)值為10111111,存到31H單元的密碼值就是10111111,也就是BFH。依此類(lèi)推,存到32H至38H單元的密碼值分別是FDH、FBH、F7H、EFH、DFH、7FH、FEH。開(kāi)鎖時(shí)必須先按AN6,使從P1口讀入的第一個(gè)密碼值與31H單元存儲(chǔ)的設(shè)定值相同,再順序按AN1、AN2、AN3、AN4、AN5、AN7、AN0才能開(kāi)鎖。否則不能開(kāi)鎖,同時(shí)開(kāi)始報(bào)警。
評(píng)論