您的位置:

c语言汇编歌曲,C语言歌曲

本文目录一览:

单片机蜂鸣器c语言《兰花草》音乐代码

程序名: MCS51U实验板配套程序-歌曲:兰花草

;电路介绍:蜂鸣器接P2.0;实验前要连接J12

;***********************************************************************

OUT BIT P2.0

ORG 0

AJMP START

ORG 0BH

AJMP TIM0

START: MOV TMOD,#1

MOV IE,#10000010B

START0: MOV 30H,#0

NEXT: MOV A,30H

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV R2,A

JZ END0

ANL A,#0FH

MOV R5,A

MOV A,R2

SWAP A

ANL A,#0FH

JNZ SING

CLR TR0

AJMP D1

SING: DEC A

MOV 22H,A

RL A

MOV DPTR,#TABLE1

MOVC A,@A+DPTR

MOV TH0,A

MOV 21H,A

MOV A,22H

RL A

INC A

MOVC A,@A+DPTR

MOV TL0,A

MOV 20H,A

SETB TR0

D1: CALL DELAY

INC 30H

AJMP NEXT

END0: CLR TR0

AJMP START0

TIM0: PUSH ACC

PUSH PSW

MOV TL0,20H

MOV TH0,21H

CPL OUT

POP PSW

POP ACC

RETI

DELAY: MOV R7,#2

D2: MOV R4,#125

D3: MOV R3,#248

DJNZ R3,$

DJNZ R4,D3

DJNZ R7,D2

DJNZ R5,DELAY

RET

;====================================

TABLE1: DW 64021,64103,64260,64400

DW 64524,64580,64684,64777

DW 64820,64898,64968,65030

DW 64934

TABLE: ;1

DB 42H,82H,82H,82H,84H,02H,72H

DB 62H,72H,62H,52H,48H

DB 0B2H,0B2H,0B2H,0B2H,0B4H,02H,0A2H

;2

DB 12H,0A2H,0D2H,92H,88H

DB 82H,0B2H,0B2H,0A2H,84H,02H,72H

DB 62H,72H,62H,52H,44H,02H,12H

;3

DB 12H,62H,62H,52H,44H,02H,82H

DB 72H,62H,52H,32H,48H

DB 00H

END

如何用C语言编写音乐歌曲?

很简单的。

计算机发声原理:

声音有三个特性:响度、音调、音色。

响度,这个非常好理解。就是我们感觉到的声音的大小。具体点说就是由“振幅”决定,振幅越大响度越大。一般计量响度的单位是分贝,dB。

音调,这个就是声音的高低,由“频率”决定,频率越高音调越高。频率单位是赫兹,符号Hz。

音色,在生活当中,我们会发现各种物品发出的声音的特点是不一样的,如二胡和笛子。声音的特性就是音色。而决定声音的音色是由于物体本身的材料、结构。

对于我们的计算机而言。发声的设置都是固定了的。要么要计算机上的那个喇叭,那么是外接的音响等。

现在这里对计算机上的那个喇叭用Turbo C 2.0进行编程,使之发出动听的音乐《梁祝》。

第一步:定义《梁祝》的每一个音符的频率和时间,将定义好的频率和时间写入文件或者保存在数组里面。如果仅仅是写一两个程序自己玩玩的话,那直接保存在数组里面就可以了。如果你想自己写个播放器的话,那你先自己定义一种音乐格式文件(类似.mp3、.wav这种文件,这里暂时把这个文件定为.mymusic),将《梁祝》每个音符的频率、时间写入这个自定义的音乐格式文件liangzhu.mymusic。

第二步:完成了liangzhu.mymusic文件的定义后,我们要做的事情就是读文件,控制喇叭发声。这个具体可以参照现有的资料。这里需要事先写几个函数,读文件的函数,暂停函数,频率对照函数等等。

第三步,将上面的程序链接起来,就OK了。

将上面的步骤优化下,一个DIY的音乐播放器就成功了。

我上面说的只是控制了声音的频率和时间,其实还可以控制响度。对于一些特殊的设备,控制音色也不是不可能。

这种程序我在大一的时候写过。现在想起来不难的。

主要是对C语言是否熟练,当然,你想要实现一个播放器,那你途中会遇到很多困难的。

祝你好运!

急求高手啊,怎么在c语言程序中写一段音乐啊!!!!

编译能通过---------- 编译时把注释去掉

#includestdio.h

#includestdlib.h

#includestring.h

struct song{ //定义一个歌曲结构

int id; //歌曲号

char title[20]; //歌曲名

char singer[20]; //歌手名

};

typedef struct song SONG; //把结构命名为 SONG

int main( void )

{

SONG songlist[100]; //定义一个存储歌曲信息的列表,长100

int i=0,j;

int c;

clrscr();

while (i=100) {

printf( "please enter the song's id, title and singer:\n" );

//输入歌曲号 然后空格 输入歌曲名 然后空格 输入歌手名 然后回车

scanf( "%d%s%s", songlist[i].id, songlist[i].title, songlist[i].singer);

i++;

//每次输入完一条信息后,把列表中的歌曲信息全部打印出来看一下

printf("the songlist is below:\n\n");

for( j=0; j=i; j++){

printf( "%d %s %s\n", songlist[j].id, songlist[j].title, songlist[j].singer );

}

printf("\n");

}

getch();

return 0;

}

或者是

#include "dos.h"

#include "stdio.h"

#define time 10000 /*预定义节拍长度 time(一拍)*/

#define time0 5000 /*预定义半节拍长度 time0*/

#define time1 15000 /*预定义1.5节拍长度 time1*/

#define time2 20000 /*预定义2节拍长度 time2*/

#define time3 30000 /*预定义3节拍长度 time3*/

#define _a 262 /*预定义低音音符1~7*/

#define _b 294

#define _c 330

#define _d 349

#define _e 392

#define _f 440

#define _g 494

#define a 523/*预定义中音音符1~7*/

#define b 587

#define c 659

#define d 698

#define e 784

#define f 880

#define g 988

#define a_ 1047/*预定义高音音符1~7*/

#define b_ 1175

#define c_ 1319

#define d_ 1397

#define e_ 2568

#define f_ 1760

#define g_ 1976

main()

{

int i=0,j;

unsigned milliseconds;

int music[1000]={

f,time,

f,time,

g,time0,

f,time,

f,time,

g,time0,

f,time,

g,time,

a_,time,

g,time,

f,time,

g,time0,

f,time0,

d,time,

c,time,

a,time,

c,time,

d,time,

c,time,

c,time0,

a,time0,

_g,time,

f,time,

g,time,

a_,time,

g,time,

f,time,

g,time0,

f,time0,

d,time1,

c,time,

a,time,

c,time,

d,time,

c,time,

c,time0,

a,time0,

g,time1,

f,time,

f,time,

g,time1,

f,time,

f,time,

g,time1,

c,time,

d,time,

g,time0,

f,time0,

c,time,

d,time,

g,time0,

f,time0,

d,time0,

d,time,

c,time3

}

;

while(music[i]!='\0')

{

if(music[i]=494) /*判断不是低音*/

{

milliseconds=music[i+1];

for(j=1;j8;j++)

{

switch(j)

{

case 1: sound(a);

delay(milliseconds);break;

case 2: sound(b);

delay(milliseconds);break;

case 3: sound(c);

delay(milliseconds);break;

case 4: sound(d);

delay(milliseconds);break;

case 5: sound(e);

delay(milliseconds);break;

case 6: sound(f);delay(milliseconds);break;

case 7: sound(g);

delay(milliseconds);break;

}

nosound();

}

}

if(music[i]494music[i]988) /*判断不是中音*/

{

milliseconds=music[i+1];

for(j=1;j8;j++)

{

switch(j)

{

case 1: sound(_a);

delay(milliseconds);break;

case 2: sound(_b);

delay(milliseconds);break;

case 3: sound(_c);

delay(milliseconds);break;

case 4: sound(_d);

delay(milliseconds);break;

case 5: sound(_e);

delay(milliseconds);break;

case 6: sound(_f);

delay(milliseconds);break;

case 7: sound(_g);

delay(milliseconds);break;

}

nosound();

}

}

if(music[i]988) /*判断不是高音*/

{

milliseconds=music[i+1];

for(j=1;j8;j++)

{

switch(j)

{

case 1: sound(a_);

delay(milliseconds);break;

case 2: sound(b_);

delay(milliseconds);break;

case 3: sound(c_);

delay(milliseconds);break;

case 4: sound(d_);

delay(milliseconds);break;

case 5: sound(e_);

delay(milliseconds);break;

case 6: sound(f_);

delay(milliseconds);break;

case 7: sound(g_);

delay(milliseconds);break;

}

nosound();

}

}

nosound();

i=i+2;

}

}

如何用c语言编写歌曲

我们知道,音乐是音高和音长的有序组合,设计微机音乐最重要的就是如何定义音高和音长,以及如何让扬声器发出指定的音符。下面给出音符与频率的关系表。C语言提供的三个函数sound( )、nosound( )和clock( )可以很方便地解决上述的问题。sound( )函数可以用指定频率打开PC机扬声器直到用nosound( )函数来关闭它; clock( )函数正好用来控制发声时间,而且它不受PC机主频高低的影响。下面这段程序可使微机发出c调1的声音。

音符与频率关系表

音符 c d e f g a b

1 2 3 4 5 6 7

频率 262 294 330 349 392 440 494

音符 c d e f g a b

1 2 3 4 5 6 7

频率 523 587 659 698 784 880 988

音符 c d e f g a b

1 2 3 4 5 6 7

频率 1047 1175 1319 1397 2568 1760 1976

#includestdio.h

#includedos.h

void pause(int);

void sound1(int,int);

void main(void)

{

int i,freq,speed=5;

int time=4*speed;

char *qm="iddgwwwQQgfff dddfghhhggg ddgwwwqqgfff\

ddffhjqqqqq wpggjhgddgqq hhqwwqjjjggg\

ddgwwwqqqgfff ddffhjqqqqqq";/*定义歌曲*/

while (*qm++ !='\0'){

i=1;

switch(*qm){

case 'k':

time=1*speed; i=0;

break;

case 'i':

time=6*speed; i=0;

break;

case 'o':

time=10*speed; i=0;

break;

case 'p':

pause(time); i=0;

break;

case 'a':

freq=523;

break;

case 's':

freq=587;

break;

case 'd':

freq=659;

break;

case 'f':

freq=698;

break;

case 'g':

freq=784;

break;

case 'h':

freq=880;

break;

case 'j':

freq=988;

break;

case 'z':

freq=262;

break;

case 'X':

freq=294;

break;

case 'c':

freq=330;

break;

case 'v':

freq=349;

break;

case 'b':

freq=392;

break;

case 'n':

freq=440;

break;

case 'm':

freq=494;

break;

case 'q':

freq=1047;

break;

case 'w':

freq=1175;

break;

case 'e':

freq=1319;

break;

case 'r':

freq=1397;

break;

case 't':

freq=2568;

break;

case 'y':

freq=1760;

break;

case 'u':

freq=1976;

break;

default:

i=0;

break;

}

if(i)

sound1(freq,time);

}

}

void sound1(int freq,int time) /*freq为频率,time为持续时间*/

{

union{

long divisor;

unsigned char c[2];

}count;

unsigned char ch;

count.divisor=1193280/freq; /* 1193280 是系统时钟速率*/

outp(67,182);

outp(66,count.c[0]);

outp(66,count.c[1]);

ch=inp(97);

outp(97,ch|3);

pause(time);

outp(97,ch);

}

void pause(int time)

{

int t1,t2;

union REGS in,out;

in.h.ah=0X2c;

int86(0X21,in,out); /* 取当前时间*/

t1=t2=100*out.h.dh+out.h.dl; /*out.h.dh 为秒值,out.h.dl 为1/100 秒值*/

while(t2-t1time)

{

int86(0X21,in,out);

t2=100*out.h.dh+out.h.dl;

if (t2t1)t2+=6000; /* 增加一分钟*/

}

}

c语言汇编歌曲,C语言歌曲

2023-01-04
c语言程序歌曲,c语言演奏音乐

2022-11-29
c语言拍手歌,语言游戏拍手歌

2023-01-04
c语言爱我中华,c语言的我爱你怎么说

2022-11-28
c语言音乐编写,c语言音乐函数

2022-11-28
c语言歌星程序,c语言生日歌程序

2023-01-03
C++ Nan - 万能的编程语言

2023-05-19
曲线函数c语言,曲线函数c语言是什么

2022-11-27
韩国歌曲cjsong(韩国歌曲老歌100首)

本文目录一览: 1、顺子的《Cj》 歌词 2、求《请回答1988》里所有的韩语老歌曲名字! 3、韩剧我的女孩的主题歌的名字是什么 4、韩版花样男子里面的歌曲都是哪些? 顺子的《Cj》 歌词 歌曲名:C

2023-12-08
音乐c语言试题,c语言期末考试选择题

2022-12-01
c语言舞蹈教学,c语言的视频教学

2023-01-05
音乐c语言真题,头歌c语言实训题目及答案

2023-01-05
头歌educoder答案c语言,头歌educoder答案c语

2022-12-02
c语言汇编分析,汇编语言 C语言

2023-01-07
汇编中的c语言,c语言与汇编

2022-11-26
cghddhfdjjsdsk歌曲,mp3dj歌曲

本文目录一览:...

2023-12-08
c语言桌面找图,c语言搜图

2023-01-04
c语言转换成语,用c语言进行进制转换

本文目录一览: 1、c语言怎么载入成语库 2、关于c语言成语的疑问 3、跪求c语言小游戏“成语接龙”代码,急急急!谢谢 4、C++设计猜成语程序 5、怎么用c语言选择结构输出一到七开头的成语? c语言

2023-12-08
课程c语言,c语言程序课程

2022-11-28
汇编c语言函数,汇编 C语言

2022-12-02