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

📄 f34x_msd_usb_procedure.lst

📁 USB读写SD卡例程
💻 LST
📖 第 1 页 / 共 4 页
字号:
  008D          +1   188     TF0     BIT     TCON.5                 ; Timer0 overflow flag
  008C          +1   189     TR0     BIT     TCON.4                 ; Timer0 on/off control
  008B          +1   190     IE1     BIT     TCON.3                 ; Ext. Interrupt 1 edge flag
A51 MACRO ASSEMBLER  F34X_MSD_USB_PROCEDURE                                               11/28/2006 10:54:46 PAGE     4

  008A          +1   191     IT1     BIT     TCON.2                 ; Ext. Interrupt 1 type
  0089          +1   192     IE0     BIT     TCON.1                 ; Ext. Interrupt 0 edge flag
  0088          +1   193     IT0     BIT     TCON.0                 ; Ext. Interrupt 0 type
                +1   194     
                +1   195     ; SCON0  098H
  009F          +1   196     S0MODE  BIT     SCON0.7                ; Serial mode control bit 0
                +1   197                                            ; Bit 6 unused
  009D          +1   198     MCE0    BIT     SCON0.5                ; Multiprocessor communication enable
  009C          +1   199     REN0    BIT     SCON0.4                ; Receive enable
  009B          +1   200     TB80    BIT     SCON0.3                ; Transmit bit 8
  009A          +1   201     RB80    BIT     SCON0.2                ; Receive bit 8
  0099          +1   202     TI0     BIT     SCON0.1                ; Transmit interrupt flag
  0098          +1   203     RI0     BIT     SCON0.0                ; Receive interrupt flag
                +1   204     
                +1   205     ; IE  0A8H
  00AF          +1   206     EA      BIT     IE.7                   ; Global interrupt enable
  00AE          +1   207     ESPI0   BIT     IE.6                   ; Bit 6 unused
  00AD          +1   208     ET2     BIT     IE.5                   ; Bit 5 unused
  00AC          +1   209     ES0     BIT     IE.4                   ; UART0 interrupt enable
  00AB          +1   210     ET1     BIT     IE.3                   ; Timer1 interrupt enable
  00AA          +1   211     EX1     BIT     IE.2                   ; External interrupt 1 enable
  00A9          +1   212     ET0     BIT     IE.1                   ; Timer0 interrupt enable
  00A8          +1   213     EX0     BIT     IE.0                   ; External interrupt 0 enable
                +1   214     
                +1   215     ; IP  0B8H
                +1   216                                            ; Bit 7 unused
  00BE          +1   217     PSPI0   BIT     IP.6                   ; SPI0 interrupt priority
  00BD          +1   218     PT2     BIT     IP.5                   ; Timer2 priority
  00BC          +1   219     PS0     BIT     IP.4                   ; UART0 priority
  00BB          +1   220     PT1     BIT     IP.3                   ; Timer1 priority
  00BA          +1   221     PX1     BIT     IP.2                   ; External interrupt 1 priority
  00B9          +1   222     PT0     BIT     IP.1                   ; Timer0 priority
  00B8          +1   223     PX0     BIT     IP.0                   ; External interrupt 0 priority
                +1   224     
                +1   225     ; SMB0CN  0C0H
  00C7          +1   226     MASTER  BIT     SMB0CN.7               ; Master/slave indicator
  00C6          +1   227     TXMODE  BIT     SMB0CN.6               ; Transmit mode indicator
  00C5          +1   228     STA     BIT     SMB0CN.5               ; Start flag
  00C4          +1   229     STO     BIT     SMB0CN.4               ; Stop flag
  00C3          +1   230     ACKRQ   BIT     SMB0CN.3               ; Acknowledge request
  00C2          +1   231     ARBLOST BIT     SMB0CN.2               ; Arbitration lost indicator
  00C1          +1   232     ACK     BIT     SMB0CN.1               ; Acknowledge flag
  00C0          +1   233     SI      BIT     SMB0CN.0               ; SMBus interrupt flag
                +1   234     
                +1   235     ; TMR2CN  0C8H
  00CF          +1   236     TF2H    BIT     TMR2CN.7               ; Timer2 high byte overflow flag
  00CE          +1   237     TF2L    BIT     TMR2CN.6               ; Timer2 low byte overflow flag
  00CD          +1   238     TF2LEN  BIT     TMR2CN.5               ; Timer2 low byte interrupt enable
  00CC          +1   239     T2CE    BIT     TMR2CN.4               ; Timer2 capture enable
  00CB          +1   240     T2SPLIT BIT     TMR2CN.3               ; Timer2 split mode enable
  00CA          +1   241     TR2     BIT     TMR2CN.2               ; Timer2 on/off control
  00C9          +1   242     T2CSS   BIT     TMR2CN.1               ; Timer 2 Capture Source select
  00C8          +1   243     T2XCLK  BIT     TMR2CN.0               ; Timer2 external clock select
                +1   244     
                +1   245     ; PSW  0D0H
  00D7          +1   246     CY      BIT     PSW.7                  ; Carry flag
  00D6          +1   247     AC      BIT     PSW.6                  ; Auxiliary carry flag
  00D5          +1   248     F0      BIT     PSW.5                  ; User flag 0
  00D4          +1   249     RS1     BIT     PSW.4                  ; Register bank select 1
  00D3          +1   250     RS0     BIT     PSW.3                  ; Register bank select 0
  00D2          +1   251     OV      BIT     PSW.2                  ; Overflow flag
  00D1          +1   252     F1      BIT     PSW.1                  ; User flag 1
  00D0          +1   253     P       BIT     PSW.0                  ; Accumulator parity flag
                +1   254     
                +1   255     ; PCA0CN  0D8H
  00DF          +1   256     CF      BIT     PCA0CN.7               ; PCA0 counter overflow flag
A51 MACRO ASSEMBLER  F34X_MSD_USB_PROCEDURE                                               11/28/2006 10:54:46 PAGE     5

  00DE          +1   257     CR      BIT     PCA0CN.6               ; PCA0 counter run control
                +1   258                                            ; Bit5 UNUSED
  00DC          +1   259     CCF4    BIT     PCA0CN.4               ; PCA0 module4 capture/compare flag
  00DB          +1   260     CCF3    BIT     PCA0CN.3               ; PCA0 module3 capture/compare flag
  00DA          +1   261     CCF2    BIT     PCA0CN.2               ; PCA0 module2 capture/compare flag
  00D9          +1   262     CCF1    BIT     PCA0CN.1               ; PCA0 module1 capture/compare flag
  00D8          +1   263     CCF0    BIT     PCA0CN.0               ; PCA0 module0 capture/compare flag
                +1   264     
                +1   265     ; ADC0CN  0E8H
  00EF          +1   266     AD0EN   BIT     ADC0CN.7               ; ADC0 enable
  00EE          +1   267     AD0TM   BIT     ADC0CN.6               ; ADC0 track mode
  00ED          +1   268     AD0INT  BIT     ADC0CN.5               ; ADC0 converision complete interrupt flag
  00EC          +1   269     AD0BUSY BIT     ADC0CN.4               ; ADC0 busy flag
  00EB          +1   270     AD0WINT BIT     ADC0CN.3               ; ADC0 window compare interrupt flag
  00EA          +1   271     AD0CM2  BIT     ADC0CN.2               ; ADC0 conversion mode select 2
  00E9          +1   272     AD0CM1  BIT     ADC0CN.1               ; ADC0 conversion mode select 1
  00E8          +1   273     AD0CM0  BIT     ADC0CN.0               ; ADC0 conversion mode select 0
                +1   274     
                +1   275     ; SPI0CN  0F8H
  00FF          +1   276     SPIF    BIT     SPI0CN.7               ; SPI0 interrupt flag
  00FE          +1   277     WCOL    BIT     SPI0CN.6               ; SPI0 write collision flag
  00FD          +1   278     MODF    BIT     SPI0CN.5               ; SPI0 mode fault flag
  00FC          +1   279     RXOVRN  BIT     SPI0CN.4               ; SPI0 rx overrun flag
  00FB          +1   280     NSSMD1  BIT     SPI0CN.3               ; SPI0 slave select mode 1
  00FA          +1   281     NSSMD0  BIT     SPI0CN.2               ; SPI0 slave select mode 0
  00F9          +1   282     TXBMT   BIT     SPI0CN.1               ; SPI0 transmit buffer empty
  00F8          +1   283     SPIEN   BIT     SPI0CN.0               ; SPI0 SPI enable
                +1   284     
                +1   285     ;------------------------------------------------------------------------------
                +1   286     ; End Of File
                +1   287     ;------------------------------------------------------------------------------
                     288     
                     289     USB_PROCEDURE SEGMENT CODE
----                 290     RSEG USB_PROCEDURE
                     291     
                     292     PUBLIC  _?Fifo_Write
                     293     PUBLIC  _Fifo_Read
                     294     
0000                 295     _?Fifo_Write:
                     296     ;R1,R2,R3 - buffer address
                     297     ;R7 - endpoint address
                     298     ;R4,R5 - LENGTH OF BUFFER
                     299     
0000                 300     BEGIN_WAIT_ON_USB:
                     301             
0000 E596            302                     MOV             A,USB0ADR
0002 20E7FB          303                     JB              ACC.7,BEGIN_WAIT_ON_USB
0005 8F96            304                     MOV             USB0ADR,R7
                     305     
0007 EB              306                     MOV             A,R3
0008 6024            307                     JZ              COPY_IDATA
000A B40139          308                     CJNE    a,#0x01,COPY_CODE
                     309             
000D 8A83            310                     MOV             DPH,R2
000F 8982            311                     MOV             DPL,R1
                     312     
0011                 313     XDATA_WRITE_COPY_LABEL:
                     314     
0011 ED              315                     MOV             A,R5
0012 1D              316                     DEC             R5
0013 7006            317                     JNZ             XDATA_WRITE_DATA        
0015 7DFF            318                     MOV             r5,#0xff
0017 EC              319                     MOV             A,R4                    
0018 6013            320                     JZ              XDATA_FINISH_COPY 
001A 1C              321                     DEC             R4      
                     322     
A51 MACRO ASSEMBLER  F34X_MSD_USB_PROCEDURE                                               11/28/2006 10:54:46 PAGE     6

001B                 323     XDATA_WRITE_DATA:
                     324                                     
001B E596            325                     MOV             A,USB0ADR
001D 20E7FB          326                     JB              ACC.7,XDATA_WRITE_DATA
                     327                     
0020 E0              328                     MOVX    A,@DPTR
0021 F597            329                     MOV   USB0DAT,A 
                     330     
0023 0582            331                     INC             DPL
0025 E582            332                     MOV             A,DPL
0027 7002            333                     JNZ             XDATA_NO_DPH
0029 0583            334                     INC             DPH
                     335     
002B                 336     XDATA_NO_DPH:
                     337             
002B 80E4            338                     SJMP    XDATA_WRITE_COPY_LABEL
                     339     
002D                 340     XDATA_FINISH_COPY:
                     341     
002D 22              342                     RET
                     343     
                     344     
                     345     ;/////////////////////////////
                     346     ;// COPY DATA FROM IDATA
                     347     ;/////////////////////////////  
                     348     
002E                 349     COPY_IDATA:
                     350             
002E E9              351                     MOV     A,R1
002F F8              352                     MOV     R0,A ; R0 - POINTER TO DATA DDDRESS
                     353     
0030                 354     IDATA_WRITE_COPY_LABEL:
                     355             
0030 ED              356                     MOV             A,R5
0031 1D              357                     DEC             R5
0032 7006            358                     JNZ             IDATA_WRITE_DATA        
0034 7DFF            359                     MOV             r5,#0xff
0036 EC              360                     MOV             A,R4                    
0037 600C            361                     JZ              IDATA_FINISH_COPY 
0039 1C              362                     DEC             R4      
                     363     
003A                 364     IDATA_WRITE_DATA:
                     365                                     
003A E596            366                     MOV             A,USB0ADR
003C 20E7FB          367                     JB              ACC.7,IDATA_WRITE_DATA
                     368                     
003F E6              369                     MOV             A,@R0
0040 F597            370                     MOV   USB0DAT,A 
                     371     
0042 08              372                     INC             R0
                     373             
0043 80EB            374                     SJMP    IDATA_WRITE_COPY_LABEL
                     375     
0045                 376     IDATA_FINISH_COPY:
                     377     
0045 22              378                     RET
                     379     
                     380     ;////////////////////////////////
                     381     ;///    copy from code segment

⌨️ 快捷键说明

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