當前位置:學問君>學習教育>畢業論文>

基於單片機的音樂盒設計論文

學問君 人氣:1.8W

摘 要:隨着資訊技術革命的不斷深入,以及計算機技術的快速發展,單片機的應用越來越廣泛了,並且已經逐漸地發展成爲了一門比較關鍵的技術學科。本文所介紹的是一種比較簡易的單片機音樂盒的設計以及其相關的實現方案,利用的是AT89C51單片機。透過樂譜的音節以及節拍混排的方式進行了一次編碼,從而實現了樂曲的播放這一功能。

基於單片機的音樂盒設計論文

關鍵詞單片機音樂盒;樂曲播放;T89C51單片機

一、引言

伴隨着資訊技術革命的不斷深入,以及計算機技術的快速發展,單片機的應用越來越廣泛了,並且已經逐漸地發展成爲了一門比較關鍵的技術學科。單片機具有這樣一些突出優點:體積小、質量輕 、耗電量小、 電源比較單一 、功能性強、價格低、執行速度比較快 、抗干擾的能力較強、利用率高等優點。 因而在通信、家電、工業中等特別是汽車等產品的應用當中都能夠處處看到單片機的應用。

毫不誇張的說一塊單片機芯片就是一臺計算機。然而因爲受到單片機的這樣的特殊的結構形式,使得在某些領域當中,它所承載了很多不論是大中型或者是微小型計算機都沒有辦法完成的一些工作,使得它有了許多方面的優點和特點,由於單片機的這些優勢和優點,因而在各個領域當中,單片機都得到了飛快地發展。

二、音樂盒設計

大家一定都有見到過在市面上出售的各式各樣的小音樂片,它們大多隻透過一個小小的集成電路塊構成,接通了電源之後就能夠發出很優美的旋律,演奏出動聽的樂曲出來。然而美中不足的是這樣的音樂盒只能夠存儲播放一個單一的曲目,不能夠滿足更多人的愛好。所以就有了現在的單片機的音樂盒設計,我們要設計出一個能夠彌補只能播放一隻相同曲目音樂片的缺陷,讓它能夠不僅僅是可以存儲一首樂曲,最重要的是還能夠根據自身的愛好以及需要透過編程將自己喜歡的樂曲納入進去,從而來實現一個透過按鍵選擇來選取播放曲目的功能性音樂盒。

1、音樂盒的設計原理

我們都知道頻率決定着音調,所以根據十二平均律,有了如下的音調與頻率的像對應的關係:相鄰之間的兩個音位半音的'關係,也就是說在兩個音之間的頻在1同2之間插入11個數組成比例的數列。它所規定的c1的頻率是261.63Hz,所以#c1的頻率是277.19 Hz,b的頻率是爲246.95Hz,同樣的若是想要求出它們之間各個音的頻率都可以透過上述方法算出。換句話說,只要能夠產生所相對應的頻率震盪的信號,那麼只要經過放大之後送到揚聲器裏,就能夠聽到優美動聽的音樂了。但是,音樂的長短都是一定的規律組織起來的一個音的組成。所以對於音樂盒來說還必須能夠控制好每個音播放的時間才行,通常情況下節拍和曲調的時間都是有其對應關係的,當我們利用AT89C51的定時,讓計數器1產生樂音,定時,然後計數器2對每個音播放的時間進行控制。

與此同時,我們還可以計算出它們之間每一個音的一個頻率,換句話說就是隻要能夠產生對應頻率的一個振盪信號,那麼經過放大後放入到揚聲器當中,就能夠聽到相應的優美動聽的曲段了,但是我們都是振盪,音樂是要透過一系列的長短不一的或者是按照相同的或者是一定的規律組織起來的一個音的組成,對於音樂盒來說還必須能夠控制好每一個音播放的時間纔可以。通常情況下節拍同曲調的時間之間都是有着相互對應的關係的。當我們利用AT89C51進行定時的時候,計數器1就能夠產生樂音,定時,計數器2控制着每一個音播放的時間。根據節拍的不同託拍的延長時間也是有着差別的。

2、音樂盒設計的相關思路

(1)硬件設計方面

在硬件設計方面所採用的是ATMEL公司所生產出來的AT89C51單片機,這也是整個音樂盒的核心部分,所採用的是12MHz晶體,並且在P1.0口接上一個播放或者是停止的開關,P1.7口是輸出音樂端口,加一級三極管放大之後就直接對揚聲器進行驅動作用。

(2)軟件設計方面

曲譜編碼,節拍標記:因爲曲譜不僅需要包含音名的資訊,而且還要包含有節拍的資訊。在此我們所採用的是一種音名同節拍混排的一種方式來對曲譜進行的編碼。它的單位是字節,如果說最高位時1的話,那麼就爲節拍標記號,不然就以爲這音名標記。節拍標記號其後所有的音名一級節拍的時間,要考慮到節拍延時時間都爲31250μs的整數倍,對於節拍標記來說,除了最高位以外,其它的七位所表示的就是需要延時多少個31250μs。比如說0x88所表示的是4/4拍曲譜當中的I/4拍。如果說節拍標記爲0x80的話,就爲曲譜結束標記,當讀到這個標記的時候,即表示演奏停止了。

透過將96個音分別進行分組,然後得到了八個音組:大字而組;大字一組;大字組;小字組、小字一組、小字二組、小字三組、小字四組,在每個音組當中都包含有十二個音包括了:C、#C、D、#D、E、F、#F、G、#G、A、#A、B。爲此,我們透過用音名標記中的底四位表示的是音名,而高四位則表示爲音組。再加上休止符,將音名按照編碼編寫:當D1、D2、D3、D0都爲零的時候音名爲C;當D0爲一時,其他都爲零時音名爲#C;當D1爲1時,其它都爲零時,音名爲D;當D1、D0都爲一時,其它爲零時,音名爲#D;當只有D2爲一時其它都爲零時,音名爲E;當D2、D0爲一時,其它爲零時,音名爲F;當D2、D1爲一時音名爲#F;當只有D3爲零時其餘都爲一時,音名爲G;與上相反情況時,音名爲#G;當D3、D0爲一時,其餘都爲零時,音名爲A;當D3、D1爲一時,其餘爲零時,音名爲#A;當只有D2爲零時,其餘都爲一時,音名爲B;當D3到D0都爲一時音名爲休止符。

(3)程序編寫方面

1、主程序:對於主程序來說,首先主要作用的就是對一個音樂盒的一個播放或者是停止狀態的一個控制,透過按下播放或者是停止的按鍵來對播放的狀態進行一個控制。

2、T2中斷:T2的中斷主要負責的就是曲譜的讀取以及對節拍的一個控制情況,並且將曲譜轉換完之後,作爲T0 的一個定時器的一個初始值。

3、T0中斷:T0的中斷主要要實現的就是對P1.7口的點平的一次翻轉,從而來獲取一定的頻率的輸出。

三、結論

總體而言,本文所探討的就是關於單片機音樂設計方案,總的來說本文所採用的設計方案比較簡單,而且在設計過程中採用的極少的硬件,並且在編碼的方式上面採用的是音節同節拍的一個混排的方式,這樣做的好處就在於能夠極大地節省內存的空間。而且可以根據個人的興趣愛好存儲多首歌曲,而且可以透過安檢的一個方式來實現對音樂盒的一個播放以及選擇性的收聽的功能。並且如果能夠將其與計算機相連接也考慮進去的話,那麼在我們現有的音樂盒的一個基礎上還能夠進行曲譜的一個下載功能,這樣必定能夠使得音樂盒的一個功能更加齊全,更加趨於完美。

參考文獻:

[1]劉衛鋒等.音樂與數學(J).數學通報,2005,(4).

[2]何立民.單片機進階教程(應用與設計)(M).北京:航空航天大學出版社,2000.

[3]崔葛瑾、沈雄威.數電實驗“音樂播放控制電路”的設計與實現(J).實驗室研究與探索,200

[4]林伸茂.8051單片機徹底研究經驗篇(M).北京:人民郵電出版社,2004

[5] 何立民. 單片機進階教程. 第1版.北京:北京航空航天大學出版社,2001