單片機(jī)課程設(shè)計(jì)報(bào)告(利用蜂鳴器播放音樂(lè))_第1頁(yè)
單片機(jī)課程設(shè)計(jì)報(bào)告(利用蜂鳴器播放音樂(lè))_第2頁(yè)
單片機(jī)課程設(shè)計(jì)報(bào)告(利用蜂鳴器播放音樂(lè))_第3頁(yè)
單片機(jī)課程設(shè)計(jì)報(bào)告(利用蜂鳴器播放音樂(lè))_第4頁(yè)
單片機(jī)課程設(shè)計(jì)報(bào)告(利用蜂鳴器播放音樂(lè))_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、成績(jī)    課程設(shè)計(jì):電子設(shè)計(jì)題目名稱:音樂(lè)流水燈姓 名:戴錦超 學(xué) 號(hào): 班 級(jí):信科12-3班 完成時(shí)間:2014年10月23日 1設(shè)計(jì)的任務(wù) 設(shè)計(jì)內(nèi)容:動(dòng)手焊接一個(gè)51單片機(jī)設(shè)計(jì)目標(biāo):利用單片機(jī)上的蜂鳴器以及二極管實(shí)現(xiàn)音樂(lè)播放以及根據(jù)音樂(lè)的節(jié)奏而規(guī)律性閃亮的二極管。并且通過(guò)程序調(diào)節(jié)音樂(lè)節(jié)奏的快慢。2 設(shè)計(jì)的過(guò)程2.1 基本結(jié)構(gòu)1.STC89C52RC在本次的試驗(yàn)中采用了STC89C52RC單片機(jī),STC89C52RC單片機(jī)是宏晶科技推出的新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時(shí)鐘/機(jī)器周期,工作電壓:5.5V3.3V

2、(5V單片機(jī))/3.8V2.0V(3V單片機(jī)),工作頻率范圍:040MHz,相當(dāng)于普通8051的080MHz,實(shí)際工作頻率可達(dá)48MHz,用戶應(yīng)用程序空間為8K字節(jié)。 (STC89C52RC引腳圖)STC89C52RC單片機(jī)的工作模式:(1) 典型功耗<0.1A,可由外部中斷喚醒,中斷返回后,繼續(xù)執(zhí)行原程序(2) 空閑模式:典型功耗2mA(3) 正常工作模式:典型功耗4Ma7mA(4) 喚醒,適用于水表、氣表等電池供電系統(tǒng)及便攜設(shè)備2.蜂鳴器及其工作原理:蜂鳴器按其結(jié)構(gòu)分主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼等組成。接通電源后,振

3、蕩器產(chǎn)生的音頻信號(hào)電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng),振動(dòng)膜片在電磁線圈和磁鐵的相互作用下,周期性地振動(dòng)發(fā)聲。本實(shí)驗(yàn)采用的是電磁式蜂鳴器。蜂鳴器按其是否帶有信號(hào)源又分為有源和無(wú)源兩種類型。有源蜂鳴器只需要在其供電端加上額定直流電壓,其內(nèi)部的震蕩器就可以產(chǎn)生固定頻率的信號(hào),驅(qū)動(dòng)蜂鳴器發(fā)出聲音。無(wú)源蜂鳴器可以理解成與喇叭一樣,需要在其供電端上加上高低不斷變化的電信號(hào)才可以驅(qū)動(dòng)發(fā)出聲音。本實(shí)驗(yàn)采用的是有源蜂鳴器。(蜂鳴器與單片機(jī)連接電路圖)2.2 軟件設(shè)計(jì)過(guò)程1. 蜂鳴器發(fā)聲原理本實(shí)驗(yàn)由于采用有源蜂鳴器,只需將引腳端口P14清零,蜂鳴器即可發(fā)聲;P14置位,蜂鳴器停止發(fā)聲。采用置1置0的方法只能使

4、蜂鳴器發(fā)聲或停止發(fā)聲,想要使蜂鳴器發(fā)出聲音,必須對(duì)蜂鳴器發(fā)出聲音的音頻和節(jié)拍進(jìn)行控制。(音樂(lè)基礎(chǔ)音調(diào):不同音高的樂(lè)音是用C、D、E、F、G、A、B來(lái)表示,這7個(gè)字母就是音樂(lè)的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡(jiǎn)譜的1、2、3、4、5、6、7,相當(dāng)于漢字“多來(lái)米發(fā)梭拉西”的讀音,這是唱曲時(shí)樂(lè)音的發(fā)音,所以叫“音調(diào)”,即Tone。把C、D、E、F、G、A、B這一組音的距離分成12個(gè)等份,每一個(gè)等份叫一個(gè)“半音”。兩個(gè)音之間的距離有兩個(gè)“半音”,就叫“全音”。在鋼琴等鍵盤樂(lè)器上,CD、DE、FG、GA、AB兩音之間隔著一個(gè)黑鍵,他們之間的距離就是全音;EF、BC兩

5、音之間沒(méi)有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上號(hào)或者b號(hào)的叫變化音。叫升記號(hào),表示把音在原來(lái)的基礎(chǔ)上升高半音,b叫降記音,表示在原來(lái)的基礎(chǔ)上降低半音。例如高音DO的頻率(1046Hz)剛好是中音DO的頻率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音RE頻率(294 Hz)的一倍。節(jié)拍:節(jié)拍是讓音樂(lè)具有旋律(固定的律動(dòng)),而且可以調(diào)節(jié)各個(gè)音的快滿度。“節(jié)拍”,即Be

6、at,簡(jiǎn)單說(shuō)就是打拍子,就像我們聽音樂(lè)不自主的隨之拍手或跺腳。若1拍實(shí)0.5s,則1/4 拍為0.125s。至于1拍多少s,并沒(méi)有嚴(yán)格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點(diǎn),有些人慢一點(diǎn),只要聽的悅耳就好。音持續(xù)時(shí)間的長(zhǎng)短即時(shí)值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。)1) 控制發(fā)聲頻率要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)這半個(gè)周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O反相,就可在I/O腳上得到此頻率的脈沖。利用STC89C52RC的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模

7、式MODE1下,改變計(jì)數(shù)值TH0及TL0從而產(chǎn)生不同頻率。此外結(jié)束符和休止符可以分別用代碼00H和FFH來(lái)表示,若查表結(jié)果為0x00,則表示曲子終了;若查表結(jié)果為0xff,則產(chǎn)生相應(yīng)的停頓效果。以標(biāo)準(zhǔn)音高A為例,A的頻率是440Hz,周期T=1/440=2272us。在占空比為50%的情況下,導(dǎo)通時(shí)間=斷開時(shí)間=半周期t=2272us/2=1136us,利用P34端口的位操作,經(jīng)過(guò)不斷地反相變換即可得到標(biāo)準(zhǔn)音高A的音頻脈沖。端口導(dǎo)通時(shí)間與斷開時(shí)的時(shí)間利用定時(shí)器實(shí)現(xiàn)。具體的方法是將單片機(jī)定時(shí)器的中斷觸發(fā)時(shí)間設(shè)為半周期t,這樣每隔半周期端口反相,輸出連續(xù)的對(duì)應(yīng)音高的頻率。設(shè)晶振的頻率為f0,中斷觸

8、發(fā)時(shí)間(半周期)為t,定時(shí)器工作在模式1時(shí)計(jì)數(shù)器的初值為THL,高8位為THL,低8位為TL。時(shí)鐘周期即為1/f0,定時(shí)器每一次累加用去一個(gè)機(jī)器周期,一個(gè)機(jī)器周期包含12個(gè)時(shí)鐘周期,即定時(shí)器每次加一所用時(shí)間是12/f0。定時(shí)器在模式1下計(jì)時(shí)采用16位數(shù),最大計(jì)數(shù)為216-1(65535),再次加一(65536)溢出觸發(fā)中斷。根據(jù)以上分析可得如下關(guān)系:音頻對(duì)應(yīng)定時(shí)器初值的高8位TH=THL/(28)=(65536-t*f/12)/256;音頻對(duì)應(yīng)定時(shí)器初值的低8位TL=THL%(28)=(65536-t*f/12)%256;附:八度12音階定時(shí)器初值表(只含自然音)低音音名頻率Hz晶振12MHz

9、中音音名頻率Hz晶振12MHz高音音名頻率Hz晶振12MHzDo2620xF885Do5230xFC43Do10460xFE21Re2940xF95ARe5870xFCADRe11750xFE56Mi3300xFA13Mi6590xFD0AMi13180xFE85Fa3490xFA68Fa6980xFD34Fa13970xFE9ASo3920xFB04So7840xFD82So15680xFEC1La4400xFB90La8800xFDC8La17600xFEE4Si4940xFC0CSi9880xFE06Si19760xFF032)控制發(fā)聲節(jié)拍每個(gè)音符的節(jié)拍可通過(guò)延時(shí)一定的時(shí)間來(lái)實(shí)現(xiàn),在具體

10、實(shí)現(xiàn)時(shí)需要有一個(gè)基本的帶參延時(shí)程序,用于主函數(shù)根據(jù)不同的音符調(diào)用不同的時(shí)延。若以十六分之一音符的時(shí)長(zhǎng)為基本延時(shí)時(shí)間,則十六分音符只需調(diào)用一次延時(shí)程序,八分音符則需調(diào)用兩次延時(shí)程序,以此類推。*簡(jiǎn)譜編碼將簡(jiǎn)譜中的每個(gè)音符進(jìn)行編碼,每個(gè)音符用一個(gè)unsigned char字符類型表示,簡(jiǎn)譜可用一個(gè)unsigned char字符數(shù)組表示。字符的前四位表示音頻,可以表示0-f共十六個(gè)音符。本實(shí)驗(yàn)中采用了中音區(qū)和高音區(qū)。中音do-si分別編碼為17,高音do-si分別編碼為8E,停頓編為0。字符的后四位表示節(jié)拍,節(jié)拍以十六分音符為單位(在本程序中為165ms),一拍即四分音符等于4個(gè)十六分音符,編為4,

11、其它的播放時(shí)間以此類推。以0xff作為曲譜的結(jié)束標(biāo)志。程序從數(shù)組中取出一個(gè)數(shù),然后分離出高4位得到音調(diào) ,將值賦給定時(shí)器0,得到音調(diào);接著分離出該數(shù)的低4位,得到節(jié)拍。本實(shí)驗(yàn)中播放音樂(lè)使用簡(jiǎn)譜如下:將其編碼成:uchar code sb=/定義送別簡(jiǎn)譜0x54,0x32,0x52,0x88,0x64,0x84,0x58,0x54,0x12,0x22,0x34,0x22,0x12,0x28,0x00,0x00,0x54,0x32,0x52,0x86,0x72,0x64,0x84,0x58,0x54,0x22,0x32,0x46,0xf2,0x18,0x00,0x00,0x64,0x84,0x88

12、,0x74,0x62,0x72,0x88,0x62,0x72,0x82,0x62,0x62,0x52,0x32,0x12,0x28,0x00,0x00,0x54,0x32,0x52,0x86,0x72,0x64,0x84,0x58,0x54,0x22,0x32,0x46,0xf2,0x18,0x00,0x00,0x54,0x32,0x52,0x88,0x64,0x84,0x58,0x54,0x12,0x22,0x34,0x22,0x12,0x28,0x00,0x00,0x54,0x32,0x52,0x86,0x72,0x64,0x84,0x58,0x54,0x22,0x32,0x46,0xf2

13、,0x18,0x00,0x00;2.3 程序流圖及說(shuō)明(主程序流程圖)程序代碼:#include <reg52.h>#define uchar unsigned char#define uint unsigned intuint a=0;/全局變量控制速度變換sbit fm=P14;/蜂鳴器控制端口sbit int0=P32;sbit int1=P33;uchar timeh,timel;/用于存放定時(shí)器的高8位和低8位uchar code sb=/定義送別簡(jiǎn)譜0x54,0x32,0x52,0x88,0x64,0x84,0x58,0x54,0x12,0x22,0x34,0x22,0

14、x12,0x28,0x00,0x00,0x54,0x32,0x52,0x86,0x72,0x64,0x84,0x58,0x54,0x22,0x32,0x46,0xf2,0x18,0x00,0x00,0x64,0x84,0x88,0x74,0x62,0x72,0x88,0x62,0x72,0x82,0x62,0x62,0x52,0x32,0x12,0x28,0x00,0x00,0x54,0x32,0x52,0x86,0x72,0x64,0x84,0x58,0x54,0x22,0x32,0x46,0xf2,0x18,0x00,0x00,0x54,0x32,0x52,0x88,0x64,0x84,0

15、x58,0x54,0x12,0x22,0x34,0x22,0x12,0x28,0x00,0x00,0x54,0x32,0x52,0x86,0x72,0x64,0x84,0x58,0x54,0x22,0x32,0x46,0xf2,0x18,0x00,0x00;/適合12M的晶振定時(shí)器初值表,高低8位分開uchar code chuzhi= 0xff,0xff,/占位 0xFC,0x43,/中央C調(diào)1-7 0xFC,0xad, 0xFd,0x0a, 0xFD,0x34, 0xFD,0x82, 0xFD,0xc8, 0xFE,0x06, 0xFe,0x21,/高音 0xFe,0x56, 0xFe,0

16、x85, 0xFe,0x9a, 0xFe,0xc1, 0xFe,0xe4, 0xFf,0x03, 0xFc,0x0c /0xF8,0x18,/高八度1-7 ;void timer0() interrupt 1 /定時(shí)器0中斷服務(wù)程序TH0=timeh;/將timeh賦給計(jì)時(shí)器的高8位TL0=timel; /將timel賦給計(jì)時(shí)器的低8位fm=fm; /定時(shí)器每次到時(shí)將蜂鳴器反相void delay(uint z)/延時(shí)165MS,即十六分音符uint y;for(z;z>0;z-) for(y=19000-a;y>0;y-);/大致時(shí)間void delay1(uint z)/延時(shí)1

17、MSuint y;for(z;z>0;z-) for(y=112;y>0;y-);/大致時(shí)間void main()uint temp;/存放簡(jiǎn)譜數(shù)組中的每一個(gè)音符的臨時(shí)變量uint lightTemp;/存放音符uchar i=0;uchar jp;/jp用于取出temp中的高8位和低8位IT0=1;/INT0IT1=1; /INT1TMOD=0x01;/設(shè)置定時(shí)器T0工作于方式1IE=0x87; /允許T0中斷while(1)temp=sbi;if(temp=0xff)break;jp=temp/16; /取數(shù)的高4位,音頻數(shù)值lightTemp=(1<<jp)-1;

18、P2=lightTemp/0x100;P0=lightTemp%0x100;if(jp!=0)timeh=chuzhijp*2;/構(gòu)造定時(shí)器初值高8位timel=chuzhijp*2+1; /構(gòu)造定時(shí)器初值低8位TR0=1; /開定時(shí)器elseTR0=0; /關(guān)定時(shí)器fm=1; /關(guān)蜂鳴器delay(temp%16); /取數(shù)的低4位,節(jié)拍(音符總時(shí)延)TR0=0; /唱完一個(gè)音停5MSfm=1;delay1(5); i+;TR0=0;/關(guān)定時(shí)器fm=1;/關(guān)蜂鳴器void delay_ms(uint a)int i,j;for(i=a;i>=0;i-)for(j=110;j>=0

19、;j-)void INT0_svr(void) interrupt 0 delay_ms(10);if(int0=0)a+=2000;if(a>18000)a=0;void INT1_svr(void) interrupt 2delay_ms(10);if(int1=0)a-=2000;if(a<=0)a=0;3 運(yùn)行結(jié)果或者測(cè)試結(jié)果 測(cè)試結(jié)果:利用蜂鳴器實(shí)現(xiàn)了播放音樂(lè)的功能,并有節(jié)奏的閃滅二極管,可以進(jìn)行速度的變換。達(dá)到了預(yù)期的目標(biāo),測(cè)試成功。4 遇到的問(wèn)題及解決的方法在設(shè)計(jì)的過(guò)程中主要遇到以下問(wèn)題:1.計(jì)算機(jī)與單片機(jī)的連接不上問(wèn)題計(jì)算機(jī)與單片機(jī)的連接需要在電腦端安裝相應(yīng)的USB轉(zhuǎn)串的驅(qū)動(dòng)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論