單片機(jī)MP3播放器_第1頁
單片機(jī)MP3播放器_第2頁
單片機(jī)MP3播放器_第3頁
單片機(jī)MP3播放器_第4頁
單片機(jī)MP3播放器_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單 片 機(jī) 課 程 設(shè) 計(jì)課題名稱:單片機(jī)音樂播放指導(dǎo)教師:張朝龍?jiān)O(shè)計(jì)成員:陶開霞、何菲、汪冰冰、龔利峰摘 要基于stc89c52rc單片機(jī)的樂曲播放器的硬件設(shè)計(jì)和軟件設(shè)計(jì)本系統(tǒng)實(shí)現(xiàn)了播放樂曲,并可以通過按鍵隨時(shí)播放歌曲曲目,同時(shí)顯示當(dāng)前播放樂曲的編號(hào)。通過控制定時(shí)器的定時(shí)時(shí)間來產(chǎn)生不同頻率的方波,驅(qū)動(dòng)蜂鳴器發(fā)出不同音階的聲音,再利用延遲來控制發(fā)音時(shí)間的長短,即可控制音調(diào)中的節(jié)拍。把樂譜中的音符和相應(yīng)的節(jié)拍變換為定常數(shù)和延遲常數(shù),作為數(shù)據(jù)表格存放在存儲(chǔ)器中。由程序查表得到定時(shí)常數(shù)和延遲常數(shù),分別用以控制定時(shí)器產(chǎn)生方波的頻率和發(fā)出該頻率方波的持續(xù)時(shí)間。當(dāng)延遲時(shí)間到時(shí),再查下一個(gè)音符的定時(shí)常數(shù)和延

2、遲常數(shù)。依次下去,就可以自動(dòng)演奏樂曲。通過實(shí)際的實(shí)驗(yàn)證明,該系統(tǒng)具有硬件設(shè)計(jì)簡單,軟件可調(diào)整性大,系統(tǒng)穩(wěn)定可靠等優(yōu)點(diǎn)。關(guān)鍵字: stc89c52rc 中斷 頻率 節(jié)拍目 錄第一章 引 言4第二章 硬件設(shè)計(jì)52.1硬件原理的總體思想52.2 硬件模塊52.2.1 單片機(jī)最小系統(tǒng)模塊62.2.2 按鍵控制模塊72.2.3 復(fù)位模塊72.2.4 數(shù)碼管顯示模塊82.2.5 蜂鳴器驅(qū)動(dòng)模塊8第三章 軟件設(shè)計(jì)93.1 音樂解碼原理93.1.1 利用 i/o 口發(fā)聲原理93.1.2 音樂基本知識(shí)93.2 軟件基本流程圖113.3 程序源代碼11第一章 引 言簡簡單單的幾個(gè)音符,卻展現(xiàn)了它奇特多彩的個(gè)性,呈

3、現(xiàn)出一個(gè)色彩斑斕的世界。音樂的基本要素是指構(gòu)成音樂的各種元素,包括音的高低、音的長短、音的強(qiáng)弱和音色。由這些基本要素互相結(jié)合,形成音樂的常用的“形式要素”,例如:節(jié)奏、曲調(diào)、和聲,以及力度、速度、調(diào)式、曲式、織體等。近十幾年來,單片機(jī)作為微計(jì)算機(jī)一個(gè)很重要的分支,應(yīng)用廣泛,發(fā)展迅速,已經(jīng)對(duì)人類社會(huì)產(chǎn)生了深遠(yuǎn)的影響。單片機(jī)具有體積小、重量輕、耗能省、價(jià)格低可靠性和通用靈活性等特點(diǎn),在我國已經(jīng)得到廣泛的應(yīng)用。如汽車、航空、電話、傳真、視頻等,很多行業(yè)設(shè)計(jì)自動(dòng)控制情況下,通常會(huì)涉及單片機(jī)技術(shù)。本次畢業(yè)設(shè)計(jì)內(nèi)容是基于單片機(jī)音樂播放器,“單片機(jī)音樂播放器”是一個(gè)比較貼近實(shí)際生活的題目,也有一定的趣味性。

4、因此,我們對(duì)設(shè)計(jì)始終保持了較濃的興趣,設(shè)計(jì)中始終以貼近實(shí)際為原則,包括硬件電路的可行性,軟件程序的編譯運(yùn)行的可靠性,電路的成本價(jià)格等都做了相應(yīng)的考慮。單片機(jī)利用定時(shí)器可以產(chǎn)生各種固定頻率的方波信號(hào),也可以產(chǎn)生包括do、re、me-等音階在內(nèi)的各種頻率聲音。將各個(gè)音階連接在一起,便可組成一支曲子或是演奏一段旋律?;谶@個(gè)思想,本設(shè)計(jì)了一款特殊的"音樂播放器",其核心器件采用stc89c52rc單片機(jī)。播放器具有電路簡單,功能強(qiáng)大等特點(diǎn)。第二章 硬件設(shè)計(jì)2.1硬件原理的總體思想將蜂鳴器接在p1.0端口,通過單片機(jī)產(chǎn)生不同頻率的脈沖,從而控制蜂鳴器產(chǎn)生不同的音調(diào),表現(xiàn)出節(jié)拍的性質(zhì)

5、,從而實(shí)現(xiàn)音樂的播放,通過p3口的按鍵實(shí)現(xiàn)控制單片機(jī)選擇音樂的功能,從而實(shí)現(xiàn)設(shè)計(jì)。2.2 硬件模塊2.2.1 單片機(jī)最小系統(tǒng)模塊stc89c52具體介紹如下: 主電源引腳(2根)vcc(pin40):電源輸入,接5v電源gnd(pin20):接地線外接晶振引腳(2根)xtal1(pin19):片內(nèi)振蕩電路的輸入端xtal2(pin20):片內(nèi)振蕩電路的輸出端控制引腳(4根)rst/vpp(pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。ale/prog(pin30):地址鎖存允許信號(hào)psen(pin29):外部存儲(chǔ)器讀選通信號(hào)ea/vpp(pin31):程序存儲(chǔ)器的內(nèi)外部選

6、通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令??删幊梯斎?輸出引腳(32根)stc89c52單片機(jī)有4組8位的可編程i/o口,分別位p0、p1、p2、p3口,每個(gè)口有8位(8根引腳),共32根。2.2.2 按鍵控制模塊2.2.3 復(fù)位模塊復(fù)位操作有上電自動(dòng)復(fù)位相按鍵手動(dòng)復(fù)位兩種方式。上電自動(dòng)復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的,其電路如圖44(a)所示。這佯,只要電源vcc的上升時(shí)間不超過1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位,即接通電源就成了系統(tǒng)的復(fù)位初始化。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位是通過使復(fù)位端經(jīng)電阻與vcc電源接通而實(shí)現(xiàn)的,其電路如

7、圖44(b)所示;而按鍵脈沖復(fù)位則是利用rc微分電路產(chǎn)生的正脈沖來實(shí)現(xiàn)的,其電路如圖44(c)所示:(a)上電復(fù)位 (b)按鍵電平復(fù)位 (c)按鍵脈沖復(fù)位圖44復(fù)位電路上述電路圖中的電阻、電容參數(shù)適用于6mhz晶振,能保證復(fù)位信號(hào)高電平持續(xù)時(shí)間大于2個(gè)機(jī)器周期。本系統(tǒng)的復(fù)位電路采用圖44(b)按鍵復(fù)位方式2.2.4 數(shù)碼管顯示模塊 74hc573用于數(shù)據(jù)的緩存,可以鎖存數(shù)據(jù),具有高噪聲抵抗的特性,內(nèi)部具有保護(hù)電路,可以防止器件被高的靜態(tài)電壓或者電場(chǎng)損壞,可以對(duì)其外接的器件起到穩(wěn)定和保護(hù)的作用。2.2.5 蜂鳴器驅(qū)動(dòng)模塊uln2003是由七個(gè)硅npn復(fù)合晶體管構(gòu)成,在蜂鳴器的驅(qū)動(dòng)電路用途相當(dāng)于是

8、三極管,工作在飽和區(qū),三極管的作用類似于開關(guān),可串接一限流電阻,防止蜂鳴器因功率過大而損壞。第三章 軟件設(shè)計(jì)3.1 音樂解碼原理3.1.1 利用 i/o 口發(fā)聲原理當(dāng)有足夠功率的音頻信號(hào)加在蜂鳴器上,蜂鳴器即會(huì)發(fā)聲。利用 i/o 口工作于輸出狀態(tài),當(dāng)輸出一定頻率的方波信號(hào)時(shí),驅(qū)動(dòng)蜂鳴器發(fā)聲,若用軟件在 i/o 口線上不斷產(chǎn)生不同頻率的周期變化的方波,就能發(fā)出不同的聲音。3.1.2 音樂基本知識(shí) 音和音階在音樂中,通常用阿拉伯?dāng)?shù)字 1、2、3、4、5、6 和 7 來標(biāo)記七個(gè)音。由這些音所組成的有序排列就叫音階。其中 3-4、7-1 之間兩者相差半音,1-2、2-3、4-5、5-6、6-7之間兩者

9、相差一個(gè)全音。每一個(gè)全音包括兩個(gè)半音。實(shí)際上,僅用七個(gè)基本音來表達(dá)音樂內(nèi)容是遠(yuǎn)遠(yuǎn)不夠的,所以還需要比基本音更高或更低的音,這些音分別用加“低音點(diǎn)”和“高音點(diǎn)”的方法來擴(kuò)展表示。即 · · · · · · · · · · · · · · 拍號(hào),節(jié)拍和速度音的長短通常用拍數(shù)來表示,用來表示不同長短音的符號(hào)叫音符,音符又分單線音符和附點(diǎn)音符。用固定時(shí)值來表示節(jié)拍的單位叫拍子,在歌曲和樂曲的左上方往往標(biāo)注有 2/4、4/4、3/8 等,這些叫節(jié)拍記號(hào),簡稱拍號(hào)。其

10、含義是每小節(jié)有幾拍幾分音符作 1 拍。樂曲的速度一般有兩種表示方法: 用五線譜的二分音符 或四分音符 表示一個(gè)基本節(jié)拍。用它們每分鐘出現(xiàn)的次數(shù)來表示樂曲速度的快慢。例如,d 80,即表示每分鐘進(jìn)行80個(gè)二分音符。 用“稍快”、“中速”、“慢速”等術(shù)語來表示。這種情況下,具體速度可由自己決定,但是大致范圍一般控制在: “稍快”:120200 拍分鐘 “中速”:80120 拍分鐘 “慢速”:60 拍分鐘 調(diào)號(hào)音樂為表示豐富多采的思想感情,并考慮到男、女不同的音區(qū),必須要確定樂曲基調(diào)的高低,這通常用音名來確定。音名有七種,分別為 c、d、e、f、g、a 和 b。每個(gè)音名都有固定的音高,在樂器上都有固

11、定的位置,在聲學(xué)上也都有相應(yīng)固定的音頻頻率。如果歌曲的左上方有 1c ,則表示這首歌應(yīng)以 c 為其 1,其他音以此類推。若 1f ,則表示應(yīng)以f 為其 1。音頻對(duì)應(yīng)中斷初值表通過控制定時(shí)器的定時(shí)時(shí)間來產(chǎn)生不同頻率的方波,驅(qū)動(dòng)蜂鳴器發(fā)出不同音階的聲音,再利用延遲來控制發(fā)音時(shí)間的長短,即可控制音調(diào)中的節(jié)拍。把樂譜中的音符和相應(yīng)的節(jié)拍變換為定常數(shù)和延遲常數(shù),作為數(shù)據(jù)表格存放在存儲(chǔ)器中。由程序查表得到定時(shí)常數(shù)和延遲常數(shù),分別用以控制定時(shí)器產(chǎn)生方波的頻率和發(fā)出該頻率方波的持續(xù)時(shí)間,從而實(shí)現(xiàn)樂曲的播放功能。3.2 軟件基本流程圖3.3 程序源代碼#include <reg52.h> /包括一個(gè)

12、52標(biāo)準(zhǔn)內(nèi)核的頭文件#define uchar unsigned char /定義一下方便使用#define uint unsigned int#define ulong unsigned longchar code dx5163 _at_ 0x003b;/這是為了仿真設(shè)置的sbit spk=p10; /喇叭輸出腳sbit k0=p30; /第一首歌按鍵sbit k1=p31;/第二首歌按鍵sbit k2=p32;/第三首歌按鍵sbit k3=p33;/停止播放按鍵uchar th0_f; /在中斷中裝載的t0的值高8位uchar tl0_f; /在中斷中裝載的t0的值低8位/t0的值,及輸出

13、頻率對(duì)照表uchar code freq36*2=0xa9,0xef,/00220hz ,1 /00x93,0xf0,/00233hz ,1#0x73,0xf1,/00247hz ,20x49,0xf2,/00262hz ,2#0x07,0xf3,/00277hz ,30xc8,0xf3,/00294hz ,40x73,0xf4,/00311hz ,4#0x1e,0xf5,/00330hz ,50xb6,0xf5,/00349hz ,5#0x4c,0xf6,/00370hz ,60xd7,0xf6,/00392hz ,6#0x5a,0xf7,/00415hz ,70xd8,0xf7,/0044

14、0hz 1 /120x4d,0xf8,/00466hz 1# /130xbd,0xf8,/00494hz 2 /140x24,0xf9,/00523hz 2# /150x87,0xf9,/00554hz 3 /160xe4,0xf9,/00587hz 4 /170x3d,0xfa,/00622hz 4# /180x90,0xfa,/00659hz 5 /190xde,0xfa,/00698hz 5# /200x29,0xfb,/00740hz 6 /210x6f,0xfb,/00784hz 6# /220xb1,0xfb,/00831hz 7 /230xef,0xfb,/00880hz 10x

15、2a,0xfc,/00932hz 1#0x62,0xfc,/00988hz 20x95,0xfc,/01046hz 2#0xc7,0xfc,/01109hz 30xf6,0xfc,/01175hz 40x22,0xfd,/01244hz 4#0x4b,0xfd,/01318hz 50x73,0xfd,/01397hz 5#0x98,0xfd,/01480hz 60xbb,0xfd,/01568hz 6#0xdc,0xfd,/01661hz 7 /35;/定時(shí)中斷0,用于產(chǎn)生唱歌頻率timer0() interrupt 1tl0=tl0_f;th0=th0_f; /調(diào)入預(yù)定時(shí)值spk=spk;

16、/取反音樂輸出io/*/音樂符號(hào)串解釋函數(shù)/入口:要解釋的音樂符號(hào)串,輸出的音調(diào)串,輸出的時(shí)長串changedata(uchar *song,uchar *diao,uchar *jie)uchar i,i1,j;char gaodi; /高低+/-12音階uchar banyin;/有沒有半個(gè)升音階uchar yinchang;/音長uchar code jie78=0,12,14,16,17,19,21,23; /c調(diào)的7個(gè)值*diao=*song;for(i=0,i1=0;)gaodi=0; /高低=0banyin=0;/半音=0yinchang=4;/音長1拍if(*(song+i)=

17、'|') | (*(song+i)=' ') i+;/拍子間隔和一個(gè)空格過濾switch(*(song+i)case ',': gaodi=-12;i+;/低音break;case '': gaodi=12;i+; /高音break;if(*(song+i)=0) /遇到0結(jié)束*(diao+i1)=0; /加入結(jié)束標(biāo)志0*(jie+i1)=0;return;j=*(song+i)-0x30; i+; /取出基準(zhǔn)音j=jie7j+gaodi; /加上高低音yinc: switch(*(song+i)case '#':

18、 /有半音j加一個(gè)音階i+;j+;goto yinc;case '-': /有一個(gè)音節(jié)加長yinchang+=4;i+;goto yinc;case '_': /有一個(gè)音節(jié)縮短yinchang/=2;i+;goto yinc;case '.': /有一個(gè)加半拍yinchang=yinchang+yinchang/2;i+;goto yinc;*(diao+i1)=j; /記錄音符*(jie+i1)=yinchang; /記錄音長i1+;/*/奏樂函數(shù)/入口:要演奏的音樂符號(hào)串void play(uchar *songdata)uchar i,c,

19、j=0,a=0;uint n;uchar xdata diaodata112; /音調(diào)緩沖uchar xdata jiedata112; /音長緩沖changedata(songdata,diaodata,jiedata); /解釋音樂符號(hào)串tr0=1;for(i=0;diaodatai!=0;i+) /逐個(gè)符號(hào)演奏tl0_f=freqdiaodatai*2; /取出對(duì)應(yīng)的定時(shí)值送給t0th0_f=freqdiaodatai*2+1;for(c=0;c<jiedatai;c+) /按照音長延時(shí)for(n=0;n<32000;n+);if(k0=0)|(k1=0)|(k2=0)|(k

20、3=0) /發(fā)現(xiàn)按鍵,立即退出播放tr0=0;return;tr0=0;for(n=0;n<500;n+); /音符間延時(shí)tr0=1;tr0=0;/仙劍uchar code music1="|3_3_3_2_3-|2_3_2_2_,6,6_,7_|12_1_,7,6_,5_|,6-|""3_3_3_2_3.6_|5_6_5_5_22_3_|45_4_32_1_|3.-3_|""67_6_55_3_|5-3_5_|26_5_32_3_|3-|""26_6_6-|16_6_66_7_|17_6_76_7_|3.-3_|""67_6_55_3_|5-3_5_|67_6_76_7_|3-|""26_6_6-|16_6_66_7_|17_6_7.5_|6-|"uchar code music2="5-5_3_2_1_|3-|6-6_4_2_1_"",7-,5_|1.3_5.1_|,7.3_5 5_|""6.7_1.6_|6_5_5-3_2_|1.1_13_2_|""1.1_12_3_|2.1_,62_3_|2- ,5_|""1.3_5.1_|,7.3_55_|6

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論