📄 main.lst
字号:
261 2 case guoji_N:
262 2 key[0] = KeyTemp;
263 2 count++;
264 2 break;
265 2 case guoji_N+1:
266 2 key[1] = KeyTemp;
267 2 count++;
268 2 break;
269 2 case guoji_N+2:
270 2 key[2] = KeyTemp;
271 2 count++;
272 2 break;
273 2 case guoji_N+3:
274 2 key[3] = KeyTemp;
275 2 count++;
276 2 break;
277 2 case guoji_N+4:
278 2 if(KeyTemp != 0x0c){count =0xff;showerror();break;};
279 2 EEWritePage(&key[0],0,guoji_N,4);
280 2 DELAY(0xff);
281 2 EEReadPage(&p[0],0,guoji_N,4);
282 2 if(key[0] != p[0]){count =0xff;showerror();break;};
283 2 if(key[3] != p[3]){count =0xff;showerror();break;};
284 2 showsucceed();
285 2 break;
286 2 /*
287 2 设定密码
288 2 */
289 2 case password:
290 2 key[0] = KeyTemp;
291 2 count++;
292 2 break;
293 2 case password+1:
294 2 key[1] = KeyTemp;
295 2 count++;
296 2 break;
297 2 case password+2:
298 2 key[2] = KeyTemp;
299 2 count++;
300 2 break;
301 2 case password+3:
302 2 key[3] = KeyTemp;
303 2 count++;
C51 COMPILER V7.10 MAIN 05/07/2006 17:33:51 PAGE 6
304 2 break;
305 2 case password+4:
306 2 if(KeyTemp != 0x0c){count =0xff;showerror();break;};
307 2 EEWritePage(&key[0],0,password,4);
308 2 DELAY(0xff);
309 2 EEReadPage(&p[0],0,password,4);
310 2 if(key[0] != p[0]){count =0xff;showerror();break;};
311 2 if(key[3] != p[3]){count =0xff;showerror();break;};
312 2 showsucceed();
313 2 break;
314 2 /*
315 2 设定线路类型!1为有反极!0为无反极
316 2 */
317 2 case linetype:
318 2 key[0] = KeyTemp;
319 2 count++;
320 2 break;
321 2 case linetype+1:
322 2 if(KeyTemp != 0x0c){count =0xff;showerror();break;};
323 2 EEWritePage(&key[0],0,linetype,1);
324 2 DELAY(0xff);
325 2 EEReadPage(&p[0],0,linetype,1);
326 2 if(key[0] != p[0]){count =0xff;showerror();break;};
327 2 showsucceed();
328 2 LineType = key[0];
329 2 break;
330 2 /*
331 2 修改时间
332 2 */
333 2 case modifytime:
334 2 key[0] = KeyTemp;
335 2 count++;
336 2 break;
337 2 case modifytime+1:
338 2 key[1] = KeyTemp;
339 2 count++;
340 2 break;
341 2 case modifytime+2:
342 2 key[2] = KeyTemp;
343 2 count++;
344 2 break;
345 2 case modifytime+3:
346 2 key[3] = KeyTemp;
347 2 count++;
348 2 break;
349 2 case modifytime+4:
350 2 if(KeyTemp != 0x0c){count =0xff;showerror();break;};
351 2 times = key[0]*0x8ca0;
352 2 times += key[1]*0xe10;
353 2 times += key[2]*0x258;
354 2 times += key[3]*0x3c;
355 2 showtime();
356 2
357 2 break;
358 2 default:
359 2 showerror();
360 2 break;
361 2 }
362 1 }
363 void showerror(void){
364 1 Led2 = 0;
365 1 DELAY(0XFF);
C51 COMPILER V7.10 MAIN 05/07/2006 17:33:51 PAGE 7
366 1 Led2 = 1;
367 1 DELAY(0XFF);
368 1 Led2 = 0;
369 1 DELAY(0XFF);
370 1 Led2 = 1;
371 1 DELAY(0XFF);
372 1 Led2 = 0;
373 1 DELAY(0XFF);
374 1 Led2 = 1;
375 1 DELAY(0XFF);
376 1 Led2 = 0;
377 1 DELAY(0XFF);
378 1 Led2 = 1;
379 1 DELAY(0XFF);
380 1 }
381 void showsucceed(void){
382 1 Led1 = 0;
383 1 DELAY(0X1FF);
384 1 Led1 = 1;
385 1 }
C51 COMPILER V7.10 MAIN 05/07/2006 17:33:51 PAGE 8
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION Com0098 (BEGIN)
0000 L?0153:
0000 120000 E LCALL ?C?IMUL
0003 E4 CLR A
0004 FC MOV R4,A
0005 FD MOV R5,A
0006 L?0154:
0006 E500 R MOV A,times+03H
0008 2F ADD A,R7
0009 F500 R MOV times+03H,A
000B E500 R MOV A,times+02H
000D 3E ADDC A,R6
000E F500 R MOV times+02H,A
0010 ED MOV A,R5
0011 3500 R ADDC A,times+01H
0013 F500 R MOV times+01H,A
0015 EC MOV A,R4
0016 3500 R ADDC A,times
0018 F500 R MOV times,A
001A 22 RET
001B L?0157:
001B L?0158:
001B 7B00 MOV R3,#00H
001D 7A00 R MOV R2,#HIGH key
001F 7900 R MOV R1,#LOW key
0021 22 RET
; FUNCTION Com0098 (END)
; FUNCTION main (BEGIN)
; SOURCE LINE # 32
; SOURCE LINE # 33
0000 C2B1 CLR Led1
; SOURCE LINE # 34
0002 C2B0 CLR Led2
; SOURCE LINE # 35
0004 120000 E LCALL init
; SOURCE LINE # 36
0007 120000 E LCALL SETUP_LCD
; SOURCE LINE # 37
000A D2B1 SETB Led1
; SOURCE LINE # 38
000C D2B0 SETB Led2
000E ?C0001:
; SOURCE LINE # 40
; SOURCE LINE # 41
000E 30000A R JNB lift_bit,?C0004
; SOURCE LINE # 42
0011 A291 MOV C,status1
0013 9200 R MOV status3,C
; SOURCE LINE # 43
0015 120000 E LCALL ClrLCD
; SOURCE LINE # 44
0018 E4 CLR A
0019 F500 R MOV times3,A
; SOURCE LINE # 45
001B ?C0004:
; SOURCE LINE # 47
001B 300020 R JNB lift_bit,?C0005
; SOURCE LINE # 48
C51 COMPILER V7.10 MAIN 05/07/2006 17:33:51 PAGE 9
001E D200 R SETB scankey_bit
; SOURCE LINE # 49
0020 120000 R LCALL getkey
; SOURCE LINE # 50
0023 120000 R LCALL set_menu
; SOURCE LINE # 51
0026 A200 R MOV C,polarity_bit
0028 B000 R ANL C,/set_sign
002A 50EF JNC ?C0004
; SOURCE LINE # 52
002C AF00 R MOV R7,times+03H
002E AE00 R MOV R6,times+02H
0030 AD00 R MOV R5,times+01H
0032 AC00 R MOV R4,times
0034 120000 E LCALL _ShowCountTime
0037 7E00 MOV R6,#00H
0039 120000 E LCALL _showmoney
; SOURCE LINE # 54
003C 80DD SJMP ?C0004
003E ?C0005:
; SOURCE LINE # 55
003E 120000 E LCALL showtime
; SOURCE LINE # 56
0041 120000 R LCALL clrbuf
; SOURCE LINE # 57
0044 80C8 SJMP ?C0001
; FUNCTION main (END)
; FUNCTION getkey (BEGIN)
; SOURCE LINE # 60
; SOURCE LINE # 61
0000 D293 SETB STD
; SOURCE LINE # 62
0002 309351 JNB STD,?C0014
; SOURCE LINE # 63
0005 E590 MOV A,P1
0007 C4 SWAP A
0008 540F ANL A,#0FH
000A F500 R MOV KeyTemp,A
; SOURCE LINE # 64
000C 900000 R MOV DPTR,#keycode
000F 93 MOVC A,@A+DPTR
0010 F500 R MOV KeyTemp,A
; SOURCE LINE # 66
0012 7400 R MOV A,#LOW key
0014 2500 R ADD A,nkey
0016 F8 MOV R0,A
0017 A600 R MOV @R0,KeyTemp
; SOURCE LINE # 68
0019 E500 R MOV A,KeyTemp
001B B40B06 CJNE A,#0BH,?C0010
001E E500 R MOV A,nkey
0020 7002 JNZ ?C0010
; SOURCE LINE # 69
0022 D200 R SETB set_sign
0024 ?C0010:
; SOURCE LINE # 71
0024 2093FD JB STD,?C0010
0027 ?C0011:
; SOURCE LINE # 72
0027 E4 CLR A
0028 F500 R MOV times3,A
C51 COMPILER V7.10 MAIN 05/07/2006 17:33:51 PAGE 10
; SOURCE LINE # 73
002A D200 R SETB KeyACT
; SOURCE LINE # 74
002C E500 R MOV A,KeyTemp
002E B40C05 CJNE A,#0CH,?C0012
0031 200002 R JB LineType,?C0012
; SOURCE LINE # 75
0034 D200 R SETB polarity_bit
0036 ?C0012:
; SOURCE LINE # 76
0036 E500 R MOV A,nkey
0038 C3 CLR C
0039 9414 SUBB A,#014H
003B 5002 JNC ?C0013
003D 0500 R INC nkey
003F ?C0013:
; SOURCE LINE # 77
003F C200 E CLR ?ShowLCD?BIT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -