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

📄 cdrom_drv.lst

📁 atmel at89c51snd1c mp3芯片方案源码
💻 LST
字号:
C51 COMPILER V7.50   CDROM_DRV                                                             02/16/2009 09:59:53 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE CDROM_DRV
OBJECT MODULE PLACED IN cdrom_drv.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE lib_mcu\cdrom\cdrom_drv.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\cdrom_drv
                    -.lst) OBJECT(cdrom_drv.obj)

line level    source

   1          #include "config.h"                         /* system definition */
   2          #include "cdrom_drv.h"
   3          #include "lib_mcu\clock\clock.h"
   4          #include "lib_mcu\lcd\lcd_drv.h" 
   5          #include "lib_mcu\ide\ide_drv.h"
   6          #include "modules\display\disp_task.h"
   7          #include "lib_mcu\kbd\key_drv.h"            /* Keyboard driver definition */
   8          #include <stdio.h>
   9          
  10          
  11          INT8U        CmdPack[12];
  12          
  13          
  14          ////////////////////////////////////////////////////////////////////////
  15          bit cd_getdata(INT8U *pData, INT8U u8Num)
  16          {
  17   1         INT8U   i;
  18   1         INT8U   u8Status;
  19   1      
  20   1         while(!CD_INTRQ);
  21   1         u8Status = CDROM_FILE7;
  22   1      
  23   1         if(u8Status & DRQMASK)
  24   1         {
  25   2           for(i=0; i<u8Num; i+=2)
  26   2               {
  27   3                  *pData ++ = CDROM_FILE0;
  28   3              *pData ++ = DAT16H;
  29   3               }
  30   2         }
  31   1         //---------------------------------<<<<<still have data to sent
  32   1         u8Status = CDROM_FILE7;
  33   1         while(u8Status & DRQMASK)
  34   1         {
  35   2           i = CDROM_FILE0;
  36   2               u8Status = CDROM_FILE7;
  37   2         }
  38   1         
  39   1         return 1;
  40   1      }
  41          
  42          ////////////////////////////////////////////////////////////////////////
  43          void cd_setcommand(INT8U u8Command)
  44          {
  45   1        switch(u8Command)
  46   1        {
  47   2          case CMD_TESTUNITREADY://all set 0
  48   2              break;  
  49   2      
  50   2              case CMD_READTOC:
  51   2               CmdPack[0]=0x43;
  52   2               CmdPack[1]=0x02;
  53   2               CmdPack[6]=0xaa;
  54   2               CmdPack[8]=0x0c;
C51 COMPILER V7.50   CDROM_DRV                                                             02/16/2009 09:59:53 PAGE 2   

  55   2              break;
  56   2      
  57   2              case CMD_MODESENSE:
  58   2                   CmdPack[0] = 0x5A; //Mode Sense Command
  59   2               CmdPack[2] = 0x0E; //Audio Control Mode Page Format Current values 音频页当前值
  60   2               CmdPack[7] = 0x00;
  61   2               CmdPack[8] = 0x18; //参数长度     
  62   2              break;
  63   2          
  64   2              case CMD_MODESELECT:
  65   2               CmdPack[0] = 0x55; //Mode Select
  66   2               CmdPack[1] = 0x10; //
  67   2               CmdPack[7] = 0x00;
  68   2               CmdPack[8] = 0x18; //参数长度
  69   2              break;
  70   2      
  71   2              case CMD_PAUSE:
  72   2               CmdPack[0]=0x4b;
  73   2                       CmdPack[8]=0x00;
  74   2              break;
  75   2      
  76   2              case CMD_RESUME:
  77   2                   CmdPack[0]=0x4b;
  78   2                       CmdPack[8]=0x01; 
  79   2              break;
  80   2      
  81   2              case CMD_OPEN:
  82   2                       CmdPack[0]=0x1b;
  83   2                       CmdPack[4]=0x02;
  84   2              break;
  85   2      
  86   2              case CMD_CLOSE:
  87   2               CmdPack[0]=0x1b;
  88   2                       CmdPack[4]=0x03;
  89   2              break;
  90   2      
  91   2          case CMD_STOP:
  92   2               CmdPack[0]=0x1b;
  93   2                       CmdPack[4]=0x00;
  94   2              break;
  95   2      
  96   2              case CMD_START:
  97   2               CmdPack[0]=0x1b;
  98   2                       CmdPack[4]=0x01;
  99   2              break;
 100   2      
 101   2              case CMD_READSUBCH:
 102   2               CmdPack[0]=0x42;
 103   2                       CmdPack[1]=0x02;
 104   2                       CmdPack[2]=0x40;
 105   2                       CmdPack[3]=0x01;
 106   2                       CmdPack[7]=0x01;
 107   2              break;  
 108   2        }
 109   1      }
 110          
 111          
 112          ////////////////////////////////////////////////////////////////////////
 113          void cd_command(INT8U u8Command)
 114          {
 115   1         INT8U i;
 116   1      
C51 COMPILER V7.50   CDROM_DRV                                                             02/16/2009 09:59:53 PAGE 3   

 117   1         for(i=0; i<12; i++)
 118   1         {
 119   2           CmdPack[i] = 0;
 120   2         }
 121   1         cd_setcommand(u8Command);
 122   1         do{ACC = CDROM_FILE7;}while(BSY | DRQ);
 123   1         CDROM_FILE7 = 0xa0;
 124   1         do{ACC = CDROM_FILE7;}while(BSY | (!DRQ));
 125   1      
 126   1         for(i=0; i<12;)
 127   1         {
 128   2                DAT16H      = CmdPack[i + 1];
 129   2            CDROM_FILE0 = CmdPack[i]; 
 130   2            i += 2;
 131   2         }
 132   1      }
 133          
 134          
 135          
 136          
 137          
 138          
 139          
 140          


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