51单片机蜂鸣器两只老虎代码
时间: 2023-07-23 15:06:08 浏览: 228
以下是一个在51单片机上使用蜂鸣器演奏《两只老虎》儿歌的代码示例:
```c
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit beep=P1^5;
// 延时函数
void Delay10ms(uint c)
{
uchar a,b;
for(; c>0; c--)
for(b=2; b>0; b--)
for(a=112; a>0; a--);
}
// 发声函数
void Beep(uint f, uint t)
{
uint i;
for(i=0; i<t; i++)
{
beep = 1;
Delay10ms(f);
beep = 0;
Delay10ms(f);
}
}
void main()
{
uchar i;
uint music[7] = {523, 523, 587, 587, 659, 659, 0}; // 音符频率表
uchar timing[7] = {1, 1, 1, 1, 1, 1, 2}; // 音符时长表
while(1)
{
// 播放两只老虎
for(i=0; i<7; i++)
{
Beep(music[i], timing[i]*200);
}
Delay10ms(1000);
}
}
```
这个代码示例定义了一个 `Beep` 函数,用来控制蜂鸣器发声。在主函数中,我们定义了一个音符频率表和一个音符时长表,然后循环播放这些音符,演奏出《两只老虎》儿歌的旋律。你可以根据自己的需要修改音符频率表和音符时长表来演奏不同的曲子。