新聞中心

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

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

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

/* 名稱:播放音樂

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

*/

#includereg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit BEEP=P3^7;

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

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

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

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 為拍子長度

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語言相關(guān)文章:c語言教程


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


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


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



上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉