臧金梅 孫燦 郇濤

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