无源蜂鸣器——小白的单片机笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无源蜂鸣器——小白的单片机笔记相关的知识,希望对你有一定的参考价值。
蜂鸣器分类:有源蜂鸣器,无源蜂鸣器。
这里的“源”不是指电源。而是指震荡源。 也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。
而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须用2K~5K的方波去驱动它。
有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。
无源蜂鸣器的优点是:1.便宜2.声音频率可控,可以做出“多来米发索拉西”的效果。3.在一些特例中,可以和LED复用一个控制口
有源蜂鸣器的优点是:程序控制方便 。
**************************************************************************************************************
以下程序针对无源蜂鸣器设计:因此需要差生连续的交流信号才能够使蜂鸣器发声。
#include"reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit beep=P1^5;
void delay(u16 i )
{
while (i--);
}
void main()
{
u16 i=0;
for(;i<8;i++) //想用for循环实现响几声,但不能够实现蜂鸣器通过连续的振动才能够实现发声,此处的循环条件i<8,中的数字不能控制发声的数量,仅能够控制发声的长短
{
beep=~beep;
delay(100);
}
delay(50000);
}
****************************************************************
以下程序可以控制发声数量:
#include"reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit beep=P1^5;//
void delay(u16 i )
{
while (i--);
}
void main()
{
u16 i=0;
u16 k=0;
for (;k<10;k++) //大循环,控制发声的次数,再次发声数量为10
//另,for循环中的条件变量i对于此处不需要重复循环的嵌套循环中的大循环来说没有必要,但是小循环中的条件变量必须要加,保证每个小循环完成后,条件变量能够重置,保证下一个小循环能够正常进行
{
for(i=0;i<100;i++) //小循环,控制发声的长短,与循环条件i<100,有关 此处为条件变量赋值是必要的,不可以省略!!
{
beep=~beep;
delay(100); //小循环内的延时程序控制蜂鸣器的发声频率
}
delay(10000);//大循环内的延时程序,保证次发声有人能够合理观察的间隔
}
while(1);//大循环外的终止程序,再次仅仅是为了记录发声的数量,保证该循环不会持续下去
}
以上是关于无源蜂鸣器——小白的单片机笔记的主要内容,如果未能解决你的问题,请参考以下文章