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

📄 atmel mp3.lst

📁 make mp3 by yourself
💻 LST
字号:
C51 COMPILER V7.06   ATMEL_MP3                                                                       03/21/2006 09:38:04 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE ATMEL_MP3
OBJECT MODULE PLACED IN ATMEL MP3.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ATMEL MP3.C LARGE BROWSE DEBUG OBJECTEXTEND PAGEWIDTH(130) PAGELENGTH(80)

stmt 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          **文   件   名:  ATMEL MP3.C
  11          **创   建   人:  Frank   Wang Xiao Jun
  12          **创 建  日 期:  2003.12
  13          **描        述:  文件系统和MP3歌曲的解码播放代码
  14          **
  15          **--------------历史版本信息----------------------------------------------------------------------------
  16          ** 创建人:      Frank   Wang Xiao Jun
  17          ** 版  本:      V1.00.0
  18          ** 日 期:      2003.12
  19          ** 描 述:  文件系统和MP3歌曲的解码播放代码
  20          **
  21          **------------------------------------------------------------------------------------------------------
  22          ** 修改人:      Kent   Zou Ying
  23          ** 版  本:  V2.00.0
  24          ** 日 期:      2004. 5
  25          ** 描 述:      文件系统和MP3歌曲的解码播放代码
  26          **
  27          **--------------当前版本修订------------------------------------------------------------------------------
  28          ** 修改人:      Phoenix    Hua Yue Guang
  29          ** 版  本:  V3.00.0
  30          ** 日 期:      2005.3
  31          ** 描 述:      文件系统和MP3歌曲的解码播放代码
  32          **
  33          **------------------------------------------------------------------------------------------------------
  34          ********************************************************************************************************/
  35          #include <string.h>
  36          
  37          #define Root_Cluster     (0)
  38          #define Begin_Cluster    (0)                              //MBR所在的簇号
  39          #define Data_Cluster     (1)                              //数据真正开始的扇区
  40          
  41          #define BPB_Sector           (0)
  42          #define Fat_Sector           (BPB_Sector + 1)
  43          #define Directory_Sector (Fat_Sector + 4)
  44          #define End_Cluster              (Disk_Size / 32)
  45          
  46          #define UNUSED_MARK              (0xFF)
  47          #define BAD_MARK                 (0x00)
  48          #define LAST_BLOCK               (0xFFFF)
  49          #define FILE_NO_FOUND    (512)
  50          
  51          #define PagePerClus           32
  52          
  53          #define FAT12            (12)
  54          #define FAT16            (16)
  55          #define FAT32            (32)
  56          
  57          #define K9F_FUN                         P5
  58          #define K9F5608                         0x4000
  59          #define COMMAND                         0x03    
  60          #define ADDRESS                         0x05    
  61          #define D_DATA                          0x01
  62          #define INACTIVE                        0x09    
  63          #define RB                                      0x01
  64          
  65          //数据结构与全局变量定义  
  66          unsigned char Page_Buf[512];
  67          extern unsigned char SONG[];
  68          long int Current_Cluster, DataRead = 0, DataRemain = 0, Sector_Offset = 0x21d;
  69          unsigned int TotalCluster, BootSector, RsdSector, SectorofFatSize, TotalCapacity, RootEntry, SecPerClus;
  70          unsigned int TotalSector, BytesPerSec, FirstDataSec;
  71          unsigned char FAT_TYPE; 
C51 COMPILER V7.06   ATMEL_MP3                                                                       03/21/2006 09:38:04 PAGE 2   

  72          
  73          
  74          int ReadSector(unsigned char *Name, unsigned char *databuff);
  75          unsigned char GetMP3List(void);
  76          void Init_FAT_Info(void);
  77          
  78          extern void ReadPage(unsigned int block, unsigned int page, unsigned char *pPage);
  79          
  80          
  81          void Init_FAT_Info(void)
  82          {
  83   1      /*      得到引导扇区所在扇区号,如果介质是不带分区的,则0扇区就是BootSector了。 */
  84   1              ReadPage(Begin_Cluster, 0, Page_Buf);
  85   1      
  86   1              if (!(Page_Buf[0] == 0xeb && Page_Buf[2] == 0x90))                                        //通过判断EB ?? 90来看是否已经是BPB了
  87   1              {                                                                                                                                         //带分区的介质
  88   2                      
  89   2                      BootSector = Page_Buf[454] + Page_Buf[455] * 256 + Page_Buf[456] * (256 * 256) + Page_Buf[457] * (256 * 256 * 256)
             -;
  90   2              }/*(为什么使用*256呢?因为454,455,456,457这四个是作为一个整体数据来看,这样,就会出现从454到455时的数的进制是25
             -6,
  91   1               454到456时就是256*256了。)*/
  92   1          /*为什么会是从454开始的呢?因为在MBR区中,如果有分区,那么就要从446开始(446开始就是分区信息表了,共四个,每个16
             -个字节,
  93   1           到第八个字节就是该分区的起始绝对分区,是双字)446+8=454了,然后向后四个字节(双字),而引导扇区在第一个分区里

⌨️ 快捷键说明

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