新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于單片機的音樂播放器的仿真與制作

基于單片機的音樂播放器的仿真與制作

作者: 時間:2011-03-29 來源:網(wǎng)絡 收藏

事實上,按照圖1所示原理圖來焊接電路,其結(jié)果可能沒有任何效果。而圖2所示才是的實際電路。與圖1相比,實
際電路多了兩個部分:一是左邊最小系統(tǒng)所需的電路部分,而軟件中則將這些省略了;另一個是右邊多了一個三極管。之所以要加這個三極管,主要是為了放大蜂鳴器的驅(qū)動電流,而軟件里面所有的元件都是理想元件,所以,能實現(xiàn)的效果,實際做出來往往沒有效果。因此,要想在實際中實現(xiàn)滿意的效果還要憑借硬件經(jīng)驗進行反復的摸索和嘗試。

本文引用地址:http://butianyuan.cn/article/172903.htm

b.JPG



2 軟件設計
2.1 播放原理
聲音的頻譜范圍通常約為幾十到幾千赫茲,通過程序控制單片機的I/O口可輸出不同頻率的矩形波。當該矩形波的頻率位于聲音頻譜范圍內(nèi)時,在單片機的I/O口接上喇叭就能發(fā)出聲音。然后利用延時程序控制矩形波的高、低電平持續(xù)時間,即改變矩形波的頻率,即可產(chǎn)生不同的音調(diào),從而發(fā)出不同的聲音,再讓矩形波輸出的長短對應節(jié)拍,就可以實現(xiàn)單片機對的演奏。
2.2 音調(diào)和節(jié)拍編碼
單片機奏樂只需弄清楚兩個概念,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個音符唱多高的頻率,節(jié)拍表示一個音符唱多長的時間。
由于各個音調(diào)對應的頻率是已知的,因此,播放時,應對樂曲中出現(xiàn)的音調(diào)進行編碼,并找出單片機播放這些音調(diào)所對應的定時初值。表1所列是音調(diào)編碼與定時器的初值表,其中頻率是已知的,編碼可以自己設置,而定時初值是怎樣得來的呢?下面以“低6”為例進行說明。“低6”的頻率f為440 Hz,其對應的周期為:T=1/f=1/440=272μs。單片機上對應蜂鳴器的I/O口來回取反的時間應為:t=T/2=2272/2=1136μs。單片機奏樂時,其定時器為工作方式1,若以振蕩器的十二分頻信號為計數(shù)脈沖,如果單片機晶振為12MHz,則1μs計數(shù)一次。所以,對于“低6”,其定時器的初值應該是:216-1136=64400。
對節(jié)拍的控制可通過延時程序來實現(xiàn)。表2所列是節(jié)拍編碼表。若以1拍的時長為400ms為例,1/2拍的時長為200ms,1/4拍的時長為100ms。首先,這樣,確定一個基本時長的延時程序,比如以100ms為基本延時時間,那么,1/4拍可以調(diào)用一次延時程序,1/2拍需調(diào)用二次延時程序,1拍需調(diào)用四次延時程序,依次類推。



評論


相關推薦

技術專區(qū)

關閉