📄 main.ls1
字号:
446 ; SOURCE LINE # 115
001E 900000 F 447 MOV DPTR,#snr_counter
0021 E0 448 MOVX A,@DPTR
0022 F599 449 MOV SBUF,A
450 ; //////////////////////////////////////////////////////
A51 MACRO ASSEMBLER MAIN 06/19/2008 00:27:03 PAGE 8
451 ; }
452 ; SOURCE LINE # 117
0024 80F5 453 SJMP ?C0001
454 ; END OF main
455
456 ; else
457 ; ;
458 ; }
459 ; }
460 ;
461 ;
462 ; /****************************************************************************
463 ;
464 ; ****************************************************************************/
465 ; void init (void)
466
---- 467 RSEG ?PR?init?MAIN
0000 468 init:
469 ; SOURCE LINE # 127
470 ; {
471 ; SOURCE LINE # 128
472 ;
473 ; // TMOD=0x21;
474 ; TMOD=0x12; //定时器0为8位自动重装;定时器1为16位计数器工作方式
475 ; SOURCE LINE # 131
0000 758912 476 MOV TMOD,#012H
477 ; IP=0x00;
478 ; SOURCE LINE # 132
0003 E4 479 CLR A
0004 F5B8 480 MOV IP,A
481 ; TCON=1; //外部中断0的触发方式为边沿方式
482 ; SOURCE LINE # 133
0006 758801 483 MOV TCON,#01H
484 ; SCON=0x50;
485 ; SOURCE LINE # 134
0009 759850 486 MOV SCON,#050H
487 ; PCON|=0x80; //dual 4800X2=9600
488 ; SOURCE LINE # 135
000C 438780 489 ORL PCON,#080H
490 ;
491 ; // TH1=TL1=0xf4; //fosc=22.1184Mhz baud=9600 TH1=TL1=256-(24000000/4800/32/12+0.5)
492 ; // TH1=TL1=0xe8; //22.1184MHZ
493 ; // TH1=TL1=256-(40000000/2400/32/12+0.5);
494 ; // TH1=TL1=0xD4; //40MHZ
495 ; // TH0=0xfc; //1ms time
496 ; // TL0=0x66;
497 ; // IE=0x12;
498 ; // TR0=1;
499 ; // TR1=1;
500 ; ES=1;
501 ; SOURCE LINE # 146
000F D2AC 502 SETB ES
503 ;
504 ; // LED = OFF;
505 ; // delay_10ms(50);
506 ; // LED = ON;
507 ;
508 ; // IT0 = 1; // Config ext0 as edge trigger for RC500
509 ; // EX0 = 1; // Enable ext0 interrupt for RC500
510 ;
511 ; // EA = TRUE; // Enable all interrupts
512 ;
513 ; }
514 ; SOURCE LINE # 157
0011 22 515 RET
516 ; END OF init
A51 MACRO ASSEMBLER MAIN 06/19/2008 00:27:03 PAGE 9
517
518 ; void m_readcard(void)
519
---- 520 RSEG ?PR?m_readcard?MAIN
0000 521 m_readcard:
522 ; SOURCE LINE # 158
523 ; {
524 ; SOURCE LINE # 159
525 ; TR0=0;
526 ; SOURCE LINE # 160
0000 C28C 527 CLR TR0
528 ; ET0=0;
529 ; SOURCE LINE # 161
0002 C2A9 530 CLR ET0
531 ; PX0=1;
532 ; SOURCE LINE # 162
0004 D2B8 533 SETB PX0
534 ; m_sta=0;
535 ; SOURCE LINE # 163
0006 E4 536 CLR A
0007 900000 F 537 MOV DPTR,#m_sta
000A F0 538 MOVX @DPTR,A
539 ; TH0=0x16;
540 ; SOURCE LINE # 164
000B 758C16 541 MOV TH0,#016H
542 ; m_flag=0;
543 ; SOURCE LINE # 165
000E C200 F 544 CLR m_flag
545 ; short_flag=0;
546 ; SOURCE LINE # 166
0010 C200 F 547 CLR short_flag
548 ; EX0=1;
549 ; SOURCE LINE # 167
0012 D2A8 550 SETB EX0
551 ; EA=1;
552 ; SOURCE LINE # 168
0014 D2AF 553 SETB EA
554 ;
555 ; }
556 ; SOURCE LINE # 170
0016 22 557 RET
558 ; END OF m_readcard
559
560 ; unsigned char CMP_STRING(unsigned char *pt1,
561
---- 562 RSEG ?PR?_CMP_STRING?MAIN
0000 563 _CMP_STRING:
564 USING 0
565 ; SOURCE LINE # 171
0000 900000 F 566 MOV DPTR,#pt1?349
0003 EB 567 MOV A,R3
0004 F0 568 MOVX @DPTR,A
0005 A3 569 INC DPTR
0006 EA 570 MOV A,R2
0007 F0 571 MOVX @DPTR,A
0008 A3 572 INC DPTR
0009 E9 573 MOV A,R1
000A F0 574 MOVX @DPTR,A
575 ; unsigned char *pt2,unsigned char len)
576 ; {
577 ; SOURCE LINE # 173
578 ; unsigned char ct; // fixed lenth 4.
579 ; for (ct=0;ct<len;ct++)
580 ; SOURCE LINE # 175
581 ;---- Variable 'ct?352' assigned to Register 'R7' ----
000B E4 582 CLR A
A51 MACRO ASSEMBLER MAIN 06/19/2008 00:27:03 PAGE 10
000C FF 583 MOV R7,A
000D 584 ?C0008:
000D 900000 F 585 MOV DPTR,#len?351
0010 E0 586 MOVX A,@DPTR
0011 FE 587 MOV R6,A
0012 EF 588 MOV A,R7
0013 C3 589 CLR C
0014 9E 590 SUBB A,R6
0015 5016 591 JNC ?C0009
592 ; {
593 ; SOURCE LINE # 176
594 ; if (*pt1++ != *pt2++)
595 ; SOURCE LINE # 177
0017 900000 F 596 MOV DPTR,#pt2?350
001A 120000 F 597 LCALL L?0035
001D FE 598 MOV R6,A
001E 900000 F 599 MOV DPTR,#pt1?349
0021 120000 F 600 LCALL L?0035
0024 6E 601 XRL A,R6
0025 6003 602 JZ ?C0010
603 ; return 1;
604 ; SOURCE LINE # 178
0027 7F01 605 MOV R7,#01H
0029 22 606 RET
607 ; }
608 ; SOURCE LINE # 179
002A 609 ?C0010:
002A 0F 610 INC R7
002B 80E0 611 SJMP ?C0008
002D 612 ?C0009:
613 ; return 0; // equal return 0.
614 ; SOURCE LINE # 180
002D 7F00 615 MOV R7,#00H
616 ; }
617 ; SOURCE LINE # 181
002F 618 ?C0012:
002F 22 619 RET
620 ; END OF _CMP_STRING
621
622 ;
623 ; void delay_10ms (uint _10ms)
624
---- 625 RSEG ?PR?_delay_10ms?MAIN
0000 626 _delay_10ms:
627 USING 0
628 ; SOURCE LINE # 183
629 ;---- Variable '_10ms?453' assigned to Register 'R6/R7' ----
630 ; {
631 ; SOURCE LINE # 184
632 ;
633 ; ET2 = 0; // Disable timer2 interrupt
634 ; SOURCE LINE # 186
0000 C2AD 635 CLR ET2
636 ; T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
637 ; SOURCE LINE # 187
0002 75C804 638 MOV T2CON,#04H
0005 639 ?C0013:
640 ; while (_10ms--)
641 ; SOURCE LINE # 188
0005 EF 642 MOV A,R7
0006 1F 643 DEC R7
0007 AC06 644 MOV R4,AR6
0009 7001 645 JNZ ?C0032
000B 1E 646 DEC R6
000C 647 ?C0032:
000C 4C 648 ORL A,R4
A51 MACRO ASSEMBLER MAIN 06/19/2008 00:27:03 PAGE 11
000D 600C 649 JZ ?C0014
650 ; {
651 ; SOURCE LINE # 189
000F 652 ?C0015:
653 ; while (!TF2)
654 ; SOURCE LINE # 190
000F 20CF05 655 JB TF2,?C0016
656 ; {
657 ; SOURCE LINE # 191
658 ; // if (CmdValid || CmdReceived)
659 ; {
660 ; SOURCE LINE # 193
661 ; TR2 = FALSE;
662 ; SOURCE LINE # 194
0012 C2CA 663 CLR TR2
664 ; TF2 = FALSE;
665 ; SOURCE LINE # 195
0014 C2CF 666 CLR TF2
0016 22 667 RET
668 ; return;
669 ; }
670 ; SOURCE LINE # 197
671 ; }
672 ; SOURCE LINE # 198
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -