摘 要:隨著科學(xué)技術(shù)的迅猛發(fā)展,計(jì)算機(jī)技術(shù)也得到了快速的發(fā)展,嵌入式技術(shù)也日趨成熟,并已經(jīng)逐步發(fā)展成了比較關(guān)鍵的一門技術(shù)學(xué)科。文章介紹的是一個(gè)基于arm9處理器簡(jiǎn)易音樂(lè)盒的設(shè)計(jì)及其實(shí)現(xiàn)方案,采用的是s3c2410處理器芯片。通過(guò)對(duì)樂(lè)譜音節(jié)和節(jié)拍的混排方式進(jìn)行編碼來(lái)實(shí)現(xiàn)樂(lè)曲播放的功能。
關(guān)鍵詞:arm;嵌入式技術(shù);s3c2410;音樂(lè)盒
1 概述
隨著科學(xué)技術(shù),尤其計(jì)算機(jī)技術(shù)的快速發(fā)展,嵌入式技術(shù)也得到了快速的發(fā)展,并逐步發(fā)展成一門關(guān)鍵的技術(shù)學(xué)科。Arm即advanced RISC machines,雖然是一個(gè)公司的名字,它代表的是一項(xiàng)技術(shù),是一類微處理器的統(tǒng)稱。它具有這樣的一些特點(diǎn):體積小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;大量使用寄存器,指令執(zhí)行速度更快;大多數(shù)數(shù)據(jù)操作都在寄存器中完成;尋址方式靈活簡(jiǎn)單,執(zhí)行效率高;指令長(zhǎng)度固定。因而在工業(yè)、軍事國(guó)防、網(wǎng)絡(luò)、消費(fèi)電子中能夠處處看到嵌入式技術(shù)arm的應(yīng)用。
2 音樂(lè)盒設(shè)計(jì)
隨著人類社會(huì)的發(fā)展進(jìn)步,人們對(duì)視聽(tīng)方面的享受也提出了更高的要求。傳統(tǒng)的音樂(lè)盒大多是機(jī)械型的,一般是由一小片集成電路塊構(gòu)成,一旦接通電源,即可播放優(yōu)美、動(dòng)聽(tīng)的樂(lè)曲,然而這樣的音樂(lè)盒只能重復(fù)播放一個(gè)指定的、單一的曲目,不能按照人們的要求,播放出每個(gè)人喜歡的樂(lè)曲。文章所設(shè)計(jì)的音樂(lè)盒,不僅能夠存儲(chǔ)樂(lè)曲,還可以根據(jù)自身的需要和愛(ài)好將自己喜愛(ài)的曲目添加進(jìn)去,只需要經(jīng)過(guò)簡(jiǎn)單的編程即可。
2.1 音樂(lè)盒的設(shè)計(jì)原理
我們知道頻率決定音調(diào),根據(jù)十二平均律,有如圖1的音階圖對(duì)應(yīng)關(guān)系:相鄰之間的兩個(gè)音位半音的關(guān)系。圖中每一格為一個(gè)半音,通過(guò)圖1中的公式,可以求出它們之間各個(gè)音的頻率。文章通過(guò)《祝你生日快樂(lè)》樂(lè)曲來(lái)描述簡(jiǎn)易音樂(lè)盒的設(shè)計(jì)。《祝你生日快樂(lè)》樂(lè)曲的音階為F,F(xiàn)調(diào)音階與頻率的關(guān)系如表1所示。也就是說(shuō),只要能夠產(chǎn)生所對(duì)應(yīng)的頻率振蕩信號(hào),再經(jīng)過(guò)放大器放大,再將放大的信號(hào)傳到揚(yáng)聲器,就可聽(tīng)到動(dòng)聽(tīng)優(yōu)美的音樂(lè)。但音樂(lè)的長(zhǎng)短都是由有一定規(guī)律組織起來(lái)的一個(gè)音組成,所以必須還要控制好每個(gè)音的播放時(shí)間,通常節(jié)拍和曲調(diào)的時(shí)間都是有其一定的對(duì)應(yīng)關(guān)系。《祝你生日快樂(lè)》樂(lè)曲簡(jiǎn)譜如圖2所示。
若f1距f2有n個(gè)半音,則計(jì)算公式為:n個(gè)半音=1/12*log2(f1/f2),若f1
圖1 音階圖
2.2 硬件設(shè)計(jì)
在硬件設(shè)計(jì)方面筆者所采用的是arm9系列s3c2410處理器芯片,這也是整個(gè)音樂(lè)盒的核心部分。由s3c2410處理器芯片的定時(shí)器0來(lái)控制GBP0引腳輸出不同頻率的方波,實(shí)現(xiàn)產(chǎn)生每個(gè)音符所對(duì)應(yīng)的頻率振蕩信號(hào),再經(jīng)過(guò)Q1的放大,傳至揚(yáng)聲器播放樂(lè)曲。在設(shè)計(jì)中,我們所采用的蜂鳴器為無(wú)源蜂鳴器。(如圖3)
圖3 硬件結(jié)構(gòu)圖
2.3 軟件設(shè)計(jì)
曲譜中不僅包含有音名信息,還包含有節(jié)拍信息。所以我們對(duì)曲譜進(jìn)行編碼時(shí)所采用的是一種音名和節(jié)拍混排的方式。在程序設(shè)計(jì)方面,主要涉及以下因素:根據(jù)音樂(lè)簡(jiǎn)譜中的低、中、高音的各自7個(gè)音符對(duì)應(yīng)的頻率,設(shè)置Timer0工作頻率為1MHz,根據(jù)樂(lè)曲簡(jiǎn)譜圖和音階與頻率的對(duì)照表得到每個(gè)音符所對(duì)應(yīng)的頻率,計(jì)算出產(chǎn)生該音符所對(duì)應(yīng)頻率的PWM信號(hào)所需的計(jì)數(shù)初值,然后用一個(gè)數(shù)組1來(lái)存放這些計(jì)數(shù)初值??紤]到每個(gè)節(jié)拍的延時(shí)時(shí)間的不同,設(shè)置一個(gè)基礎(chǔ)的延時(shí)時(shí)間,每個(gè)節(jié)拍的延時(shí)時(shí)間都是該基礎(chǔ)延時(shí)時(shí)間的整數(shù)倍。用延時(shí)函數(shù)來(lái)實(shí)現(xiàn)音長(zhǎng),函數(shù)的傳遞參數(shù)作為音長(zhǎng)單位,將其用一個(gè)數(shù)組2來(lái)存放。根據(jù)不同樂(lè)曲的簡(jiǎn)譜,用一個(gè)數(shù)組3按照其播放順序依次存放每個(gè)音符在數(shù)組1中的位置和其對(duì)應(yīng)音長(zhǎng)在數(shù)組2中的位置。通過(guò)依次調(diào)用數(shù)組3中的元素,來(lái)實(shí)現(xiàn)音樂(lè)的播放。
3 結(jié)束語(yǔ)
文章提出了一個(gè)簡(jiǎn)易音樂(lè)盒的設(shè)計(jì)方案及實(shí)現(xiàn)思路,僅用到s3c2410處理器芯片的定時(shí)器功能,涉及硬件資源較少,采用音節(jié)和節(jié)拍的一個(gè)混排方式進(jìn)行編碼,可以節(jié)省內(nèi)存空間。人們可以根據(jù)自己的愛(ài)好興趣存儲(chǔ)、播放自己喜愛(ài)的樂(lè)曲。
參考文獻(xiàn)
[1]劉衛(wèi)鋒,等.音樂(lè)與教學(xué)[J].數(shù)學(xué)通報(bào),2005(4).
[2]曹麗燕.基于單片機(jī)的音樂(lè)盒設(shè)計(jì)[J].信息與電腦,2010.
作者簡(jiǎn)介:徐禮國(guó)(1984-),男,碩士研究生,主要從事電子技術(shù)研究。