單片機利用蜂鳴器演奏音樂_第1頁
單片機利用蜂鳴器演奏音樂_第2頁
單片機利用蜂鳴器演奏音樂_第3頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、實驗三利用蜂鳴器演奏音樂時間:2021.03.01創(chuàng)作:歐陽語一、實驗目的1. 了解BlueSkyCSl單片機實驗板中蜂鳴器的硬件電路2. 學會利用蜂鳴器實現(xiàn)音樂的演奏3. 掌握蜂鳴器實現(xiàn)音樂演奏的編程二實驗硬件設(shè)計及電路1. BlueSkyC51單片機實驗板2. 單片機最小系統(tǒng)3. 蜂鳴器電路連接三極管主要是做驅(qū)動用的。因為單片機的IO 口驅(qū)動能 力不夠讓蜂鳴器發(fā)出聲音,所以我們通過三極管放大驅(qū)動電 流,從而可以讓蜂鳴器發(fā)出聲音,你要是輸出高電平,三極 管導通,集電極電流通過蜂鳴器讓蜂鳴器發(fā)出聲音,當輸出 低電平時,三極管截止,沒有電流流過蜂鳴器,所以就不會 發(fā)出聲音。三、實驗原理1音調(diào)及節(jié)

2、拍用一個口,輸出方波,這個方波輸入進蜂鳴器就會產(chǎn)生 聲音”通過控制方波的頻率、時間”就能產(chǎn)生簡單的音樂。一般說來,單片機演奏音樂基本都是單音頻率z因此單片機 奏樂只需控制音調(diào)和節(jié)拍。(1) 音調(diào)的確定音調(diào)是由頻率來確定的。通過單片機的定時器定時中斷, 將單片機上對應(yīng)蜂鳴器的I/O 口來回取反,從而讓蜂鳴器發(fā) 出不同頻率的聲音。只需將走時器給以不同的定時值就可實 現(xiàn)。通過延時,即可發(fā)出所需要的頻率。(2) 節(jié)拍的確定一拍的時長大約為400500ms侮個音符的時長通過 節(jié)拍來計算。詳細見歸代碼。2.軟件設(shè)計相關(guān)(1) 頭文件#in clude<reg51.h>#define uint

3、unsigned int#define uchar unsigned char#define ulong unsigned longsbit beep=PlA4; 蜂鳴器與P1.4口連接(2) 歌曲曲譜uchar code diaodata30= 音調(diào)代碼0x10,0x0 巳 0x0c,0x10,0x0 巳 0x0c,0x10,0x0 巳 0x10,OxOcQxlO,0x15,0x13,0x10,0x13,0x15,0x15,0x13,0x15,0x13,0x10,0x06,0x00x08OxOe, 0x10, OxOe, OxOc, OxOe, 0x0 0;uchar code jiedat

4、a30=音長代碼0x04,0x04,0x08,0x06,0x02,0x08,0x04,0x04,0x04,0x04,0x02,0x06,0x08,0x02,0x02,0x04,0x04,0x04,0x04,0x08,0x02,0x02,0x04,0x04, 0x02,0x02,0x04,0x04,0x0(3,0x00;(3) 音階表uchar code freq36*2=音階碼表0xf7z0xd8z /440hz , 1/00xf8z0x50z /466hz , 1#/I0xf8,0xbc, 494hz , 2/20xf9,0x26, 524hz z 2#/30xf9,0x85, /554hz

5、 , 3/40xf9z0xe5r /588hz , 4/50xfa0x3d, /622hz , 4#/60xfa/0x92/ /660hz , 5/7OxfaOxdd, 698hz , 5#/80xfb/0x29/ /740hz , 6/90xfb,0x70, /784hz , 6#/10OxfbQxbO, /830hz, 7/llOxfb,Oxet /880hz, 1/120xfc,0x29, 932hz z 1#/130xfc,0x62, /988hz f 2/140xfc,0x95z /1046h乙 2#/150xfc,0xc7, /1108h乙 3/16Oxfc,Oxf5, /1174

6、hzz 4/170xfd/0x20z /1244h乙 4#/180xfd/0x4c/ /1318h乙 5/190xfdz0x72z /1396h乙 5#/200xfd,0x97, /1480h乙 6/21OxfdQxbb, /1568h乙 6#/22OxfdQxdc, 1662h乙 7/23OxfdQxfb, /1769h乙 '1/240xfez0xl8z /1864h乙 '1#/25Oxf巳0x34, /1976h乙 '2/26Oxf巳0x4巳 2092h乙 '2#/27Oxf巳0x67, /2218h乙 '3/28Oxf巳0x7d, /2350h乙

7、'4/29Oxf巳0x94, /2488h乙 '4#/30Oxf巳Oxa& /2639h乙 '5/31Oxfe,Oxbc, /2794h乙 '5#/32Oxf巳Oxcf, /2960h乙 '6/33Oxfe.OxeO, /3136h乙 '6#/34Oxf巳Oxfl, /3322h乙 '7/35;(4) 音符發(fā)生程序(中斷服務(wù)程序)void timerO() interrupt 1 用于產(chǎn)生音符的TO中斷服務(wù)程 序THO=thO_f;TLO=tlO_f;beep=-beep; 取反beep引腳,發(fā)聲三、實驗過程及問題l.Keil開發(fā)

8、過程新建"Project",選擇單片機為"AT89C52"新建c文件"music.c",并添加到工程中設(shè)置生成"HEX"文件,編譯(4)將生成的” HEX文件燒錄到單片機z檢驗不斷修改完善2編譯實驗相關(guān)問題(1)實際發(fā)音顫音重解決方法為修改蜂鳴器的驅(qū)動頻率(2)實際節(jié)奏過快或者過慢調(diào)整延時四、C51程序代碼(部分來源于網(wǎng)絡(luò))#include<reg51.h>#define uint unsigned int#define uchar unsigned char#define ulong unsigned

9、 longsbit beep=PlA4; 蜂鳴器與P1.4口連接uchar thO_f; 中斷裝載TO高8位uchar tlO_f; T0低8位uchar code freq36*2=音階碼表0xf7z0xd8z /440hz , 1/00xf8z0x50z /466hz , 1#/I0xf8,0xbc, 494hz , 2/20xf9,0x26, 524hz z 2#/30xf9,0x85, /554hz , 3/40xf9z0xe5r /588hz , 4/50xfa0x3d, /622hz , 4#/60xfa/0x92/ /660hz , 5/7OxfaOxdd, 698hz , 5#

10、/80xfb/0x29/ /740hz , 6/90xfb,0x70, /784hz , 6#/10OxfbQxbO, /830hz, 7/llOxfb,Oxet /880hz, 1/120xfc,0x29, 932hz z 1#/130xfc,0x62, /988hz f 2/140xfc,0x95z /1046h乙 2#/150xfc,0xc7, /1108h乙 3/16Oxfc,Oxf5, /1174Hz, 4/170xfd/0x20z /1244h乙 4#/180xfd/0x4c/ /1318h乙 5/190xfdz0x72z /1396h乙 5#/200xfd,0x97, 1480h

11、乙 6/21OxfdQxbb, /1568h乙 6#/22OxfdQxdc, 1662h乙 7/23OxfdQxfb, /1769h乙 '1/240xfez0xl8z /1864h乙 '1#/25Oxf巳0x34, /1976h乙 '2/26Oxf巳0x4巳 2092h乙 '2#/27Oxf巳0x67, /2218h乙 '3/28Oxf巳0x7d, /2350h乙 '4/29Oxf巳0x94, /2488h乙 '4#/30Oxf巳Oxa& /2639h乙 '5/31Oxfe,Oxbc, /2794h乙 '5#/32

12、Oxf巳Oxcf, /2960h乙 '6/33Oxfe.OxeO, /3136h乙 '6#/34Oxf巳Oxfl, /3322h乙 '7 /35;uchar code diaodata30=音調(diào)代碼0x10,0x0 巳 0x0c,0x10,0x0 巳 0x0c,0x10,0x06,0x10,0x00x10,0x15,0x13,0x10,0x13,0x15,0x15,0x13,0x15,0x13,0x10,0x0 巳 0x0c,0x0 巳0x0 巳 OxIOQxOgQxOcQxOgQxOO;uchar code jiedata30=音長代碼0x04,0x04,0x08,0

13、x06,0x02,0x08,0x04,0x04,0x04,0x04,0x02,0x06,0x08,0x02,0x02,0x04,0x04,0x04,0x04,0x08,0x02,0x02,0x04,0x04,0x02,0x02,0x04,0x04,0x00x00;void timerO() interrupt 1 用于產(chǎn)生音符的TO中斷服務(wù)程 序THO=thO_f;TLO=tlO_f;beep=beep; 取反beep引腳,發(fā)聲void main(void) ucharij,k=O;uint n;TMOD=0X01;/T 0 方式 1TR0=0;關(guān)閉TO (不發(fā)聲)ETO=1;允許TO中斷EA=1;允許總中斷wh

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論