at89c52蜂鸣器播放歌曲
时间: 2023-12-23 08:03:44 浏览: 40
AT89C52单片机可以使用定时器和IO口控制蜂鸣器播放歌曲。以下是一个简单的示例程序,它可以使用AT89C52单片机和一个蜂鸣器播放《小星星》的歌曲。
```
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code song[] = {
0x09, 0x09, 0x0a, 0x0a, 0x0c, 0x0c, 0x0a, 0x09,
0x07, 0x07, 0x06, 0x06, 0x05, 0x05, 0x04, 0x00,
0x07, 0x07, 0x06, 0x06, 0x05, 0x05, 0x04, 0x00,
0x04, 0x04, 0x02, 0x02, 0x0a, 0x09, 0x07, 0x07,
0x04, 0x04, 0x02, 0x02, 0x0a, 0x09, 0x07, 0x07,
0x09, 0x09, 0x07, 0x07, 0x05, 0x05, 0x04, 0x04,
0x02, 0x02, 0x0a, 0x09, 0x07, 0x07, 0x04, 0x04,
0x02, 0x02, 0x0a, 0x09, 0x07, 0x07, 0x09, 0x09,
0x07, 0x07, 0x05, 0x05, 0x04, 0x04, 0x02, 0x02,
0x04, 0x04, 0x05, 0x05, 0x07, 0x07, 0x09, 0x09,
0x09, 0x09, 0x07, 0x07, 0x05, 0x05, 0x04, 0x04,
0x02, 0x02, 0x04, 0x04, 0x05, 0x05, 0x07, 0x07,
0x05, 0x05, 0x04, 0x04, 0x02, 0x02, 0x04, 0x04,
0x05, 0x05, 0x07, 0x07, 0x09, 0x09, 0x07, 0x07,
0x05, 0x05, 0x04, 0x04, 0x02, 0x02, 0x00
};
void delay(uint i) {
while(i--);
}
void main() {
uchar i, j;
while(1) {
for(i=0; i<sizeof(song); i++) {
for(j=0; j<50; j++) { // 控制蜂鸣器发声的时间
P1 = song[i];
delay(100);
P1 = 0x00;
delay(100);
}
}
}
}
```
在这个程序中,我们定义了一个 `song` 数组来存储歌曲的音符。每个音符都被转换为对应的数字,并存储在 `song` 数组中。程序使用一个循环来遍历整个 `song` 数组,并在每个音符处控制蜂鸣器发声。
在程序的主循环中,我们使用两个 `for` 循环。外层循环遍历整个 `song` 数组,内层循环控制蜂鸣器发声的时间。在每个音符处,程序将对应的数字写入 P1 口,控制蜂鸣器发声。然后,程序将 P1 口清零,等待一段时间后继续播放下一个音符。
当程序运行时,蜂鸣器将发出《小星星》的歌曲。如果需要播放其他歌曲,只需要修改 `song` 数组中的音符即可。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)