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

📄 main.lst

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


C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.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          /************************************************
  14          函 数 名: InitTimer0()
  15          功    能:初始化Timer0
  16          说    明:
  17          调    用:
  18          全局变量:
  19          入口参数:无
  20          出口参数:无
  21          返 回 值:无
  22          ************************************************/
  23          void InitTimer0(void)
  24          {
  25   1              TMOD = ((TMOD & 0xF0) | 0x01); 
  26   1              TH0 = 0xD8;//0x3C;//CPU_CLK=12MHz, 12/12=1us,Mason@1019
  27   1              TL0 = 0xF0;//0xB0;//count-up to 0xffff and then Interrupt in every 50 ms
  28   1              ET0 = 1; 
  29   1              TR0 = 1;
  30   1      }
  31          /************************************************
  32          函 数 名: InitPort()
  33          功    能:初始化port
  34          说    明:
  35          调    用:
  36          全局变量:
  37          入口参数:无
  38          出口参数:无
  39          返 回 值:无
  40          ************************************************/
  41          void InitPort(void)
  42          {
  43   1              SDSPITIMER = SD_MODE;// enable SD Card reader mode
  44   1              P3DIR = 0xE0;
  45   1      
  46   1      #if TX_DEBUG
  47   1              P1DIR = BIT5;
  48   1      #else
                      P1DIR = 0x00;
              #endif
  51   1              IO_PORT1_0 = 0x10;
  52   1              IO_PORT1_1 = 0x10;
  53   1              IO_PORT1_2 = 0x10;
  54   1              IO_PORT1_3 = 0x10;
  55   1              IO_PORT1_4 = 0x10;
C51 COMPILER V8.08   MAIN                                                                  07/28/2007 11:42:15 PAGE 2   

  56   1      #if !TX_DEBUG
                      IO_PORT1_5 = 0x10;
              #endif
  59   1              IO_PORT1_6 = 0x10;
  60   1              IO_PORT1_7 = 0x10;
  61   1      }
  62          /************************************************
  63          函 数 名: LedFlash()
  64          功    能:LED闪烁
  65          说    明:
  66          调    用:
  67          全局变量:
  68          入口参数:闪烁间隔时间
  69          出口参数:无
  70          返 回 值:无
  71          ************************************************/
  72          void LedFlash(U8 Led_time)
  73          {
  74   1              U8 xdata i = 0;
  75   1              P1_1 = 0;
  76   1              P1DIR |= BIT1;
  77   1              Timer0_Flag = 0;
  78   1              InitTimer0();
  79   1              EA = 1;
  80   1              while(1)
  81   1              {
  82   2                      if(Timer0_Flag)
  83   2                      {
  84   3                              Timer0_Flag = 0;
  85   3                              if(++i >= Led_time)
  86   3                              {
  87   4                                      i = 0;
  88   4                                      P1_1 ^= 1;
  89   4                              }
  90   3                      }
  91   2              }
  92   1      }
  93          /************************************************
  94          函 数 名: CharToLong()
  95          功    能:
  96          说    明:
  97          调    用:
  98          全局变量:
  99          入口参数:
 100          出口参数:无
 101          返 回 值:无
 102          ************************************************/
 103          U32 CharToLong(U8 xdata *p)
 104          {
 105   1              U32 i = 0;
 106   1              i = (U32)*p++;
 107   1              i += (U32)*p++ << 8;
 108   1              i += (U32)*p++ << 16;
 109   1              i += (U32)*p << 24;
 110   1              return i;
 111   1      }
 112          /************************************************
 113          函 数 名: LongToChar()
 114          功    能:
 115          说    明:
 116          调    用:
 117          全局变量:
C51 COMPILER V8.08   MAIN                                                                  07/28/2007 11:42:15 PAGE 3   

 118          入口参数:
 119          出口参数:无
 120          返 回 值:无
 121          ************************************************/
 122          #if TX_DEBUG
 123          void LongToChar(U8 xdata *p, U32 shuju)
 124          {
 125   1              *p++ = (U8)shuju;
 126   1              *p++ = (U8)(shuju >> 8);
 127   1              *p++ = (U8)(shuju >> 16);
 128   1              *p = (U8)(shuju >> 24);
 129   1      }
 130          #endif
 131          /************************************************
 132          函 数 名: IntToChar()
 133          功    能:
 134          说    明:
 135          调    用:
 136          全局变量:
 137          入口参数:
 138          出口参数:无
 139          返 回 值:无
 140          ************************************************/
 141          #if TX_DEBUG
 142          void IntToChar(U8 xdata *p, U16 shuju)
 143          {
 144   1              *p++ = (U8)shuju;
 145   1              *p = (U8)(shuju >> 8);
 146   1      }
 147          #endif
 148          /************************************************
 149          函 数 名: main()
 150          功    能:主函数
 151          说    明:
 152          调    用:
 153          全局变量:
 154          入口参数:无
 155          出口参数:无
 156          返 回 值:无
 157          ************************************************/
 158          void main(void)
 159          {
 160   1              //U32 idata address = 0x100000L,j;
 161   1              //far U8 *p;
 162   1              U8 data i;
 163   1              WTST = 0;// Program Wait States ,for testing Ex_ROM
 164   1              CKCON = 3;// XDATA Wait States
 165   1      
 166   1              InitPort();
 167   1      
 168   1      #if TX_DEBUG
 169   1              I2STXRX = TXD_PIN_EN;//enable TX
 170   1              InitUart();
 171   1      #endif
 172   1              MP3_PrevInit();
 173   1              CLASS_D_VOL_CTL = 0x22;
 174   1              MP3_VOLUME = 0;
 175   1              //InitTimer0();
 176   1      
 177   1              i = 0;
 178   1              if(i)
 179   1              {
C51 COMPILER V8.08   MAIN                                                                  07/28/2007 11:42:15 PAGE 4   

 180   2                      if(!check_nor_flash())
 181   2                      {
 182   3      #if TX_DEBUG
 183   3                              SendChar(0x90);
 184   3      #endif
 185   3                              LedFlash(5);
 186   3                      }
 187   2      
 188   2                      if(!check_sram())
 189   2                      {
 190   3      #if TX_DEBUG
 191   3                              SendChar(0x91);
 192   3      #endif
 193   3                              LedFlash(5);
 194   3                      }
 195   2      //***********************************************
 196   2      
 197   2      //***********************************************
 198   2                
 199   2        //*p = 0;
 200   2        //if(*p)
 201   2                      {
 202   3                              DMA_write_sector(0, 0x06);
 203   3                      }
 204   2              }
 205   1      
 206   1      //      SD_CD = 1;
 207   1      //      P1DIR &= ~BIT7;
 208   1      //      if(!SD_CD)
 209   1              {
 210   2                      SD_SysInit();
 211   2                      if(InitFat())
 212   2                      {
 213   3                              //非FAT格式
 214   3                              LedFlash(50);
 215   3                      }
 216   2                      else
 217   2                      {
 218   3      #if TX_DEBUG
 219   3                              CreateFile();
 220   3                              SendChar(0xD5);
 221   3      #endif
 222   3      
 223   3                              if(CFatData.fFAT32)
 224   3                                      FileData.dwCurCluNo = 0;
 225   3                              FileData.wCurFDBNo = 0;
 226   3                              if(!Forward())
 227   3                              {
 228   4                                      //无MP3文件
 229   4                                      LedFlash(50);
 230   4                              }
 231   3                      }
 232   2              }
 233   1      /*      else
 234   1              {
 235   1      #if TX_DEBUG
 236   1                      SendChar(0x95);
 237   1      #endif
 238   1                      //未插SD卡
 239   1                      LedFlash(50);
 240   1              }*/
 241   1      
C51 COMPILER V8.08   MAIN                                                                  07/28/2007 11:42:15 PAGE 5   

 242   1              varAl.CardDetected = 1;
 243   1              varAl.SystemFlag = 0;
 244   1              mp3_play_status = MP3_IDEL;
 245   1              Timer0_Flag = 0;
 246   1              InitTimer0();
 247   1              EA = 1;
 248   1              allow_mp3_play = 1;
 249   1              while(1)
 250   1              {
 251   2                      if(MP3_ISR_Flag)
 252   2                      {
 253   3                              MP3_ISR_Flag = 0;
 254   3                              MP3_deal();
 255   3                      }
 256   2                      if(Timer0_Flag)
 257   2                      {
 258   3                              Timer0_Flag = 0;
 259   3      #if KEY
 260   3                              GetKey();
 261   3      #endif
 262   3                      }
 263   2      #if KEY
 264   2                      if(varAl.SysKey != NO_VALUE)
 265   2                      {
 266   3                              KeyDeal();
 267   3                              varAl.SysKey = NO_VALUE;
 268   3                      }
 269   2      #endif
 270   2                      MP3_Play_Task();
 271   2              }
 272   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    574    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----       1
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      12
   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 + -