FU4:NOP
LCALL BP
LCALL T100MSD
LCALL BP
LCALL T100MSD
LCALL BP
LCALL T100MSD
LCALL BP
LCALL T100MSD
LCALL BP
CLR FLAG1
AJMP CH_KEY
FU3:NOP
LCALL BP
LCALL T100MSD
LCALL BP
LCALL KILLXS ;关闭显示
CLR FLAG1
AJMP CH_KEY
FU1:NOP
LCALL XSC
JB F_F1, NEXT_F1
CLR L1
LCALL BP
SETB F_F1
AJMP CH_KEY
NEXT_F1:SETB L1
LCALL BP
CLR F_F1
;LCALL CH_STATE ;查看现在的状态以防误按
;SETB TR1 ;报警限制暂时不开
;INC F_F1
CLR FLAG1
AJMP CH_KEY
FU2:NOP
JB F_F2, NEXT_F2
CLR L2
LCALL BP
SETB F_F2
AJMP CH_KEY
NEXT_F2:SETB L2
LCALL BP
CLR F_F2
CLR FLAG1
AJMP CH_KEY
;***************按键的功能描述*************************
EN:NOP
JB BUF_FULL, GOON
AJMP EXIT
GOON:CLR BUF_FULL
JB F_F2, AT_WRON ;F2按键标志,若为1,则调用修改密码子程序。
LCALL AT_RADE
LCALL C_PSW ;比较密码子程序
JB PSW_F,OPEN ;密码比较正确,则调用开锁子程序
LCALL XSD
INC TIMERS2
MOV R7,TIMERS2 ;密码错误,调入输入密码输入次数,准备锁定键盘
CJNE R7,#03H,D0
D0:JC NEXT1 ;错误次数小3次
LCALL XSE ;锁定5分钟
LCALL WARN2S
LCALL LOCK_1M
NEXT1:LCALL WARN2S ;报警2分钟
LCALL XSA
EXIT:LCALL INITPS
MOV BUFF, #00H
CLR FLAG1
MOV TIMERS, #00H
AJMP CH_KEY ;跳出
AT_WRON:LCALL AT_WR
LCALL XSF
LCALL BP
LCALL T100MSD
LCALL BP
LCALL T500MSD
LCALL KILLXS
LCALL T500MSD
LCALL XSF
LCALL T500MSD
LCALL KILLXS
LCALL T500MSD
LCALL XSF
LCALL T500MSD
NOP
NOP
LCALL XSA
AJMP EXIT
OPEN:MOV A, TIMERS1
CJNE A, #09H,CLT1
CLT1:JC GOON1
MOV TIMERS1,#00H
GOON1:INC TIMERS1 ;输入回车的次数
MOV TIMERS2,#00H
SETB L3
上一篇:电子密码锁程序