⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mifare1.ls1

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 LS1
📖 第 1 页 / 共 5 页
字号:
                     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 + -