51單片機(jī)-把樂(lè)譜翻譯成頻率表方便以后使用_第1頁(yè)
51單片機(jī)-把樂(lè)譜翻譯成頻率表方便以后使用_第2頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

^include<stdio.h>^defineucharunsignedchar//定義一下方便使用^defineuintunsignedintuchartable[500];//TO的值,及輸出頻率對(duì)照表ucharfreq〔36*2]={0xA9,OxEF,//00220HZ,1//00x93,OxFO,//00233HZ,1ft0x73,OxFl,//00247HZ,20x49,0xF2,//00262HZ,2#0x07,0xF3,//00277HZ,30xC8,0xF3,//00294HZ,40x73,0xF4,//003UHZ,4崙OxlE,0xF5,//00330HZ,50xB6,0xF5,//00349HZ,5存0x4C,0xF6,//00370HZ,60xD7,0xF6,//00392HZ,6社0x5A,OxF7,//00415HZ,70xD8,OxF7,//00440HZ1//120x4D,OxF&//00166HZ坤//13OxBD,OxF&//00194HZ2//140x24,0xF9t//00523HZ2#//150x87,0xF9t//00554HZ3//160xE4,0xF9t//00587HZ4//170x3D,OxFAf//00622HZ//180x90,OxFAf//00659HZ5//19OxDE,OxFAf//00698HZ5社//200x29,OxFBt//00740HZ6//210x6F,OxFBt//00784HZ6社//22OxBLOxFB,//00831HZ7//23OxEF,OxFBt//00880HZ0x2A,OxFC,//00932HZ0x62,OxFCf//00988HZ、20x95,OxFCf//01046HZ0xC7,OxFC,//01109HZ0xF6,OxFCf//01175HZ0x22,OxFDf//01244HZOx4B,OxFDt//01318HZ0x73,OxFDf//01397HZ0x98,OxFDt//01480HZOxBB,OxFDt//01568HZOxDC,OxFDf//01661HZ?7//3};******************************/*1234567為7個(gè)基本音階前而加逗號(hào)','表示這是低音前而加上點(diǎn)號(hào)八'表示這是高音后而加'護(hù),表示這個(gè)音符升半個(gè)音階后而加'?',表示這個(gè)音符要再加長(zhǎng)自身一半的延時(shí)后而加一個(gè)或多個(gè)'」,每個(gè)表示延時(shí)一扌白后而加一個(gè)或多個(gè)表示這個(gè)音符要縮短自身一半的時(shí)長(zhǎng),最多支持2個(gè)I'。這些規(guī)則對(duì)一般的樂(lè)譜都可以應(yīng)付得來(lái)了。?///音樂(lè)符號(hào)串解釋函數(shù)voidchangedata(uchar*song,uchar*diao,uchar*jie){uchari,il,j;chargaodi;〃高低+/T2音階ucharbanyin;//有沒(méi)有半個(gè)升音階ucharyinchang;//音長(zhǎng)ucharjie7[8]={0t12,14,16,17,19,21,23};//C調(diào)的7個(gè)值*diao=*song;for(i=0til=0;;){gaodi=0;//高低=0banyin=0;//半音=0yinchang=4;//音長(zhǎng)1拍if((*(song^i)==>\")||(*(song+i)=='))i++;//扌白子間隔和一個(gè)空格過(guò)濾switch(*(song+i)){casegaodi=-12;i++;//低音break;case八‘:gaodi=12;i++;//高音break;}if(*(song+i)==0)〃遇到0結(jié)束{*(diao+il)=0;//加入結(jié)束標(biāo)志0*(jie+il)=0;return;}j=*(song+i)-0x30;i++;〃取出基準(zhǔn)音j=jie7[j]+gaodi;〃加上高低音yinc:switch(*(song+i))case//有半音j加一個(gè)音階i++;j++;gotoyinc;case'://有一個(gè)音節(jié)加長(zhǎng)yinchang+=4;i++;gotoyinc;case//有一個(gè)音節(jié)縮短yinchang/=2;i++;gotoyinc;case'.'://有一個(gè)加半拍yinchang=5rinchang+yinchang/2;i++;gotoyinc;}*(diao+il)=j;〃記錄音符*(jie+il)=yinchang;//記錄音長(zhǎng)il++;}}//******************************************voidpla5r(uchar*songdata){uchari,k=0;uchardiaodataL112];ucharjiedata[112];changedata(songdata,diaodata,jiedata);//引用函數(shù)塊來(lái)一個(gè)一個(gè)字符地解釋音夕禾符號(hào)串for(i=0;diaodata[i]!=0;i++){table[k]=freqEdiaodataEi]*2];table[k+l]=freq[diaodata[i]*2+1];table[k+2]=jiedata[i];k二k+3;}table[k]=0x00;}//媽媽好ucharmamahaoLJ="6?5_35「16_5_6-135_6_53_2」6_5_3_2-12.3_55_6_|321-|5?3_2_1_,6_1_|,5—"http://雙引號(hào)表示里齋是字祁舀};voidmain(void){pla>r(mamahao);uchart=0;uintk;printf("{");

溫馨提示

  • 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)論