51单片机控制蜂鸣器放歌keil代码
时间: 2024-05-20 13:09:44 浏览: 15
以下是51单片机控制蜂鸣器放歌的Keil代码:
```c
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit beep = P1^5;
// 定义音调数组
uchar code music[] = {
0x3c, 0x3c, 0x42, 0x42, 0x41, 0x41, 0x42, 0x3c,
0x42, 0x42, 0x41, 0x41, 0x42, 0x42, 0x3c, 0x3c,
0x42, 0x42, 0x44, 0x44, 0x43, 0x43, 0x42, 0x3c,
0x41, 0x41, 0x42, 0x42, 0x3c, 0x3c, 0x42, 0x42,
0x41, 0x41, 0x42, 0x42, 0x3c, 0x3c, 0x44, 0x44,
0x43, 0x43, 0x42, 0x3c, 0x41, 0x41, 0x42, 0x42,
0x3c, 0x3c, 0x42, 0x42, 0x41, 0x41, 0x42, 0x42,
0x3c, 0x3c
};
// 定义节拍数组
uchar code beat[] = {
20,20,30,30,40,40,50,20,
30,30,40,40,50,50,20,20,
30,30,40,40,50,50,20,20,
40,40,50,50,20,20,30,30,
40,40,50,50,20,20,30,30,
40,40,50,50
};
void delay(uint t)
{
uint i,j;
for(i=0;i<t;i++)
for(j=0;j<120;j++);
}
void main()
{
uchar i;
while(1)
{
for(i=0;i<sizeof(music);i++)
{
TH1 = (65536 - music[i] * 100) / 256; // 加载定时器重载值高8位
TL1 = (65536 - music[i] * 100) % 256; // 加载定时器重载值低8位
TR1 = 1; // 启动定时器
delay(beat[i]); // 延时节拍时间
TR1 = 0; // 关闭定时器
beep = ~beep; // 蜂鸣器取反输出
}
delay(500); // 每播放一遍乐曲间隔500ms
}
}
```
该代码实现了一个简单的音乐播放器,使用定时器和蜂鸣器播放预定义好的音乐。在代码中,通过定义音调数组和节拍数组来定义要播放的乐曲,然后使用定时器来控制蜂鸣器发声,并使用延时函数来控制乐曲的节拍。在主函数中,通过循环不断地播放乐曲。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)