亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mp32.c

?? 基于at89c51snd1c的硬盤MP3播放器
?? C
字號:
/* MP3.C File
   The MP3 play file
   Created by Computer-lov date: 2005.3.19
   Copyright (c) 2005 Computer-lov
   version 1.0
*/

#include "AT89C51SND1C.H"
#include "Initial.h"
#include "file_system.h"
#include "IDE.H"
#include "keyboard.h"
#include "hardware.h"
#include "MP3.H"
#include "LCD.H"

unsigned char status;   //程序運行狀態

extern unsigned char mp3_file_exist;

void DAC_start(unsigned char clk)  //DAC開始工作
{
 set_DAC_CLK(clk);   //根據MP3文件,設置相應的DAC時鐘頻率
 DAC_interface_en();
 DAC_data_request_en();
}


unsigned char xdata function,vol,bas,med,tre;  //保存音量等設置

code unsigned char MPEGVer[2][7]={"MPEG-2","MPEG-1"}; //版本顯示信息
code unsigned char Fs[8]={22,44,24,48,16,32,22,44};     //采樣率
code unsigned char DACFs[8]={33,16,30,15,46,22,33,16};  //256Fs
//code unsigned char DACFs[8]={22,10,20,9,30,15,0,0}; //384Fs

///////////////////////////  MP3 play  /////////////////////////////////////////
void play(void)
{
 unsigned long int LBA;
 unsigned int i;
 unsigned char sectors_count;
 signed long int file_length;
 unsigned char count;
 unsigned char MPEG_inf;   //用來保存MP3版本和采樣率
 unsigned char idata mp3_buffer[128];
 unsigned char j,k;
 /*
 bit0=0 vertion 2
 bit0=1 bertion 1
 */

 file_length=file.length;
 LBA=file.next_cluster_number-(dbr[driver_number].root_cluster_num);
 LBA=LBA*(dbr[driver_number].sectors_per_cluster)+DATA_start_sector[driver_number];

 MP3_CRC_disen();

 sectors_count = dbr[driver_number].sectors_per_cluster;

 read_IDE_sector(LBA);
 if(buffer[0]!=0xFF){pause();MP3_decoder_disen();DAC_interface_disen();get_next_file();key=0;return;}
 if((buffer[1]&0x06)!=0x02){pause();MP3_decoder_disen();DAC_interface_disen();key=0;LCD_line_feed();prints("MP3 層錯誤!!  ");while(!key);get_next_file();return;}
//////////////////////// 從MP3偵頭中獲取采樣率和壓縮版本信息  //////////////
 MPEG_inf=buffer[2]&0x0C; //采樣率
 MPEG_inf>>=1;
 if((buffer[1]&0x18)==0x18)MPEG_inf=MPEG_inf | 0x01; //版本1
 if((buffer[1]&0x18)==0x10)MPEG_inf=MPEG_inf & (~0x01);  //版本2
///////////////////////////////////////////////////////////////////////////

////////////////////////   填充1K數據  ////////////////////////////////////
 for(i=0;i<512;i++)MP3DAT=buffer[i];
 LBA++;
 sectors_count--;
 if(file_length>512)file_length-=512;
 else {pause();MP3_decoder_disen();DAC_interface_disen();get_next_file();key=0;return;}
 if(sectors_count==0){LBA=get_next_sector();sectors_count=dbr[driver_number].sectors_per_cluster;}
 read_IDE_sector(LBA);
 for(i=0;i<512;i++)MP3DAT=buffer[i];
 LBA++;
 sectors_count--;
 if(file_length>512)file_length-=512;
 else {pause();MP3_decoder_disen();DAC_interface_disen();get_next_file();key=0;return;}
 if(sectors_count==0){LBA=get_next_sector();sectors_count=dbr[driver_number].sectors_per_cluster;}

 MP3_decoder_en();           //啟動解碼器
 DAC_start(DACFs[MPEG_inf]); //初始化DAC接口
 byte_offset=512;
 key=KEY_FUN;
 function=FUN_MAX;
 
 k=4;j=128;

 while(1)
  {
   if(key)                 //如果有鍵按下
    {
     switch (key)
      {
       case KEY_FUN:  //功能鍵按下
         {
          function++;
          if(function>=FUN_MAX)function=FUN_SEL;
          switch (function)
           {
            case FUN_SEL:LCD_cls();for(count=0;count<14;count++)write_LCD_data(((unsigned char *)dir_name)[count]);LCD_line_feed();prints("當前曲號: ");printf(play_count);LED1=1;LED2=1;LED3=1;break;
            case FUN_VOL:LCD_line_feed();prints("音量: ");printf(vol);prints("      ");LED1=0;LED2=1;LED3=0;break;
            case FUN_BAS:LCD_line_feed();prints("低音: ");printf(bas);prints("      ");LED1=1;LED2=1;LED3=0;break;
            case FUN_MED:LCD_line_feed();prints("中音: ");printf(med);prints("      ");LED1=1;LED2=0;LED3=1;break;
            case FUN_TRE:LCD_line_feed();prints("高音: ");printf(tre);prints("      ");LED1=0;LED2=1;LED3=1;break;
            case FUN_BOOT:LCD_line_feed();prints("重低音: ");if(MP3CON&0x40)prints("開");else prints("關");prints("      ");LED1=0;LED2=0;LED3=0;break;
           }
          key=0;break;
         }
       case KEY_UP:   //上翻鍵按下
        {
         switch (function)
          {
           case FUN_SEL:{MP3_decoder_disen();DAC_interface_disen();get_pre_file();LCD_cls();for(count=0;count<14;count++)write_LCD_data(((unsigned char *)dir_name)[count]);LCD_line_feed();prints("當前曲號: ");printf(play_count);key=0;return;}
           case FUN_VOL:{if(vol<31)vol++;set_vol(vol);set_vor(vol);LCD_line_feed();prints("音量: ");printf(vol);prints("      ");break;}
           case FUN_BAS:{if(bas<31)bas++;set_bas(bas);LCD_line_feed();prints("低音: ");printf(bas);prints("      ");break;}
           case FUN_MED:{if(med<31)med++;set_med(med);LCD_line_feed();prints("中音: ");printf(med);prints("      ");break;}
           case FUN_TRE:{if(tre<31)tre++;set_tre(tre);LCD_line_feed();prints("高音: ");printf(tre);prints("      ");break;}
           case FUN_BOOT:{MP3_bass_boost();LCD_line_feed();prints("重低音: ");prints("開");prints("      ");break;}
          }
         key=0;break;
        }
       case KEY_DOWN:   //下翻鍵按下
        {
         switch (function)
          {
           case FUN_SEL:{MP3_decoder_disen();DAC_interface_disen();get_next_file();LCD_cls();for(count=0;count<14;count++)write_LCD_data(((unsigned char *)dir_name)[count]);LCD_line_feed();prints("當前曲號: ");printf(play_count);key=0;return;}
           case FUN_VOL:{if(vol>0)vol--;set_vol(vol);set_vor(vol);LCD_line_feed();prints("音量: ");printf(vol);prints("      ");break;}
           case FUN_BAS:{if(bas>0)bas--;set_bas(bas);LCD_line_feed();prints("低音: ");printf(bas);prints("      ");break;}
           case FUN_MED:{if(med>0)med--;set_med(med);LCD_line_feed();prints("中音: ");printf(med);prints("      ");break;}
           case FUN_TRE:{if(tre>0)tre--;set_tre(tre);LCD_line_feed();prints("高音: ");printf(tre);prints("      ");break;}
           case FUN_BOOT:{MP3_no_bass_boost();LCD_line_feed();prints("重低音: ");prints("關");prints("      ");break;}
          }
         key=0;break;
        }
       case KEY_OK:
        {
         MP3_decoder_disen();
         DAC_interface_disen();
         status=STOP;
         for(i=(folder_length/2);i<(7+folder_length/2);i++)dir_name[i]=0x2020;
         LCD_line_feed();
         prints("停止          ");
         key=0;
         return;
        }
      }
    }
   while(MPFREQ)
    {
     if(j==128)
      {
       if(k==4)
        {
         write_IDE_LBA(LBA);
         write_IDE_sector_count(1);
         write_IDE_command(IDE_Read_Sectors);
         IDE_Address=IDE_Data;
         set_IDE_address();
         IDE_DATA_H=0xFF;
         IDE_DATA_L=0xFF;
         k=0;
         LBA++;
         sectors_count--;
         file_length-=512;
        }
       k++;
       for(j=0;j<128;j++)
        {
         while(!IDE_IORDY);
         IDE_DIOR=0;
         mp3_buffer[j]=IDE_DATA_L;
         j++;
         mp3_buffer[j]=IDE_DATA_H;
         IDE_DIOR=1;
        }
       j=0;
       if(k==4)
        {
         IDE_Address=IDE_Bus_Not_Use;
         set_IDE_address();
         IDE_DATA_L=0xFF;
        }
       while(MPFREQ)
        {
         MP3DAT=mp3_buffer[j];
         j++;
         if(j==127)break;
        }
       if(file_length<=0) {pause();MP3_decoder_disen();DAC_interface_disen();get_next_file();key=0;return;}
       if(sectors_count==0){LBA=get_next_sector();sectors_count=(dbr[driver_number].sectors_per_cluster);}
      }
     if(MPFREQ)
      {
       MP3DAT=mp3_buffer[j];
       j++;
      }
    }
  }
}
///////////////////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电影免费观看完整版| 国产精品乱人伦一区二区| 精品电影一区二区三区| 亚洲视频免费在线| 精品在线一区二区| 日本高清视频一区二区| 久久夜色精品国产噜噜av| 亚洲免费在线视频| 国产在线视频不卡二| 欧美高清hd18日本| 亚洲欧美日韩国产综合| 福利一区二区在线观看| 日韩一级片网址| 亚洲电影在线免费观看| 不卡区在线中文字幕| 2020日本不卡一区二区视频| 亚洲国产成人高清精品| 91麻豆6部合集magnet| 久久久另类综合| 欧美aaa在线| 欧美日韩美少妇| 亚洲一区免费视频| 色88888久久久久久影院野外| 日本一区二区成人| 国产精品亚洲视频| 国产午夜精品在线观看| 国产精品自拍在线| www国产亚洲精品久久麻豆| 日韩av网站在线观看| 欧美日韩不卡一区二区| 亚洲国产精品久久人人爱蜜臀| 91亚洲国产成人精品一区二三| 欧美激情在线一区二区三区| 国产一区久久久| 久久精品网站免费观看| 国产成人亚洲精品狼色在线| 久久久国产一区二区三区四区小说| 强制捆绑调教一区二区| 日韩情涩欧美日韩视频| 久久精品二区亚洲w码| 精品免费日韩av| 国模娜娜一区二区三区| 国产欧美日韩视频在线观看| 成人网在线播放| 亚洲美女偷拍久久| 欧美日韩一区二区三区在线看 | 99精品视频一区| 日韩毛片在线免费观看| 91国产福利在线| 日韩精品91亚洲二区在线观看| 日韩欧美亚洲一区二区| 国产一区二区三区久久悠悠色av| 国产午夜精品一区二区三区四区| 91香蕉视频污| 日韩制服丝袜先锋影音| 亚洲精品在线免费观看视频| 国产成人免费视频一区| 亚洲嫩草精品久久| 制服丝袜在线91| 国产成人精品亚洲777人妖| 亚洲精品菠萝久久久久久久| 91麻豆精品91久久久久久清纯| 精品一区在线看| 日韩一区在线播放| 在线不卡欧美精品一区二区三区| 老色鬼精品视频在线观看播放| 久久一日本道色综合| 色系网站成人免费| 麻豆精品久久久| 亚洲欧美日韩国产一区二区三区| 8x8x8国产精品| 波多野结衣一区二区三区| 性欧美大战久久久久久久久| 国产色91在线| 宅男在线国产精品| 国产美女娇喘av呻吟久久| 亚洲黄色片在线观看| 日韩精品一区二区三区老鸭窝| 91色九色蝌蚪| 韩国成人在线视频| 亚洲va欧美va人人爽午夜| 日本一区二区三区免费乱视频| 欧美日韩国产综合视频在线观看 | 久久久一区二区三区| 91福利视频久久久久| 国产激情视频一区二区在线观看| 亚洲综合在线电影| 欧美国产一区在线| 精品国产1区二区| 欧美视频一区在线观看| 成人免费的视频| 国产一区欧美二区| 日本免费新一区视频| 一区二区高清免费观看影视大全| 日本一区二区三区四区| 欧美精品一区二区三区在线播放| 欧美日韩亚洲不卡| 在线亚洲一区二区| 成人短视频下载| 色呦呦日韩精品| 成人精品国产福利| 国产精品中文欧美| 国产资源精品在线观看| 日韩中文字幕区一区有砖一区| 亚洲蜜臀av乱码久久精品蜜桃| 国产三级三级三级精品8ⅰ区| 欧美一区二区三区视频| 在线成人午夜影院| 精品视频在线视频| 欧美日韩免费视频| 欧美在线免费视屏| 欧美色精品在线视频| 色婷婷综合中文久久一本| 波多野结衣中文字幕一区| 国产mv日韩mv欧美| 国产.欧美.日韩| 国产大陆亚洲精品国产| 国产成人精品一区二区三区四区| 国产麻豆午夜三级精品| 国产精品一级片| 高清在线观看日韩| 99视频一区二区| 在线中文字幕一区| 欧美日韩精品福利| 日韩一区二区麻豆国产| 欧美成人女星排行榜| 久久新电视剧免费观看| 国产欧美日韩三区| 亚洲美女淫视频| 日日夜夜精品视频天天综合网| 免费观看成人鲁鲁鲁鲁鲁视频| 久久成人免费电影| 粉嫩蜜臀av国产精品网站| 成人激情av网| 色婷婷综合五月| 日韩一卡二卡三卡| 欧美激情中文不卡| 亚洲国产一区二区三区 | 亚洲三级在线免费观看| 亚洲精品日产精品乱码不卡| 天堂在线一区二区| 狠狠色综合色综合网络| 69精品人人人人| 国产人妖乱国产精品人妖| 亚洲伦在线观看| 免费在线看成人av| eeuss影院一区二区三区 | 99久久婷婷国产综合精品| 欧洲一区在线电影| 精品国产第一区二区三区观看体验| 国产亚洲精品aa| 洋洋av久久久久久久一区| 男女视频一区二区| 91一区二区在线| 欧美大尺度电影在线| 国产精品国产自产拍高清av| 亚洲国产一区二区在线播放| 韩国女主播一区| 日本丶国产丶欧美色综合| 精品国产一区二区三区av性色| 国产精品区一区二区三| 日韩电影免费在线看| 成人丝袜18视频在线观看| 欧美乱妇23p| 亚洲欧美综合另类在线卡通| 美女网站色91| 日本丶国产丶欧美色综合| 久久综合成人精品亚洲另类欧美| 悠悠色在线精品| 国产大陆亚洲精品国产| 337p亚洲精品色噜噜噜| 亚洲天天做日日做天天谢日日欢| 免费成人在线观看| 一本色道综合亚洲| 久久综合国产精品| 免费不卡在线观看| 欧美色区777第一页| 亚洲视频精选在线| 成人免费看的视频| 久久久久久久网| 人人精品人人爱| 欧美性色黄大片| 亚洲摸摸操操av| 99re成人精品视频| 中文字幕不卡在线播放| 久国产精品韩国三级视频| 欧美精品粉嫩高潮一区二区| 一区二区三区美女| 色又黄又爽网站www久久| 中文一区二区完整视频在线观看| 国内不卡的二区三区中文字幕 | 欧美性xxxxx极品少妇| 国产精品乱码人人做人人爱| 国产精品一区二区在线观看不卡| 欧美一级日韩一级| 美女视频第一区二区三区免费观看网站| 欧美少妇xxx| 亚洲mv大片欧洲mv大片精品| 欧美在线观看禁18| 五月天视频一区|