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

📄 mp3.lst

📁 mp3播放器
💻 LST
字号:
C51 COMPILER V8.08   MP3                                                                   07/28/2007 11:42:16 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MP3
OBJECT MODULE PLACED IN mp3.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE mp3.c OMF2 OPTIMIZE(6,SPEED) BROWSE VARBANKING DEBUG

line level    source

   1          #include "dp8051.h"
   2          #include "config.h"
   3          #include "absacc.h"
   4          #include "constant.h"
   5          #include "variable.h"
   6          #include "function.h"
   7          #include "sdhost.h"
   8          #include "sssmp3_regs.h"
   9          #include "fat.h"
  10          #include "mp3_appl.h"
  11          //***********************************************
  12          //***********************************************
  13          /*code void (*MusicMode_table[])() = 
  14          {
  15            MP3EQU_Normal,
  16            MP3EQU_Rock,
  17            MP3EQU_Jazz,
  18            MP3EQU_Classic,
  19            MP3EQU_Pop
  20          };*/
  21          /************************************************
  22          函 数 名: MP3EQU_Normal()
  23          功    能:正常
  24          说    明:
  25          调    用:
  26          全局变量:
  27          入口参数:无
  28          出口参数:无
  29          返 回 值:无
  30          ************************************************/
  31          void MP3EQU_Normal(void)
  32          {
  33   1        MP3_EQBAND060 = 0x1F;
  34   1        MP3_EQBAND170 = 0x1F;
  35   1        MP3_EQBAND310 = 0x1F;
  36   1        MP3_EQBAND600 = 0x1F;
  37   1        MP3_EQBAND01K = 0x1F;
  38   1        MP3_EQBAND03K = 0x1F;
  39   1        MP3_EQBAND06K = 0x1F;
  40   1        MP3_EQBAND12K = 0x1F;
  41   1        MP3_EQBAND14K = 0x1F;
  42   1        MP3_EQBAND16K = 0x1F;
  43   1      }
  44          /************************************************
  45          函 数 名: MP3EQU_Rock()
  46          功    能:摇滚
  47          说    明:
  48          调    用:
  49          全局变量:
  50          入口参数:无
  51          出口参数:无
  52          返 回 值:无
  53          ************************************************/
  54          void MP3EQU_Rock(void)
  55          {
C51 COMPILER V8.08   MP3                                                                   07/28/2007 11:42:16 PAGE 2   

  56   1        MP3_EQBAND060 = 0x17;
  57   1        MP3_EQBAND170 = 0x1A;
  58   1        MP3_EQBAND310 = 0x25;
  59   1        MP3_EQBAND600 = 0x28;
  60   1        MP3_EQBAND01K = 0x23;
  61   1        MP3_EQBAND03K = 0x1C;
  62   1        MP3_EQBAND06K = 0x13;
  63   1        MP3_EQBAND12K = 0x0F;
  64   1        MP3_EQBAND14K = 0x0F;
  65   1        MP3_EQBAND16K = 0x0F;
  66   1      }
  67          /************************************************
  68          函 数 名: MP3EQU_Jazz()
  69          功    能:爵士
  70          说    明:
  71          调    用:
  72          全局变量:
  73          入口参数:无
  74          出口参数:无
  75          返 回 值:无
  76          ************************************************/
  77          void MP3EQU_Jazz(void)
  78          {
  79   1        MP3_EQBAND060 = 0x1F;
  80   1        MP3_EQBAND170 = 0x1F;
  81   1        MP3_EQBAND310 = 0x1C;
  82   1        MP3_EQBAND600 = 0x1C;
  83   1        MP3_EQBAND01K = 0x1C;
  84   1        MP3_EQBAND03K = 0x1E;
  85   1        MP3_EQBAND06K = 0x1C;
  86   1        MP3_EQBAND12K = 0x1A;
  87   1        MP3_EQBAND14K = 0x19;
  88   1        MP3_EQBAND16K = 0x17;
  89   1      }
  90          /************************************************
  91          函 数 名: MP3EQU_Classic()
  92          功    能:经典
  93          说    明:
  94          调    用:
  95          全局变量:
  96          入口参数:无
  97          出口参数:无
  98          返 回 值:无
  99          ************************************************/
 100          void MP3EQU_Classic(void)
 101          {
 102   1        MP3_EQBAND060 = 0x1F;
 103   1        MP3_EQBAND170 = 0x1F;
 104   1        MP3_EQBAND310 = 0x1F;
 105   1        MP3_EQBAND600 = 0x1F;
 106   1        MP3_EQBAND01K = 0x1F;
 107   1        MP3_EQBAND03K = 0x1F;
 108   1        MP3_EQBAND06K = 0x14;
 109   1        MP3_EQBAND12K = 0x14;
 110   1        MP3_EQBAND14K = 0x14;
 111   1        MP3_EQBAND16K = 0x30;
 112   1      }
 113          /************************************************
 114          函 数 名: MP3EQU_Pop()
 115          功    能:流行
 116          说    明:
 117          调    用:
C51 COMPILER V8.08   MP3                                                                   07/28/2007 11:42:16 PAGE 3   

 118          全局变量:
 119          入口参数:无
 120          出口参数:无
 121          返 回 值:无
 122          ************************************************/
 123          void MP3EQU_Pop(void)
 124          {
 125   1        MP3_EQBAND060 = 0x23;
 126   1        MP3_EQBAND170 = 0x1C;
 127   1        MP3_EQBAND310 = 0x17;
 128   1        MP3_EQBAND600 = 0x15;
 129   1        MP3_EQBAND01K = 0x17;
 130   1        MP3_EQBAND03K = 0x23;
 131   1        MP3_EQBAND06K = 0x25;
 132   1        MP3_EQBAND12K = 0x25;
 133   1        MP3_EQBAND14K = 0x25;
 134   1        MP3_EQBAND16K = 0x25;
 135   1      }
 136          /************************************************
 137          函 数 名: MP3_MusicPlayMode()
 138          功    能:MP3
 139          说    明:
 140          调    用:
 141          全局变量:
 142          入口参数:无
 143          出口参数:无
 144          返 回 值:无
 145          ************************************************/
 146          void MP3_MusicPlayMode(void)
 147          {
 148   1        varAl.MusicMode++;
 149   1        if(varAl.MusicMode == 0xFF)
 150   1          varAl.MusicMode = 0;
 151   1        //MusicMode_table[varAl.MusicMode % 5]();
 152   1        switch(varAl.MusicMode % 5)
 153   1        {
 154   2        case 0x00:
 155   2          MP3EQU_Normal();
 156   2          break;
 157   2        case 0x01:
 158   2          MP3EQU_Rock();
 159   2          break;
 160   2        case 0x02:
 161   2          MP3EQU_Jazz();
 162   2          break;
 163   2        case 0x03:
 164   2          MP3EQU_Classic();
 165   2          break;
 166   2        case 0x04:
 167   2          MP3EQU_Pop();
 168   2          break;
 169   2        }
 170   1      }
 171          /************************************************
 172          函 数 名: MP3_PrevInit()
 173          功    能:MP3
 174          说    明:
 175          调    用:
 176          全局变量:
 177          入口参数:无
 178          出口参数:无
 179          返 回 值:无
C51 COMPILER V8.08   MP3                                                                   07/28/2007 11:42:16 PAGE 4   

 180          ************************************************/
 181          void MP3_PrevInit(void)
 182          {
 183   1        //MP3_ISR_Flag = 0;
 184   1        CLASS_D_DAC_CTL = (SUSPEND | PAUSE);// suspend & Mute Class-D
 185   1        EIE = 0x00;// Disable INT3 
 186   1        MP3_INT_CLR = 0x3F; 
 187   1        MP3_INT_EN = 0x00;// 
 188   1                         
 189   1        MP3_SWReset();   
 190   1        MP3_ISR_Flag = 0;
 191   1      }
 192          /************************************************
 193          函 数 名: MP3_SWReset()
 194          功    能:MP3
 195          说    明:
 196          调    用:
 197          全局变量:
 198          入口参数:无
 199          出口参数:无
 200          返 回 值:无
 201          ************************************************/
 202          void MP3_SWReset(void)
 203          {
 204   1        MP3_CTL |= (MP3_CLR | MUTE);//软件复位MP3解码器
 205   1        MP3_FIFOCTL = 0x00; // PCM_output FIFO Disable
 206   1        MP3_I2S_CTL = 0x00;
 207   1        MP3_DMACTL = DMA_CLR;// DMA is not ready
 208   1        //MP3_VOLUME = 31;     // 0 -> No volume gain, 31 -> Max value for volume gain
 209   1        MP3_DMACTL = 0x00; // DMA is not ready 
 210   1      }
 211          /************************************************
 212          函 数 名: MP3_Init()
 213          功    能:MP3
 214          说    明:
 215          调    用:
 216          全局变量:
 217          入口参数:无
 218          出口参数:无
 219          返 回 值:无
 220          ************************************************/
 221          void MP3_Init(void)
 222          {
 223   1        MP3_DMASTART0700_LEFT = 0x00; // in MP3 0x0 Byte  
 224   1        MP3_DMASTART1508_LEFT = 0x00;  
 225   1        MP3_DMALEN0700_LEFT = 0xFF;  // in MP3
 226   1        MP3_DMALEN1508_LEFT = 0x01; // -> 0x0 ~ 0x01FF= 512 Bytes
 227   1        MP3_CTL = STEREO | L_ENDIAN; // Bit5->Stero mode, Bit4->Little Endian,MP3 mode
 228   1      }
 229          /************************************************
 230          函 数 名: MP3_INT_Enable()
 231          功    能:MP3
 232          说    明:
 233          调    用:
 234          全局变量:
 235          入口参数:无
 236          出口参数:无
 237          返 回 值:无
 238          ************************************************/
 239          void MP3_INT_Enable(void)
 240          {
 241   1        // set-up INT3
C51 COMPILER V8.08   MP3                                                                   07/28/2007 11:42:16 PAGE 5   

 242   1        MP3_INT_EN = 0x7F;    // -> move to before _getkey()
 243   1        MP3_INT_MASK = 0x3F; 
 244   1        MP3_DMACTL = DMA_READY_L;  // set left DMA is ready 
 245   1        MP3_FIFOCTL = FIFO_EN;  // PCM_output FIFO enable -> Must first enable it for playback WAVE file
 246   1        MP3_I2S_RATE = 0x07;
 247   1        MP3_I2S_DUTY = 0x04;
 248   1        MP3_I2S_CTL = 0x00; // for Class-D in Parallel Mode
 249   1        EIP = 0x02;
 250   1        EIE = 0x02;  // enable INT3
 251   1      }
 252          /************************************************
 253          函 数 名: MP3_ActiveFAT()
 254          功    能:MP3
 255          说    明:
 256          调    用:
 257          全局变量:
 258          入口参数:无
 259          出口参数:无
 260          返 回 值:无
 261          ************************************************/
 262          void MP3_ActiveFAT(void)
 263          {
 264   1        FileData.dwMovedDataToBuffSizeCNT = 0;
 265   1        MP3_Init();
 266   1        
 267   1        CLASS_D_DAC_CTL &= 0xF0;
 268   1        MP3_ISR_Flag = 0;
 269   1        tmpINT3 = 0;
 270   1        varAl.SystemFlag &= ~(END_FILEADDR_FLAG);
 271   1        MP3_INT_Enable();
 272   1      }
 273          /************************************************
 274          函 数 名: MP3_Play_Task()
 275          功    能:MP3
 276          说    明:
 277          调    用:
 278          全局变量:
 279          入口参数:无
 280          出口参数:无
 281          返 回 值:无
 282          ************************************************/
 283          void MP3_Play_Task(void)
 284          {
 285   1        switch(mp3_play_status)
 286   1        {
 287   2        case MP3_IDEL:
 288   2          if(allow_mp3_play)
 289   2              {
 290   3                mp3_play_status = MP3_INIT;
 291   3              }
 292   2          break;
 293   2        case MP3_INIT:
 294   2          FileData.dwCurSecLba = 0;
 295   2              MP3_PrevInit();
 296   2              ReadSector(FileData.dwCurSecLba++,0x05);
 297   2              ReadSector(FileData.dwCurSecLba++,0x06);
 298   2              MP3_ActiveFAT();
 299   2              FileData.dwMovedDataToBuffSizeCNT += CFatData.wBytesPerSec;
 300   2          mp3_play_status = MP3_PLAY;
 301   2          break;
 302   2        case MP3_PLAY:
 303   2          if(varAl.SystemFlag & END_FILEADDR_FLAG)
C51 COMPILER V8.08   MP3                                                                   07/28/2007 11:42:16 PAGE 6   

 304   2              {
 305   3                mp3_play_status = MP3_NEXT;
 306   3              }
 307   2          break;
 308   2        case MP3_PREVIOUS:
 309   2          MP3_PrevInit();
 310   2              if(!Backward())
 311   2              {
 312   3                FileData.wCurFDBNo = 0;
 313   3            mp3_play_status = MP3_NEXT;
 314   3          }
 315   2          mp3_play_status = MP3_IDEL;
 316   2          break;
 317   2        case MP3_NEXT:
 318   2          MP3_PrevInit();
 319   2          if(CFatData.fFAT32)
 320   2          {
 321   3            if(++FileData.wCurFDBNo >= (U16)CFatData.bSectorsPerClu * CFatData.wBytesPerSec / DIREntrySize)
 322   3                {
 323   4                  FileData.wCurFDBNo = 0;
 324   4                      if(++FileData.dwCurCluNo >= FileData.RootDirNum)
 325   4                        FileData.dwCurCluNo = 0;
 326   4                }
 327   3          }
 328   2          else
 329   2          {
 330   3                if(++FileData.wCurFDBNo >= (U16)FileData.RootDirNum)
 331   3                  FileData.wCurFDBNo = 0;
 332   3          }
 333   2              if(Forward())
 334   2                mp3_play_status = MP3_IDEL;
 335   2          break;
 336   2        }
 337   1      }
 338          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    684    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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