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

📄 sle4442.ls1

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 LS1
📖 第 1 页 / 共 4 页
字号:
0003 05              221             DB      005H
                     222     
                     223     ; /****************************************
                     224     ;  * sle4442.c                            *
                     225     ;  * functions for sle4442 card           *
                     226     ;  * designed by liulixun                 *
                     227     ;  * last update: 05-18-2007              *
                     228     ;  ****************************************/
                     229     ; 
                     230     ; #include "..\inc\includes.h"
                     231     ; 
                     232     ; // read main memory
                     233     ; int Sle4442ReadMainMem(unsigned char address, unsigned char *buf)
                     234     
----                 235             RSEG  ?PR?_Sle4442ReadMainMem?SLE4442
0000                 236     _Sle4442ReadMainMem:
                     237             USING   0
                     238                             ; SOURCE LINE # 11
0000 900000   F      239             MOV     DPTR,#buf?041
0003 EB              240             MOV     A,R3
0004 F0              241             MOVX    @DPTR,A
0005 A3              242             INC     DPTR
0006 EA              243             MOV     A,R2
0007 F0              244             MOVX    @DPTR,A
0008 A3              245             INC     DPTR
0009 E9              246             MOV     A,R1
000A F0              247             MOVX    @DPTR,A
000B 900000   F      248             MOV     DPTR,#address?040
000E EF              249             MOV     A,R7
000F F0              250             MOVX    @DPTR,A
0010 FD              251             MOV     R5,A
                     252     ; {
                     253                             ; SOURCE LINE # 12
                     254     ;     unsigned int i;
                     255     ;     
A51 MACRO ASSEMBLER  SLE4442                                                              03/13/2009 15:44:59 PAGE     5

                     256     ;     // send command and address
                     257     ;     Sle4442Command(0x30, address, 0x00);
                     258                             ; SOURCE LINE # 16
0011 E4              259             CLR     A
0012 FB              260             MOV     R3,A
0013 7F30            261             MOV     R7,#030H
0015 120000   F      262             LCALL   _Sle4442Command
                     263     ;     // read data
                     264     ;     for(i=0; i<256-address; i++)
                     265                             ; SOURCE LINE # 18
0018 E4              266             CLR     A
0019 900000   F      267             MOV     DPTR,#i?042
001C F0              268             MOVX    @DPTR,A
001D A3              269             INC     DPTR
001E F0              270             MOVX    @DPTR,A
001F                 271     ?C0001:
001F 900000   F      272             MOV     DPTR,#address?040
0022 E0              273             MOVX    A,@DPTR
0023 FF              274             MOV     R7,A
0024 C3              275             CLR     C
0025 E4              276             CLR     A
0026 9F              277             SUBB    A,R7
0027 FF              278             MOV     R7,A
0028 7401            279             MOV     A,#01H
002A 9400            280             SUBB    A,#00H
002C FE              281             MOV     R6,A
002D C3              282             CLR     C
002E 900000   F      283             MOV     DPTR,#i?042+01H
0031 E0              284             MOVX    A,@DPTR
0032 9F              285             SUBB    A,R7
0033 900000   F      286             MOV     DPTR,#i?042
0036 E0              287             MOVX    A,@DPTR
0037 9E              288             SUBB    A,R6
0038 502B            289             JNC     ?C0002
                     290     ;     {
                     291                             ; SOURCE LINE # 19
                     292     ;         buf[i] = IccSyncGetChar();
                     293                             ; SOURCE LINE # 20
003A 120000   F      294             LCALL   IccSyncGetChar
003D 900000   F      295             MOV     DPTR,#buf?041
0040 E0              296             MOVX    A,@DPTR
0041 FB              297             MOV     R3,A
0042 A3              298             INC     DPTR
0043 E0              299             MOVX    A,@DPTR
0044 FA              300             MOV     R2,A
0045 A3              301             INC     DPTR
0046 E0              302             MOVX    A,@DPTR
0047 F9              303             MOV     R1,A
0048 A3              304             INC     DPTR
0049 E0              305             MOVX    A,@DPTR
004A FC              306             MOV     R4,A
004B A3              307             INC     DPTR
004C E0              308             MOVX    A,@DPTR
004D F582            309             MOV     DPL,A
004F 8C83            310             MOV     DPH,R4
0051 EF              311             MOV     A,R7
0052 120000   F      312             LCALL   ?C?CSTOPTR
                     313     ;     }
                     314                             ; SOURCE LINE # 21
0055 900000   F      315             MOV     DPTR,#i?042+01H
0058 E0              316             MOVX    A,@DPTR
0059 04              317             INC     A
005A F0              318             MOVX    @DPTR,A
005B 70C2            319             JNZ     ?C0001
005D 900000   F      320             MOV     DPTR,#i?042
0060 E0              321             MOVX    A,@DPTR
A51 MACRO ASSEMBLER  SLE4442                                                              03/13/2009 15:44:59 PAGE     6

0061 04              322             INC     A
0062 F0              323             MOVX    @DPTR,A
0063                 324     ?C0018:
0063 80BA            325             SJMP    ?C0001
0065                 326     ?C0002:
                     327     ;     // send another clock puls
                     328     ;     IccSyncClock();
                     329                             ; SOURCE LINE # 23
0065 120000   F      330             LCALL   IccSyncClock
                     331     ;     
                     332     ;     return i;
                     333                             ; SOURCE LINE # 25
0068 900000   F      334             MOV     DPTR,#i?042
006B E0              335             MOVX    A,@DPTR
006C FE              336             MOV     R6,A
006D A3              337             INC     DPTR
006E E0              338             MOVX    A,@DPTR
006F FF              339             MOV     R7,A
                     340     ; }
                     341                             ; SOURCE LINE # 26
0070                 342     ?C0004:
0070 22              343             RET     
                     344     ; END OF _Sle4442ReadMainMem
                     345     
                     346     ; 
                     347     ; // update main memory
                     348     ; void Sle4442WriteMainMem(unsigned char address, unsigned char val)
                     349     
----                 350             RSEG  ?PR?_Sle4442WriteMainMem?SLE4442
0000                 351     _Sle4442WriteMainMem:
                     352             USING   0
                     353                             ; SOURCE LINE # 29
                     354     ;---- Variable 'val?144' assigned to Register 'R6' ----
0000 CE              355             XCH     A,R6
0001 ED              356             MOV     A,R5
0002 CE              357             XCH     A,R6
                     358     ;---- Variable 'address?143' assigned to Register 'R7' ----
                     359     ; {
                     360                             ; SOURCE LINE # 30
                     361     ;     // send command
                     362     ;     Sle4442Command(0x38, address, val);
                     363                             ; SOURCE LINE # 32
0003 CD              364             XCH     A,R5
0004 EF              365             MOV     A,R7
0005 CD              366             XCH     A,R5
0006 CF              367             XCH     A,R7
0007 EE              368             MOV     A,R6
0008 CF              369             XCH     A,R7
0009 CB              370             XCH     A,R3
000A EF              371             MOV     A,R7
000B CB              372             XCH     A,R3
000C 7F38            373             MOV     R7,#038H
000E 120000   F      374             LCALL   _Sle4442Command
                     375     ;     // polling io
                     376     ;     IccSyncPollingIO(50);
                     377                             ; SOURCE LINE # 34
0011 7F32            378             MOV     R7,#032H
0013 7E00            379             MOV     R6,#00H
0015 020000   F      380             LJMP    _IccSyncPollingIO
                     381     ; END OF _Sle4442WriteMainMem
                     382     
                     383     ; }
                     384     ; 
                     385     ; // read 4 bytes protect memory
                     386     ; void Sle4442ReadProtectMem(unsigned char *buf)
                     387     
A51 MACRO ASSEMBLER  SLE4442                                                              03/13/2009 15:44:59 PAGE     7

----                 388             RSEG  ?PR?_Sle4442ReadProtectMem?SLE4442
0000                 389     _Sle4442ReadProtectMem:
                     390             USING   0
                     391                             ; SOURCE LINE # 38
0000 900000   F      392             MOV     DPTR,#buf?245
0003 EB              393             MOV     A,R3
0004 F0              394             MOVX    @DPTR,A
0005 A3              395             INC     DPTR
0006 EA              396             MOV     A,R2
0007 F0              397             MOVX    @DPTR,A
0008 A3              398             INC     DPTR
0009 E9              399             MOV     A,R1
000A F0              400             MOVX    @DPTR,A
                     401     ; {
                     402                             ; SOURCE LINE # 39
                     403     ;     unsigned char ci;
                     404     ;     
                     405     ;     // send command
                     406     ;     Sle4442Command(0x34, 0x00, 0x00);
                     407                             ; SOURCE LINE # 43
000B E4              408             CLR     A
000C FB              409             MOV     R3,A
000D FD              410             MOV     R5,A
000E 7F34            411             MOV     R7,#034H
0010 120000   F      412             LCALL   _Sle4442Command
                     413     ;     // read data
                     414     ;     for(ci=0; ci<4; ci++)
                     415                             ; SOURCE LINE # 45
0013 E4              416             CLR     A
0014 900000   F      417             MOV     DPTR,#ci?246
0017 F0              418             MOVX    @DPTR,A
0018                 419     ?C0006:
                     420     ;     {
                     421                             ; SOURCE LINE # 46
                     422     ;         buf[ci] = IccSyncGetChar();
                     423                             ; SOURCE LINE # 47
0018 120000   F      424             LCALL   IccSyncGetChar
001B 900000   F      425             MOV     DPTR,#buf?245
001E E0              426             MOVX    A,@DPTR
001F FB              427             MOV     R3,A
0020 A3              428             INC     DPTR
0021 E0              429             MOVX    A,@DPTR
0022 FA              430             MOV     R2,A
0023 A3              431             INC     DPTR
0024 E0              432             MOVX    A,@DPTR
0025 F9              433             MOV     R1,A
0026 A3              434             INC     DPTR
0027 E0              435             MOVX    A,@DPTR
0028 F582            436             MOV     DPL,A
002A 758300          437             MOV     DPH,#00H
002D EF              438             MOV     A,R7
002E 120000   F      439             LCALL   ?C?CSTOPTR
                     440     ;     }
                     441                             ; SOURCE LINE # 48
0031 900000   F      442             MOV     DPTR,#ci?246
0034 E0              443             MOVX    A,@DPTR
0035 04              444             INC     A
0036 F0              445             MOVX    @DPTR,A
0037 E0              446             MOVX    A,@DPTR
0038 C3              447             CLR     C
0039 9404            448             SUBB    A,#04H
003B 40DB            449             JC      ?C0006
003D                 450     ?C0007:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -