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

📄 common.lst

📁 51环境下的FAT及FAT32文件系统源码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 159      =1  #define SCON_RXINT 0x1
 160      =1  #define SCON_TXINT 0x2
 161      =1  // SPI control 0
 162      =1  #define SPI_LSB    0x1
 163      =1  #define SPI_CPOL   0x2
 164      =1  #define SPI_CPHA   0x4
 165      =1  #define SPI_MST    0x8
 166      =1  #define SPI_TIE    0x10
 167      =1  #define SPI_RIE    0x20
 168      =1  #define SPI_EN     0x40
 169      =1  #define SPI_SSOEN  0x80
 170      =1  // SPI control 1
 171      =1  #define SPI_3M     0x0
 172      =1  #define SPI_1P5M   0x1
 173      =1  #define SPI_750K   0x2
 174      =1  #define SPI_375K   0x3
C51 COMPILER V8.02   COMMON                                                                09/19/2006 15:01:23 PAGE 6   

 175      =1  #define SPI_188K   0x4
 176      =1  #define SPI_94K    0x5
 177      =1  #define SPI_47K    0x6
 178      =1  #define SPI_23K    0x7 
 179      =1  // SPI status
 180      =1  #define SPI_SPTEF  0x1
 181      =1  #define SPI_RRDY   0x2
 182      =1  #define SPI_WERR   0x4
 183      =1  #define SPI_RERR   0x8
 184      =1  // SD control
 185      =1  #define SD_64B     0x0
 186      =1  #define SD_128B    0x1
 187      =1  #define SD_256B    0x2
 188      =1  #define SD_512B    0x3
 189      =1  #define SD_WR      0x40
 190      =1  #define SD_EN      0x80
 191      =1  // SD status 0
 192      =1  
 193      =1  // SD status 1
 194      =1  #define SD_SDERR   0x1
 195      =1  #define SD_SDINT   0x2
 196      =1  #define SD_CMDEND  0x4
 197      =1  
 198      =1  #define SD_DETECT  0x4
 199      =1  
 200      =1  // Buffer Control
 201      =1  #ifdef OLD_CHIP
 202      =1          #define MCU2MP3    0x03
 203      =1          #define USB2MP3    0x13
 204      =1  #else
           =1         #define MCU2MP3    0x02
           =1     #define USB2MP3    0x12
           =1 #endif
 208      =1  #define USB2MCU    0x10
 209      =1  #define MCU2USB    0x01
 210      =1  #define USBFLSH    0x14
 211      =1  
 212      =1  // function prototypes
 213      =1  unsigned short WordSwap(unsigned short input);
 214      =1  void DelayMs(unsigned int nFactor);
 215      =1  void DelayUs(unsigned char nFactor);
 216      =1  unsigned long SwapINT32(unsigned long dData);
 217      =1  unsigned char SendUart(unsigned char *pUsrBuf, unsigned int num);
 218      =1  
 219      =1  
 220      =1  
   3          
   4          #ifndef COMPILE_LIGHT
   5          #ifdef DEBUG_LIGHT
              void light (  char partten1, char  partten2, UINT16 trans, UINT16  time)
              {
                  UINT16 i;
                      for ( i=0; i<time; i++ )
                      {
                          DelayMs(trans);
                              P0 = partten1;
                              DelayMs(trans);
                              P0 = partten2;
                      }
              
              }
              #endif
C51 COMPILER V8.02   COMMON                                                                09/19/2006 15:01:23 PAGE 7   

  19          
  20          #ifndef DEBUG_LIGHT
  21          #ifdef FAT32OR16_LIGHT
              void light (  char partten1, char  partten2, UINT16 trans, UINT16  time)
              {
                  UINT16 i;
                      for ( i=0; i<time; i++ )
                      {
                          DelayMs(trans);
                              P0 = partten1;
                              DelayMs(trans);
                              P0 = partten2;
                      }
              
              }
              #endif
  35          #endif
  36          #endif //COMPILE_LIGHT
  37          
  38          #ifdef COMPILE_LIGHT
              void light (  char partten1, char  partten2, UINT16 trans, UINT16  time)
              {
                  UINT16 i;
                      for ( i=0; i<time; i++ )
                      {
                          DelayMs(trans);
                              P0 = partten1;
                              DelayMs(trans);
                              P0 = partten2;
                      }
              
              }
              #endif
  52          
  53          unsigned short WordSwap(unsigned short input)
  54          {
  55   1              return(((input&0x00FF)<<8)|((input&0xFF00)>>8));
  56   1      }
  57          
  58          void DelayMs(unsigned int nFactor)
  59          {
  60   1              unsigned int data i;
  61   1              unsigned int data j;
  62   1      
  63   1              for(i=0; i<nFactor; i++)        
  64   1              {
  65   2                      for(j=0;j<140;j++)
  66   2                                j=j;
  67   2              }
  68   1      }
  69          
  70          void DelayUs(unsigned char nFactor)
  71          {
  72   1              unsigned char data i;
  73   1              unsigned char data j;
  74   1      
  75   1              j = nFactor >> 2;        // divide by 4
  76   1              for(i=0; i<j; i++)
  77   1                                j=j;
  78   1      }
  79          
  80          unsigned long SwapINT32(unsigned long dData)
C51 COMPILER V8.02   COMMON                                                                09/19/2006 15:01:23 PAGE 8   

  81          {
  82   1          dData = (dData&0xff)<<24|(dData&0xff00)<<8|(dData&0xff000000)>>24|(dData&0xff0000)>>8;
  83   1              return dData;
  84   1      }
  85          
  86          unsigned char SendUart(unsigned char *pUsrBuf, unsigned int num)
  87          {
  88   1        unsigned int i;
  89   1        unsigned char *ptr;
  90   1      
  91   1        ptr = pUsrBuf;
  92   1      
  93   1        for (i=0;i<num;i++)
  94   1        {
  95   2              SBUF = *ptr;
  96   2              while(!(SCON & SCON_TXINT));  // wait till tx done
  97   2      
  98   2      //      SCON = SCON_FAST;
  99   2              ptr++;
 100   2        }
 101   1      
 102   1        return(1);
 103   1      }
 104          
 105          /*void mp3_dreq(void) interrupt 0 using 2
 106          {
 107            //  get data only if storage device attached
 108            if (bXXGFlags.bits.SLAVE_IS_ATTACHED)
 109            {
 110              // set IN_ISR flag
 111                  bXXGFlags.bits.bIN_ISR=0;
 112                  
 113              // call sector transfer
 114                  bXXGFlags.bits.bUartInDone=SectorXfer();
 115                  bXXGFlags.bits.bIN_ISR=0;
 116            }
 117          }
 118          */  
 119          /*
 120          void xint(void) interrupt 0 using 2
 121          {
 122          //set or clear usb device flag
 123           
 124          }*/
 125          
C51 COMPILER V8.02   COMMON                                                                09/19/2006 15:01:23 PAGE 9   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _WordSwap (BEGIN)
                                           ; SOURCE LINE # 53
;---- Variable 'input' assigned to Register 'R4/R5' ----
                                           ; SOURCE LINE # 54
                                           ; SOURCE LINE # 55
0000 EF                MOV     A,R7
0001 FA                MOV     R2,A
0002 EE                MOV     A,R6
0003 FF                MOV     R7,A
0004 EA                MOV     A,R2
0005 FE                MOV     R6,A
                                           ; SOURCE LINE # 56
0006         ?C0001:
0006 22                RET     
             ; FUNCTION _WordSwap (END)

             ; FUNCTION _DelayMs (BEGIN)
                                           ; SOURCE LINE # 58
;---- Variable 'nFactor' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 59
                                           ; SOURCE LINE # 63
0000 E4                CLR     A
0001 F500        R     MOV     i,A
0003 F500        R     MOV     i+01H,A
0005         ?C0002:
0005 C3                CLR     C
0006 E500        R     MOV     A,i+01H
0008 9F                SUBB    A,R7
0009 E500        R     MOV     A,i
000B 9E                SUBB    A,R6
000C 5026              JNC     ?C0008
                                           ; SOURCE LINE # 64
                                           ; SOURCE LINE # 65
000E E4                CLR     A
000F F500        R     MOV     j,A
0011 F500        R     MOV     j+01H,A
0013         ?C0005:
                                           ; SOURCE LINE # 66
0013 850000      R     MOV     j,j
0016 850000      R     MOV     j+01H,j+01H
0019 0500        R     INC     j+01H
001B E500        R     MOV     A,j+01H
001D 7002              JNZ     ?C0020
001F 0500        R     INC     j
0021         ?C0020:
0021 C3                CLR     C
0022 948C              SUBB    A,#08CH
0024 E500        R     MOV     A,j
0026 9400              SUBB    A,#00H
0028 40E9              JC      ?C0005
                                           ; SOURCE LINE # 67
002A         ?C0004:
002A 0500        R     INC     i+01H
002C E500        R     MOV     A,i+01H
002E 70D5              JNZ     ?C0002
0030 0500        R     INC     i
0032         ?C0021:
0032 80D1              SJMP    ?C0002
                                           ; SOURCE LINE # 68
C51 COMPILER V8.02   COMMON                                                                09/19/2006 15:01:23 PAGE 10  

0034         ?C0008:
0034 22                RET     
             ; FUNCTION _DelayMs (END)

             ; FUNCTION _DelayUs (BEGIN)
                                           ; SOURCE LINE # 70
;---- Variable 'nFactor' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 71
                                           ; SOURCE LINE # 75
0000 EF                MOV     A,R7
0001 13                RRC     A
0002 13                RRC     A
0003 543F              ANL     A,#03FH
0005 F500        R     MOV     j,A
                                           ; SOURCE LINE # 76
0007 E4                CLR     A
0008 F500        R     MOV     i,A
000A         ?C0009:
000A E500        R     MOV     A,i
000C C3                CLR     C
000D 9500        R     SUBB    A,j
000F 5007              JNC     ?C0012
                                           ; SOURCE LINE # 77
0011 850000      R     MOV     j,j
0014 0500        R     INC     i
0016 80F2              SJMP    ?C0009
                                           ; SOURCE LINE # 78
0018         ?C0012:
0018 22                RET     
             ; FUNCTION _DelayUs (END)

             ; FUNCTION _SwapINT32 (BEGIN)
                                           ; SOURCE LINE # 80
0000 900000      R     MOV     DPTR,#dData
0003 120000      E     LCALL   ?C?LSTXDATA
                                           ; SOURCE LINE # 81
                                           ; SOURCE LINE # 82
0006 900000      R     MOV     DPTR,#dData
0009 A3                INC     DPTR
000A A3                INC     DPTR
000B E0                MOVX    A,@DPTR
000C FE                MOV     R6,A
000D A3                INC     DPTR
000E E4                CLR     A
000F FF                MOV     R7,A
0010 E4                CLR     A
0011 FD                MOV     R5,A

⌨️ 快捷键说明

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