200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 祝你生日快乐21音符简谱c语言代码 C语言程序设计:生日快乐歌.doc

祝你生日快乐21音符简谱c语言代码 C语言程序设计:生日快乐歌.doc

时间:2020-07-30 03:12:42

相关推荐

祝你生日快乐21音符简谱c语言代码 C语言程序设计:生日快乐歌.doc

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit BEEP=P1^5;

//生日快乐歌的音符频率表,不同频率由不同的延时来决定

uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,

212,212,106,126,159,169,190,119,119,126,159,142,159,0};

//生日快乐歌节拍表,节拍决定每个音符的演奏长短

uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,

9,3,12,12,12,12,12,9,3,12,12,12,24,0};

void delayms(uint xms)/ / 延时程序

{

uint i,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--);

}

void xg0()// 效果 0

{

uint a,b;

a=0xee;

delayms(1000);//延时 1 秒

for(b=4;b>0;b--)// 点亮次数

{ P0=a;//灯 1 和 5 亮

delayms(1000);

a=_crol_(a,1);// 循环左移 1 位

}

}

void xg1()// 效果 1

{

uint a,b;

a=0x77;

delayms(1000);

for(b=4;b>0;b--)

{ P0=a;//灯 4 和 8 亮

delayms(1000);

a=_cror_(a,1);// 循环右移 1 位

}

}

void xg2()// 效果 2

{

P0=0xe7;//灯 4 与 5 亮

delayms(1000);

P0=0xdb;// 灯 3 和 6 亮

delayms(1000);

P0=0xbd;// 灯 2 和 7 亮

delayms(1000);

P0=0x7e;//灯 1 和 8 亮

delayms(1000);

}

void xg3()// 效果 3

{

P0=0x7e;//灯 1 和 8 亮

delayms(1000);

P0=0xbd;// 灯 2 和 7 亮

delayms(1000);

P0=0xdb;// 灯 3 和 6 亮

delayms(1000);

P0=0xe7;//灯 4 与 5 亮

delayms(1000);

}

//播放函数

void PlayMusic()

{

uint i=0,j,k;

while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)

{ // 播放各个音符, SONG_LONG 为拍子长度

for(j=0;j

{

BEEP=~BEEP;

//SONG_TONE 延时表决定了每个音符的频率

for(k=0;k

}

delayms(10);

i++;

}

}

void main()

{

BEEP=0;

while(1)

{

PlayMusic(); // 播放生日快乐

BEEP=1;

xg0();

P0=0xff;

delayms(1000);

xg1();

P0=0xff;

delayms(1000);

xg2();

P0=0xff;

delayms(1000);

xg3();

P0=0xff;

delayms(1000);

}

}

P1.5 口

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。