1.1單片機數字音樂盒有關介紹
電子音樂已廣泛地應用于社會生活的各個領域。其類型從音樂卡片到CD、MP3 等多種多樣,制作原理也各不相同。聲音是通過振動產生的。單片機對某一I/O引腳以一定的頻率循環置1和清0,這一引腳便產生一定頻率的方波,該方波通過放大后作用于揚聲器便產生一定頻率的聲音。若改變輸出方波的頻率,產生的聲音也就改變了。通過控制輸出方波的時間長短,聲音的長短也就得到控制。因此,根據樂譜,單片機就可產生電子音樂。音樂中最關鍵的兩個要素是音符和節拍。單片機控制的音樂發生器系統由硬件電路和軟件兩部分構成。利用單片機控制的電子音樂發生器軟硬件上具有獨特的優點,系統的開發周期短,成本低,電路制作容易。更換歌曲時,硬件電路無需作任何修改,只需修改軟件即可實現。軟件編程時,可用51系列單片機的匯編語言或C51語言實現。同時還可根據個人的習好通過軟件改變節拍的延時時間,增加電子音樂的趣味性。
1.1.1發音原理介紹
發音原理:播放一段音樂需要的是兩個元素,一個是音調,另一個是音符。首先要了解對應的音調,音調主要由聲音的頻率決定,同時也與聲音強度有關。對一定強度的純音,音調隨頻率的升降而升降;對一定頻率的純音、低頻純音的音調隨聲強增加而下降,高頻純音的音調卻隨強度增加而上升。另外,音符的頻率有所不同。基于上面的內容,這樣就對發音的原理有了一些初步的了解。
音符的發音主要靠不同的音頻脈沖。利用單片機的內部定時器/計數器0,使其工作在模式1,定時中斷,然后控制P3.7引腳的輸出音樂。只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間,利用定時器計時這個半周期時間,每當計時到后就將輸出脈沖的I/O反相,然后重復計時此半周期時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。
1.1.2 音符頻率的產生
音符及定時器初始值:
例如:中音1(do)的音頻=523HZ,周期T=1/523s=1912
定時器/計數器0的定時時間為:T/2=1912/2
定時器956的計數值=定時時間/機器周期=956/1=956(時鐘頻率=12MHZ)
裝入T0計數器初值為65536-956=64580
將64580裝入T0寄存器中,啟動T0工作后,每計數956次時將產生溢出中斷,進入中斷服務時,每次對P3.0引腳的輸出值進行取反,就可得到中音DO(523HZ)的音符音頻。將51單片機內部定時器工作在計數器模式1下,改變計數初值TH0,TL0以產生不同的頻率。
若該設計使用數字電路完成,所設計的電路相當復雜,大概需要十幾片數字集成塊,其功能也主要依賴于數字電路的各功能模塊的組合來實現,焊接的過程比較復雜,成本也非常高。若用單片機來設計制作完成,由于其功能的實現主要通過軟件編程來完成,那么就降低了硬件電路的復雜性,而且其成本也有所降低,所以在該設計中采用單片機利用AT89C51,它是低功耗、高性能的CMOS型8位單片機。片內帶有4KB的Flash存儲器,且允許在系統內改寫或用編程器編程。另外, AT89C51的指令系統和引腳與8051完全兼容,片內有128B 的RAM、32條I/O口線、2個16位定時計數器、5個中斷源、一個全雙工串行口等.