单片机控制蜂鸣器的工作原理
续流二极管 D9 电感元件在电流发生变化时 都会产生反向电动势 来尽力维持电流不变
三极管
- 开关
- 电流放大
输出 0 导通
输出 1 截止
有源蜂鸣器实现容易
无源蜂鸣器
1、周期的方波信号(把蜂鸣器的启停放在定时器里)定时器开始计时 到时间开,然后再关
2、延时程序
3、变量计数
Timer = 65536 - (11059200/12)/(pinlv*2)
- 发出对应音符的声音
(2)、顺序发出这21个声音
(3)、每个声音保持的时间
普中的51采用集成电路驱动
由于是无源蜂鸣器
所以需要一定的方波信号才能使用
可以采用T0计时器
#include <REGX52.H>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar num=10;
uint timer;
uint pinlv = 1200;
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void timerinit0()
{
TMOD = 0x01;
TH0 =timer/256;
TL0 =timer%256;
EA=1;
ET0=1;
}
void main()
{
timer = 65536 - (11059200/12)/(pinlv * 2);
timerinit0();
if(P3_1 == 0)
{
while(P3_1==0);
for(num =10 ;num > 0;num--)
{
TR0 = ~TR0;
Delay500ms();
}
}
}
void timer0() interrupt 1
{
TH0 =timer/256;
TL0 =timer%256;
P2_5 = ~P2_5;
}