⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key.lst

📁 Library for the 8051 microcontroller. such as math routine, hexBCD, LCD, Keyboard, I2C, Remote, Ke
💻 LST
📖 第 1 页 / 共 2 页
字号:

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 1





       MCS-51 Family Macro Assembler   A S E M - 5 1   V 1.3
       =====================================================



	Source File:	E:\MiCrOConTroller\Coba_M-IDE\KEYDOOR\KEY.asm
	Object File:	E:\MiCrOConTroller\Coba_M-IDE\KEYDOOR\KEY.hex
	List File:	E:\MiCrOConTroller\Coba_M-IDE\KEYDOOR\KEY.lst



 Line  I  Addr  Code            Source

    1:				 ;This is "THE DIGITAL CODE LOCK" Program which takes a 4-digit password
    2:				 ;from the user and compares it with the already saved password.
    3:				 ;If the password entered is correct then the LED GLOWS!!!!
    4:				 ;$ THE DOOR OPENS!!!!
    5:				 ;Otherwise if the password entered is incorrect then the message - "INCORRECT CODE"
    6:				 ;is displayed on the screen of the LCD.
    7:				 ;PIN P0.7 an LED is attached which glows as the lock opens!!!
    8:
    9:	  0000	C2 86		MAIN :  CLR P0.6
   10:		B      0090		DB0 EQU P1.0
   11:		B      0091		DB1 EQU P1.1
   12:		B      0092		DB2 EQU P1.2
   13:		B      0093		DB3 EQU P1.3
   14:		B      0094		DB4 EQU P1.4
   15:		B      0095		DB5 EQU P1.5
   16:		B      0096		DB6 EQU P1.6
   17:		B      0097		DB7 EQU P1.7
   18:		B      00B0		EN EQU P3.0
   19:		B      00B1		RS EQU P3.1
   20:		B      00B2		RW EQU P3.2
   21:		D      0090		TEXT EQU P1
   22:	  0002	31 C8			ACALL LCD_START
   23:	  0004	51 7D		        ACALL DELAY_3
   24:	  0006	51 10			ACALL LCD_DISPLAY
   25:	  0008	51 7D			ACALL DELAY_3
   26:	  000A	79 00			MOV R1,#0H
   27:	  000C	7B 2E			MOV R3,#46      ;Use 46 instead of 2 in real program.
   28:	  000E	75 89 10		MOV TMOD,#10H
   29:	  0011	75 8B 00		MOV TL1,#0H
   30:	  0014	75 8D 00		MOV TH1,#0H
   31:	  0017	D2 8E			SETB TR1
   32:	  0019	C2 8F			CLR TF1
   33:	  001B	11 1D			ACALL LOOP_START
   34:
   35:	  001D	1B		LOOP_START:DEC R3
   36:	  001E	75 8B 00		MOV TL1,#0H
   37:	  0021	75 8D 00		MOV TH1,#0H
   38:	  0024	D2 8E			SETB TR1
   39:	  0026	C2 8F			CLR TF1
   40:
   41:	  0028	51 E8		LOOP1:	ACALL KEY     ;Store value of digit at R1
   42:	  002A	80 00			SJMP GOTO
   43:

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  002C	30 81 0A	GOTO :	JNB P0.1,KEY_DISPLAY
   45:
   46:	  002F	30 8F F6		JNB TF1,LOOP1
   47:	  0032	C2 8F			CLR TF1
   48:					;SET TRO
   49:					;CALL LOOP_START
   50:	  0034	0B			INC R3
   51:	  0035	DB E6			DJNZ R3,LOOP_START
   52:	  0037	71 35			ACALL EXIT
   53:
   54:	  0039	09		KEY_DISPLAY:INC R1
   55:	  003A	74 01			MOV A,#1
   56:	  003C	C2 D7			CLR CY
   57:	  003E	99			SUBB A,R1
   58:	  003F	60 15			JZ DISPLAY1
   59:					;MOV R2,#46
   60:					;ACALL LOOP_START
   61:
   62:	  0041	74 02			MOV A,#2
   63:	  0043	C2 D7			CLR CY
   64:	  0045	99			SUBB A,R1
   65:	  0046	60 32			JZ DISPLAY2
   66:					;MOV R2,#46
   67:					;ACALL LOOP_START
   68:
   69:	  0048	74 03			MOV A,#3
   70:	  004A	C2 D7			CLR CY
   71:	  004C	99			SUBB A,R1
   72:	  004D	60 4D			JZ DISPLAY3
   73:					;MOV R2,#46
   74:					;ACALL LOOP_START
   75:
   76:	  004F	74 04			MOV A,#4
   77:	  0051	C2 D7			CLR CY
   78:	  0053	99			SUBB A,R1
   79:	  0054	60 68			JZ DISPLAY4
   80:
   81:					;ACALL EXIT  Control of EXIT is done by DISPLAY$
   82:
   83:	  0056	C2 86		DISPLAY1:CLR P0.6
   84:	  0058	12 02 95		LCALL INIT_LCD
   85:	  005B	C2 B1			 CLR RS              ;PUT CURSOR AT THE STARTING OF THE SECOND LINE
   86:	  005D	75 90 C0		MOV TEXT,#0C0h
   87:	  0060	D2 B0			SETB EN
   88:	  0062	C2 B0			CLR EN
   89:	  0064	12 02 C7		LCALL WAIT_LCD
   90:	  0067	EE			MOV A,R6
   91:	  0068	12 02 DC		LCALL WRITE_TEXT
   92:	  006B	BE EE 05		CJNE R6,#0EEH,DISPLAY22
   93:					;JNB P0.6,GOTO1
   94:	  006E	7B 2E			MOV R3,#46                 ;Use 46 instead of 2 in real program.
   95:	  0070	11 1D			ACALL LOOP_START
   96:					;RET
   97:				;GOTO1:	CLR P0.6;ACALL LOOP
   98:	  0072	22			RET
   99:

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

  100:	  0073	D2 86		DISPLAY22:SETB P0.6    ;To check if digit entered is wrong
  101:					;ACALL LOOP
  102:	  0075	7B 2E			MOV R3,#46             ;Use 46 instead of 2 in real program.
  103:	  0077	11 1D			ACALL LOOP_START
  104:	  0079	22			RET
  105:
  106:	  007A			DISPLAY2:;MOV DPTR,
  107:	  007A	12 02 95		LCALL INIT_LCD
  108:	  007D	C2 B1			 CLR RS              ;PUT CURSOR AT THE STARTING OF THE SECOND LINE
  109:	  007F	75 90 C1		MOV TEXT,#0C1h
  110:	  0082	D2 B0			SETB EN
  111:	  0084	C2 B0			CLR EN
  112:	  0086	12 02 C7		LCALL WAIT_LCD
  113:	  0089	EE			MOV A,R6
  114:	  008A	12 02 DC		LCALL WRITE_TEXT
  115:	  008D	BE EE 05		CJNE R6,#0EEH,DISPLAY33
  116:					;ACALL LOOP
  117:					;JNB P0.6,GOTO2
  118:	  0090	7B 2E			MOV R3,#46               ;Use 46 instead of 2 in real program.
  119:	  0092	11 1D			ACALL LOOP_START
  120:					;RET
  121:				;GOTO2:	CLR P0.6
  122:	  0094	22			RET
  123:
  124:	  0095	D2 86		DISPLAY33:SETB P0.6
  125:	  0097	7B 2E			MOV R3,#46               ;Use 46 instead of 2 in real program.
  126:	  0099	11 1D			ACALL LOOP_START
  127:					;ACALL LOOP
  128:	  009B	22			RET
  129:
  130:	  009C	12 02 95	DISPLAY3:LCALL INIT_LCD
  131:	  009F	C2 B1			CLR RS              ;PUT CURSOR AT THE STARTING OF THE SECOND LINE
  132:	  00A1	75 90 C2		MOV TEXT,#0C2h
  133:	  00A4	D2 B0			SETB EN
  134:	  00A6	C2 B0			CLR EN
  135:	  00A8	12 02 C7		LCALL WAIT_LCD
  136:	  00AB	EE			MOV A,R6
  137:	  00AC	12 02 DC		LCALL WRITE_TEXT
  138:	  00AF	BE EE 05		CJNE R6,#0EEH,DISPLAY44
  139:					;ACALL LOOP
  140:					;JNB P0.6,GOTO3
  141:	  00B2	7B 2E			MOV R3,#46                ;Use 46 instead of 2 in real program.
  142:	  00B4	11 1D			ACALL LOOP_START
  143:	  00B6	22			RET
  144:				;GOTO3:	CLR P0.6
  145:				;	RET
  146:
  147:	  00B7	D2 86		DISPLAY44:SETB P0.6
  148:	  00B9	7B 2E			MOV R3,#46                ;Use 46 instead of 2 in real program.
  149:	  00BB	11 1D			ACALL LOOP_START
  150:					;ACALL LOOP
  151:	  00BD	22			RET
  152:
  153:	  00BE	12 02 95	DISPLAY4:LCALL INIT_LCD
  154:	  00C1	C2 B1			CLR RS              ;PUT CURSOR AT THE STARTING OF THE SECOND LINE
  155:	  00C3	75 90 C3		MOV TEXT,#0C3h

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 4



 Line  I  Addr  Code            Source

  156:	  00C6	D2 B0			SETB EN
  157:	  00C8	C2 B0			CLR EN
  158:	  00CA	12 02 C7		LCALL WAIT_LCD
  159:	  00CD	EE			MOV A,R6
  160:	  00CE	12 02 DC		LCALL WRITE_TEXT
  161:	  00D1	BE EE 02		CJNE R6,#0EEH,DISPLAY55
  162:					;JNB P0.6,GOTO4
  163:					;RET
  164:				;GOTO4:	CLR P0.6
  165:	  00D4	11 DA			ACALL CHECK
  166:
  167:	  00D6	D2 86		DISPLAY55:SETB P0.6
  168:	  00D8	11 DA			ACALL CHECK
  169:
  170:	  00DA	30 86 02	CHECK:JNB P0.6,CORRECT
  171:	  00DD	31 72			ACALL WRONG
  172:
  173:	  00DF	C2 87		CORRECT:CLR P0.7  ;CODE ENTERED ISCORRECT ....LED GLOWS....LOCK OPENS
  174:	  00E1	12 02 95	        LCALL INIT_LCD
  175:	  00E4	12 02 BA		LCALL CLEAR_LCD
  176:
  177:	  00E7	74 43			MOV A,#'C'
  178:	  00E9	12 02 DC		LCALL WRITE_TEXT
  179:	  00EC	74 4F			MOV A,#'O'
  180:	  00EE	12 02 DC		LCALL WRITE_TEXT
  181:	  00F1	74 52			MOV A,#'R'
  182:	  00F3	12 02 DC		LCALL WRITE_TEXT
  183:	  00F6	74 52			MOV A,#'R'
  184:	  00F8	12 02 DC		LCALL WRITE_TEXT
  185:	  00FB	74 45			MOV A,#'E'
  186:	  00FD	12 02 DC		LCALL WRITE_TEXT
  187:	  0100	74 43			MOV A,#'C'
  188:	  0102	12 02 DC		LCALL WRITE_TEXT
  189:	  0105	74 54			MOV A,#'T'
  190:	  0107	12 02 DC		LCALL WRITE_TEXT
  191:	  010A	74 20			MOV A,#' '
  192:	  010C	12 02 DC		LCALL WRITE_TEXT
  193:	  010F	74 20			MOV A,#' '
  194:	  0111	12 02 DC		LCALL WRITE_TEXT
  195:	  0114	74 43			MOV A,#'C'
  196:	  0116	12 02 DC		LCALL WRITE_TEXT
  197:	  0119	74 4F			MOV A,#'O'
  198:	  011B	12 02 DC		LCALL WRITE_TEXT
  199:	  011E	74 44			MOV A,#'D'
  200:	  0120	12 02 DC		LCALL WRITE_TEXT
  201:	  0123	74 45			MOV A,#'E'
  202:	  0125	12 02 DC		LCALL WRITE_TEXT
  203:
  204:	  0128	C2 B1			CLR RS              ;PUT CURSOR AT THE STARTING OF THE SECOND LINE
  205:	  012A	75 90 C0		MOV TEXT,#0C0h
  206:	  012D	D2 B0			SETB EN
  207:	  012F	C2 B0			CLR EN
  208:	  0131	12 02 C7		LCALL WAIT_LCD
  209:
  210:	  0134	12 02 95		LCALL INIT_LCD
  211:	  0137	74 44			MOV A,#'D'

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 5



 Line  I  Addr  Code            Source

  212:	  0139	12 02 DC		LCALL WRITE_TEXT
  213:	  013C	74 4F			MOV A,#'O'
  214:	  013E	12 02 DC		LCALL WRITE_TEXT
  215:	  0141	74 4F			MOV A,#'O'
  216:	  0143	12 02 DC		LCALL WRITE_TEXT
  217:	  0146	74 52			MOV A,#'R'
  218:	  0148	12 02 DC		LCALL WRITE_TEXT
  219:	  014B	74 20			MOV A,#' '
  220:	  014D	12 02 DC		LCALL WRITE_TEXT
  221:	  0150	74 20			MOV A,#' '
  222:	  0152	12 02 DC		LCALL WRITE_TEXT
  223:	  0155	74 4F			MOV A,#'O'
  224:	  0157	12 02 DC		LCALL WRITE_TEXT
  225:	  015A	74 50			MOV A,#'P'
  226:	  015C	12 02 DC		LCALL WRITE_TEXT
  227:	  015F	74 45			MOV A,#'E'
  228:	  0161	12 02 DC		LCALL WRITE_TEXT
  229:	  0164	74 4E			MOV A,#'N'
  230:	  0166	12 02 DC		LCALL WRITE_TEXT
  231:	  0169	74 53			MOV A,#'S'
  232:	  016B	12 02 DC		LCALL WRITE_TEXT
  233:
  234:	  016E	51 7D			ACALL DELAY_3
  235:
  236:	  0170	71 35			ACALL EXIT
  237:
  238:	  0172			WRONG:;Code entered is incorrest
  239:	  0172	12 02 95		LCALL INIT_LCD
  240:	  0175	12 02 BA		LCALL CLEAR_LCD
  241:	  0178	74 49			MOV A,#'I'
  242:	  017A	12 02 DC		LCALL WRITE_TEXT
  243:	  017D	74 4E			MOV A,#'N'
  244:	  017F	12 02 DC		LCALL WRITE_TEXT
  245:	  0182	74 43			MOV A,#'C'
  246:	  0184	12 02 DC		LCALL WRITE_TEXT
  247:	  0187	74 4F			MOV A,#'O'
  248:	  0189	12 02 DC		LCALL WRITE_TEXT
  249:	  018C	74 52			MOV A,#'R'
  250:	  018E	12 02 DC		LCALL WRITE_TEXT
  251:	  0191	74 52			MOV A,#'R'
  252:	  0193	12 02 DC		LCALL WRITE_TEXT
  253:	  0196	74 45			MOV A,#'E'
  254:	  0198	12 02 DC		LCALL WRITE_TEXT
  255:	  019B	74 43			MOV A,#'C'
  256:	  019D	12 02 DC		LCALL WRITE_TEXT
  257:	  01A0	74 54			MOV A,#'T'
  258:	  01A2	12 02 DC		LCALL WRITE_TEXT
  259:	  01A5	74 20			MOV A,#' '
  260:	  01A7	12 02 DC		LCALL WRITE_TEXT
  261:	  01AA	74 20			MOV A,#' '
  262:	  01AC	12 02 DC		LCALL WRITE_TEXT
  263:	  01AF	74 43			MOV A,#'C'
  264:	  01B1	12 02 DC		LCALL WRITE_TEXT
  265:	  01B4	74 4F			MOV A,#'O'
  266:	  01B6	12 02 DC		LCALL WRITE_TEXT
  267:	  01B9	74 44			MOV A,#'D'

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 6



 Line  I  Addr  Code            Source

  268:	  01BB	12 02 DC		LCALL WRITE_TEXT
  269:	  01BE	74 45			MOV A,#'E'
  270:	  01C0	12 02 DC		LCALL WRITE_TEXT
  271:
  272:	  01C3	51 7D			ACALL DELAY_3
  273:
  274:	  01C5	71 35			ACALL EXIT
  275:	  01C7	22			RET
  276:
  277:	  01C8	12 02 95	LCD_START:LCALL INIT_LCD
  278:	  01CB	12 02 BA		LCALL CLEAR_LCD
  279:	  01CE	74 44			MOV A,#'D'
  280:	  01D0	12 02 DC		LCALL WRITE_TEXT
  281:	  01D3	74 49			MOV A,#'I'
  282:	  01D5	12 02 DC		LCALL WRITE_TEXT
  283:	  01D8	74 47			MOV A,#'G'
  284:	  01DA	12 02 DC		LCALL WRITE_TEXT
  285:	  01DD	74 49			MOV A,#'I'
  286:	  01DF	12 02 DC		LCALL WRITE_TEXT
  287:	  01E2	74 54			MOV A,#'T'
  288:	  01E4	12 02 DC		LCALL WRITE_TEXT
  289:	  01E7	74 41			MOV A,#'A'
  290:	  01E9	12 02 DC		LCALL WRITE_TEXT
  291:	  01EC	74 4C			MOV A,#'L'
  292:	  01EE	12 02 DC		LCALL WRITE_TEXT
  293:	  01F1	74 20			MOV A,#' '
  294:	  01F3	12 02 DC	         LCALL WRITE_TEXT
  295:	  01F6	74 20			MOV A,#' '
  296:	  01F8	12 02 DC		LCALL WRITE_TEXT
  297:	  01FB	74 4C			MOV A,#'L'
  298:	  01FD	12 02 DC		LCALL WRITE_TEXT
  299:	  0200	74 4F			MOV A,#'O'
  300:	  0202	12 02 DC		LCALL WRITE_TEXT
  301:	  0205	74 43			MOV A,#'C'
  302:	  0207	12 02 DC		LCALL WRITE_TEXT
  303:	  020A	74 4B			MOV A,#'K'
  304:	  020C	12 02 DC		LCALL WRITE_TEXT
  305:	  020F	22			RET
  306:
  307:
  308:	  0210	12 02 95	LCD_DISPLAY:LCALL INIT_LCD
  309:	  0213	12 02 BA		LCALL CLEAR_LCD

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -