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

📄 fw.ls1

📁 提供了usb接口fx2芯片的编程。从io输入到后来的差分信号输出。都给了详细的例子
💻 LS1
📖 第 1 页 / 共 5 页
字号:
                     827                             ; SOURCE LINE # 231
                     828     ;                case GD_DEVICE:            // Device
                     829                             ; SOURCE LINE # 232
004E                 830     ?C0025:
                     831     ;                   SUDPTRH = MSB(pDeviceDscr);
                     832                             ; SOURCE LINE # 233
004E E500     F      833             MOV     A,pDeviceDscr
0050 900000   F      834             MOV     DPTR,#SUDPTRH
0053 F0              835             MOVX    @DPTR,A
                     836     ;                   SUDPTRL = LSB(pDeviceDscr);
                     837                             ; SOURCE LINE # 234
0054 E500     F      838             MOV     A,pDeviceDscr+01H
                     839     ;                   break;
                     840                             ; SOURCE LINE # 235
0056 8037            841             SJMP    ?C0075
                     842     ;                case GD_DEVICE_QUALIFIER:            // Device Qualifier
                     843                             ; SOURCE LINE # 236
0058                 844     ?C0026:
                     845     ;                   SUDPTRH = MSB(pDeviceQualDscr);
A51 MACRO ASSEMBLER  FW                                                                   12/29/2005 11:19:53 PAGE    14

                     846                             ; SOURCE LINE # 237
0058 E500     F      847             MOV     A,pDeviceQualDscr
005A 900000   F      848             MOV     DPTR,#SUDPTRH
005D F0              849             MOVX    @DPTR,A
                     850     ;                   SUDPTRL = LSB(pDeviceQualDscr);
                     851                             ; SOURCE LINE # 238
005E E500     F      852             MOV     A,pDeviceQualDscr+01H
0060                 853     ?C0072:
                     854     ;                   break;
                     855                             ; SOURCE LINE # 239
0060 802D            856             SJMP    ?C0075
                     857     ;                case GD_CONFIGURATION:         // Configuration
                     858                             ; SOURCE LINE # 240
0062                 859     ?C0027:
                     860     ;                   SUDPTRH = MSB(pConfigDscr);
                     861                             ; SOURCE LINE # 241
0062 E500     F      862             MOV     A,pConfigDscr
0064 900000   F      863             MOV     DPTR,#SUDPTRH
0067 F0              864             MOVX    @DPTR,A
                     865     ;                   SUDPTRL = LSB(pConfigDscr);
                     866                             ; SOURCE LINE # 242
0068 E500     F      867             MOV     A,pConfigDscr+01H
006A                 868     ?C0073:
                     869     ;                   break;
                     870                             ; SOURCE LINE # 243
006A 8023            871             SJMP    ?C0075
                     872     ;                case GD_OTHER_SPEED_CONFIGURATION:  // Other Speed Configuration
                     873                             ; SOURCE LINE # 244
006C                 874     ?C0028:
                     875     ;                   SUDPTRH = MSB(pOtherConfigDscr);
                     876                             ; SOURCE LINE # 245
006C E500     F      877             MOV     A,pOtherConfigDscr
006E 900000   F      878             MOV     DPTR,#SUDPTRH
0071 F0              879             MOVX    @DPTR,A
                     880     ;                   SUDPTRL = LSB(pOtherConfigDscr);
                     881                             ; SOURCE LINE # 246
0072 E500     F      882             MOV     A,pOtherConfigDscr+01H
0074                 883     ?C0074:
                     884     ;                   break;
                     885                             ; SOURCE LINE # 247
0074 8019            886             SJMP    ?C0075
                     887     ;                case GD_STRING:            // String
                     888                             ; SOURCE LINE # 248
0076                 889     ?C0029:
                     890     ;                   if(dscr_ptr = (void *)EZUSB_GetStringDscr(SETUPDAT[2]))
                     891                             ; SOURCE LINE # 249
0076 900000   F      892             MOV     DPTR,#SETUPDAT+02H
0079 E0              893             MOVX    A,@DPTR
007A FF              894             MOV     R7,A
007B 120000   F      895             LCALL   _EZUSB_GetStringDscr
007E AA06            896             MOV     R2,AR6
0080 A907            897             MOV     R1,AR7
0082 7B01            898             MOV     R3,#01H
                     899     ;---- Variable 'dscr_ptr?146' assigned to Register 'R1/R2/R3' ----
0084 EA              900             MOV     A,R2
0085 49              901             ORL     A,R1
0086 4B              902             ORL     A,R3
0087 600D            903             JZ      ?C0076
                     904     ;                   {
                     905                             ; SOURCE LINE # 250
                     906     ;                      SUDPTRH = MSB(dscr_ptr);
                     907                             ; SOURCE LINE # 251
0089 EE              908             MOV     A,R6
008A 900000   F      909             MOV     DPTR,#SUDPTRH
008D F0              910             MOVX    @DPTR,A
                     911     ;                      SUDPTRL = LSB(dscr_ptr);
A51 MACRO ASSEMBLER  FW                                                                   12/29/2005 11:19:53 PAGE    15

                     912                             ; SOURCE LINE # 252
008E EF              913             MOV     A,R7
008F                 914     ?C0075:
008F 900000   F      915             MOV     DPTR,#SUDPTRL
0092 F0              916             MOVX    @DPTR,A
                     917     ;                   }
                     918                             ; SOURCE LINE # 253
0093 020000   F      919             LJMP    ?C0021
                     920     ;                   else 
                     921     ;                      EZUSB_STALL_EP0();   // Stall End Point 0
                     922     ;                   break;
                     923     ;                default:            // Invalid request
                     924                             ; SOURCE LINE # 257
0096                 925     ?C0032:
                     926     ;                   EZUSB_STALL_EP0();      // Stall End Point 0
                     927                             ; SOURCE LINE # 258
0096                 928     ?C0076:
                     929     ;             }
                     930                             ; SOURCE LINE # 259
                     931     ;          break;
                     932                             ; SOURCE LINE # 260
0096 020000   F      933             LJMP    ?C0083
                     934     ;       case SC_GET_INTERFACE:                  // *** Get Interface
                     935                             ; SOURCE LINE # 261
0099                 936     ?C0033:
                     937     ;          DR_GetInterface();
                     938                             ; SOURCE LINE # 262
0099 120000   F      939             LCALL   DR_GetInterface
                     940     ;          break;
                     941                             ; SOURCE LINE # 263
009C 020000   F      942             LJMP    ?C0021
                     943     ;       case SC_SET_INTERFACE:                  // *** Set Interface
                     944                             ; SOURCE LINE # 264
009F                 945     ?C0034:
                     946     ;          DR_SetInterface();
                     947                             ; SOURCE LINE # 265
009F 120000   F      948             LCALL   DR_SetInterface
                     949     ;          break;
                     950                             ; SOURCE LINE # 266
00A2 020000   F      951             LJMP    ?C0021
                     952     ;       case SC_SET_CONFIGURATION:               // *** Set Configuration
                     953                             ; SOURCE LINE # 267
00A5                 954     ?C0035:
                     955     ;          DR_SetConfiguration();
                     956                             ; SOURCE LINE # 268
00A5 120000   F      957             LCALL   DR_SetConfiguration
                     958     ;          break;
                     959                             ; SOURCE LINE # 269
00A8 020000   F      960             LJMP    ?C0021
                     961     ;       case SC_GET_CONFIGURATION:               // *** Get Configuration
                     962                             ; SOURCE LINE # 270
00AB                 963     ?C0036:
                     964     ;          DR_GetConfiguration();
                     965                             ; SOURCE LINE # 271
00AB 120000   F      966             LCALL   DR_GetConfiguration
                     967     ;          break;
                     968                             ; SOURCE LINE # 272
00AE 020000   F      969             LJMP    ?C0021
                     970     ;       case SC_GET_STATUS:                  // *** Get Status
                     971                             ; SOURCE LINE # 273
00B1                 972     ?C0037:
                     973     ;          if(DR_GetStatus())
                     974                             ; SOURCE LINE # 274
00B1 120000   F      975             LCALL   DR_GetStatus
00B4 4003            976             JC      $ + 5H
00B6 020000   F      977             LJMP    ?C0021
A51 MACRO ASSEMBLER  FW                                                                   12/29/2005 11:19:53 PAGE    16

                     978     ;             switch(SETUPDAT[0])
                     979                             ; SOURCE LINE # 275
00B9 900000   F      980             MOV     DPTR,#SETUPDAT
00BC E0              981             MOVX    A,@DPTR
00BD 247F            982             ADD     A,#07FH
00BF 6015            983             JZ      ?C0041
00C1 14              984             DEC     A
00C2 6019            985             JZ      ?C0042
00C4 2402            986             ADD     A,#02H
00C6 7063            987             JNZ     ?C0045
                     988     ;             {
                     989                             ; SOURCE LINE # 276
                     990     ;                case GS_DEVICE:            // Device
                     991                             ; SOURCE LINE # 277
00C8                 992     ?C0040:
                     993     ;                   EP0BUF[0] = ((BYTE)Rwuen << 1) | (BYTE)Selfpwr;
                     994                             ; SOURCE LINE # 278
00C8 A200     F      995             MOV     C,Rwuen
00CA E4              996             CLR     A
00CB 33              997             RLC     A
00CC 25E0            998             ADD     A,ACC
00CE FF              999             MOV     R7,A
00CF A200     F     1000             MOV     C,Selfpwr
00D1 E4             1001             CLR     A
00D2 33             1002             RLC     A
00D3 4F             1003             ORL     A,R7
                    1004     ;                   EP0BUF[1] = 0;
                    1005                             ; SOURCE LINE # 279
                    1006     ;                   EP0BCH = 0;
                    1007                             ; SOURCE LINE # 280
                    1008     ;                   EP0BCL = 2;
                    1009                             ; SOURCE LINE # 281
                    1010     ;                   break;
                    1011                             ; SOURCE LINE # 282
00D4 8041           1012             SJMP    ?C0078
                    1013     ;                case GS_INTERFACE:         // Interface
                    1014                             ; SOURCE LINE # 283
00D6                1015     ?C0041:
                    1016     ;                   EP0BUF[0] = 0;
                    1017                             ; SOURCE LINE # 284
00D6 E4             1018             CLR     A
00D7 900000   F     1019             MOV     DPTR,#EP0BUF
00DA F0             1020             MOVX    @DPTR,A
                    1021     ;                   EP0BUF[1] = 0;
                    1022                             ; SOURCE LINE # 285
                    1023     ;                   EP0BCH = 0;
                    1024                             ; SOURCE LINE # 286
                    1025     ;                   EP0BCL = 2;
                    1026                             ; SOURCE LINE # 287
                    1027     ;                   break;
                    1028                             ; SOURCE LINE # 288
00DB 803F           1029             SJMP    ?C0079
                    1030     ;                case GS_ENDPOINT:         // End Point
                    1031                             ; SOURCE LINE # 289
00DD                1032     ?C0042:
                    1033

⌨️ 快捷键说明

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