📄 key lock (1).lst
字号:
A51 MACRO ASSEMBLER KEY_LOCK__1_ 08/05/2006 18:25:58 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN Key Lock (1).OBJ
ASSEMBLER INVOKED BY: e:\Program Files\Keil\C51\BIN\A51.EXE Key Lock (1).asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;R3——输入错误次数
2 ;R4——密码个数
3 ;R7——输入密码暂存
4 ;R2——键值暂存
5 ;R6——延时参数
0000 6 ORG 00H
0000 8009 7 SJMP START
000B 8 ORG 0BH
000B 9 START:
10 ;设置初始密码
000B 11 PASSWORD:
000B 7C08 12 MOV R4,#08H ;密码个数8个
000D 7840 13 MOV R0,#40H ;密码暂存区
000F 7400 14 MOV A,#00H ;初始密码0,1,2,3,4,5,
6,7
0011 15 PASSNEXT:
0011 F6 16 MOV @R0,A
0012 08 17 INC R0
0013 04 18 INC A
0014 DCFB 19 DJNZ R4,PASSNEXT
0016 20 MLOOP:
0016 C2B0 21 CLR P3.0 ;锁合
0018 D2B1 22 SETB P3.1 ;锁开
001A D2B2 23 SETB P3.2 ;键有效
001C D2B3 24 SETB P3.3 ;错误
001E D2B4 25 SETB P3.4 ;报警
0020 7B03 26 MOV R3,#03H ;错误次数3次
27 ;输入密码
0022 7C08 28 GETPW: MOV R4,#08H ;密码个数
0024 7830 29 MOV R0,#30H ;输入密码暂存区
0026 11BD 30 AGAIN: ACALL KEY ;输入密码
0028 B40A02 31 CJNE A,#0AH,CONTIUE ;按确认键无效
002B 80F9 32 SJMP AGAIN
002D 33 CONTIUE:
002D F6 34 MOV @R0,A
002E 11AB 35 ACALL DISPLED ;按键有效显示
0030 08 36 INC R0
0031 DCF3 37 DJNZ R4,AGAIN
0033 11BD 38 AGAIN1: ACALL KEY ;按确认键
0035 B40AFB 39 CJNE A,#0AH,AGAIN1
0038 11AB 40 ACALL DISPLED ;按确认键有效显示
003A 114C 41 ACALL COMP ;比较密码
003C D2B0 42 SETB P3.0 ;息锁合
003E C2B1 43 CLR P3.1 ;开锁
0040 A2B5 44 WAIT: MOV C,P3.5 ;是否重新上锁
0042 50D2 45 JNC MLOOP ;主循环
0044 11B4 46 ACALL TestKey ;是否有键按下,是否修改密码
0046 60F8 47 JZ WAIT ;累加器的内容为0,则转移;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -