音調(diào)與節(jié)拍的演奏控制_第1頁
音調(diào)與節(jié)拍的演奏控制_第2頁
音調(diào)與節(jié)拍的演奏控制_第3頁
音調(diào)與節(jié)拍的演奏控制_第4頁
音調(diào)與節(jié)拍的演奏控制_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

單片機(jī)控制技術(shù)項(xiàng)目:音調(diào)與節(jié)拍的演奏控制123項(xiàng)目任務(wù)系統(tǒng)硬件電路設(shè)計(jì)控制程序設(shè)計(jì)

目錄單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制4項(xiàng)目調(diào)試、系統(tǒng)仿真一、項(xiàng)目任務(wù)

學(xué)習(xí)要點(diǎn):1、掌握蜂鳴器發(fā)聲“音調(diào)”和“節(jié)拍”的控制方法,為“音樂盒設(shè)

計(jì)”、“簡易電子琴設(shè)計(jì)”等設(shè)計(jì)制作奠定基礎(chǔ)。2、加深定時(shí)器/計(jì)數(shù)器與中斷技術(shù)的應(yīng)用能力。單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制如圖1所示,由P1.0口控制一個(gè)LM386功率放大器,經(jīng)功率放大器控制發(fā)聲器件蜂鳴器,以獲得較大的音頻輸出功率。當(dāng)P1.0口輸出為低電平時(shí),功率放大器導(dǎo)通,蜂鳴器得電;當(dāng)P1.0口輸出為高電平時(shí),功率放大器截止,蜂鳴器斷電。二、系統(tǒng)硬件電路設(shè)計(jì)

(一)硬件電路圖圖1單片機(jī)演奏音樂控制系統(tǒng)硬件示意圖LM386單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制(二)單片機(jī)演奏音樂控制系統(tǒng)電路器件清單表1電路器件清單二、系統(tǒng)硬件電路設(shè)計(jì)

元件名稱參數(shù)數(shù)量元件名稱參數(shù)數(shù)量單片機(jī)STC90C511開發(fā)板提供電源和程序ISP下載1晶體振蕩器12MHz1面包板/萬能板1瓷片電容30pF2功率放大器LM3861電解電容22μF/47μF1/1電位器10kΩ1按鍵非自鎖

1蜂鳴器1電阻10kΩ1插接線兩頭帶插針用于面包板插接若干單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制(一)音調(diào)的確定要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)這半個(gè)周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的電平反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對脈沖的電平反相,就可在I/O腳上得到此頻率的脈沖。(2)利用51單片機(jī)的內(nèi)部定時(shí)器T0使其工作在計(jì)數(shù)器模式方式1下

改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。此外,結(jié)束符和休止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子結(jié)束;若結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。三、控制程序設(shè)計(jì)單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制低音頻率脈沖T值中音頻率脈沖T值高音頻率脈沖T值Do2621908F88CDo523956FC44Do1046478FE22Do﹟2771805F8F3Do﹟554902FC7ADo﹟1109450FE3ERe2941700F95CRe587851FCADRe1175425FE57Re﹟3111607F9B9Re﹟622803FCDDRe﹟1245401FE6FMi3301515FA15Mi659758FD0AMi1318379FE85Fa3491432FA68Fa698716FD34Fa1397357FE9BFa﹟3701351FAB9Fa﹟740675FD5DFa﹟1480337FEAFSo3921275FB05So784637FD83So1568318FEC2So﹟4151204FB4CSo﹟831601FDA7So﹟1661301FED3La4401136FB90La880568FDC8La1760284FEE4La﹟4641077FBCBLa﹟932536FDE8La﹟1865268FEF4Si4941012FC0CSi988506FE06Si1976253FF03三、控制程序設(shè)計(jì)表2C調(diào)各音符頻率與計(jì)數(shù)脈沖初值T的對照表單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制(二)節(jié)拍的確定節(jié)拍碼節(jié)拍數(shù)11/4拍22/4拍33/4拍41拍51又1/4拍61又1/2拍82拍A2又1/2拍C3拍F3又3/4拍表3所示為節(jié)拍數(shù)與節(jié)拍碼的對照。如果1拍為0.4秒,1/4拍則為0.1秒,只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間。假設(shè)1/4拍為1DELAY,則1拍應(yīng)為4DELAY,以此類推。所以只要求得1/4拍的DELAY時(shí)間,其余的節(jié)拍就是它的倍數(shù)。三、控制程序設(shè)計(jì)表3節(jié)拍數(shù)與節(jié)拍碼對照單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制(三)編碼的確定在給每個(gè)音符編碼時(shí),使用1個(gè)字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍。音調(diào):中音的doremifasolasi分別編碼為1-7,高音do編為8,高音re編為9,停頓編為0。播放長度:以1/4拍為單位(在本程序中為即1/4拍=165ms),一拍即等于4個(gè)1/4拍,編為4,其它的播放時(shí)間以此類推。音調(diào)作為編碼的高4位,而播放時(shí)間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個(gè)編碼。以0xff作為曲譜的結(jié)束標(biāo)志。舉例1:音調(diào)do,發(fā)音長度為兩拍,將其編碼為0x18。舉例2:音調(diào)re,發(fā)音長度為半拍,將其編碼為0x22。三、控制程序設(shè)計(jì)單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制//程序:ex07_01.c//功能:簡單音調(diào)和節(jié)拍的演奏程序#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitfm=P1^0;

//蜂鳴器輸出的I/O口選用P1.0管腳uchartimeh,timel,i;

//timeh,timel為定時(shí)器高低4位,i為演奏音符個(gè)數(shù)//--------------------簡譜(1-7代表中音do~si,8代表高音do)-------------------ucharcodeyinyue[]={0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0xff};//----------------------------簡譜音調(diào)對應(yīng)的定時(shí)器初值---------------------------ucharcodecuzhi[]={0xFF,0xFF,0xFC,0x44,0xFC,0xAD,0xFD,0x0A,0xFD,0x34,0xFD,0x83,0xFD,0xC8,0xFE,0x06,0xFE,0x22};

//依次為:占位符、中音do~si的T計(jì)數(shù)初值、高音do的T計(jì)數(shù)初值三、控制程序設(shè)計(jì)(四)程序單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制voiddelay1ms(uintz);

//延時(shí)1ms子程序voiddelay165ms(uintz);

//延時(shí)165ms,即1/4拍子程序voidsong();

//演奏子程序main(){EA=1;

//開總中斷ET0=1;

//開定時(shí)器0TMOD=0x01;//定時(shí)器T0工作在方式1TH0=0;TL0=0;TR0=1;//啟動(dòng)T0while(1)

{

song(); delay1ms(1000);}}voidtimer0()interrupt1

//定時(shí)器0溢出中斷子程序用于產(chǎn)生各種音調(diào){ TH0=timeh; TL0=timel; fm=~fm;

//產(chǎn)生方波}三、控制程序設(shè)計(jì)單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制voiddelay165ms(uintz)

//延時(shí)165ms函數(shù),即1/4拍延時(shí){uintx,y;for(x=z;x>0;x--)for(y=19000;y>0;y--);}voiddelay1ms(uintz)

//軟件延時(shí)約1ms函數(shù){uintx,y;for(x=z;x>0;x--)for(y=112;y>0;y--);}voidsong()//演奏函數(shù){ uinttemp; ucharjp;

//jp是簡譜1~8的變量

i=0; while(1) {temp=yinyue[i];三、控制程序設(shè)計(jì)單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制if(temp==0xff)break;//到曲終則跳出循環(huán)

jp=temp/16;//取數(shù)的高4位作為音調(diào)

if(jp!=0) { timeh=cuzhi[jp*2];

//取T的高4位值

timel=cuzhi[jp*2+1];//取T的低4位值

} else { TR0=0; fm=1;//關(guān)蜂鳴器

} delay165ms(temp%16);//取數(shù)的低4位作為節(jié)拍

TR0=0;

//唱完一個(gè)音停10ms fm=1; delay1ms(10); TR0=1; i++; } TR0=0; fm=1; }三、控制程序設(shè)計(jì)單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制

四、項(xiàng)目調(diào)試、系統(tǒng)仿真(一)動(dòng)手做——采用面包板電路搭建方法:下載程序,上電調(diào)試面包板上電路搭建、電路檢查

程序編譯、鏈接,生成目標(biāo)代碼Step1Step2Step3項(xiàng)目預(yù)期控制效果單片機(jī)控制技術(shù)音調(diào)與節(jié)拍的演奏控制

四、項(xiàng)目調(diào)試、系統(tǒng)仿真(二)動(dòng)手做:Proteus仿真從Proteus中選取如下元器件:(1)AT89C51,單片機(jī);(2)RES、RX8,電阻、排阻;(3)CAP、CAP-ELEC,電容、電解電容;(4)POT-LOG,電位器;

溫馨提示

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

評論

0/150

提交評論