51单片机蜂鸣器播放多个音乐
时间: 2023-08-04 17:09:34 浏览: 138
要在51单片机蜂鸣器上播放多个音乐,可以通过编写不同的音乐播放函数来实现。例如,可以编写一个播放《小星星》的函数、一个播放《欢乐颂》的函数等等。下面是一个简单的示例程序,可以在两个不同的函数中分别播放《小星星》和《欢乐颂》:
```
#include<reg52.h>
void delay(unsigned int);
void play_star()
{
P1 = 0xfe; // 发出声音
delay(227); // 发出 Do 音符,持续 227ms
P1 = 0xff; // 停止声音
delay(113); // 停顿 113ms
// 省略后面的代码,播放完整首歌曲
}
void play_song()
{
P1 = 0xfe; // 发出声音
delay(455); // 发出 Do 音符,持续 455ms
P1 = 0xff; // 停止声音
delay(227); // 停顿 227ms
// 省略后面的代码,播放完整首歌曲
}
void main()
{
while(1)
{
play_star(); // 播放《小星星》
delay(1000); // 停顿 1s
play_song(); // 播放《欢乐颂》
delay(1000); // 停顿 1s
}
}
void delay(unsigned int i)
{
unsigned int j,k;
for(j=i;j>0;j--)
{
for(k=121;k>0;k--);
}
}
```
在程序中,play_star 和 play_song 分别是播放《小星星》和《欢乐颂》的函数,可以在主函数中轮流调用这两个函数来播放不同的音乐。在每个函数中,可以根据需要编写不同的代码来实现不同的音乐效果。注意在每个函数结束后,需要加上适当的停顿时间,以免两个音乐之间产生混叠的效果。
阅读全文