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

📄 key.lst

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


C51 COMPILER V8.08, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key.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          #if KEY
  13          /************************************************
  14          函 数 名: Read_Key()
  15          功    能:读键值
  16          说    明:
  17          调    用:
  18          全局变量:
  19          入口参数:无
  20          出口参数:无
  21          返 回 值:无
  22          ************************************************/
  23          U8 Read_Key(void)
  24          {
  25   1      #if TAB_KEY
                U8 data i;
              #if TX_DEBUG
                P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT6);
                P1 |= (BIT1 | BIT2 | BIT3 | BIT4 | BIT6);
                P1 &= ~(BIT3 | BIT4 | BIT6);
                P1DIR |= (BIT3 | BIT4 | BIT6);
                i = P1 & (BIT1 | BIT2);
              
                P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT6);
                P1 |= (BIT1 | BIT2 | BIT3 | BIT4 | BIT6);
                P1 &= ~(BIT1 | BIT2);
                P1DIR |= (BIT1 | BIT2);
                i |= P1 & (BIT3 | BIT4 | BIT6);
                P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT6);
              #else
                P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
                P1 |= (BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
                P1 &= ~(BIT3 | BIT4 | BIT5 | BIT6);
                P1DIR |= (BIT3 | BIT4 | BIT5 | BIT6);
                i = P1 & (BIT1 | BIT2);
              
                P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
                P1 |= (BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
                P1 &= ~(BIT1 | BIT2);
                P1DIR |= (BIT1 | BIT2);
                i |= P1 & (BIT3 | BIT4 | BIT5 | BIT6);
                P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
              #endif
              
                switch(i)
C51 COMPILER V8.08   KEY                                                                   07/28/2007 11:42:17 PAGE 2   

                {
              #if TX_DEBUG
                case 0x1C:
                  return PLAY_PAUSE_KEY;
                case 0x1A:
                  return STOP_KEY;
                case 0x4C:
                  return VOLUME_DOWN_KEY;
                case 0x4A:
                  return VOLUME_UP_KEY;
                case 0x54:
                  return EQ_KEY;
                case 0x52:
                  return PLAY_MODE_KEY;
                case 0x5E:
                  return NO_KEY;
              #else
                case 0x3C:
                  return PLAY_PAUSE_KEY;
                case 0x3A:
                  return STOP_KEY;
                case 0x5C:
                  return PREVOIUS_KEY;
                case 0x5A:
                  return NEXT_KEY;
                case 0x6C:
                  return VOLUME_DOWN_KEY;
                case 0x6A:
                  return VOLUME_UP_KEY;
                case 0x74:
                  return EQ_KEY;
                case 0x72:
                  return PLAY_MODE_KEY;
                case 0x7E:
                  return NO_KEY;
              #endif
                default:
                  return ERROR_KEY;
                }
              
              #else
  97   1      #if TX_DEBUG
  98   1        P1 |= BIT1 | BIT2 | BIT3 | BIT4 | BIT6;
  99   1        P1_1 = 0;
 100   1        P1DIR &= ~(BIT2 | BIT3 | BIT4 | BIT6);
 101   1        P1DIR |= BIT1;
 102   1        if(!P1_3)
 103   1          return EQ_KEY;
 104   1        else if(!P1_4)
 105   1          return VOLUME_DOWN_KEY;
 106   1        else if(!P1_6)
 107   1          return PLAY_PAUSE_KEY;
 108   1        else
 109   1        {
 110   2          P1 |= BIT1 | BIT2 | BIT3 | BIT4 | BIT6;
 111   2              P1_2 = 0;
 112   2              P1DIR &= ~(BIT1 | BIT3 | BIT4 | BIT6);
 113   2              P1DIR |= BIT2;
 114   2              if(!P1_3)
 115   2                return PLAY_MODE_KEY;
 116   2              else if(!P1_4)
 117   2            return VOLUME_UP_KEY;
C51 COMPILER V8.08   KEY                                                                   07/28/2007 11:42:17 PAGE 3   

 118   2              else if(!P1_6)
 119   2                return STOP_KEY;
 120   2              else
 121   2              {
 122   3                P1 |= BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6;
 123   3                P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
 124   3            return NO_KEY;
 125   3              }
 126   2        }
 127   1      #else
                P1 |= BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6;
                P1_1 = 0;
                P1DIR &= ~(BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
                P1DIR |= BIT1;
                if(!P1_3)
                  return EQ_KEY;
                else if(!P1_4)
                  return VOLUME_DOWN_KEY;
                else if(!P1_5)
                  return PREVOIUS_KEY;
                else if(!P1_6)
                  return PLAY_PAUSE_KEY;
                else
                {
                  P1 |= BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6;
                      P1_2 = 0;
                      P1DIR &= ~(BIT1 | BIT3 | BIT4 | BIT5 | BIT6);
                      P1DIR |= BIT2;
                      if(!P1_3)
                        return PLAY_MODE_KEY;
                      else if(!P1_4)
                    return VOLUME_UP_KEY;
                      else if(!P1_5)
                        return NEXT_KEY;
                      else if(!P1_6)
                        return STOP_KEY;
                      else
                      {
                        P1 |= BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6;
                        P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
                    return NO_KEY;
                      }
                }
              #endif
 162   1      #endif
 163   1      }
 164          /************************************************
 165          函 数 名: GetKey()
 166          功    能:按键扫描
 167          说    明:
 168          调    用:
 169          全局变量:
 170          入口参数:无
 171          出口参数:无
 172          返 回 值:无
 173          ************************************************/
 174          void GetKey(void)
 175          {
 176   1        switch(varAl.fKeyTone)
 177   1        {
 178   2        case 0:
 179   2          varAl.UsrChartmp = Read_Key();
C51 COMPILER V8.08   KEY                                                                   07/28/2007 11:42:17 PAGE 4   

 180   2      #if TAB_KEY
                      if(varAl.UsrChartmp && (varAl.UsrChartmp != ERROR_KEY))
              #else
 183   2          if(varAl.UsrChartmp)
 184   2      #endif
 185   2              {
 186   3                varAl.fKeyTone++;
 187   3              }
 188   2          break;
 189   2        case 1:
 190   2          if(varAl.UsrChartmp == Read_Key())
 191   2              {
 192   3                switch(varAl.UsrChartmp)
 193   3                {
 194   4                case PLAY_PAUSE_KEY:
 195   4              varAl.SysKey = PALY_PAUSE_VALUE;
 196   4              break;
 197   4                case NEXT_KEY:
 198   4              varAl.SysKey = NEXT_VALUE;
 199   4              break;
 200   4                case PREVOIUS_KEY:
 201   4              varAl.SysKey = PREVIOUS_VALUE;
 202   4              break;
 203   4                case VOLUME_UP_KEY:
 204   4      #if TX_DEBUG
 205   4              varAl.SysKey = NEXT_VALUE;
 206   4      #else
                      varAl.SysKey = VOLUME_UP_VALUE;
              #endif
 209   4              break;
 210   4                case VOLUME_DOWN_KEY:
 211   4      #if TX_DEBUG
 212   4              varAl.SysKey = PREVIOUS_VALUE;
 213   4      #else
                      varAl.SysKey = VOLUME_DOWN_VALUE;
              #endif
 216   4              break;
 217   4                case PLAY_MODE_KEY:
 218   4              varAl.SysKey = PLAY_MODE_VALUE;
 219   4              break;
 220   4                case STOP_KEY:
 221   4              varAl.SysKey = STOP_VALUE;
 222   4              break;
 223   4                case EQ_KEY:
 224   4              varAl.SysKey = EQ_VALUE;
 225   4              break;
 226   4                default:
 227   4                      varAl.SysKey = NO_VALUE;
 228   4              break;
 229   4                }
 230   3                varAl.fKeyTone++;
 231   3              }
 232   2              else
 233   2            varAl.fKeyTone = 0;
 234   2          break;
 235   2        case 2:
 236   2          if(Read_Key() == NO_KEY)
 237   2                varAl.fKeyTone++;
 238   2          break;
 239   2        case 3:
 240   2          if(Read_Key() == NO_KEY)
 241   2                varAl.fKeyTone = 0;
C51 COMPILER V8.08   KEY                                                                   07/28/2007 11:42:17 PAGE 5   

 242   2          break;
 243   2        default:
 244   2          varAl.fKeyTone = 0;
 245   2          break;
 246   2        }
 247   1      }
 248          /************************************************
 249          函 数 名: KeyDeal()
 250          功    能:按键处理
 251          说    明:
 252          调    用:
 253          全局变量:
 254          入口参数:无
 255          出口参数:无
 256          返 回 值:无
 257          ************************************************/
 258          void KeyDeal(void)
 259          {
 260   1        switch(varAl.SysKey)
 261   1        {
 262   2        case PALY_PAUSE_VALUE: //MP3 play or pause
 263   2          if((!allow_mp3_play) && (varAl.CardDetected == 1))
 264   2              {
 265   3                allow_mp3_play = 1;
 266   3              }
 267   2              else
 268   2              {
 269   3      
 270   3                varAl.SystemFlag ^= PLAY_PAUSE_FLAG;
 271   3                if(varAl.SystemFlag & PLAY_PAUSE_FLAG)
 272   3                { 
 273   4              MP3_CTL |= (MP3_PAUSE | MUTE);//Pause Music  
 274   4              CLASS_D_DAC_CTL |= (SUSPEND | PAUSE);//Mute & Suspend Class-D, 
 275   4            }
 276   3                else
 277   3                {     
 278   4              MP3_CTL &= ~(MP3_PAUSE | MUTE);//Resume to play Music 
 279   4              CLASS_D_DAC_CTL &= ~(SUSPEND | PAUSE);//Dis-Mute & Resume Class-D, 
 280   4            }
 281   3              }
 282   2          break;
 283   2        case NEXT_VALUE: //MP3 next
 284   2              mp3_play_status = MP3_NEXT;
 285   2          break;
 286   2        case PREVIOUS_VALUE://MP3 previous
 287   2          mp3_play_status = MP3_PREVIOUS;
 288   2          break;
 289   2        case VOLUME_UP_VALUE://MP3 VolumnUp
 290   2          if(CLASS_D_VOL_CTL == 0x06)
 291   2              {
 292   3                if(MP3_VOLUME < 0x1F)
 293   3                  MP3_VOLUME++;
 294   3                else
 295   3                 CLASS_D_VOL_CTL--; 
 296   3              }
 297   2              else
 298   2              {
 299   3                if(CLASS_D_VOL_CTL)
 300   3                  CLASS_D_VOL_CTL--;
 301   3              }
 302   2          break;
 303   2        case VOLUME_DOWN_VALUE://MP3 VolumnDown
C51 COMPILER V8.08   KEY                                                                   07/28/2007 11:42:17 PAGE 6   

 304   2          if(CLASS_D_VOL_CTL == 0x06)
 305   2              {
 306   3                if(MP3_VOLUME)
 307   3                  MP3_VOLUME--;
 308   3                else
 309   3                  CLASS_D_VOL_CTL++;
 310   3              }
 311   2              else
 312   2              {
 313   3                if(CLASS_D_VOL_CTL < 0x3E)
 314   3                  CLASS_D_VOL_CTL++;
 315   3              }
 316   2          break;
 317   2        case PLAY_MODE_VALUE://play mode select
 318   2              MP3_MusicPlayMode();
 319   2          break;
 320   2        case STOP_VALUE://stop
 321   2          MP3_PrevInit();
 322   2          allow_mp3_play = 0;
 323   2              mp3_play_status = MP3_IDEL;
 324   2          break;
 325   2        case EQ_VALUE:
 326   2          if((!allow_mp3_play) && (varAl.CardDetected == 1))
 327   2              {
 328   3                allow_mp3_play = 1;
 329   3              }
 330   2          break;
 331   2        default:
 332   2          mp3_play_status = MP3_IDEL;
 333   2          break;
 334   2        }
 335   1      }
 336          #endif
 337          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    499    ----
   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 + -