AT89C52控制蜂鸣器电路图详解

电子常识

2585人已加入

描述

  蜂鸣器的介绍

  1.蜂鸣器的作用 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

  2.蜂鸣器的分类 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

  3.蜂鸣器的电路图形符号 蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。

  蜂鸣器的分类:

  蜂鸣器根据结构不同分为压电式蜂鸣器和电磁式蜂鸣器;无论是压电式蜂鸣器还是电磁式蜂鸣器,都有有源和无源的区分,其中,“有源”是指蜂鸣器本身内含驱动了,直接给它一定的电压就可以响;“无源”是需要靠外部的驱动才可以响。

  蜂鸣器的结构原理:

  压电式蜂鸣器:以压电陶瓷的压电效应,来带动金属片的振动而发声,主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。

  压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。

  压电式蜂鸣器需要比较高的电压才能有足够的音压,一般建议为9V以上。压电的有些规格,可以达到120dB以上,较大尺寸的也很容易达到100dB

  电磁式蜂鸣器:用电磁的原理,通电时将金属振动膜吸下,不通电时依振动膜的弹力弹回,由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

蜂鸣器

  蜂鸣器电路图

  AT89C52简介:

  AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。其主要工作特性是:

  片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次;

  片内数据存储器内含256字节的RAM; 具有32根可编程I/O口线; 具有3个可编程定时器;

  中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;

  串行口是具有一个全双工的可编程串行通信口; 具有一个数据指针DPTR;

  低功耗工作模式有空闲模式和掉电模式; 具有可编程的3级程序锁定位;

  AT89C52工作电源电压为5(1+0.2)V,且典型值为5V; AT89C52最高工作频率为24MHz,在这里我们用的是11.0592MHz。 AT89C52图如下:

蜂鸣器

      AT89C52控制蜂鸣器电路图

  蜂鸣器电路由一个220欧的电阻,三极管8550,及蜂鸣器组成,如图10所示。通过控制三极管的导通和截止来实现蜂鸣器的响与不响。

蜂鸣器

蜂鸣器  
流程图

  单片机控制有源蜂鸣器的鸣响和关闭

  从下图看到,电路使用了单片机的I/0口P3.4来控制蜂鸣器。但是,图中并没有用P3.4直接控制蜂鸣器,而是通过三极管8550间接控制。这是因为单片机的I/0口能够流进流出的电流有限,有的蜂鸣器鸣响需要比较大的电流,单片机的I/0无法满足。而三极管8550最大可以提供1A以上的电流,足以驱动蜂鸣器,所以使用P3.4控制三极管8550的导通和截止,达到控制蜂鸣器的目的。先看本电路的控制原理:

  向P3.4写出逻辑“1”时,P3.4输出+5V,三极管8550的基极电流为0,三极管处于截止状态,电源+5V不能加到蜂鸣器的正极,蜂鸣器不鸣响;向P3.4写出逻辑“0”时,P3.4输出OV,三极管8550的发射极和基极之间产生电流,图1中限流电阻R1取合适的值,可以使三极管处于饱和导通状态,电源+5V通过三极管的发射极和集电极加到蜂鸣器的正极,有电流流过蜂鸣器的正极和负极,有源蜂鸣器就开始鸣响。

蜂鸣器

  这样,控制有源蜂鸣器的鸣响变成了向P3.4口写出逻辑“1”或逻辑“0”。下面的程序可以使有源蜂鸣器发出“嘀”、“嘀”的响声:

  #include《reg52.h》

  sbitBuzzer=P3h4;1/【注1】

  //主程序voiDMAin(void){//循环语句,使蜂鸣器间隔0.5秒不断鸣响,停止for(;;){delay()://延时0.5秒,具体程序见上一期BUzzerh=1;//【注2】

  }

  }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分