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

📄 main.lst

📁 在C51上 mp3 开发程序 32M MP3 MP3功能的测试源码
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  03/07/2005 09:36:39 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE MAIN.C LARGE ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          /*********************************************************************************************************
   3          **                                        
   4          **                                  MP3 and U Disk Source Code
   5          **                           Copyright (c) 2005,北京博创兴业科技有限公司
   6          **                                      All Rights Reserved
   7          **                                           V3.00.0
   8          **
   9          **--------------文件信息--------------------------------------------------------------------------------
  10          **文   件   名:  MAIN.C
  11          **创   建   人:  Frank   Wang Xiao Jun
  12          **创 建  日 期:  2003.12
  13          **描        述:  ATMEL AT89C51SND1 U盘和MP3播放功能的主函数
  14          **
  15          **--------------历史版本信息----------------------------------------------------------------------------
  16          ** 创建人:      Frank   Wang Xiao Jun
  17          ** 版  本:      V1.00.0
  18          ** 日 期:      2003.12
  19          ** 描 述:  ATMEL AT89C51SND1 U盘和MP3播放功能的主函数
  20          **
  21          **------------------------------------------------------------------------------------------------------
  22          ** 修改人:      Kent   Zou Ying
  23          ** 版  本:  V2.00.0
  24          ** 日 期:      2004.5
  25          ** 描 述:      ATMEL AT89C51SND1 U盘和MP3播放功能的主函数
  26          **
  27          **--------------当前版本修订------------------------------------------------------------------------------
  28          ** 修改人:      Phoenix    Hua Yue Guang
  29          ** 版  本:  V3.00.0
  30          ** 日 期:      2005.3
  31          ** 描 述:      ATMEL AT89C51SND1 U盘和MP3播放功能的主函数
  32          **
  33          **------------------------------------------------------------------------------------------------------
  34          ********************************************************************************************************/
  35          #include "REGSND1.H"
  36          #include "UART.H"
  37          /** 宏定义USB端点中断的标志位 **/
  38          #define         EP2             (0x1<<2)                      
  39          #define         EP1             (0x1<<1)
  40          #define         EP0             (0x1<<0)
  41          
  42          #define     EKB             (0x10)
  43          /** 宏定义MP3播放功能的标志位 **/
  44          #define SELECTSONG      3
  45          #define PLAY            1
  46          #define STOP            0
  47          /** 声明外部函数 **/
  48          extern void AtmelUSBInit();
  49          extern void EpEnable();
  50          extern void Ep0();
  51          extern void main_txdone();
  52          extern void main_rxdone();
  53          extern void Flash_Reset(void);
  54          
  55          extern void MP3_Init();
C51 COMPILER V7.50   MAIN                                                                  03/07/2005 09:36:39 PAGE 2   

  56          extern void PlayInit(unsigned char *SongName);
  57          extern unsigned char GetMP3List(void);
  58          
  59          extern void Func();
  60          extern void Next();
  61          extern void Previous();
  62          extern void PlayPause();
  63          extern void PlayMP3(unsigned char *SongName);
  64          extern void KeyBoardInit();
  65          
  66          /** 定义MP3播放相关的变量 **/
  67          unsigned char SONG[88] = {'M', 'O', 'O', 'N', ' ', ' ', ' ', ' ', 'T', 'X', 'T'};
  68          unsigned char data CurrentFun = SELECTSONG;
  69          unsigned char data PlayState = STOP;
  70          unsigned char data NowPlaying = 0;
  71          unsigned char data NumofSong = 0;
  72          unsigned char data MP3InitFlag;
  73          
  74          
  75          void key_interrupt() interrupt 11
  76          {
  77   1                      unsigned char i = 200;
  78   1                      EA = 0;                                                              //关中断    
  79   1                      IEN1 &= (~EKB);                                              //Enable KeyBoard Interrupt
  80   1      
  81   1                      while (i)
  82   1                      {
  83   2                              i--;
  84   2                      }
  85   1      
  86   1                      i = KBSTA;                                                           //取键盘中断位
  87   1                      switch (i)
  88   1                      {                                                                    //依次处理四个键中的某个键
  89   2                              case 1 : Func(); break;                                                                  //被按下时的情况
  90   2                              case 2 : Next(); break;
  91   2                              case 4 : Previous(); break;
  92   2                              case 8 : PlayPause(); break;
  93   2                              default : break;
  94   2                      }
  95   1                      IEN1 |= EKB;                                                  //Enable KeyBoard Interrupt
  96   1                      
  97   1                      EA = 1;                                                           //开中断
  98   1                      return;
  99   1      }
 100          
 101          void main()
 102          {
 103   1              printu(">>>> UP-TECH MP3 USB Disk V3.00 <<<<\n");
 104   1              CKCON|=0x01;   //使能该单片机的X2模式
 105   1              Flash_Reset();                                                                                           //Flash 芯片复位
 106   1      /*      if(P3_4)                                                                                                 //此引脚为USB接入检测端
 107   1                {                                                                                                                      //在此将设备做为U盘处理
 108   1                   printu("Entering USB Mode...\n");                           //输出进入U盘功能的信息
 109   1                   AtmelUSBInit();                                                                             //USB寄存器配置函数
 110   1                   EpEnable();                                                                                         //使能有关USB的配置
 111   1                   while(1)
 112   1                    {
 113   1                       if (UEPINT & EP0)   Ep0();
 114   1                       if (UEPINT & EP1)   main_txdone(); 
 115   1                       if (UEPINT & EP2)       main_rxdone();
 116   1                        
 117   1                               UEPINT=0;
C51 COMPILER V7.50   MAIN                                                                  03/07/2005 09:36:39 PAGE 3   

 118   1                    }
 119   1                }
 120   1              else    */                                                                                                       //进入MP3播放模式
 121   1                {
 122   2                      printu("Entering MP3 Mode...\n"); 
 123   2                  MP3_Init();                                                  //MP3初始化
 124   2                      KeyBoardInit();                                              //键盘初始化
 125   2      
 126   2                      MP3InitFlag = 1;
 127   2                      EA = 1;                                                      //开中断,键盘可以开始工作
 128   2                      P3_5 = 0;                                                    //打开USB灯亮      
 129   2      
 130   2                      NumofSong = GetMP3List();                                    //得到U盘中的MP3歌曲列表
 131   2                      printuf("Song:%x\n", NumofSong);                             //输出歌曲总数信息
 132   2                      if(NumofSong == 0) 
 133   2                      {
 134   3                         printu("There is no MP3 file in USB Disk!\n");
 135   3                         P3_5 = 1;                                                 //关闭指示LED       
 136   3                      }
 137   2      
 138   2                      while(1) 
 139   2                      {
 140   3                              if(NumofSong != 0)
 141   3                              {
 142   4                                      if(MP3InitFlag)
 143   4                                      {
 144   5                                              PlayInit(&SONG[11 * NowPlaying]);
 145   5                                              MP3InitFlag = 0;
 146   5                                      }
 147   4                                      PlayMP3(&SONG[11 * NowPlaying]);                     //如果处于播放状态,则播放当前歌曲
 148   4                              }
 149   3                              if(NowPlaying == NumofSong) 
 150   3                              {
 151   4                                      PlayState = STOP;                                                //全部歌曲播放完了,播放器停止
 152   4      //                              NowPlaying = 0;                                      //循环播放  
 153   4                              }
 154   3                              P3_5 =~P3_5;                                             //指示LED闪烁
 155   3                      } 
 156   2                
 157   2                }
 158   1      
 159   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    236    ----
   CONSTANT SIZE    =    104    ----
   XDATA SIZE       =     88    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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