📄 t.ls1
字号:
228 ; #define KEY_LINE2 P3_1
229 ; #define KEY_LINE3 P3_7
230 ;
231 ; //T0 T1
232 ; #define SCL P3_4
233 ; #define SDA P3_5
234 ; void delay(unsigned int n)
235
---- 236 RSEG ?PR?_delay?T
0000 237 _delay:
238 USING 0
239 ; SOURCE LINE # 30
240 ;---- Variable 'n?040' assigned to Register 'R6/R7' ----
241 ; {
242 ; SOURCE LINE # 31
243 ; unsigned int i,j;
244 ; for(j=0;j<100;j++)
245 ; SOURCE LINE # 33
246 ;---- Variable 'j?042' assigned to Register 'R4/R5' ----
0000 E4 247 CLR A
0001 FD 248 MOV R5,A
0002 FC 249 MOV R4,A
0003 250 ?C0001:
251 ; for(i=0;i<n;i++);
252 ; SOURCE LINE # 34
253 ;---- Variable 'i?041' assigned to Register 'R2/R3' ----
0003 E4 254 CLR A
A51 MACRO ASSEMBLER T 06/27/2008 14:06:20 PAGE 5
0004 FB 255 MOV R3,A
0005 FA 256 MOV R2,A
0006 257 ?C0004:
0006 C3 258 CLR C
0007 EB 259 MOV A,R3
0008 9F 260 SUBB A,R7
0009 EA 261 MOV A,R2
000A 9E 262 SUBB A,R6
000B 5007 263 JNC ?C0003
000D 0B 264 INC R3
000E BB0001 265 CJNE R3,#00H,?C0072
0011 0A 266 INC R2
0012 267 ?C0072:
0012 80F2 268 SJMP ?C0004
0014 269 ?C0003:
0014 0D 270 INC R5
0015 BD0001 271 CJNE R5,#00H,?C0073
0018 0C 272 INC R4
0019 273 ?C0073:
0019 ED 274 MOV A,R5
001A 6464 275 XRL A,#064H
001C 4C 276 ORL A,R4
001D 70E4 277 JNZ ?C0001
278 ; }
279 ; SOURCE LINE # 35
001F 280 ?C0007:
001F 22 281 RET
282 ; END OF _delay
283
284 ; unsigned char wdat[10]={0xF0,0x0F,0xA0,0x0A,0xAA,0x99,0x3C,0xC3,0x81,0x18};
285 ; unsigned char rdat[10]={0};
286 ; void main()
287
---- 288 RSEG ?PR?main?T
0000 289 main:
290 ; SOURCE LINE # 38
291 ; {
292 ; SOURCE LINE # 39
293 ; EX0=0;//enable int 1
294 ; SOURCE LINE # 40
0000 C2A8 295 CLR EX0
296 ; EX1=1;//
297 ; SOURCE LINE # 41
0002 D2AA 298 SETB EX1
299 ; ET0 = 0;//disable 2 timer
300 ; SOURCE LINE # 42
0004 C2A9 301 CLR ET0
302 ; ET1 = 0;//
303 ; SOURCE LINE # 43
0006 C2AB 304 CLR ET1
305 ; IT0=0;//
306 ; SOURCE LINE # 44
0008 C288 307 CLR IT0
308 ; IT1=1;//edge trigger
309 ; SOURCE LINE # 45
000A D28A 310 SETB IT1
311 ;
312 ; EA=1;
313 ; SOURCE LINE # 47
000C D2AF 314 SETB EA
315 ; P1=~0x00;
316 ; SOURCE LINE # 48
000E 7590FF 317 MOV P1,#0FFH
318 ;
319 ; for(;;);
320 ; SOURCE LINE # 50
A51 MACRO ASSEMBLER T 06/27/2008 14:06:20 PAGE 6
0011 321 ?C0008:
0011 80FE 322 SJMP ?C0008
323 ; END OF main
324
---- 325 CSEG AT 00013H
0013 020000 F 326 LJMP interrupt_func1
327
328 ;
329 ; }
330 ; unsigned char func,pw,pr;
331 ; void interrupt_func1() interrupt 2
332
---- 333 RSEG ?PR?interrupt_func1?T
334 USING 0
0000 335 interrupt_func1:
0000 C0E0 336 PUSH ACC
0002 C0F0 337 PUSH B
0004 C083 338 PUSH DPH
0006 C082 339 PUSH DPL
0008 C0D0 340 PUSH PSW
000A 75D000 341 MOV PSW,#00H
000D C000 342 PUSH AR0
000F C001 343 PUSH AR1
0011 C002 344 PUSH AR2
0013 C003 345 PUSH AR3
0015 C004 346 PUSH AR4
0017 C005 347 PUSH AR5
0019 C006 348 PUSH AR6
001B C007 349 PUSH AR7
350 USING 0
351 ; SOURCE LINE # 54
352 ; {
353 ; unsigned char k1,k2,k3;
354 ; delay(1);
355 ; SOURCE LINE # 57
001D 7F01 356 MOV R7,#01H
001F 7E00 357 MOV R6,#00H
0021 120000 F 358 LCALL _delay
359 ; k1=KEY_LINE1;
360 ; SOURCE LINE # 58
0024 A2B0 361 MOV C,P3_0
0026 E4 362 CLR A
0027 33 363 RLC A
0028 FF 364 MOV R7,A
365 ;---- Variable 'k1?245' assigned to Register 'R7' ----
366 ; k2=KEY_LINE2;
367 ; SOURCE LINE # 59
0029 A2B1 368 MOV C,P3_1
002B E4 369 CLR A
002C 33 370 RLC A
002D FE 371 MOV R6,A
372 ;---- Variable 'k2?246' assigned to Register 'R6' ----
373 ; k3=KEY_LINE3;
374 ; SOURCE LINE # 60
002E A2B7 375 MOV C,P3_7
0030 E4 376 CLR A
0031 33 377 RLC A
0032 F500 F 378 MOV k3?247,A
379 ;
380 ;
381 ; if(k1==0)
382 ; SOURCE LINE # 63
0034 EF 383 MOV A,R7
0035 701A 384 JNZ ?C0011
385 ; {
386 ; SOURCE LINE # 64
A51 MACRO ASSEMBLER T 06/27/2008 14:06:20 PAGE 7
387 ; func=(func+1)%4;
388 ; SOURCE LINE # 65
0037 E500 F 389 MOV A,func
0039 04 390 INC A
003A 5403 391 ANL A,#03H
003C F500 F 392 MOV func,A
393 ;
394 ; if(func==0) pw=0;
395 ; SOURCE LINE # 67
003E 7004 396 JNZ ?C0012
0040 F500 F 397 MOV pw,A
0042 8008 398 SJMP ?C0013
0044 399 ?C0012:
400 ; else if(func==1) pr=0;
401 ; SOURCE LINE # 68
0044 E500 F 402 MOV A,func
0046 B40103 403 CJNE A,#01H,?C0013
0049 750000 F 404 MOV pr,#00H
004C 405 ?C0013:
406 ;
407 ; P1=~func;
408 ; SOURCE LINE # 70
004C E500 F 409 MOV A,func
004E F4 410 CPL A
004F F590 411 MOV P1,A
412 ; }
413 ; SOURCE LINE # 71
0051 414 ?C0011:
415 ;
416 ;
417 ; if(func==0)//pw display
418 ; SOURCE LINE # 74
0051 E500 F 419 MOV A,func
0053 7048 420 JNZ ?C0015
421 ; {
422 ; SOURCE LINE # 75
423 ; if(k2==0) {unsigned int i;for(i=0;i<10;i++)rdat[i]=0; P1=~0xA0;}//cle
ar rdat to 0
424 ; SOURCE LINE # 76
0055 EE 425 MOV A,R6
0056 701F 426 JNZ ?C0016
0058 F500 F 427 MOV i?243,A
005A F500 F 428 MOV i?243+01H,A
005C 429 ?C0017:
005C 7400 F 430 MOV A,#LOW (rdat)
005E 2500 F 431 ADD A,i?243+01H
0060 F8 432 MOV R0,A
0061 7600 433 MOV @R0,#00H
0063 0500 F 434 INC i?243+01H
0065 E500 F 435 MOV A,i?243+01H
0067 7002 436 JNZ ?C0074
0069 0500 F 437 INC i?243
006B 438 ?C0074:
006B 640A 439 XRL A,#0AH
006D 4500 F 440 ORL A,i?243
006F 70EB 441 JNZ ?C0017
0071 442 ?C0018:
0071 75905F 443 MOV P1,#05FH
0074 020000 F 444 LJMP ?C0040
0077 445 ?C0016:
446 ; else if(k3==0) {unsigned int i;for(i=0;i<10;i++)wdat[i]=0xAA; P1=~0xAA;}//
set wdat to 0xAA
447 ; SOURCE LINE # 77
0077 E500 F 448 MOV A,k3?247
0079 6003 449 JZ $ + 5H
007B 020000 F 450 LJMP ?C0040
A51 MACRO ASSEMBLER T 06/27/2008 14:06:20 PAGE 8
007E F500 F 451 MOV i?244,A
0080 F500 F 452 MOV i?244+01H,A
0082 453 ?C0022:
0082 7400 F 454 MOV A,#LOW (wdat)
0084 2500 F 455 ADD A,i?244+01H
0086 F8 456 MOV R0,A
0087 76AA 457 MOV @R0,#0AAH
0089 0500 F 458 INC i?244+01H
008B E500 F 459 MOV A,i?244+01H
008D 7002 460 JNZ ?C0075
008F 0500 F 461 INC i?244
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -