整理簡易c語言蜂鳴器音樂_第1頁
整理簡易c語言蜂鳴器音樂_第2頁
整理簡易c語言蜂鳴器音樂_第3頁
整理簡易c語言蜂鳴器音樂_第4頁
整理簡易c語言蜂鳴器音樂_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精品文檔/51單片機播放音樂庫文件SOUND PLAY FOR 51MCUCOPYRIGHT (c)2005 BY JJJ-ALL RIGHTS RESERVED -File Name: Author: Created: Modified: Revision:SoundPlay.h Jiaiig Jiaii Jun 2005/5/16NO1.0*/*說明*曲譜存貯格式unsigned char code MusicNaine音高,音長,音高,音長,0,0;末尾:0,0表 示結(jié)束(Important)音高由三位數(shù)字組成:個位是表示17這七個音符十位是表示音符所在的音區(qū):1-低音,2-中音,3-高

2、音;百位表示這個音符是否要升半音:0-不升,1-升半音。音長最多由三位數(shù)字組成:個位表示音符的時值,其對應(yīng)關(guān)系是:| 數(shù)值(n):|0|1 |2|3|4|5|6|幾分音符:|1 |2 |4 |8 |16 |32 |64音符=2九十位表示音符的演奏效呆(0-2): 0-普通,1-連音,2-頓音百位是符點位:0 無符點,1 有符點調(diào)用演奏子程序的格式Play(樂曲名,調(diào)號,升降八度,演奏速度);1樂曲名| 調(diào) 9(0-11)|升降八度(13):要播放的樂曲指針,結(jié)尾以(0,0)結(jié)束; :是指樂曲升多少個半音演奏; :上降八度,2:不升不降,3:升八度;|演奏速度(1-12000):值越人速度越快;

3、*/#ifhdef _SOUNDPLAY_H_RE VISION_FIRST_#define _SOUNDPLAY_H_REVISION_FIRST_#include define SYSTEM.OSC frdefine SOUND_SPACE 隔*11059200/12000000 /定義晶振頻率 12000000HZ4/5定義普通音符演奏的長度分率,每4分音符間#define uchai unsigned char#define umt unsigned mtsbit BeepIO =P2A4;sbit kev3=P3z 4;sbit kevl=P3z 2;/按 kevl nJ切換花樣sb

4、it key2=P3T;/按kev2可切換歌曲/定義輸出管腳uchai count!;unsigned int code FreTab12 = 262,277,294,311,330,349,369,392,415,440,466、494 ; 原 始頻率表0,2,4,5,7,9,11;unsigned chai code SignTab717在頻率表中的位置unsigned char code LengthTab7= 1,2,4,8,1632,64 ;unsigned char Sound_Temp_TH0,Sound_Temp_TL0;音符定時器初值暫存unsigned char Sound

5、_Temp_TH 1 ,Sound_Temp_TL 1;音長定時器初值暫存*void InitialSound(void)BeepIO = 1;Sound_Temp_THl = (65535(l/1200)*SYSTEM_OSC)/256;/ 計算 TL1 應(yīng)裝入的初值(lOnis的初裝值)Sound_Temp_TLl = (65535(1/1200)*SYSTEM_OSC)%256;/ 計算 TH1 應(yīng)裝入的初值TH1 = Sound_Temp_TH 1;TL1 = Sound_Temp_TL 1;TMOD |= 0x11;ET0= 1;ET1=0;TRO= 0;TRI= 0;EA= 1;v

6、oid BeepTiineiO(void) iiitemipt 1音符發(fā)生中斷BeepIO = !BeepIO;THO= Sound_Temp_THO;TLO= S ound_Temp_TLO;*void Play(unsigned char *Sound.unsigned char Signatuie,unsigned OctachordAinsigned mt Speed)unsigned mt NewFieTab12;新的頻率表unsigned char ij;unsigned mt Pouit,LDivLDixO.LDivl .LDiv2,LDiv4,CuiTentFie5Temp_T

7、,SouiidLength;unsigned char Tone,Lengtli,SL.SH,SM.SLen,XGFD;for(i=0;i11)J=J2;NewFreTabi = FreTabj*2;elseNewFreTabi = FreTabfj;if(Octachoid = 1) NewFreTabi=2;else if(Octachord = 3) NewFreTabi =2;SoundLengtli = 0; while(SouiidSouiidLength != 0x00)計算歌曲長度SoundLengtli+=2; Pomt = 0;Tone = Sound Pomt;Lengt

8、h = Sound Pomt+1;/讀出第一個音符和它時時值LDivO = 12000/Speed;LDiv4 = LDivO/4;/算出1分音符的長度(幾個lOnis)/算出4分音符的長度LDiv4 = LDiv4-LDiv4*SOUND_SPACE; / 普通音最長間隔標(biāo)準(zhǔn)TRO = 0;TRI= 1;wliile(Point SoundLengtli)SL=Tone% 10;計算出音符SM=Tone/l 0% 10;/計算出高低音SH=Tone/100;計算出是否升半CunentFre = NewFreTabSignTabSL-l+SH;/查出對應(yīng)音符的頻率if(SL!=0)if (SM

9、=1) CunentFre = 2;低音if (SM=3) CunentFre = 2;高音Temp_T = 65536-(50000/CiHntFe)* 10/(12000000/SYSTEM_OSC); 計算計數(shù)器初值Sound_Temp_TH0 = Temp_T/256;Sound_Temp_TL0 = Temp_T%256;THO = Soimd_Temp_THO;TLO = Soimd_Temp_TLO + 12; 加12是對中斷延時的補償SLen=LengthTab Length% 10;XG=Lengtlvl0%10;FD=LengtlvlOO;LDiv=LDivO/SLen;i

10、f(FD=l)LDi v=LDiv+LDiv/2;if(XG!=l) if(XG=O)if (SLen0;i-)/算出頓音的演奏長度算岀不發(fā)音的長度發(fā)規(guī)定長度的音wlule(TFl=O);TH1 = Sound_Temp_TH 1;TL1 = Sound_Temp_TL 1; TF1=O;if 0; i)/音符間的間隔wlule(TFl=O);TH1 = Sound_Temp_TH 1;TL1 = Sound_Temp_TL 1; TF1=O;Pomt+=2;Tone=Sound Pomt;Length=Sound Point+1 ;BeepIO = 1;*#endif揮著翅膀的女孩unsig

11、ned char code Music_Girl= 0x17,0x02, 0x17.0x03, 0x18,0x03, 0x19,0x02, 0x15.0x03,0x16,0x03,0x17,0x03,0x17.0x03,0x17,0x03,0x18,0x03,0x19,0x02,0x16.0x03,0x17.0x03,0x18,0x02,0x18,0x03,0x17.0x03,0x15.0x02,0x1 & 0x03,0x17,0x03,0x18,0x02,0x10,0x03,0x15.0x03,0x16,0x02,0x15,0x03,0x16,0x03,0x17.0x02,0x17,0x03

12、,0x1 & 0x03,0x19,0x02,0xlA,0x03,0xlB.0x03,Ox IF,0x03,0xlF.0x03,0x17,0x03,0x18,0x03,0x19,0x02,0x16.0x03,0x17.0x03,0x18,0x03,0x17,0x03,0x18.0x03,Ox IF,0x03,0xlE0x02,0x16,0x03,0x17,0x03,0x18.0x03,0x17,0x03,0x1 & 0x03,0x20,0x03,0x20,0x02,0xlE0x03,0xlE,0x03,0xlF.0x66,0x20,0x03,0x21,0x03,0x20,0x03,0x1 F,O

13、xO3,0xlE.0x03,0xlE0x66,0xlE0x03,0xlB.0x03,0x19.0x03,0x19.0x03,0x15,0x03,0xlA.0x66,0xlA.0x03.0x19,0x03,0x15.0x03,0x15,0x03,0x17,0x03,0x16,0x66。0x17.0x04、0x18,0x04,0x18,0x03,0x19,0x03,0xlE0x03,0xlE,0x03,0xlE0x66,0x20,0x03,0x21,0x03,0x20,0x03,0x1 F,OxO3,0xlE.0x03,0xlE0x66,Ox IF,0x03,0xlB.0x03,0x19.0x03

14、,0x19.0x03,0x15,0x03,0xlA.0x66,0xlA.0x03.0x19,0x03,0x19,0x03,Ox IF,0x03,0xlB,0x03,OxlEOxOO.0xlA,0x03,0x1 A, 0x03,0xlA,0x03,0xlB,0x03,0xlB.0x03,0xlA,0x03,0x19.0x03,0x19,0x02,0x17,0x03,0x15,0x17,0x15.0x03、0x16,0x03,0x17,0x03,0x18,0x03,0x17,0x04.0x18, OxOE,0x18,0x03,0x17,0x04,Oxl&OxOE,0x18,0x66.0x17.0x

15、03、0x18,0x03,0x17,0x03,0x18,0x03,0x20,0x03,0x20.0x02,Ox IF, 0x03,Ox IE,0x03,0xlE0x66.0x20,0x03,0x21.0x03,0x20,0x03,Ox IF,0x03,0xlB,0x03,Ox IF,0x66.Ox IF,0x04、OxlB.OxOE,Ox IE,0x03,0x19,0x03,0x19,0x03,0x15,0x03,0x1 A,0x66,0xlA,0x03,0x19,0x03,0x15.0x03,0x15.0x03、0x17,0x03,0x16,0x66,0x17,0x04,0x18,0x04.

16、0x18.0x03,0x19.0x03,Ox IF,0x03,0xlB,0x03,Ox IF,0x66.0x20,0x03,0x21,0x03,0x20,0x03,Ox IF,0x03,0xlB.0x03,Ox IF,0x66,0xlE0x03,0xlE,0x03,0x19,0x03,0x19,0x03,0x15,0x03,0xlA,0x66,0xlA,0x03,0x19,0x03,0x19,0x03、Ox IF,0x03,0xlE、0x03,OxlEOxOO.0x18,0x02,0x18.0x03,0xlA.0x03,0xl9,0x0D,0x15.0x03,0x15,0x02,0x18.0x

17、66.0x16.0x02,0x17,0x02,0x15.0x00,0x00,0x00;同一首歌unsigned char code Music_Same= OxOF.OxOl, 0x15,0x02, 0x16.0x02, 0x17,0x66. 0x18.0x03,0x17.0x02,0x15,0x02、0x16,0x01,0x15,0x02,0x10,0x02,0x15.0x00.0x0F,0x01,0x15.0x02,0x16,0x02,0x17,0x02,0x17.0x03,Oxl& 0x03、0x19.0x02,0x15,0x02,0x18,0x66,0x17.0x03,0x19,0x0

18、2,0x16,0x03,0x17,0x03,0x16,0x00,0x17.0x01,0x19,0x02,0xlE,0x02,0xlB,0x70,0xlA.0x03,OxlA.OxOl.0x120x02,0x19,0x03,0xlA,0x03,0x1 B,0x02,OxlA.OxOD,0x19.0x03,0x17.0x00,0x18,0x66、0x18,0x03,0x19,0x02 ?0xlA,0x02,0xl9,0x0C,0x1 & OxOD,0x17,0x03,0x16,0x01,0x11,0x02,0x11,0x03,0x10,0x03,OxOEOxOC,0x10,0x02 ?0x15,0

19、x00.OxlEOxOl,0x1 A,0x01,0x18,0x66,0x19,0x03,OxlA.OxOl,0xlB.0x02?0xlE,0x03,0xlB,0x03,OxlB.OxOC,OxlA.OxOD,0x19,0x03,0x17,0x00,OxlEOxOl,OxlA.OxOl.Oxl& 0x66.0x19,0x03,OxlAQxOl,0x10,0x02,0x10,0x03,0x10,0x03,OxlAQxOC,0x1 & OxOD,0x17,0x03,0x16,0x00.0x0F,0x01,0x15.0x02,0x16,0x02,0x17,0x70,0x18.0x03,0x17,0x0

20、2、0x15.0x03,0x15,0x03,0x16,0x66,0x16,0x03,0x16.0x02,0x16,0x03,0x15,0x03,0x10,0x02,0x10,0x01,0x11,0x01,0x11,0x66,0x10,0x03,OxOEOxOC,0xlA,0x02,0x19,0x02,0x16,0x03,0x16,0x03,0x18,0x66,0x18.0x03,0x18.0x02,0x17.0x03,0x16,0x03,0x19,0x00,0x00.0x00 ;兩只蝴蝶unsigned char code Music_Tvo = 0x17,0x03, 0x16,0x03, 0

21、x17.0x01. 0x16,0x03, 0x17,0x03,0x16,0x03,0x15,0x01、0x10.0x03,0x15,0x03,0x16,0x02,0x10,0x03,0xl6,0x0D、0x17,0x03,0x16.0x03,0x15,0x03,0x16,0x03,OxlO.OxOE,0x15,0x04,OxOEOxOl,0x17,0x03,0x15,0x01,0x17.0x01,0x16.0x03、0x17.0x03,0x16,0x03,0x17,0x03,0x10,0x03、0x15,0x03,0x16,0x02,0xl6,0x0D,0x16,0x01,0x16,0x03,

22、0x15,0x03、0x10.0x03,0x15,0x03,0x17,0x03,0x17.0x03,0x16.0x03、0x17.0x01,0x16,0x03,0x16,0x02,0x16,0x03,0x15,0x01、0x10.0x03,0x15,0x03,0x10,0x03,0xl6,0x0D、0x17,0x03,0x16.0x03,0x15,0x03,0x19,0x03,OxlO.OxOE,0x15,0x04,OxOEOxOl,0x17,0x03,0x17.0x01,0x19,0x01,0x19,0x03,0xlA.0x03,0x19,0x03,0x17,0x03,0x16,0x03,0

23、x16,0x03,0x16,0x02,0xl6,0x0D,0x15,0x00,0x16,0x03,0x15,0x03,0x10,0x03、0xl0,0x0D,0xlB,0x03,0x19,0x03、0x19.0x03,0xlA.0x03,0xlF.0x03,0x16,0x03,0xlB.0x03,0x1 A.0x03,0xl7,0x0D,0x16,0x03,0x19,0x03,0xl6,0x0D、0x17,0x01,0x17.0x03,0x17,0x03,0x16,0x03,0xlA.0x02,0x1 A,0x02,0x10.0x03,0xl7,0x0D,0x17,0x03,0x16,0x01

24、,0x17,0x03、0x19.0x03,0x19,0x03,0x19.0x02,Ox 1 E0x02,Ox 1E .0x03,Ox 1 A, 0x03、OxlA.OxOE,0xlB.0x04.0x17,0x02,0x1 A,0x03,0xlA,0x03,OxlA.OxOE,0xlB.0x04.0x1 A,0x03,0x19.0x03,0x17,0x03,0x16,0x03,0x17.0x0D50x16,0x03,0x17.0x03,0x19,0x01,0x19,0x03,0x19,0x03,0xlA,0x03,Ox IF,0x03,Ox IE,0x03,0xlB,0x03,0xlA,0x03,0xl7,0x0D,0x16.0x03,0x16,0x03,0x16,0x03,0x17,0x01,0x17.0x03、0x17,0x03,0x19,0x03,0x1 A,0x02,0xlA,0x02,0x10.0x03,0xl7,0x0D,0x1

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論