《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于單片機的音樂播放器的仿真與制作
基于單片機的音樂播放器的仿真與制作
電子元器件應用
遠 飛 無錫商業(yè)職業(yè)技術學院
摘要: 本文通過Proteus ISIS對單片機音樂播放器進行了仿真,并在仿真的基礎上制作了一個音樂播放器實物,其音樂播放的效果很好。作者通過仿真與制作,對這兩者進行了比較與總結,并給出了兩種電路圖及程序流程圖,希望能成為讀者的參考。
關鍵詞: 單片機 音樂播放器
Abstract:
Key words :

摘要:為了解決專用音樂播放芯片只能一次性燒錄、播放內容不可變的缺點,文中給出了采用單片機來設計音樂播放器,同時通過Proteus軟件對基于AT89S52單片機的音樂播放器進行仿真的實現(xiàn)方法。利用該方法設計的播放器的播放內容和歌曲數(shù)量可以隨時修改。
關鍵詞:單片機;音樂播放器;Proteus

0 引言
    播放音樂最簡單的方法就是采用專用音樂芯片,該方法的缺點是音樂芯片只能一次性燒錄,播放的內容不可變。而采用單片機播放音樂則能克服這一缺點,其播放的內容以及歌曲的數(shù)量都可以隨時修改。同時,使用軟件Proteus在產(chǎn)品開發(fā)的初期對設計進行仿真無疑是一種提高效率和降低成本的好辦法,但是仿真畢竟有一定的局限性,要實踐起來可能會碰到一些問題。為此,本文通過Proteus軟件對用AT89S52單片機播放音樂進行了仿真,指出了實際制作過程中需要注意的地方。

1 硬件電路設計
1.1 仿真軟件Proteus簡介
    Proteus的ISIS是一款Labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,它支持單片機且元件庫齊全,使用方便,是不可多得的專業(yè)單片機軟件仿真系統(tǒng)。目前可支持的單片機類型有68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。
1.2 電路設計
    圖1所示是單片機音樂播放器的仿真原理圖。在Proteus仿真軟件中,按一下按鈕,蜂鷗器即可播放音樂。

a.JPG


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

b.JPG



2 軟件設計
2.1 播放原理
    聲音的頻譜范圍通常約為幾十到幾千赫茲,通過程序控制單片機的I/O口可輸出不同頻率的矩形波。當該矩形波的頻率位于聲音頻譜范圍內時,在單片機的I/O口接上喇叭就能發(fā)出聲音。然后利用延時程序控制矩形波的高、低電平持續(xù)時間,即改變矩形波的頻率,即可產(chǎn)生不同的音調,從而發(fā)出不同的聲音,再讓矩形波輸出的長短對應節(jié)拍,就可以實現(xiàn)單片機對音樂的演奏。
2.2 音調和節(jié)拍編碼
    單片機奏樂只需弄清楚兩個概念,也就是“音調”和“節(jié)拍”。音調表示一個音符唱多高的頻率,節(jié)拍表示一個音符唱多長的時間。
    由于各個音調對應的頻率是已知的,因此,播放音樂時,應對樂曲中出現(xiàn)的音調進行編碼,并找出單片機播放這些音調所對應的定時初值。表1所列是音調編碼與定時器的初值表,其中頻率是已知的,編碼可以自己設置,而定時初值是怎樣得來的呢?下面以“低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拍可以調用一次延時程序,1/2拍需調用二次延時程序,1拍需調用四次延時程序,依次類推。
2.3 編程
    音調和節(jié)拍都進行過編碼后,那么,一首樂曲就可以用若干個8位的簡碼表示。比如“生日快樂歌”的第一個簡碼是“82H”,由表1可知,其高四位“8”表示音調“中5”,對應的頻率是784Hz,對應的定時器初值是64898;另由表2可知,其低四位“2”表示節(jié)拍為“2/4拍”。這樣,任意一首樂曲的簡碼都可以通過樂譜提取軟件獲得,而得到簡碼后,就可以編程了。圖3所示是單片機播放音樂的程序流程圖,本文使用的是定時器0,音調的高低由定時器來控制P3.7并按一定頻率取反實現(xiàn),節(jié)拍的長短由延時程序控制。流程圖中的“TABLE”是由表1中的定時初值組成的。

c.JPG

d.JPG

e.JPG



3 結束語
    本文通過Proteus ISIS對單片機音樂播放器進行了仿真,并在仿真的基礎上制作了一個音樂播放器實物,其音樂播放的效果很好。作者通過仿真與制作,對這兩者進行了比較與總結,并給出了兩種電路圖及程序流程圖,希望能成為讀者的參考。

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。