1.软件设计思路
电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,系统报警。
密码的设定,在此程序中密码是固定40H—45H 中,假设预设的密码为"123456"共6位密码。
由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。
2.各子程序设计
1 键盘扫描子程序
键盘扫描流程图如图4.2.1

图4.2.1 键盘扫描流程图
键盘扫描子程序如下:
L2: MOV R3,#0F7H
MOV R1,#00H
L3: MOV A,R3
MOV P1,A
MOV A,P1
MOV R4,A
SETB C
MOV R5,#04H
L4: RLC A
JNC KEYIN
INC R1
DJNZ R5,L4
CALL DISP
MOV A,R3
SETB C
RRC A
MOV R3,A
JC L3
JMP L2
2 LED显示子程序
LED显示流程图如图4.2.2

图4.2.2 LED显示流程图
LED显示子程序如下:
DISP:MOV R0,#45H
DISP1: MOV A,@R0
ADD A,#50H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#40H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#30H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#20H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#10H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#00H
MOV P0,A
CALL DELAY
RET
3 密码比较和报警程序
密码比较和报警流程图如4.2.3

图4.2.3 密码比较和报警流程
密码比较和报警程序:
COMP: MOV R1,#45H
MOV R0,#35H
MOV R2,#06H
C1: MOV A,@R1
XRL A,@R0
JNZ C3
DEC R1
DEC R0
DJNZ R2,C1
CLR P2.0
MOV R2,#200
C2: MOV R6,#248
DJNZ R6,$
DJNZ R2,C2
C3: INC R5
MOV A,R5
MOV R5,A
CJNE R5 ,#03H,C4
CLR P2.1
MOV R5,#00H
C4: JMP START