在keil根据51单片机中编写一个蜂鸣器11种变频的代码
时间: 2024-03-19 11:43:57 浏览: 102
下面是一个简单的基于 51 单片机的蜂鸣器变频代码,可以实现11种不同频率的声音:
```c
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code fre[] = {0x7F, 0x7E, 0x7D, 0x7C, 0x7B, 0x7A, 0x79, 0x78, 0x77, 0x76, 0x75}; // 定义频率数组
void delay(uint t) // 定义延时函数
{
uint i, j;
for (i = t; i > 0; i--)
for (j = 110; j > 0; j--);
}
void main()
{
uchar i;
while (1)
{
for (i = 0; i < 11; i++) // 循环输出不同频率的声音
{
P2 = fre[i];
delay(500);
P2 = 0x00;
delay(500);
}
}
}
```
代码中使用了一个名为 `fre` 的数组来存储11种不同频率的数值,每个数值都是一个十六进制数。在 `main` 函数中,通过循环输出不同频率的声音,每次输出的时间间隔为500毫秒。
注意:在使用蜂鸣器时,需要将蜂鸣器的正极连接到单片机的一个IO口上,负极连接到GND上,否则无法发出声音。此外,由于蜂鸣器的工作电压一般为5V,因此需要注意单片机的输出电压是否符合要求,否则需要使用适配器或者稳压电路来降低电压。
阅读全文