新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)C語(yǔ)言程序設(shè)計(jì):播放生日快樂(lè)歌

單片機(jī)C語(yǔ)言程序設(shè)計(jì):播放生日快樂(lè)歌

作者: 時(shí)間:2013-06-27 來(lái)源:網(wǎng)絡(luò) 收藏

/* 名稱(chēng):播放音樂(lè)

說(shuō)明:程序運(yùn)行時(shí)播放生日快樂(lè)歌, 未使用定時(shí)器中斷,所有頻率完全用延時(shí)實(shí)現(xiàn)

*/

#includereg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit BEEP=P3^7;

//生日快樂(lè)歌的音符頻率表,不同頻率由不同的延時(shí)來(lái)決定

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};

//生日快樂(lè)歌節(jié)拍表,節(jié)拍決定每個(gè)音符的演奏長(zhǎng)短

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};

//延時(shí)

void DelayMS(uint x)

{

uchar t;

while(x--) for(t=0;t120;t++);

}

//播放函數(shù)

void PlayMusic()

{



uint i=0,j,k;


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

{ //播放各個(gè)音符,SONG_LONG 為拍子長(zhǎng)度

for(j=0;jSONG_LONG[i]*20;j++)

{

BEEP=~BEEP;

//SONG_TONE 延時(shí)表決定了每個(gè)音符的頻率

for(k=0;kSONG_TONE[i]/3;k++);

}

DelayMS(10);

i++;

}

}

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理



上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉