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

📄 upsd_usb.ls1

📁 ST公司的upsd34XX评估板固定源程序
💻 LS1
📖 第 1 页 / 共 5 页
字号:
000D 9408            839             SUBB    A,#08H
000F EC              840             MOV     A,R4
0010 6480            841             XRL     A,#080H
0012 9480            842             SUBB    A,#080H
0014 4005            843             JC      ?C0015
0016 750008   F      844             MOV     xBytes?444,#08H
0019 8002            845             SJMP    ?C0016
001B                 846     ?C0015:
001B 8D00     F      847             MOV     xBytes?444,R5
001D                 848     ?C0016:
                     849     ; 
A51 MACRO ASSEMBLER  UPSD_USB                                                             10/15/2004 20:55:31 PAGE    14

                     850     ;                        // Disable endpoint, set DATA0/1 sequence bit and FIFO size
                     851     ;   #pragma asm
                     852     ;               xrl    UCON0,#uTSEQ0                            ;toggle TSEQ bit
001D 63EA80          853               xrl    UCON0,#0x80                            ;toggle TSEQ bit
                     854     ;               anl    UCON0,#(uTSEQ0+uRX0E)
0020 53EA90          855               anl    UCON0,#(0x80+0x10)
                     856     ;   #pragma endasm
                     857     ;   UCON0 |=xBytes;                            // set FIFO size
                     858                             ; SOURCE LINE # 304
0023 E500     F      859             MOV     A,xBytes?444
0025 42EA            860             ORL     UCON0,A
0027                 861     ?C0017:
                     862     ; 
                     863     ;   while (xBytes--)
                     864                             ; SOURCE LINE # 306
0027 AF00     F      865             MOV     R7,xBytes?444
0029 1500     F      866             DEC     xBytes?444
002B EF              867             MOV     A,R7
002C 6017            868             JZ      ?C0018
                     869     ;    {
                     870                             ; SOURCE LINE # 307
                     871     ;     UDT0 = *pData++;                         // Load data into FIFO
                     872                             ; SOURCE LINE # 308
002E 900000   F      873             MOV     DPTR,#pData?442
0031 E0              874             MOVX    A,@DPTR
0032 FB              875             MOV     R3,A
0033 A3              876             INC     DPTR
0034 E4              877             CLR     A
0035 75F001          878             MOV     B,#01H
0038 120000   F      879             LCALL   ?C?ILDIX
003B A9F0            880             MOV     R1,B
003D FA              881             MOV     R2,A
003E 120000   F      882             LCALL   ?C?CLDPTR
0041 F5E7            883             MOV     UDT0,A
                     884     ;    }
                     885                             ; SOURCE LINE # 309
0043 80E2            886             SJMP    ?C0017
0045                 887     ?C0018:
                     888     ;   UCON0 |= uTX0E;                            // Enable endpoint
                     889                             ; SOURCE LINE # 310
0045 43EA20          890             ORL     UCON0,#020H
                     891     ;  }
                     892                             ; SOURCE LINE # 311
0048 22              893             RET     
                     894     ; END OF _TransmitDataEP0
                     895     
                     896     ; 
                     897     ; 
                     898     ; 
                     899     ; 
                     900     ; 
                     901     ; 
                     902     ; 
                     903     ; void TransmitDataEPx(int x, uchar* pData, int nBytes)
                     904     
----                 905             RSEG  ?PR?_TransmitDataEPx?UPSD_USB
0000                 906     _TransmitDataEPx:
                     907             USING   0
                     908                             ; SOURCE LINE # 319
0000 900000   F      909             MOV     DPTR,#pData?546
0003 EB              910             MOV     A,R3
0004 F0              911             MOVX    @DPTR,A
0005 A3              912             INC     DPTR
0006 EA              913             MOV     A,R2
0007 F0              914             MOVX    @DPTR,A
0008 A3              915             INC     DPTR
A51 MACRO ASSEMBLER  UPSD_USB                                                             10/15/2004 20:55:31 PAGE    15

0009 E9              916             MOV     A,R1
000A F0              917             MOVX    @DPTR,A
                     918     ;---- Variable 'x?545' assigned to Register 'R6/R7' ----
                     919     ; /******************************************************************************
                     920     ;  Function   : void TransmitDataEPx()
                     921     ;  Parameters : (int x, uchar* pData, int nBytes)
                     922     ;  Description: Loads EP1 or EP2 transmit FIFO.
                     923     ;               Caller must then clear FIFO status flag (uTXD1F) to arm endpoint.
                     924     ;  ******************************************************************************/
                     925     ;  {
                     926                             ; SOURCE LINE # 326
                     927     ; 
                     928     ;   data unsigned char xBytes;
                     929     ; 
                     930     ;   if (nBytes > 8)  xBytes = 8; else xBytes = nBytes;
                     931                             ; SOURCE LINE # 330
000B D3              932             SETB    C
000C 900000   F      933             MOV     DPTR,#nBytes?547+01H
000F E0              934             MOVX    A,@DPTR
0010 9408            935             SUBB    A,#08H
0012 900000   F      936             MOV     DPTR,#nBytes?547
0015 E0              937             MOVX    A,@DPTR
0016 6480            938             XRL     A,#080H
0018 9480            939             SUBB    A,#080H
001A 4005            940             JC      ?C0020
001C 750008   F      941             MOV     xBytes?548,#08H
001F 8006            942             SJMP    ?C0021
0021                 943     ?C0020:
0021 900000   F      944             MOV     DPTR,#nBytes?547+01H
0024 E0              945             MOVX    A,@DPTR
0025 F500     F      946             MOV     xBytes?548,A
0027                 947     ?C0021:
                     948     ;   // Disable endpoint, set DATA0/1 sequence bit, endpoint selection, and FIFO size
                     949     ;   UCON1 &= ~uEP12SEL;                        //mask
                     950                             ; SOURCE LINE # 332
0027 53EBBF          951             ANL     UCON1,#0BFH
                     952     ;   UCON1 |= ((x == 2) ? uEP12SEL : 0);        //set endpoint
                     953                             ; SOURCE LINE # 333
002A EF              954             MOV     A,R7
002B 6402            955             XRL     A,#02H
002D 4E              956             ORL     A,R6
002E 7004            957             JNZ     ?C0022
0030 7F40            958             MOV     R7,#040H
0032 8002            959             SJMP    ?C0023
0034                 960     ?C0022:
0034 7F00            961             MOV     R7,#00H
0036                 962     ?C0023:
0036 EF              963             MOV     A,R7
0037 42EB            964             ORL     UCON1,A
                     965     ;   UCON1 &= uTSEQ1+uEP12SEL;                  //mask
                     966                             ; SOURCE LINE # 334
0039 53EBC0          967             ANL     UCON1,#0C0H
                     968     ;   UCON1 ^= uTSEQ1;                           //toggle DATAx bit
                     969                             ; SOURCE LINE # 335
003C 63EB80          970             XRL     UCON1,#080H
                     971     ;   UCON1 |= xBytes;                           //set FIFO size
                     972                             ; SOURCE LINE # 336
003F E500     F      973             MOV     A,xBytes?548
0041 42EB            974             ORL     UCON1,A
0043                 975     ?C0024:
                     976     ;   while (nBytes--)
                     977                             ; SOURCE LINE # 337
0043 900000   F      978             MOV     DPTR,#nBytes?547
0046 74FF            979             MOV     A,#0FFH
0048 F5F0            980             MOV     B,A
004A 120000   F      981             LCALL   ?C?ILDIX
A51 MACRO ASSEMBLER  UPSD_USB                                                             10/15/2004 20:55:31 PAGE    16

004D 45F0            982             ORL     A,B
004F 6017            983             JZ      ?C0025
                     984     ;    {
                     985                             ; SOURCE LINE # 338
                     986     ;     UDT1 = *pData++;                         // Load data into FIFO
                     987                             ; SOURCE LINE # 339
0051 900000   F      988             MOV     DPTR,#pData?546
0054 E0              989             MOVX    A,@DPTR
0055 FB              990             MOV     R3,A
0056 A3              991             INC     DPTR
0057 E4              992             CLR     A
0058 75F001          993             MOV     B,#01H
005B 120000   F      994             LCALL   ?C?ILDIX
005E A9F0            995             MOV     R1,B
0060 FA              996             MOV     R2,A
0061 120000   F      997             LCALL   ?C?CLDPTR
0064 F5E6            998             MOV     UDT1,A
                     999     ;    }
                    1000                             ; SOURCE LINE # 340
0066 80DB           1001             SJMP    ?C0024
0068                1002     ?C0025:
                    1003     ;   UCON1 |= uTX1E;                            // Enable endpoint
                    1004                             ; SOURCE LINE # 341
0068 43EB20         1005             ORL     UCON1,#020H
                    1006     ;   UIEN  |= uTXD1IE;                          // enable INT
                    1007                             ; SOURCE LINE # 342
006B 43E904         1008             ORL     UIEN,#04H
                    1009     ;  }
                    1010                             ; SOURCE LINE # 343
006E 22             1011             RET     
                    1012     ; END OF _TransmitDataEPx
                    1013     
                    1014     ; 
                    1015     ; 
                    1016     ; 
                    1017     ; 
                    1018     ; 
                    1019     ; 
                    1020     ; 
                    1021     ; 
                    1022     ; 
                    1023     ; 
                    1024     ; 
                    1025     ; 
                    1026     ; 
                    1027     ; 
                    1028     ; 
                    1029     ; 
                    1030     ; 
                    1031     ; 
                    1032     ; 
                    1033     ; 
                    1034     ; //the following function changed on April 30, 2004
                    1035     ; 
                    1036     ; static void OnGetStatus()
                    1037     
----                1038             RSEG  ?PR?OnGetStatus?UPSD_USB
0000                1039     OnGetStatus:
                    1040             USING   0
                    1041                             ; SOURCE LINE # 366
                    1042     ; /******************************************************************************
                    1043     ;  Function   : static void OnGetStatus()
                    1044     ;  Parameters : none
                    1045     ;  Description: Handler for GET_STATUS control requests.
                    1046     ;  ******************************************************************************/
                    1047     ;  {
A51 MACRO ASSEMBLER  UPSD_USB                                                             10/15/2004 20:55:31 PAGE    17

                    1048                             ; SOUR

⌨️ 快捷键说明

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