npn驱动有源蜂鸣器电路at89c51仿真代码
时间: 2024-11-14 07:13:25 浏览: 21
npn三极管9013驱动蜂鸣器接线图
在AT89C51单片机控制下,使用NPN型晶体管驱动有源蜂鸣器的电路通常涉及电源、晶振、复位、输入信号以及晶体管作为开关。这里是一个简单的示例,假设蜂鸣器需要5V供电,晶体管选用BC547:
```cpp
#include <reg52.h>
sbit buzzPin = P1^0; // 蜂鸣器连接到P1.0口,输入高电平会启动蜂鸣器
sbit switchPin = P1^1; // 开关连接到P1.1口
void delay(unsigned int time) {
while(time--) ;
}
int main(void) {
TRISB = 0b00000111; // P1.0和P1.1设置为输出
ET0 = 1; // 启动定时器0,用于延时
EA = 1; // 全局中断使能
while(1) {
if(switchPin == 0) { // 如果开关关闭
buzzPin = 0; // 关闭蜂鸣器
} else { // 开关打开时
TRISB &= ~(1 << buzzPin); // 将buzzPin设为输入
while(buzzPin == 1); // 等待蜂鸣器释放
TRISB |= (1 << buzzPin); // 将buzzPin再设为输出,准备触发蜂鸣器
P1 = 0xFF; // 设置P1为全低,通过BC547驱动蜂鸣器
delay(100); // 延迟一段时间
P1 = 0x00; // 清除P1,蜂鸣器停止
}
delay(500); // 每次循环间隔500毫秒
}
}
阅读全文