嵌入式多媒體播放器的設(shè)計與實現(xiàn)
4.2、功能定義
利用 Flash存儲器技術(shù)、MP3音頻解碼技術(shù)、USB接口技術(shù)、定時/計數(shù)器中斷等技術(shù),實現(xiàn)如下的幾大主要功能:(一)、讀取 MP3音頻文件;(二)、解碼 MP3音頻文件;(三)、播放解碼后的 MP3歌曲文件;(四)、實現(xiàn)人機交互接口。(五)、U盤的讀寫。
4.3、AT89C51SND1C初始化 [8-9]
播放 MP3文件時,首先需要對主控制器 AT89C51SND1C進行以下幾方面的初始化設(shè)置。如圖 7所示。
?。?)鎖相環(huán)初始化,MP3解碼器、USB控制器和音頻輸出接口使用的都是內(nèi)部鎖相環(huán)提供的時鐘。程序設(shè)計如下:
void PllInit(void) { if (FirstStart)
{AUXR1 = 0xf2; //這兩個寄存器的值在用 Start Application和直接上電時
//不一樣,前一種情況下 MP3解碼器才工作,
PLLCON = 0; //這里強制將其置為與用 Start Application按鈕時一致
FirstStart = 0; } //PLLCON:鎖相環(huán)控制寄存器;鎖相環(huán)時鐘及 MP3解碼器時鐘設(shè)置
CKCON |= X2; //0000 0001使能 X2模式,增加處理速度,
//每個機器周期變成 6個振蕩周期即 3個時鐘周期 PLLCON = (~PLLRES); //使能 PLL PLLCON |= PLLEN;}
(2)MP3解碼器的初始化,即對 MP3CON(MP3控制寄存器)和 MP3CLK(MP3時鐘除法器寄存器)進行設(shè)置。程序設(shè)計如下: //MP3時鐘頻率的計算方法:MP3CLK=PLLCLK/(int)(MPCD+1)負反饋
MP3CLK|=MPCD; MP3CON = (~MSKREQ); //允許產(chǎn)生MP3中斷 MP3CON |= MPEN; //使能 MP3解碼器.
?。?)音頻輸出接口初始化,要得到兩個聲道串行數(shù)據(jù)前,需要先對音頻輸出接口的AUDCON0(音頻接口控制寄存器0)和 AUDCON1(音頻接口控制寄存器1)中的相關(guān)部分進行正確的設(shè)置。程序設(shè)計如下:
void PllInit(void)
{ if (FirstStart)
{AUXR1 = 0xf2; //這兩個寄存器的值在用Start Application 和直接上電時
//不一樣,前一種情況下MP3 解碼器才工作,
PLLCON = 0; //這里強制將其置為與用Start Application 按鈕時一致
FirstStart = 0; } //PLLCON:鎖相環(huán)控制寄存器;鎖相環(huán)時鐘及MP3 解碼器時鐘設(shè)置
CKCON |= X2; //0000 0001 使能X2 模式,增加處理速度,
//每個機器周期變成6 個振蕩周期即3 個時鐘周期
PLLCON = (~PLLRES); //使能 PLL
PLLCON |= PLLEN;}
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論