标题: 51单片机蜂鸣器仿真图+程序代码 [打印本页]

作者: a940676988    时间: 2019-12-9 16:24
标题: 51单片机蜂鸣器仿真图+程序代码
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。三极管的作用为驱动,通过三极管放大驱动电流,从而可以让蜂鸣器发出声音。

有源蜂鸣器和无源蜂鸣器的区别:
这里的“源”不是指电源。而是指震荡源。 也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。 而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。 有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。 无源蜂鸣器的优点是:1。便宜,2。声音频率可控,可以做出“多来米发索拉西”的效果。3。在一些特例中,可以和LED复用一个控制口 有源蜂鸣器的优点是:程序控制方便 。

单片机源程序如下:
  1. #include<reg51.h>
  2. sbit sound=P1^7;
  3. #define f1(a) (65536-a)/256
  4. #define f2(a) (65536-a)%256
  5. unsigned int i=500;
  6. unsigned int j=0;

  7. void main(void)
  8. {
  9.    TMOD=0x10;
  10.    TH1=f1(i);
  11.    TL1=f2(i);
  12.    EA=1;
  13.    ET1=1;
  14.    TR1=1;
  15.    while(1)
  16.    {
  17.      i=460;
  18.          while(j<20000);
  19.          j=0;
  20.          i=360;
  21.          while(j<20000);
  22.          j=0;
  23.          }
  24.          }
  25.          void TT1(void) interrupt 3 using 0
  26.          {
  27.             TR1=0;
  28.                 sound=~sound;
  29.                 TH1=f1(i);
  30.                 TL1=f2(i);
  31.                 j++;
  32.                 TR1=1;
  33.                 }
复制代码

所有资料51hei提供下载:
蜂鸣器.rar (11.04 KB, 下载次数: 81)



作者: XU5276    时间: 2020-6-19 16:40
这个可以直接接在P1.7上吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1