数字密码锁
- 格式:doc
- 大小:85.00 KB
- 文档页数:11
附 录 设计源程序: ENTER BIT 22H.0 CANCEL BIT 23H.0 OPEN BIT P3.6 SPEAK BIT P3.7 PASSBUF EQU 40H KEYNUM EQU 41H ORG 0000H AJMP MAIN ORG 0003H JMP KEY_INT ORG 000BH AJMP INTT0 ORG 001BH AJMP INTT1 ORG 0030H MAIN: MOV 30H,#06H MOV 42H,#200 MOV 43H,#250 MOV 44H,#0 MOV 47H,#250 MOV SP,#60H CLR OPEN CLR SPEAK CLR ENTER MOV TMOD,#00010001B MOV TH0,#3CH MOV TL0,#0B0H MOV TH1,#3CH MOV TL1,#0B0H SETB EA SETB ET0 SETB ET1 MOV TCON,#00000000B START: ACALL BACK CLR 48H CLR CANCEL MOV 5BH,#0 MOV R0,30H MOV R1,#31H SS1: MOV @R1,#0EH INC R1 DJNZ R0,SS1 MOV P1,#0FH MOV R1,#31H CLR 20H CLR 21H MOV 46H,#00H INIT: ACALL DISP0 SETB EX0 JNB 48H,INIT KEYIN: ACALL DISP0 JB 21H,ERR JB CANCEL,START JNB ENTER,KEYIN CLR ENTER CLR CANCEL CLR EX0 ACALL COMP COMP: MOV DPTR,#PASS MOV R4,30H MOV A,5BH CJNE A,#07H,ERR MOV A,#0 MOV R1,#31H LOOP: MOV R5,A MOVC A,@A+DPTR MOV PASSBUF,A MOV A,@R1 CJNE A,PASSBUF,ERR MOV A,R5 INC A INC R1 DJNZ R4,LOOP MATCH: MOV A,#01H SETB OPEN MOV 44H,#00H MOV R6,01H ACALL DELAY5S CLR OPEN JMP START ERR: ACALL BACK MOV R6,#03H ACALL DELAY1 ACALL BACK MOV R6,#40H ACALL DELAY1 INC 44H MOV A,44H CJNE A,#03H,EE0 EE0: JC ERROUT MOV 44H,#00H ACALL WRANING ERROUT: JMP START KEY_INT:PUSH ACC PUSH PSW CLR EX0 SETB 48H ACALL DELAY10MS SETB TR1 ACALL SMKEY MOV A,5BH INC A MOV 5BH,A ACALL BACK MOV A,KEYNUM MOV 49H,A MOV R3,A CJNE R3,#0DH,C1 SETB CANCEL ACALL C2 C1: CJNE R3,#0BH,K1 SETB ENTER MOV 46H,#00H C2: CLR TR1 AJMP KEY_RTN K1: MOV @R1,A INC R1 MOV 50H,A MOV A,49H CJNE A,#0AH,DP ACALL KEY_RTN DP: ACALL DISP0 KEY_RTN:POP PSW POP ACC SETB EX0 RETI SMKEY: MOV A,P1 ANL A,#0FH WKEY: MOV B,A MOV P1,#0F0H NOP MOV A,P1 ANL A,#0F0H ORL A,B MOV P1,#0FH CJNE A,#0EEH,WKEY1 MOV KEYNUM,#00H AJMP RETURN WKEY1: CJNE A,#0EDH,WKEY2 MOV KEYNUM,#01H AJMP RETURN WKEY2: CJNE A,#0EBH,WKEY3 MOV KEYNUM,#02H AJMP RETURN WKEY3: CJNE A,#0E7H,WKEY4 MOV KEYNUM,#03H AJMP RETURN WKEY4: CJNE A,#0DEH,WKEY5 MOV KEYNUM,#04H AJMP RETURN WKEY5: CJNE A,#0DDH,WKEY6 MOV KEYNUM,#05H AJMP RETURN WKEY6: CJNE A,#0DBH,WKEY7 MOV KEYNUM,#06H AJMP RETURN WKEY7: CJNE A,#0D7H,WKEY8 MOV KEYNUM,#07H AJMP RETURN WKEY8: CJNE A,#0BEH,WKEY9 MOV KEYNUM,#08H AJMP RETURN WKEY9: CJNE A,#0BdH,WKEY10 MOV KEYNUM,#09H AJMP RETURN WKEY10: CJNE A,#0BbH,WKEY11 MOV KEYNUM,#0DH AJMP RETURN WKEY11: CJNE A,#0B7H,RETURN MOV KEYNUM,#0BH RETURN: MOV P1,#0FH NOP NOP MOV A,P1 CPL A ANL A,#0FH JNZ RETURN RET DISP1: MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A LCALL DY MOV P0,#0FFH RET DISP0: MOV P2,#01H MOV DPTR,#TAB MOV A,36H MOVC A,@A+DPTR MOV P0,A MOV P0,#0FFH MOV P2,#02H MOV DPTR,#TAB MOV A,35H MOVC A,@A+DPTR MOV P0,A MOV P0,#0FFH MOV P2,#04H MOV DPTR,#TAB MOV A,34H MOVC A,@A+DPTR MOV P0,A MOV P0,#0FFH MOV P2,#08H MOV DPTR,#TAB MOV A,33H MOVC A,@A+DPTR MOV P0,A MOV P0,#0FFH MOV P2,#10H MOV DPTR,#TAB MOV A,32H MOVC A,@A+DPTR MOV P0,A MOV P0,#0FFH MOV P2,#20H MOV DPTR,#TAB MOV A,31H MOVC A,@A+DPTR MOV P0,A MOV P0,#0FFH RET LINE2: MOV P2,#10H MOV DPTR,#TAB MOV A,#0CH MOVC A,@A+DPTR MOV P0,A LCALL DY MOV P0,#0FFH MOV P2,#08H MOV DPTR,#TAB MOV A,#0AH MOVC A,@A+DPTR MOV P0,A LCALL DY MOV P0,#0FFH MOV P2,#04H MOV DPTR,#TAB MOV A,#05H MOVC A,@A+DPTR MOV P0,A LCALL DY MOV P0,#0FFH MOV P2,#02H MOV DPTR,#TAB MOV A,#05H MOVC A,@A+DPTR MOV P0,A LCALL DY MOV P0,#0FFH RET LINE3: MOV P2,#1EH MOV DPTR,#TAB MOV A,#0BH MOVC A,@A+DPTR MOV P0,A LCALL DY MOV P0,#0FFH RET DELAY5s: MOV R4,#200 DD3: MOV R5,#248 DJNZ R5,$ ACALL LINE2 DJNZ R4,DD3 RET DELAY1: MOV R4,#100 D11: MOV R5,#248 DJNZ R5,$ ACALL LINE3 DJNZ R4,D11 RET DDY: MOV R7,#02H DDY1: MOV R6,#05H DDY2: MOV R5,#5H DJNZ R5,$ DJNZ R6,DDY2 DJNZ R7,DDY1 RET DY: MOV R7,#0AH DY1: MOV R6,#09H DY2: MOV R5,#30H DJNZ R5,$ DJNZ R6,DY2 DJNZ R7,DY1 RET WRANING:SETB TR0 ACALL BACK ACALL DELAY1 MOV R4,#01H ACALL D2 JNB 20H, WRANING RET BACK: MOV R0,#100 KK1: CPL SPEAK LCALL DELAY2MS DJNZ R0,KK1 RET INTT0: PUSH ACC PUSH PSW MOV TH0,#3CH MOV TL0,#0BH INC 45H MOV A,45H CJNE A,42H,INTT0O MOV 45H,#00H SETB 20H CLR TR0 INTT0O: POP PSW POP ACC RETI INTT1: PUSH ACC PUSH PSW INC 46H MOV A,46H CJNE A,47H,INTT1OUT CLR TR1 SETB 21H MOV 47H,#00H INTT1OUT:POP PSW POP ACC RETI DELAY2MS: MOV R4,#02H D2: MOV R5,#0F0Hrffff DJNZ R5,$ DJNZ R4,D2 RET DELAY10ms: MOV R4,#20 D3: MOV R5,#248 DJNZ R5,$ DJNZ R4,D3 RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,86H,8CH,0C6H,0BFH ;0 1 2 3 4 5 6 7 8 9 A E P C - PASS: DB 8,8,0,3,3,0 END