單片機利用蜂鳴器演奏音樂_第1頁
單片機利用蜂鳴器演奏音樂_第2頁
單片機利用蜂鳴器演奏音樂_第3頁
單片機利用蜂鳴器演奏音樂_第4頁
單片機利用蜂鳴器演奏音樂_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

-.z.實驗三-利用蜂鳴器演奏音樂一、實驗?zāi)康?.了解BlueSkyC51單片機實驗板中蜂鳴器的硬件電路2.學(xué)會利用蜂鳴器實現(xiàn)音樂的演奏3.掌握蜂鳴器實現(xiàn)音樂演奏的編程二、實驗硬件設(shè)計及電路1.BlueSkyC51單片機實驗板2.單片機最小系統(tǒng)3.蜂鳴器電路連接三極管主要是做驅(qū)動用的。因為單片機的IO口驅(qū)動能力不夠讓蜂鳴器發(fā)出聲音,所以我們通過三極管放大驅(qū)動電流,從而可以讓蜂鳴器發(fā)出聲音,你要是輸出高電平,三極管導(dǎo)通,集電極電流通過蜂鳴器讓蜂鳴器發(fā)出聲音,當輸出低電平時,三極管截止,沒有電流流過蜂鳴器,所以就不會發(fā)出聲音。三、實驗原理1.音調(diào)及節(jié)拍用一個口,輸出方波,這個方波輸入進蜂鳴器就會產(chǎn)生聲音,通過控制方波的頻率、時間,就能產(chǎn)生簡單的音樂。一般說來,單片機演奏音樂基本都是單音頻率,因此單片機奏樂只需控制音調(diào)和節(jié)拍。(1)音調(diào)的確定音調(diào)是由頻率來確定的。通過單片機的定時器定時中斷,將單片機上對應(yīng)蜂鳴器的I/O口來回取反,從而讓蜂鳴器發(fā)出不同頻率的聲音。只需將定時器給以不同的定時值就可實現(xiàn)。通過延時,即可發(fā)出所需要的頻率。(2)節(jié)拍的確定一拍的時長大約為400—500ms,每個音符的時長通過節(jié)拍來計算。詳細見程序代碼。2.軟件設(shè)計相關(guān)(1)頭文件#include<reg51.h>#defineuintunsignedint#defineucharunsignedchar#defineulongunsignedlongsbitbeep=P1^4;//蜂鳴器與P1.4口連接(2)歌曲曲譜ucharcodediaodata[30]={//音調(diào)代碼0*10,0*0e,0*0c,0*10,0*0e,0*0c,0*10,0*0e,0*10,0*0c,0*10,0*15,0*13,0*10,0*13,0*15,0*15,0*13,0*15,0*13,0*10,0*0e,0*0c,0*0e,0*0e,0*10,0*0e,0*0c,0*0e,0*00};ucharcodejiedata[30]={//音長代碼0*04,0*04,0*08,0*06,0*02,0*08,0*04,0*04,0*04,0*04,0*02,0*06,0*08,0*02,0*02,0*04,0*04,0*04,0*04,0*08,0*02,0*02,0*04,0*04,0*02,0*02,0*04,0*04,0*0c,0*00};(3)音階表ucharcodefreq[36*2]={//音階碼表0*f7,0*d8,//440hz,1//00*f8,0*50,//466hz,1#//10*f8,0*bc,//494hz,2//20*f9,0*26,//524hz,2#//30*f9,0*85,//554hz,3//40*f9,0*e5,//588hz,4//50*fa,0*3d,//622hz,4#//60*fa,0*92,//660hz,5//70*fa,0*dd,//698hz,5#//80*fb,0*29,//740hz,6//90*fb,0*70,//784hz,6#//100*fb,0*b0,//830hz,7//110*fb,0*ef,//880hz,1//120*fc,0*29,//932hz,1#//130*fc,0*62,//988hz,2//140*fc,0*95,//1046hz,2#//150*fc,0*c7,//1108hz,3//160*fc,0*f5,//1174hz,4//170*fd,0*20,//1244hz,4#//180*fd,0*4c,//1318hz,5//190*fd,0*72,//1396hz,5#//200*fd,0*97,//1480hz,6//210*fd,0*bb,//1568hz,6#//220*fd,0*dc,//1662hz,7//230*fd,0*fb,//1769hz,`1//240*fe,0*18,//1864hz,`1#//250*fe,0*34,//1976hz,`2//260*fe,0*4e,//2092hz,`2#//270*fe,0*67,//2218hz,`3//280*fe,0*7d,//2350hz,`4//290*fe,0*94,//2488hz,`4#//300*fe,0*a8,//2639hz,`5//310*fe,0*bc,//2794hz,`5#//320*fe,0*cf,//2960hz,`6//330*fe,0*e0,//3136hz,`6#//340*fe,0*f1,//3322hz,`7//35};(4)音符發(fā)生程序(中斷服務(wù)程序)voidtimer0()interrupt1//用于產(chǎn)生音符的T0中斷服務(wù)程序{TH0=th0_f;TL0=tl0_f;beep=~beep;//取反beep引腳,發(fā)聲}三、實驗過程及問題1.Keil開發(fā)過程(1)新建"Project”,選擇單片機為"AT89C52”(2)新建c文件"music.c”,并添加到工程中(3)設(shè)置生成"HE*”文件,編譯(4)將生成的"HE*”文件燒錄到單片機,檢驗(5)不斷修改完善2.編譯實驗相關(guān)問題(1)實際發(fā)音顫音重解決方法為修改蜂鳴器的驅(qū)動頻率.(2)實際節(jié)奏過快或者過慢調(diào)整延時四、C51程序代碼(部分來源于網(wǎng)絡(luò))#include<reg51.h>#defineuintunsignedint#defineucharunsignedchar#defineulongunsignedlongsbitbeep=P1^4;//蜂鳴器與P1.4口連接ucharth0_f;//中斷裝載T0高8位uchartl0_f;//T0低8位ucharcodefreq[36*2]={//音階碼表0*f7,0*d8,//440hz,1//00*f8,0*50,//466hz,1#//10*f8,0*bc,//494hz,2//20*f9,0*26,//524hz,2#//30*f9,0*85,//554hz,3//40*f9,0*e5,//588hz,4//50*fa,0*3d,//622hz,4#//60*fa,0*92,//660hz,5//70*fa,0*dd,//698hz,5#//80*fb,0*29,//740hz,6//90*fb,0*70,//784hz,6#//100*fb,0*b0,//830hz,7//110*fb,0*ef,//880hz,1//120*fc,0*29,//932hz,1#//130*fc,0*62,//988hz,2//140*fc,0*95,//1046hz,2#//150*fc,0*c7,//1108hz,3//160*fc,0*f5,//1174hz,4//170*fd,0*20,//1244hz,4#//180*fd,0*4c,//1318hz,5//190*fd,0*72,//1396hz,5#//200*fd,0*97,//1480hz,6//210*fd,0*bb,//1568hz,6#//220*fd,0*dc,//1662hz,7//230*fd,0*fb,//1769hz,`1//240*fe,0*18,//1864hz,`1#//250*fe,0*34,//1976hz,`2//260*fe,0*4e,//2092hz,`2#//270*fe,0*67,//2218hz,`3//280*fe,0*7d,//2350hz,`4//290*fe,0*94,//2488hz,`4#//300*fe,0*a8,//2639hz,`5//310*fe,0*bc,//2794hz,`5#//320*fe,0*cf,//2960hz,`6//330*fe,0*e0,//3136hz,`6#//340*fe,0*f1,//3322hz,`7//35};ucharcodediaodata[30]={//音調(diào)代碼0*10,0*0e,0*0c,0*10,0*0e,0*0c,0*10,0*0e,0*10,0*0c,0*10,0*15,0*13,0*10,0*13,0*15,0*15,0*13,0*15,0*13,0*10,0*0e,0*0c,0*0e,0*0e,0*10,0*0e,0*0c,0*0e,0*00};ucharcodejiedata[30]={//音長代碼0*04,0*04,0*08,0*06,0*02,0*08,0*04,0*04,0*04,0*04,0*02,0*06,0*08,0*02,0*02,0*04,0*04,0*04,0*04,0*08,0*02,0*02,0*04,0*04,0*02,0*02,0*04,0*04,0*0c,0*00};voidtimer0()interrupt1//用于產(chǎn)生音符的T0中斷服務(wù)程序{TH0=th0_f;TL0=tl0_f;beep=~beep;//取反beep引腳,發(fā)聲}voidmain(void){uchari,j,k=0;uintn;TMOD=0*01;//T0方式1TR0=0;//關(guān)閉T0(不發(fā)聲)ET0=1;//允許T0中斷EA=1;//允許總中斷while(1){TR0=1;//開T0for(i=0;diaodata[i]!=0;i++){

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論