51单片机蜂鸣器程序
时间: 2024-09-17 14:02:02 浏览: 51
51单片机蜂鸣器程序通常用于控制单片机通过IO口发送特定信号驱动蜂鸣器发声。以下是一个简单的AT89S51(如8051系列)控制蜂鸣器的基本示例,假设我们使用定时器T1配合中断来实现:
```c
#include <reg52.h> // 使用8051汇编指令集
void delay(unsigned int n) { // 滤波延时函数
unsigned char i;
for (i = n; i != 0; i--)
;
}
void init_buzzer(void) {
TMOD = 0x01; // 设置T1工作模式为模式1(方波)
TH1 = 0xFD; // 计数初值,使得定时器达到最大频率的一半
TL1 = 0xFD;
EA = 1; // 开启全局中断
ET1 = 1; // 启动T1计数
}
void beep(int duration) {
TR1 = 1; // 启动T1输出高电平
delay(duration * 2); // 高电平持续时间
TR1 = 0; // 输出低电平
delay(duration * 2); // 低电平持续时间
TR1 = 1; // 再次启动周期
}
int main(void) {
init_buzzer(); // 初始化蜂鸣器
while (1) {
beep(100); // 发出100毫秒长的声音,调整这个数字可以改变音调
}
}
阅读全文