📄 mifare1.ls1
字号:
439 ; {
440 ; SOURCE LINE # 38
441 ; int ch;
442 ;
443 ; // rf card
444 ; M500PcdInit(); // remember to set if we should set auto search rf card function
445 ; SOURCE LINE # 42
0000 120000 F 446 LCALL M500PcdInit
447 ; M500PcdMfOutSelect(3);
448 ; SOURCE LINE # 43
0003 7F03 449 MOV R7,#03H
0005 120000 F 450 LCALL _M500PcdMfOutSelect
451 ;
452 ; ch = ParaRead(PARA_RFRXGAIN);
453 ; SOURCE LINE # 45
A51 MACRO ASSEMBLER MIFARE1 03/13/2009 15:44:56 PAGE 8
0008 7FF8 454 MOV R7,#0F8H
000A 120000 F 455 LCALL _ParaRead
456 ;---- Variable 'ch?040' assigned to Register 'R6/R7' ----
457 ; if((ch >= 0) && (ch <= 3))
458 ; SOURCE LINE # 46
000D C3 459 CLR C
000E EE 460 MOV A,R6
000F 6480 461 XRL A,#080H
0011 9480 462 SUBB A,#080H
0013 400D 463 JC ?C0001
0015 D3 464 SETB C
0016 EF 465 MOV A,R7
0017 9403 466 SUBB A,#03H
0019 EE 467 MOV A,R6
001A 6480 468 XRL A,#080H
001C 9480 469 SUBB A,#080H
001E 5002 470 JNC ?C0001
471 ; {
472 ; SOURCE LINE # 47
473 ; M500SetRcvGain((unsigned char)ch);
474 ; SOURCE LINE # 48
475 ; }
476 ; SOURCE LINE # 49
0020 8009 477 SJMP ?C0202
0022 478 ?C0001:
479 ; else
480 ; {
481 ; SOURCE LINE # 51
482 ; ParaWrite(PARA_RFRXGAIN, 2);
483 ; SOURCE LINE # 52
0022 7D02 484 MOV R5,#02H
0024 7FF8 485 MOV R7,#0F8H
0026 120000 F 486 LCALL _ParaWrite
487 ; M500SetRcvGain(2);
488 ; SOURCE LINE # 53
0029 7F02 489 MOV R7,#02H
002B 490 ?C0202:
002B 120000 F 491 LCALL _M500SetRcvGain
492 ; }
493 ; SOURCE LINE # 54
494 ; }
495 ; SOURCE LINE # 55
002E 496 ?C0003:
002E 22 497 RET
498 ; END OF M1Init
499
500 ;
501 ; // check if a rf card is arrived and if I have sent a notice to host
502 ; // but the host give no response, I will send the notice once every
503 ; // second untill I get a response or a command for rf card.
504 ; void M1Card(void)
505
---- 506 RSEG ?PR?M1Card?MIFARE1
0000 507 M1Card:
508 USING 0
509 ; SOURCE LINE # 60
510 ; {
511 ; SOURCE LINE # 61
512 ; static unsigned int waitcmdtime = 0;
513 ; unsigned char buf[4];
514 ; static bit fCardIn = 0; // flag of card in
515 ; static unsigned char cnt = 0;
516 ;
517 ; if(fAutoSearchCard)
518 ; SOURCE LINE # 67
0000 200003 F 519 JB fAutoSearchCard,$ + 6H
A51 MACRO ASSEMBLER MIFARE1 03/13/2009 15:44:56 PAGE 9
0003 020000 F 520 LJMP ?C0004
521 ; {
522 ; SOURCE LINE # 68
523 ; if(M1Search(snr))
524 ; SOURCE LINE # 69
0006 120000 F 525 LCALL L?0267
0009 4003 526 JC $ + 5H
000B 020000 F 527 LJMP ?C0005
528 ; {
529 ; SOURCE LINE # 70
530 ; if(!fCardIn)
531 ; SOURCE LINE # 71
000E 300003 F 532 JNB fCardIn?143,$ + 6H
0011 020000 F 533 LJMP ?C0004
534 ; {
535 ; SOURCE LINE # 72
536 ; fCardIn = 1;
537 ; SOURCE LINE # 73
0014 D200 F 538 SETB fCardIn?143
539 ;
540 ; // beep
541 ; if(fRFCBeep)
542 ; SOURCE LINE # 76
0016 300007 F 543 JNB fRFCBeep,?C0007
544 ; {
545 ; SOURCE LINE # 77
546 ; beep(2, 10);
547 ; SOURCE LINE # 78
0019 7D0A 548 MOV R5,#0AH
001B 7F02 549 MOV R7,#02H
001D 120000 F 550 LCALL _beep
551 ; }
552 ; SOURCE LINE # 79
0020 553 ?C0007:
554 ;
555 ; // light
556 ; CardLed(1, 1);
557 ; SOURCE LINE # 82
0020 D200 F 558 SETB ?CardLed?BIT
0022 D200 F 559 SETB ?CardLed?BIT+01H
0024 120000 F 560 LCALL CardLed
561 ;
562 ; if(memcmp(snr, oldsnr, 4)) // 不相等
563 ; SOURCE LINE # 84
0027 7800 F 564 MOV R0,#LOW (snr)
0029 7C00 F 565 MOV R4,#HIGH (snr)
002B 7D01 566 MOV R5,#01H
002D 7B01 567 MOV R3,#01H
002F 7A00 F 568 MOV R2,#HIGH (oldsnr)
0031 7900 F 569 MOV R1,#LOW (oldsnr)
0033 7E00 570 MOV R6,#00H
0035 7F04 571 MOV R7,#04H
0037 120000 F 572 LCALL ?C?MEMCMP
003A EF 573 MOV A,R7
003B 6018 574 JZ ?C0008
575 ; {
576 ; SOURCE LINE # 85
577 ; memcpy(oldsnr, snr, 4);
578 ; SOURCE LINE # 86
003D 7800 F 579 MOV R0,#LOW (oldsnr)
003F 7C00 F 580 MOV R4,#HIGH (oldsnr)
0041 7D01 581 MOV R5,#01H
0043 7B01 582 MOV R3,#01H
0045 7A00 F 583 MOV R2,#HIGH (snr)
0047 7900 F 584 MOV R1,#LOW (snr)
0049 7E00 585 MOV R6,#00H
A51 MACRO ASSEMBLER MIFARE1 03/13/2009 15:44:56 PAGE 10
004B 7F04 586 MOV R7,#04H
004D 120000 F 587 LCALL ?C?COPY
588 ; m1keycnt = 0;
589 ; SOURCE LINE # 87
0050 E4 590 CLR A
0051 900000 F 591 MOV DPTR,#m1keycnt
0054 F0 592 MOVX @DPTR,A
593 ; }
594 ; SOURCE LINE # 88
0055 595 ?C0008:
596 ;
597 ; // 通知主机有卡
598 ; if(fNotice)
599 ; SOURCE LINE # 91
0055 200003 F 600 JB fNotice,$ + 6H
0058 020000 F 601 LJMP ?C0004
602 ; {
603 ; SOURCE LINE # 92
604 ; buf[0] = RFCARD;
605 ; SOURCE LINE # 93
005B 900000 F 606 MOV DPTR,#buf?142
005E 74FE 607 MOV A,#0FEH
0060 F0 608 MOVX @DPTR,A
609 ; buf[1] = 1;
610 ; SOURCE LINE # 94
0061 A3 611 INC DPTR
0062 7401 612 MOV A,#01H
0064 F0 613 MOVX @DPTR,A
614 ;
615 ; if(!fStopOnACK)
616 ; SOURCE LINE # 96
0065 20001B F 617 JB fStopOnACK,?C0010
618 ; {
619 ; SOURCE LINE # 97
620 ; CommSendNotWaitAck(buf, 2);
621 ; SOURCE LINE # 98
0068 FB 622 MOV R3,A
0069 7A00 F 623 MOV R2,#HIGH (buf?142)
006B 7900 F 624 MOV R1,#LOW (buf?142)
006D 7D02 625 MOV R5,#02H
006F 7C00 626 MOV R4,#00H
0071 120000 F 627 LCALL _CommSendNotWaitAck
628 ; waitcmdtime = GetTickCount();
629 ; SOURCE LINE # 99
0074 120000 F 630 LCALL GetTickCount
0077 900000 F 631 MOV DPTR,#waitcmdtime?141
007A EE 632 MOV A,R6
007B F0 633 MOVX @DPTR,A
007C A3 634 INC DPTR
007D EF 635 MOV A,R7
007E F0 636 MOVX @DPTR,A
637 ; fWaitCmd = 1;
638 ; SOURCE LINE # 100
007F D200 F 639 SETB fWaitCmd
640 ; }
641 ; SOURCE LINE # 101
0081 8064 642 SJMP ?C0004
0083 643 ?C0010:
644 ; else if(!CommSend(buf, 2))
645 ; SOURCE LINE # 102
0083 7B01 646 MOV R3,#01H
0085 7A00 F 647 MOV R2,#HIGH (buf?142)
0087 7900 F 648 MOV R1,#LOW (buf?142)
0089 7D02 649 MOV R5,#02H
008B 7C00 650 MOV R4,#00H
008D 120000 F 651 LCALL _CommSend
A51 MACRO ASSEMBLER MIFARE1 03/13/2009 15:44:56 PAGE 11
0090 4055 652 JC ?C0004
653 ; {
654 ; SOURCE LINE # 103
655 ; fCardIn = 0;
656 ; SOURCE LINE # 104
0092 C200 F 657 CLR fCardIn?143
658 ; CardLed(1, 0);
659 ; SOURCE LINE # 105
0094 D200 F 660 SETB ?CardLed?BIT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -