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