sle4442.ls1
来自「mifarea卡程序mifarea卡程序mifarea卡程序」· LS1 代码 · 共 941 行 · 第 1/4 页
LS1
941 行
451 ; // send another clock puls
452 ; IccSyncClock();
453 ; SOURCE LINE # 50
A51 MACRO ASSEMBLER SLE4442 03/13/2009 15:44:59 PAGE 8
003D 020000 F 454 LJMP IccSyncClock
455 ; END OF _Sle4442ReadProtectMem
456
457 ; }
458 ;
459 ; // write protect memory
460 ; void Sle4442WriteProtectMem(unsigned char address, unsigned char val)
461
---- 462 RSEG ?PR?_Sle4442WriteProtectMem?SLE4442
0000 463 _Sle4442WriteProtectMem:
464 USING 0
465 ; SOURCE LINE # 54
466 ;---- Variable 'val?348' assigned to Register 'R6' ----
0000 CE 467 XCH A,R6
0001 ED 468 MOV A,R5
0002 CE 469 XCH A,R6
470 ;---- Variable 'address?347' assigned to Register 'R7' ----
471 ; {
472 ; SOURCE LINE # 55
473 ; // send command
474 ; Sle4442Command(0x3c, address, val);
475 ; SOURCE LINE # 57
0003 CD 476 XCH A,R5
0004 EF 477 MOV A,R7
0005 CD 478 XCH A,R5
0006 CF 479 XCH A,R7
0007 EE 480 MOV A,R6
0008 CF 481 XCH A,R7
0009 CB 482 XCH A,R3
000A EF 483 MOV A,R7
000B CB 484 XCH A,R3
000C 7F3C 485 MOV R7,#03CH
000E 120000 F 486 LCALL _Sle4442Command
487 ; // polling io
488 ; IccSyncPollingIO(50);
489 ; SOURCE LINE # 59
0011 7F32 490 MOV R7,#032H
0013 7E00 491 MOV R6,#00H
0015 020000 F 492 LJMP _IccSyncPollingIO
493 ; END OF _Sle4442WriteProtectMem
494
495 ; }
496 ;
497 ; // read 4 bytes
498 ; void Sle4442ReadSecurityMem(unsigned char *buf)
499
---- 500 RSEG ?PR?_Sle4442ReadSecurityMem?SLE4442
0000 501 _Sle4442ReadSecurityMem:
502 USING 0
503 ; SOURCE LINE # 63
0000 900000 F 504 MOV DPTR,#buf?449
0003 EB 505 MOV A,R3
0004 F0 506 MOVX @DPTR,A
0005 A3 507 INC DPTR
0006 EA 508 MOV A,R2
0007 F0 509 MOVX @DPTR,A
0008 A3 510 INC DPTR
0009 E9 511 MOV A,R1
000A F0 512 MOVX @DPTR,A
513 ; {
514 ; SOURCE LINE # 64
515 ; unsigned char ci;
516 ;
517 ; // send command
518 ; Sle4442Command(0x31, 0x00, 0x00);
519 ; SOURCE LINE # 68
A51 MACRO ASSEMBLER SLE4442 03/13/2009 15:44:59 PAGE 9
000B E4 520 CLR A
000C FB 521 MOV R3,A
000D FD 522 MOV R5,A
000E 7F31 523 MOV R7,#031H
0010 120000 F 524 LCALL _Sle4442Command
525 ; // read data
526 ; for(ci=0; ci<4; ci++)
527 ; SOURCE LINE # 70
0013 E4 528 CLR A
0014 900000 F 529 MOV DPTR,#ci?450
0017 F0 530 MOVX @DPTR,A
0018 531 ?C0011:
532 ; {
533 ; SOURCE LINE # 71
534 ; buf[ci] = IccSyncGetChar();
535 ; SOURCE LINE # 72
0018 120000 F 536 LCALL IccSyncGetChar
001B 900000 F 537 MOV DPTR,#buf?449
001E E0 538 MOVX A,@DPTR
001F FB 539 MOV R3,A
0020 A3 540 INC DPTR
0021 E0 541 MOVX A,@DPTR
0022 FA 542 MOV R2,A
0023 A3 543 INC DPTR
0024 E0 544 MOVX A,@DPTR
0025 F9 545 MOV R1,A
0026 A3 546 INC DPTR
0027 E0 547 MOVX A,@DPTR
0028 F582 548 MOV DPL,A
002A 758300 549 MOV DPH,#00H
002D EF 550 MOV A,R7
002E 120000 F 551 LCALL ?C?CSTOPTR
552 ; }
553 ; SOURCE LINE # 73
0031 900000 F 554 MOV DPTR,#ci?450
0034 E0 555 MOVX A,@DPTR
0035 04 556 INC A
0036 F0 557 MOVX @DPTR,A
0037 E0 558 MOVX A,@DPTR
0038 C3 559 CLR C
0039 9404 560 SUBB A,#04H
003B 40DB 561 JC ?C0011
003D 562 ?C0012:
563 ; // send another clock puls
564 ; IccSyncClock();
565 ; SOURCE LINE # 75
003D 020000 F 566 LJMP IccSyncClock
567 ; END OF _Sle4442ReadSecurityMem
568
569 ; }
570 ;
571 ; // update
572 ; void Sle4442WriteSecurityMem(unsigned char address, unsigned char val)
573
---- 574 RSEG ?PR?_Sle4442WriteSecurityMem?SLE4442
0000 575 _Sle4442WriteSecurityMem:
576 USING 0
577 ; SOURCE LINE # 79
578 ;---- Variable 'val?552' assigned to Register 'R6' ----
0000 CE 579 XCH A,R6
0001 ED 580 MOV A,R5
0002 CE 581 XCH A,R6
582 ;---- Variable 'address?551' assigned to Register 'R7' ----
583 ; {
584 ; SOURCE LINE # 80
585 ; // send command
A51 MACRO ASSEMBLER SLE4442 03/13/2009 15:44:59 PAGE 10
586 ; Sle4442Command(0x39, address, val);
587 ; SOURCE LINE # 82
0003 CD 588 XCH A,R5
0004 EF 589 MOV A,R7
0005 CD 590 XCH A,R5
0006 CF 591 XCH A,R7
0007 EE 592 MOV A,R6
0008 CF 593 XCH A,R7
0009 CB 594 XCH A,R3
000A EF 595 MOV A,R7
000B CB 596 XCH A,R3
000C 7F39 597 MOV R7,#039H
000E 120000 F 598 LCALL _Sle4442Command
599 ; // polling io
600 ; IccSyncPollingIO(50);
601 ; SOURCE LINE # 84
0011 7F32 602 MOV R7,#032H
0013 7E00 603 MOV R6,#00H
0015 020000 F 604 LJMP _IccSyncPollingIO
605 ; END OF _Sle4442WriteSecurityMem
606
607 ; }
608 ;
609 ; // verify
610 ; void Sle4442Verify(unsigned char address, unsigned char val)
611
---- 612 RSEG ?PR?_Sle4442Verify?SLE4442
0000 613 _Sle4442Verify:
614 USING 0
615 ; SOURCE LINE # 88
616 ;---- Variable 'val?654' assigned to Register 'R6' ----
0000 CE 617 XCH A,R6
0001 ED 618 MOV A,R5
0002 CE 619 XCH A,R6
620 ;---- Variable 'address?653' assigned to Register 'R7' ----
621 ; {
622 ; SOURCE LINE # 89
623 ; // send command
624 ; Sle4442Command(0x33, address, val);
625 ; SOURCE LINE # 91
0003 CD 626 XCH A,R5
0004 EF 627 MOV A,R7
0005 CD 628 XCH A,R5
0006 CF 629 XCH A,R7
0007 EE 630 MOV A,R6
0008 CF 631 XCH A,R7
0009 CB 632 XCH A,R3
000A EF 633 MOV A,R7
000B CB 634 XCH A,R3
000C 7F33 635 MOV R7,#033H
000E 120000 F 636 LCALL _Sle4442Command
637 ; // polling io
638 ; IccSyncPollingIO(50);
639 ; SOURCE LINE # 93
0011 7F32 640 MOV R7,#032H
0013 7E00 641 MOV R6,#00H
0015 020000 F 642 LJMP _IccSyncPollingIO
643 ; END OF _Sle4442Verify
644
645 ; }
646 ;
647 ; void Sle4442Command(unsigned char cmd, unsigned char addr, unsigned char da)
648
---- 649 RSEG ?PR?_Sle4442Command?SLE4442
0000 650 _Sle4442Command:
651 USING 0
A51 MACRO ASSEMBLER SLE4442 03/13/2009 15:44:59 PAGE 11
652 ; SOURCE LINE # 96
0000 900000 F 653 MOV DPTR,#cmd?755
0003 EF 654 MOV A,R7
0004 F0 655 MOVX @DPTR,A
0005 A3 656 INC DPTR
0006 ED 657 MOV A,R5
0007 F0 658 MOVX @DPTR,A
0008 A3 659 INC DPTR
0009 EB 660 MOV A,R3
000A F0 661 MOVX @DPTR,A
662 ; {
663 ; SOURCE LINE # 97
664 ; IccSyncStart();
665 ; SOURCE LINE # 98
000B 120000 F 666 LCALL IccSyncStart
667 ; IccSyncPutChar(cmd);
668 ; SOURCE LINE # 99
000E 900000 F 669 MOV DPTR,#cmd?755
0011 E0 670 MOVX A,@DPTR
0012 FF 671 MOV R7,A
0013 120000 F 672 LCALL _IccSyncPutChar
673 ; IccSyncPutChar(addr);
674 ; SOURCE LINE # 100
0016 900000 F 675 MOV DPTR,#addr?756
0019 E0 676 MOVX A,@DPTR
001A FF 677 MOV R7,A
001B 120000 F 678 LCALL _IccSyncPutChar
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?