臧金梅 孫燦 郇濤
摘 要 隨著信息技術(shù)的飛速發(fā)展,嵌入式技術(shù)得到了廣泛的應(yīng)用與發(fā)展。本文設(shè)計了基于ARM的簡單音樂播放器,該系統(tǒng)能根據(jù)實(shí)際情況進(jìn)行簡譜顯示、選曲、開始和結(jié)束等,實(shí)現(xiàn)了簡單的音樂播放控制,通過設(shè)計進(jìn)一步了解并加深對ARM的認(rèn)識,模擬音樂播放器的實(shí)現(xiàn)。
關(guān)鍵詞 ARM 音樂播放器 S3C2410
隨著科學(xué)技術(shù)的發(fā)展和人們生活水平的提高,VCD、DVD、MP3等媒體的播放系統(tǒng)也日趨成熟。嵌入式系統(tǒng)以其可靠性高、實(shí)時性強(qiáng)、系統(tǒng)配置低等優(yōu)勢,廣泛應(yīng)用在工業(yè)控制、消費(fèi)電子、信息家電等領(lǐng)域,媒體播放控制就需要這樣的系統(tǒng)來完成。本文將使用ARM系統(tǒng),模擬簡單的音樂播放器。
一、系統(tǒng)設(shè)計方案
(一)設(shè)計要求
本設(shè)計是在武漢創(chuàng)維特信息技術(shù)有限公司的ARM9教學(xué)實(shí)驗(yàn)箱上完成,模擬了簡單的音樂播放器。利用Timer0產(chǎn)生PWM脈沖控制蜂鳴器,不同的頻率對應(yīng)不同的音調(diào),從而播放出不同的歌曲,具體設(shè)計要求如下:
(1) 實(shí)現(xiàn)播放音樂的開始和結(jié)束;
(2) 有選曲的功能,能播放下一首歌曲;
(3)使用數(shù)碼管來同步顯示歌曲的簡譜。
(二)系統(tǒng)流程
由于此系統(tǒng)較為簡單,故采用自上而下的設(shè)計方法,進(jìn)行程序設(shè)計;對音樂的開始和結(jié)束、以及選曲,采用中斷的方法,由中斷處理程序處理。程序流程如圖1所示:
二、嵌入式開發(fā)環(huán)境說明
硬件方面,我們使用S3C2410實(shí)驗(yàn)箱的串口與PC機(jī)串口連接,通過JTAG口的ARM仿真器把實(shí)驗(yàn)箱和PC機(jī)連接。
軟件方面,我們使用與實(shí)驗(yàn)箱配套的ADT軟件開發(fā)。
三、典型功能實(shí)現(xiàn)
(一)定義數(shù)組
包括音調(diào)的數(shù)組、某個樂曲簡譜的數(shù)組和樂曲節(jié)拍的數(shù)組。音樂的音高與頻率是對應(yīng)的,不同的頻率驅(qū)動蜂鳴器會使蜂鳴器產(chǎn)生不同音高,因此首先要確定音調(diào)和頻率之間的關(guān)系,如頻率為1300赫茲的音就是中音的“1”,頻率為1462赫茲的音為“2”,頻率為1625赫茲的音為“3”……等等。所以需要定義一個數(shù)組,存放各種音調(diào)的頻率值,順序?yàn)橹幸?、低音、高音,這樣,根據(jù)簡譜調(diào)用頻率值時,只要直接用簡譜做下標(biāo),但要注意,中音的下標(biāo)為1-7(下標(biāo)0空閑不用),低音下標(biāo)為8-14,高音為15-21。
簡譜和節(jié)拍都是包含多個值的變量,所以也要用數(shù)組存儲其元素,并且,簡譜可以做為音調(diào)的下標(biāo),而節(jié)拍,只要把最短音定為1,其他定為1的倍數(shù),利用延時程序的倍數(shù)關(guān)系實(shí)現(xiàn),具體實(shí)現(xiàn)如下:
void main(void)
{
……
//音調(diào)數(shù)組,分別對應(yīng)中、低、高音的1-7
const int music_freq[]
={0,1300,1462,1625,1736,1950,2166,2437,650,731,812,868,975,
1083,1218,2600 };
//世上只有媽媽好的簡譜
const int music[]
={6,5,3,5,15,6,5,6,3,5,6,5,3,1,13,5,3,2,2,3,5,5,6,3,2,1,5};
//世上只有媽媽好的節(jié)拍
const int music_dly[]
={3,1,2,2,2,1,1,4,2,1,1,2,2,1,1,1,1,4,3,1,2,1,1,2,2,4,};
}
(二)數(shù)碼管顯示簡譜
通過數(shù)碼管實(shí)時顯示歌曲的簡譜,這個操作放在播放歌曲函數(shù)中即可,實(shí)現(xiàn)如下:
for(delay=0;delay {rTCON=0x0;*((unsigned char *)0x10000006) = 0; *((unsigned char *)0x10000004) = seg7[b[i]]; } 四、結(jié)束語 本文設(shè)計實(shí)現(xiàn)了基于ARM9 平臺的簡單音樂播放器,該系統(tǒng)實(shí)現(xiàn)了歌曲簡譜的顯示、開始和結(jié)束等功能,基本實(shí)現(xiàn)了嵌入式播放器的功能需求,很好地模擬了音樂播放器的功能,而且操作簡單、方便。 參考文獻(xiàn): [1]章堅武,董平,馬勇.一種嵌入式多媒體播放器的硬件設(shè)計與實(shí)現(xiàn)[J].電子器件,2006,29( 4) : 1123-1125. [2]郁峰.基于嵌入式文件系統(tǒng)的MP3 播放器的設(shè)計和實(shí)現(xiàn)[D].蘇州:蘇州大學(xué),2009. [3]李彬.基于應(yīng)用程序的嵌入式Linux 內(nèi)核自動裁剪[D].東南大學(xué):計算機(jī)應(yīng)用專業(yè),2006. (作者單位:山東信息職業(yè)技術(shù)學(xué)院)