一、蜂鸣器原理图与工作原理
有源蜂鸣器与无源蜂鸣器的区别
有源蜂鸣器内部集成振荡电路,通电即发声,频率固定;无源蜂鸣器需外部驱动信号控制频率,可通过编程生成不同音调。蓝桥杯单片机开发板采用无源蜂鸣器,需通过脉冲信号(PWM)驱动。
无源蜂鸣器驱动原理
无源蜂鸣器通过单片机引脚输出高低电平形成方波信号,改变方波频率可调整音调。典型连接方式为蜂鸣器正极接限流电阻与电源,负极接单片机IO口,通过三极管或直接驱动。
- 涉及端口:P06口控制蜂鸣器,P25,P26,P27控制锁存器
- P25,P26,P27分别为101时,138译码器Y5输出为1,Y5C输出为0,蜂鸣器对应的锁存器打开,此时可以控制蜂鸣器,给一定频率的高低电平信号即可
二、蜂鸣器驱动代码实现
#include "STC15F2K60S2.H" #include "intrins.h" sbit buzzer = P0^6; void delay(unsigned int ms) { // 简单的延时函数 unsigned int i, j; for (i = ms; i > 0; i--) for (j = 110; j > 0; j--); } void main() { while (1) { P2 = (P2 & 0x1F) | 0xA0; // 选通 Y5 (101xxxxx) buzzer = ~buzzer; // 切换蜂鸣器端口状态,产生振动 P2 &= 0x1F; //关锁存器 delay(1); // 延时产生声音频率 }