基于單片機的音樂盒設(shè)計論文
摘 要:隨著信息技術(shù)革命的不斷深入,以及計算機技術(shù)的快速發(fā)展,單片機的應(yīng)用越來越廣泛了,并且已經(jīng)逐漸地發(fā)展成為了一門比較關(guān)鍵的技術(shù)學(xué)科。本文所介紹的是一種比較簡易的單片機音樂盒的設(shè)計以及其相關(guān)的實現(xiàn)方案,利用的是AT89C51單片機。通過樂譜的音節(jié)以及節(jié)拍混排的方式進行了一次編碼,從而實現(xiàn)了樂曲的播放這一功能。
關(guān)鍵詞:單片機音樂盒;樂曲播放;T89C51單片機
一、引言
伴隨著信息技術(shù)革命的不斷深入,以及計算機技術(shù)的快速發(fā)展,單片機的應(yīng)用越來越廣泛了,并且已經(jīng)逐漸地發(fā)展成為了一門比較關(guān)鍵的技術(shù)學(xué)科。單片機具有這樣一些突出優(yōu)點:體積小、質(zhì)量輕 、耗電量小、 電源比較單一 、功能性強、價格低、運行速度比較快 、抗干擾的能力較強、利用率高等優(yōu)點。 因而在通信、家電、工業(yè)中等特別是汽車等產(chǎn)品的應(yīng)用當(dāng)中都能夠處處看到單片機的應(yīng)用。
毫不夸張的說一塊單片機芯片就是一臺計算機。然而因為受到單片機的這樣的特殊的結(jié)構(gòu)形式,使得在某些領(lǐng)域當(dāng)中,它所承載了很多不論是大中型或者是微小型計算機都沒有辦法完成的一些工作,使得它有了許多方面的優(yōu)點和特點,由于單片機的這些優(yōu)勢和優(yōu)點,因而在各個領(lǐng)域當(dāng)中,單片機都得到了飛快地發(fā)展。
二、音樂盒設(shè)計
大家一定都有見到過在市面上出售的各式各樣的小音樂片,它們大多只通過一個小小的集成電路塊構(gòu)成,接通了電源之后就能夠發(fā)出很優(yōu)美的旋律,演奏出動聽的樂曲出來。然而美中不足的是這樣的音樂盒只能夠存儲播放一個單一的曲目,不能夠滿足更多人的愛好。所以就有了現(xiàn)在的單片機的音樂盒設(shè)計,我們要設(shè)計出一個能夠彌補只能播放一只相同曲目音樂片的缺陷,讓它能夠不僅僅是可以存儲一首樂曲,最重要的是還能夠根據(jù)自身的愛好以及需要通過編程將自己喜歡的樂曲納入進去,從而來實現(xiàn)一個通過按鍵選擇來選取播放曲目的功能性音樂盒。
1、音樂盒的設(shè)計原理
我們都知道頻率決定著音調(diào),所以根據(jù)十二平均律,有了如下的音調(diào)與頻率的像對應(yīng)的關(guān)系:相鄰之間的兩個音位半音的'關(guān)系,也就是說在兩個音之間的頻在1同2之間插入11個數(shù)組成比例的數(shù)列。它所規(guī)定的c1的頻率是261.63Hz,所以#c1的頻率是277.19 Hz,b的頻率是為246.95Hz,同樣的若是想要求出它們之間各個音的頻率都可以通過上述方法算出。換句話說,只要能夠產(chǎn)生所相對應(yīng)的頻率震蕩的信號,那么只要經(jīng)過放大之后送到揚聲器里,就能夠聽到優(yōu)美動聽的音樂了。但是,音樂的長短都是一定的規(guī)律組織起來的一個音的組成。所以對于音樂盒來說還必須能夠控制好每個音播放的時間才行,通常情況下節(jié)拍和曲調(diào)的時間都是有其對應(yīng)關(guān)系的,當(dāng)我們利用AT89C51的定時,讓計數(shù)器1產(chǎn)生樂音,定時,然后計數(shù)器2對每個音播放的時間進行控制。
與此同時,我們還可以計算出它們之間每一個音的一個頻率,換句話說就是只要能夠產(chǎn)生對應(yīng)頻率的一個振蕩信號,那么經(jīng)過放大后放入到揚聲器當(dāng)中,就能夠聽到相應(yīng)的優(yōu)美動聽的曲段了,但是我們都是振蕩,音樂是要通過一系列的長短不一的或者是按照相同的或者是一定的規(guī)律組織起來的一個音的組成,對于音樂盒來說還必須能夠控制好每一個音播放的時間才可以。通常情況下節(jié)拍同曲調(diào)的時間之間都是有著相互對應(yīng)的關(guān)系的。當(dāng)我們利用AT89C51進行定時的時候,計數(shù)器1就能夠產(chǎn)生樂音,定時,計數(shù)器2控制著每一個音播放的時間。根據(jù)節(jié)拍的不同托拍的延長時間也是有著差別的。
2、音樂盒設(shè)計的相關(guān)思路
。1)硬件設(shè)計方面
在硬件設(shè)計方面所采用的是ATMEL公司所生產(chǎn)出來的AT89C51單片機,這也是整個音樂盒的核心部分,所采用的是12MHz晶體,并且在P1.0口接上一個播放或者是停止的開關(guān),P1.7口是輸出音樂端口,加一級三極管放大之后就直接對揚聲器進行驅(qū)動作用。
。2)軟件設(shè)計方面
曲譜編碼,節(jié)拍標記:因為曲譜不僅需要包含音名的信息,而且還要包含有節(jié)拍的信息。在此我們所采用的是一種音名同節(jié)拍混排的一種方式來對曲譜進行的編碼。它的單位是字節(jié),如果說最高位時1的話,那么就為節(jié)拍標記號,不然就以為這音名標記。節(jié)拍標記號其后所有的音名一級節(jié)拍的時間,要考慮到節(jié)拍延時時間都為31250μs的整數(shù)倍,對于節(jié)拍標記來說,除了最高位以外,其它的七位所表示的就是需要延時多少個31250μs。比如說0x88所表示的是4/4拍曲譜當(dāng)中的I/4拍。如果說節(jié)拍標記為0x80的話,就為曲譜結(jié)束標記,當(dāng)讀到這個標記的時候,即表示演奏停止了。
通過將96個音分別進行分組,然后得到了八個音組:大字而組;大字一組;大字組;小字組、小字一組、小字二組、小字三組、小字四組,在每個音組當(dāng)中都包含有十二個音包括了:C、#C、D、#D、E、F、#F、G、#G、A、#A、B。為此,我們通過用音名標記中的底四位表示的是音名,而高四位則表示為音組。再加上休止符,將音名按照編碼編寫:當(dāng)D1、D2、D3、D0都為零的時候音名為C;當(dāng)D0為一時,其他都為零時音名為#C;當(dāng)D1為1時,其它都為零時,音名為D;當(dāng)D1、D0都為一時,其它為零時,音名為#D;當(dāng)只有D2為一時其它都為零時,音名為E;當(dāng)D2、D0為一時,其它為零時,音名為F;當(dāng)D2、D1為一時音名為#F;當(dāng)只有D3為零時其余都為一時,音名為G;與上相反情況時,音名為#G;當(dāng)D3、D0為一時,其余都為零時,音名為A;當(dāng)D3、D1為一時,其余為零時,音名為#A;當(dāng)只有D2為零時,其余都為一時,音名為B;當(dāng)D3到D0都為一時音名為休止符。
(3)程序編寫方面
1、主程序:對于主程序來說,首先主要作用的就是對一個音樂盒的一個播放或者是停止狀態(tài)的一個控制,通過按下播放或者是停止的按鍵來對播放的狀態(tài)進行一個控制。
2、T2中斷:T2的中斷主要負責(zé)的就是曲譜的讀取以及對節(jié)拍的一個控制情況,并且將曲譜轉(zhuǎn)換完之后,作為T0 的一個定時器的一個初始值。
3、T0中斷:T0的中斷主要要實現(xiàn)的就是對P1.7口的點平的一次翻轉(zhuǎn),從而來獲取一定的頻率的輸出。
三、結(jié)論
總體而言,本文所探討的就是關(guān)于單片機音樂設(shè)計方案,總的來說本文所采用的設(shè)計方案比較簡單,而且在設(shè)計過程中采用的極少的硬件,并且在編碼的方式上面采用的是音節(jié)同節(jié)拍的一個混排的方式,這樣做的好處就在于能夠極大地節(jié)省內(nèi)存的空間。而且可以根據(jù)個人的興趣愛好存儲多首歌曲,而且可以通過安檢的一個方式來實現(xiàn)對音樂盒的一個播放以及選擇性的收聽的功能。并且如果能夠?qū)⑵渑c計算機相連接也考慮進去的話,那么在我們現(xiàn)有的音樂盒的一個基礎(chǔ)上還能夠進行曲譜的一個下載功能,這樣必定能夠使得音樂盒的一個功能更加齊全,更加趨于完美。
參考文獻:
[1]劉衛(wèi)鋒等.音樂與數(shù)學(xué)(J).?dāng)?shù)學(xué)通報,2005,(4).
[2]何立民.單片機高級教程(應(yīng)用與設(shè)計)(M).北京:航空航天大學(xué)出版社,2000.
[3]崔葛瑾、沈雄威.?dāng)?shù)電實驗“音樂播放控制電路”的設(shè)計與實現(xiàn)(J).實驗室研究與探索,200
[4]林伸茂.8051單片機徹底研究經(jīng)驗篇(M).北京:人民郵電出版社,2004
[5] 何立民. 單片機高級教程. 第1版.北京:北京航空航天大學(xué)出版社,2001
【基于單片機的音樂盒設(shè)計論文】相關(guān)文章:
2.基于單片機監(jiān)控系統(tǒng)的研究畢業(yè)論文