當前位置:首頁 » 編程語言 » c語言音符代碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言音符代碼

發布時間: 2022-11-26 15:47:29

⑴ 求51單片機蜂鳴器國歌音符編碼!!!要是c語言寫的!

太簡單了,直接delay把7個聲調 re mi fa sao la xi做出來子函數,調用就可以了這個方法最簡單,適合初學者容易理解。然後找到樂譜,調用你的聲調就可以了

⑵ 求單片機 音樂播放的c代碼

#include "reg52.h"
unsigned char Count;
sbit _Speak =P2^3 ; //訊響器控制腳

unsigned char code SONG[] ={ //祝你平安
0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,
0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,
0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,
0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,
0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,
0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,
0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,
0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,
0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,
0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,
0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,
0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,
//路邊的野華不要采
0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,
0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,
0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,
0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,
0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,
0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,
0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,
0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,
0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,
0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,
0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,
0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,

};

void Time0_Init()
{
TMOD = 0x01;
IE = 0x82;
TH0 = 0xD8;
TL0 = 0xEF; //12MZ晶振,10ms
}

void Time0_Int() interrupt 1
{
TH0 = 0xD8;
TL0 = 0xEF;
Count++; //長度加1
}

/*-------------------------------------------------
功能:1MS延時子程序
-------------------------------------------------*/
void Delay_xMs(unsigned int x)
{
unsigned int i,j;
for( i =0;i < x;i++ )
{
for( j =0;j<3;j++ );
}
}

/*-------------------------------------------------
功能:歌曲播放子程序i為播放哪一段曲目
-------------------------------------------------*/
void Play_Song(unsigned char i)
{
unsigned char Temp1,Temp2;
unsigned int Addr;
Count = 0; //中斷計數器清0
Addr = i * 217;
while(1)
{
Temp1 = SONG[Addr++];
if ( Temp1 == 0xFF ) //休止符
{
TR0 = 0;
Delay_xMs(100);
}
else if ( Temp1 == 0x00 ) //歌曲結束符
{
return;
}
else
{
Temp2 = SONG[Addr++];
TR0 = 1;
while(1)
{
_Speak = ~_Speak;
Delay_xMs(Temp1);
if ( Temp2 == Count )
{
Count = 0;
break;
}
}
}
}
}
/*-------------------------------------------------
功能:主程序
-------------------------------------------------*/
void main()
{
Time0_Init(); //定時器0中斷初始化
while(1)
{
Play_Song(0); //播放
}
}

⑶ 求: 用51單片機c語言操作使蜂鳴器奏出「祝你生日快樂」音樂的全部程序!

#include <reg51.h>
sbit speaker=P1^2;
unsigned char timer0h,timer0l,time;
//生日歌
code unsigned char sszymmh[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,
5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,
5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,
4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4};
// 音階頻率表 高八位
code unsigned char FREQH[]={
0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,
} ;
// 音階頻率表 低八位
code unsigned char FREQL[]={
0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,
0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,
};
void delay(unsigned char t)
{
unsigned char t1;
unsigned long t2;
for(t1=0;t1<t;t1++)
{
for(t2=0;t2<8000;t2++)
{
;
}
}
TR0=0;
}
void t0int() interrupt 1
{
TR0=0;
speaker=!speaker;
TH0=timer0h;
TL0=timer0l;
TR0=1;
}
void song()
{
TH0=timer0h;
TL0=timer0l;
TR0=1;
delay(time);
}

void main(void)
{
unsigned char k,i;
TMOD=1; //置CT0定時工作方式1
EA=1;
ET0=1;//IE=0x82 //CPU開中斷,CT0開中斷
while(1)
{
i=0;
while(i<75){ //音樂數組長度 ,唱完從頭再來
k=sszymmh[i]+7*sszymmh[i+1]-1;
timer0h=FREQH[k];
timer0l=FREQL[k];
time=sszymmh[i+2];
i=i+3;
song();
}
}
}

⑷ 跪求單片機51_C語言音樂程序,音樂是國際歌!謝謝!

/*
成都理工大學工程技術學院通信工程--漆洋
本程序用於播放音樂,採用定時器1控制時間
從而改變頻率實現音節播放
*/
#include<AT89X52.H>
#define uchar unsigned char
#define uint unsigned int
#define buz P3_1
code uint ton[][7]= //定音所有音階
{
{0xE600,0xE8D5,0xEB5E,0xEC86,0xEEA7,0xF08B,0xF23C},
{0xF2E6,0xF46D,0xF5BF,0xF61C,0xF750,0xF866,0xF905},
{0xf91E,0xf9DE,0xFA89,0xfaD8,0xfb68,0xfbe8,0xfc5a}, //中音C
{0xFC8F,0xFCEF,0xFD51,0xFD80,0xFDB5,0xFDF4,0xFE2D},
{0xFE47,0xFE77,0xFEA2,0xFEB6,0xFEDA,0xFEF3,0xFF17},
{0xFF24,0xFF3C,0xFF51,0xFF5B,0xFF6D,0xFF7D,0xFF8B},
};
/*
格式:音調+音階+拍數
*/
code uint m1[]=
{ //《最炫民族風》
262,261,251,262,261,311,312,321,311,261,0,
312,311,252,311,322,331,351,351,331,322,331,0,
361,361,361,351,331,331,312,261,261,261,332,321,0,
331,332,351,331,321,331,321,311,262,251,261,0,
262,261,251,262,261,311,312,321,311,261,0,
312,311,252,311,322,331,351,351,331,322,331,0,
361,361,361,351,331,331,312,261,261,261,332,321,0,
331,331,351,331,331,351,351,361,362,352,362,0,
262,261,252,261,312,321,331,321,311,321,332,0,
332,361,361,352,331,321,312,321,333,0,
312,261,261,321,262,331,351,331,321,312,0,
262,311,321,332,321,311,261,251,263,0,
8
};
code uint m2[]=
{ //《愛情買賣》
262,261,231,221,232,0,
222,231,221,211,222,0,
252,251,251,231,251,251,251,231,262,231,231,221,232,0,
262,261,231,221,231,0,
221,231,221,211,221,0,
251,251,251,231,251,251,251,231,271,251,251,231,251,0,
231,261,311,311,232,261,311,0,
271,261,271,261,221,231,0,
222,221,221,161,221,231,251,231,271,271,251,232,0,
232,261,311,311,231,261,311,0,
331,321,331,321,311,321,0,
331,331,321,311,321,321,311,271,251,231,251,261,263,0,
8
};
code uint m3[]=
{
//《北京愛情故事》滴答滴答
252,262,311,322,331,312,331,323,0,
322,322,321,0,321,311,311,0,262,263,0,
252,261,312,322,332,351,332,323,0,
322,321,322,321,311,312,261,331,333,0,
362,361,362,361,351,351,331,323,0,
321,321,322,321,312,311,352,351,332,0,
362,361,362,411,332,321,332,321,0,
321,321,321,321,311,261,261,311,313,0,
8
};
code uint m4[]=
{ //《同桌的你》
252,251,251,251,231,241,251,272,0,
262,261,261,261,241,262,252,0,
252,251,251,251,271,261,251,241,0,
241,241,241,241,241,231,221,212,0,
252,251,251,251,231,241,251,272,0,
262,261,261,261,241,262,252,0,
252,251,251,251,271,261,251,241,0,
241,241,241,241,241,231,221,212,0,
311,311,311,312,251,261,311,311,332,0,
322,321,321,321,311,271,262,0,
272,271,271,271,311,321,252,0,
271,271,311,321,311,271,313,0,
311,311,311,312,251,261,311,311,332,0,
322,321,321,321,311,271,262,0,
272,271,271,271,311,321,252,0,
271,271,311,321,311,271,313,0,
8
};
code uint m5[]=
{ //《荷塘月色》
211,212,161,152,161,211,211,221,233,0,
221,222,211,221,221,252,251,231,231,221,233,0,
211,212,161,152,252,231,221,231,221,212,0,
222,221,211,221,221,232,221,211,161,221,212,0,
211,212,161,152,161,211,211,221,233,0,
221,222,211,221,221,252,251,231,231,221,233,0,
211,212,161,152,252,231,221,231,221,212,0,
222,221,211,221,221,232,221,211,161,221,212,0,
231,252,251,252,251,261,251,231,221,212,0,
261,311,261,251,231,221,211,162,221,221,232,221,0,
231,252,251,252,251,261,251,231,221,212,0,
162,211,161,151,222,231,212,0,
8
};
code uint m6[]= //《豬八戒背媳婦》
{
262,331,351,332,261,312,0,
261,311,261,311,332,331,321,332,311,262,0,
332,351,361,361,361,331,352,0,
332,351,332,351,361,361,362,331,352,0,
352,261,352,261,331,331,312,0,
321,0,321,0,321,311,321,332,351,361,432,331,432,0,
331,431,331,431,331,331,313,0,
321,0,321,0,322,311,321,331,351,364,0,
8
};
void musicdelay(int q)
{
while(--q);
}
/*音樂播放程序*/
void musicplay(uint *a)
{
uint b,i,j,k,l,m,p;
uchar KEY=0;
TMOD=0x11;
p=0;
buz=1;
while(1) //如果其它鍵,停止播放音樂
{
if(a[p]==8)break; //判斷休止符,結束播放
if(a[p]!=8) //音頻識別與轉換
{
i=a[p]/100;
j=a[p]%100/10;
l=a[p]%10;
if(a[p]!=0){b=ton[i][j-1];}; //轉換後存入變數b中
if(a[p]==0){b=0;};
p++;
}

k=(230414/(0xffff-b))*l; //拍數
/******************播放當前音節*******************/
if(b!=0) //判斷為正常音符,播放
{
TH1=0;TL1=0;TR1=1;
for(m=0;m<k;m++)
{
TH1=((b&0xff00)>>8); //裝定時器初值
TL1=(b&0x00ff);
while(TF1==0);
buz=~buz; //實現一次蜂鳴器震動
TF1=0;
}
TR1=0;
buz=1;
}
/************************************************/
if(b==0) //判斷為0(停頓),延時一節拍
{
buz=1;
for(m=0;m<80;m++)
{
musicdelay(300);};
}
}
}
void musicplayc(uchar i)
{
if(i==1){musicplay(m1);};
if(i==2){musicplay(m2);};
if(i==3){musicplay(m3);};
if(i==4){musicplay(m4);};
if(i==5){musicplay(m5);};
if(i==6){musicplay(m6);};
}

⑸ 如何用c語言編寫歌曲

很簡單的。
計算機發聲原理:
聲音有三個特性:響度、音調、音色。
響度,這個非常好理解。就是我們感覺到的聲音的大小。具體點說就是由「振幅」決定,振幅越大響度越大。一般計量響度的單位是分貝,dB。
音調,這個就是聲音的高低,由「頻率」決定,頻率越高音調越高。頻率單位是赫茲,符號Hz。
音色,在生活當中,我們會發現各種物品發出的聲音的特點是不一樣的,如二胡和笛子。聲音的特性就是音色。而決定聲音的音色是由於物體本身的材料、結構。
對於我們的計算機而言。發聲的設置都是固定了的。要麼要計算機上的那個喇叭,那麼是外接的音響等。
現在這里對計算機上的那個喇叭用TurboC2.0進行編程,使之發出動聽的音樂《梁祝》。
第一步:定義《梁祝》的每一個音符的頻率和時間,將定義好的頻率和時間寫入文件或者保存在數組裡面。如果僅僅是寫一兩個程序自己玩玩的話,那直接保存在數組裡面就可以了。如果你想自己寫個播放器的話,那你先自己定義一種音樂格式文件(類似.mp3、.wav這種文件,這里暫時把這個文件定為.mymusic),將《梁祝》每個音符的頻率、時間寫入這個自定義的音樂格式文件liangzhu.mymusic。
第二步:完成了liangzhu.mymusic文件的定義後,我們要做的事情就是讀文件,控制喇叭發聲。這個具體可以參照現有的資料。這里需要事先寫幾個函數,讀文件的函數,暫停函數,頻率對照函數等等。
第三步,將上面的程序鏈接起來,就OK了。
將上面的步驟優化下,一個DIY的音樂播放器就成功了。
我上面說的只是控制了聲音的頻率和時間,其實還可以控制響度。對於一些特殊的設備,控制音色也不是不可能。
這種程序我在大一的時候寫過。現在想起來不難的。
主要是對C語言是否熟練,當然,你想要實現一個播放器,那你途中會遇到很多困難的。
祝你好運!

⑹ 如何用c語言畫出五線譜、各種音符

拿搜狗圖片「更多字元畫」那裡嘛!你用搜狗打「豬」,上面有個「更多字元畫」,點那裡自己慢慢找吧!
額~~不過俺不懂啥是「C語言」~~不對別怪偶!

⑺ 電子琴C語言程序

GoldBr

⑻ 怎樣用C語言編一段鋼琴伴奏

看看這個吧...應該有用
#include<stdio.h>
#include<dos.h>
#include<bios.h>
#include<time.h>
#define N1 32 /*一拍*/
#define N2 16
#define N4 8
#define N8 4
#define N16 2
#define END 0
/*其中:N1,N2,N4,N6,N8,N16分別代表
一拍,二分之一拍,四分之一拍,
八分之一拍,十六分之一拍。*/
enum NOTES
{
C10=131,D10=147,E10=165,F10=175,G10=196,A10=220,B10=247,
/*低度音調分別是:1,2,3,4,5,6,7*/
C0=262, D0=286, E0=330, F0=349, G0=440, A0=440, B0=494,
/*中度音調分別是:1,2,3,4,5,6,7*/
C1=523, D1=158, E1=659, F1=698, G1=784, A1=880, B1=998,
/*高度音調分別是:1,2,3,4,5,6,7*/
C2=1047,D2=1175,E2=1319,F2=1397,G2=1568,A2=1760,B2=1976
/*高八度音調分別是:1,2,3,4,5,6,7*/
}
song1[]={
G0,N16,G0,N8,A0,N8,G0,N8,C1,N8,B0,N4,G0,N16,
G0,N8,A0,N8,G0,N8,D1,N8,C1,N4,G0,N16,G0,N8,G1,N8,
E1,N8,C1,N8,B0,N16,B0,N8,A0,N4,F1,N16,F1,N8,E1,
N8,C1,N8,D1,N8,C1,N4,END,END
/*以上是曲子代碼,你可以嵌入自己喜歡的歌曲代碼*/
/*注意:數組中的偶數元素代表音符奇數元素代表拍長.*/
};
song2[]={
C10,N1,D10,N1,E10,N1,F10,N1,G10,N1,A10,N1,B10,N1,
C10,N2,D10,N2,E10,N2,F10,N2,G10,N2,A10,N2,B10,N2,
C10,N4,D10,N4,E10,N4,F10,N4,G10,N4,A10,N4,B10,N4,
C10,N8,D10,N8,E10,N8,F10,N8,G10,N8,A10,N8,B10,N8,
C10,N16,D10,N16,E10,N16,F10,N16,G10,N16,A10,N16,B10,N16,
C0,N1,D0,N1,E0,N1,F0,N1,G0,N1,A0,N1,B0,N1,
C0,N2,D0,N2,E0,N2,F0,N2,G0,N2,A0,N2,B0,N2,
C0,N4,D0,N4,E0,N4,F0,N4,G0,N4,A0,N4,B0,N4,
C0,N8,D0,N8,E0,N8,F0,N8,G0,N8,A0,N8,B0,N8,
C0,N16,D0,N16,E0,N16,F0,N16,G0,N16,A0,N16,B0,N16,
C1,N1,D1,N1,E1,N1,F1,N1,G1,N1,A1,N1,B1,N1,
C1,N2,D1,N2,E1,N2,F1,N2,G1,N2,A1,N2,B1,N2,
C1,N4,D1,N4,E1,N4,F1,N4,G1,N4,A1,N4,B1,N4,
C1,N8,D1,N8,E1,N8,F1,N8,G1,N8,A1,N8,B1,N8,
C1,N16,D1,N16,E1,N16,F1,N16,G1,N16,A1,N16,B1,N16,
C2,N1,D2,N1,E2,N1,F2,N1,G2,N1,A2,N1,B2,N1,
C2,N2,D2,N2,E2,N2,F2,N2,G2,N2,A2,N2,B2,N2,
C2,N4,D2,N4,E2,N4,F2,N4,G2,N4,A2,N4,B2,N4,
C2,N8,D2,N8,E2,N8,F2,N8,G2,N8,A2,N8,B2,N8,
C2,N16,D2,N16,E2,N16,F2,N16,G2,N16,A2,N16,B2,N16,END
/*以上是音符測試代碼,你可以通過系統發出的音調選擇你需要的音符*/
/*注意:數組中的偶數元素代表音符奇數元素代表拍長.*/
};
song3[]= {
C0,N8,C0,N8,G0,N8,G0,N8,A0,N8,A0,N8,G0,N4,
F0,N8,F0,N8,E0,N8,E0,N8,D0,N8,D0,N8,C0,N4,
G0,N8,G0,N8,F0,N4,E0,N8,E0,N8,D0,N4,G0,N8,
G0,N8,F0,N8,F0,N8,E0,N8,E0,N8,D0,N4,C0,N8,
E0,N8,G0,N4,A0,N8,C1,N8,G0,N4,F0,N8,F0,N8,
E0,N8,E0,N4,D0,N8,D0,N8,C0,N4,C0,N8,C0,N8,
G0,N8,G0,N8,A0,N8,A0,N8,G0,N4,F0,N8,F0,N8,
E0,N8,E0,N8,D0,N8,D0,N8,C0,N4,G0,N8,G0,N8,
F0,N4,E0,N8,E0,N8,D0,N4,G0,N8,G0,N8,F0,N8,
F0,N8,E0,N8,E0,N8,D0,N4,C0,N8,E0,N8,G0,N4,
A0,N8,C1,N8,G0,N4,F0,N8,F0,N8,E0,N8,E0,N4,
D0,N8,D0,N8,C0,N4,END
/*以上是曲子代碼,你可以嵌入自己喜歡的歌曲代碼*/
/*注意:數組中的偶數元素代表音符奇數元素代表拍長.*/
};
song4[]= {
C10,N4,B0,N4,G0,N8,A0,N4,E0,N16,D0,N8,C0,N8,
D0,N8,G0,N8,E0,N8,E0,N4,E0,N8,G0,N8,E0,N8,
D0,N8,D0,N4,A0,N8,A0,N8,G0,N8,A0,N8,B0,N8,
G0,N8,G0,N8,E0,N4,C10,N8,B0,N8,G0,N8,A0,N4,
E0,N8,D0,N8,C0,N8,D0,N8,G0,N8,E0,N4,C0,N8,D0,N8,
E0,N4,G0,N8,E0,N8,D0,N4,C0,N8,B10,N8,C0,N8,B10,N8,
A10,N4,A0,N8,A0,N8,A0,N8,C1,N8,D1,N8, E1,N8,E1,N8,
C1,N8,A0,N8,A0,N8,B0,N16,A0,N16,G0,N8,E0,N8,A0,N8,
A0,N8,C1,N8,D1,N8,E1,N8,E1,N8,C1,N8,A0,N8,A0,N8,
B0,N8,A0,N8,B0,N16,A0,N16,G0,N8,E0,N8,D1,N16,D1,N16,D1,N8,
D1,N8,A0,N16,B0,N16,A0,N8,G0,N8,E0,N8,D1,N16,D1,N16,D1,N8,
A0,N16,B0,N16,A0,N8,G0,N8,E0,N8,A0,N8,A0,N8,A0,N4,A0,N8,
A0,N8,A0,N4,C10,N8,B0,N8,G0,N8,A0,N4,E0,N16,D0,N16,C0,N8,
D0,N8,G0,N8,E0,N4,E0,N4,E0,N16,G0,N16,E0,N16,
D0,N16,D0,N4,A0,N16,A0,N16,G0,N8,A0,N8,B0,N8,
G0,N16,G0,N16,E0,N4,C10,N8,B0,N8,G0,N8,A0,N4,
E0,N16,D0,N16,C0,N8,D0,N8,G0,N8,E0,N4,C0,N16,D0,N16,
E0,N4,G0,N8,E0,N8,D0,N4,C0,N8,B10,N8,C0,N16,B10,N16,
A10,N4,END};

/*以下是播放程序代碼*/
void MusicPlay(int *song)
{
int note=0,fre,r,control;
clock_t goal;
while(song[note]!=0)
{
fre=song[note];
r=song[note+1];
if(kbhit())break;
/*int kbhit()函數返回最近所敲的按鍵*/
if(fre)
{
outportb(0x43,0xB6);
/*函數void outportb(int port,char byte)
將位元組byte寫入指定的輸出埠port*/
fre=(unsigned)(1193180L/fre);
outportb(0x42,(char)(fre>>8));
outportb(0x42,(char)(fre>>8));
control=inportb(0x61);
/*函數int inportb(int port)從指定的
輸入埠讀入一個位元組,並返回這個位元組*/
outportb(0x61,(control)|0x3);
}
goal=(clock_t)r+clock();
while(goal>clock());
if(fre)
outportb(0x61,control);
goal=(clock_t)0;
note=note+2;
}
}
/*以下是主函數其中包括異常處理*/
void main(void)
{ int n;
do{
printf("If you want to listen music please input a number(1-4):");
if(scanf("%d",&n))
{
if(n<=4&&0<=n)
switch(n)
{
case 1:MusicPlay(song1);break;
case 2:MusicPlay(song2);break;
case 3:MusicPlay(song3);break;
case 4:MusicPlay(song4);break;

}
else printf("\n\t\tYou can input '0' to exit!\n\n");
}
else {printf("\n\tInput error,please prass any key to exit!\n");break;}
}while(n!=0);
return ;
getch();
}

⑼ c語言寫音樂,我要一個准確的源代碼,謝謝

能不能具體點呢?是像寫五線譜那種寫mid呢,還是??

#include<dos.h>
void main(void)
{
unsigned FREQUENCY[]={392,392,440,392,523,494,
392,392,440,392,587,523,
392,392,784,659,523,494,
440,698,698,659,523,587,523};
/*此處的FREQUENCY為樂譜每一個音符的頻率,替換成你的譜子即可*/
unsigned DELAY[]={375,125,500,500,500,1000,
375,125,500,500,500,1000,
375,125,500,500,500,1000,
375,125,500,500,500,1000};
/*此處DELAY為每個音符播放的時間,專業術語貌似是拍子速度吧!*/
int CIRCLE;/*譜子共有幾個音符*/
for(CIRCLE=0;CIRCLE<25;CIRCLE++)
{
sound(FREQUENCY[CIRCLE]);
delay(DELAY[CIRCLE]);
nosound();
}

}

TC 3.0編譯通過!

⑽ 求幾首歌的C語言代碼

1、告訴你最快的方法就是網路下個單片機音樂代碼生成器,然後按照《最近好嗎》《不開心與沒煩惱》《我們結婚吧》的樂譜將每一個音符輸入一遍,自動生成代碼,下載進去就可以了。
2、另外就是手動編寫了,根據對應頻率每個音符每個調對應的編碼,編好的碼放到一個數組,然後定時器產生不同的pwm驅動蜂鳴器發聲。高中低音有不同的頻率1-7個音節。
純手打,如果滿意,請採納!