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

📄 mp3_player.lst

📁 mp3c程序源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 206   1                      {   
 207   2                              RDCOUNT = ReadSector(SongName, Page_Buf); 
 208   2                              for (i=0; i<RDCOUNT; i++) 
 209   2                              {
 210   3                                      while (!(MP3STA1 & MPBREQ)); 
 211   3                                      MP3DAT = Page_Buf[i]; 
 212   3                              }
 213   2                              
 214   2      
 215   2                      
 216   2      //////////////////////////////////////////for LCD display                                       
 217   2                              KeyState1=KeyState;             
 218   2                          do{
 219   3                                  switch(KeyState)
 220   3                                       {  case 0: break;
 221   4                                          case 1: LCD_printen(72,2,"VOLUME");break;
 222   4                                          case 2: LCD_printen(72,2,"TONE  ");break;
 223   4                                              case 3: LCD_printen(72,2,LCD_chstr);
 224   4                                                              if(PlayState)
 225   4                                                                 LCD_printen(72,3,"PLAY..");
 226   4                                                                else
 227   4                                                                 LCD_printen(72,3,"STOP..");
 228   4                                                              break;
 229   4                                              case 4: LCD_printen(72,3,"Down 1");break;
 230   4                                              case 5: LCD_printen(72,3,"Down 2");break;
 231   4                                              case 6: LCD_printen(72,3,"Up 1  ");break;
 232   4                                              case 7: LCD_printen(72,3,"Up 2  ");break;
 233   4                                              case 8: LCD_printen(72,3,"STOP..");break;
 234   4                                              case 9: LCD_printen(72,3,"PLAY..");break;
 235   4                                         
 236   4                                        }
 237   3                                      //
 238   3                                 
 239   3                                 }while (!PlayState);   //Pause control
C51 COMPILER V7.50   MP3_PLAYER                                                            11/18/2005 21:31:23 PAGE 5   

 240   2      //////////////////////////////////////////                      
 241   2                              if(KeyState==KeyState1) KeyState = 0;
 242   2                              
 243   2                              if (ChangeSong) 
 244   2                              { 
 245   3                                      DataRead = 0;
 246   3                                      ChangeSong = 0;
 247   3                                      m =1;
 248   3                              }
 249   2      
 250   2                              if (RDCOUNT < 512) 
 251   2                              {
 252   3                                      NowPlaying++;
 253   3                                      MP3InitFlag = 1;
 254   3                                      m =1;
 255   3                              }
 256   2      
 257   2                              if(m)
 258   2                               {  
 259   3                                  while(MP3STA1 & MPFREQ)
 260   3                                    MP3DAT = 0x00;
 261   3                                      return;
 262   3                                }
 263   2                      }
 264   1              
 265   1      }
 266          
 267          
 268          
 269          
 270          void Func()
 271          {
 272   1                      if (CurrentFun < 3)
 273   1                              CurrentFun++;
 274   1                      else if (CurrentFun == 3)
 275   1                              CurrentFun = 1;
 276   1      
 277   1              switch(CurrentFun)
 278   1                      {case VOLUME:     KeyState = 1;
 279   2                                        //LCD_printen(72,2,"VOLUME");
 280   2                                        break;
 281   2                       case EFFECTION:  KeyState = 2;
 282   2                                        //LCD_printen(72,2,"TONE  ");
 283   2                                                        break;
 284   2                       case SELECTSONG: KeyState = 3;
 285   2                                        //LCD_printen(72,2,"      ");
 286   2                                                        break;
 287   2                      }
 288   1      
 289   1       
 290   1      
 291   1      }
 292          
 293          
 294          void Next()
 295          {
 296   1              switch (CurrentFun)
 297   1              {
 298   2                      case VOLUME     :
 299   2                                      if (MP3VOR > 0x00) 
 300   2                                      {
 301   3                                              MP3VOR -= 0x01;
C51 COMPILER V7.50   MP3_PLAYER                                                            11/18/2005 21:31:23 PAGE 6   

 302   3                                              MP3VOL -= 0x01;
 303   3                                              KeyState = 4; 
 304   3                                              //LCD_printen(72,3,"Down 1");
 305   3                                      }
 306   2                                      break;
 307   2                              
 308   2                      case EFFECTION : 
 309   2                                  if (MP3BAS > 2)
 310   2                                      {
 311   3                                              MP3BAS -= 2;
 312   3                                              MP3TRE += 2;
 313   3                                              KeyState = 5;
 314   3                                              //LCD_printen(72,3,"Down 2");
 315   3                                      }
 316   2                                      break;
 317   2                              
 318   2                      case SELECTSONG :
 319   2                                      if (NowPlaying == (NumofSong - 1))
 320   2                                              NowPlaying = 0; 
 321   2                                      else 
 322   2                                              NowPlaying++;   
 323   2                                  MP3InitFlag = 1;
 324   2                                      ChangeSong = 1; 
 325   2                                      break;
 326   2                 default: break;
 327   2              }
 328   1                      
 329   1      }
 330          
 331          
 332          void Previous()
 333          {
 334   1              switch (CurrentFun)
 335   1              {
 336   2                      case VOLUME :
 337   2                                        if (MP3VOR < 0x1f)
 338   2                                             {
 339   3                                                   MP3VOR += 0x01; 
 340   3                                                   MP3VOL += 0x01;
 341   3                                                       KeyState = 6; 
 342   3                                               //LCD_printen(72,3,"Up 1  ");
 343   3                                                 }
 344   2                                                break;
 345   2              
 346   2                      case EFFECTION : 
 347   2                                        if (MP3BAS < 0x1e)
 348   2                                             {
 349   3                                                   MP3BAS += 2;
 350   3                                                   MP3TRE -= 2;
 351   3                                                       KeyState = 7;
 352   3                                                       //LCD_printen(72,3,"Up 2  ");
 353   3                                             }
 354   2                                            break;
 355   2      
 356   2                      case SELECTSONG : 
 357   2                                        if (NowPlaying > 0)
 358   2                                                   NowPlaying--; 
 359   2                                            else 
 360   2                                                   NowPlaying = NumofSong - 1;
 361   2      
 362   2                                            MP3InitFlag = 1;
 363   2                                                ChangeSong = 1;       
C51 COMPILER V7.50   MP3_PLAYER                                                            11/18/2005 21:31:23 PAGE 7   

 364   2                                            break;
 365   2                  default:      break;
 366   2              }
 367   1              
 368   1      }
 369          
 370          
 371          void PlayPause()
 372          {
 373   1              PlayState = !PlayState;
 374   1              //Mute(!PlayState);     
 375   1          if (PlayState==0)
 376   1                 {printu("STOP..\n");
 377   2                  KeyState = 8;
 378   2                      //LCD_printen(72,3,"STOP..");
 379   2                      }
 380   1                 else 
 381   1                  {printu("PLAY.....\n"); 
 382   2                       KeyState = 9;  
 383   2                       //LCD_printen(72,3,"PLAY..");
 384   2                       }
 385   1      }
 386          
 387          void Mute(unsigned char sw)
 388          { 
 389   1          static char volume; 
 390   1          
 391   1              if(sw)
 392   1                  { 
 393   2                        volume = MP3VOL;
 394   2                        MP3VOR = 0x00;
 395   2                    MP3VOL = 0x00;
 396   2                        AUDCON1 &= (~0x01);
 397   2                        MP3CON &= (~MPEN);
 398   2               }
 399   1          else
 400   1                  { 
 401   2                        MP3VOR = volume;
 402   2                    MP3VOL = volume;
 403   2                        AUDCON1 |= 0x01;
 404   2                        MP3CON |= MPEN;
 405   2                       }
 406   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1340    ----
   CONSTANT SIZE    =     75    ----
   XDATA SIZE       =     91      25
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12       2
   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 + -