標(biāo)題: 51單片機蜂鳴器仿真圖+程序代碼 [打印本頁]

作者: a940676988    時間: 2019-12-9 16:24
標(biāo)題: 51單片機蜂鳴器仿真圖+程序代碼
蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā)聲的,因此需要一定的電流才能驅(qū)動它,單片機IO引腳輸出的電流較小,單片機輸出的TTL電平基本上驅(qū)動不了蜂鳴器,因此需要增加一個電流放大的電路。三極管的作用為驅(qū)動,通過三極管放大驅(qū)動電流,從而可以讓蜂鳴器發(fā)出聲音。

有源蜂鳴器和無源蜂鳴器的區(qū)別:
這里的“源”不是指電源。而是指震蕩源。 也就是說,有源蜂鳴器內(nèi)部帶震蕩源,所以只要一通電就會叫。 而無源內(nèi)部不帶震蕩源,所以如果用直流信號無法令其鳴叫。必須用2K~5K的方波去驅(qū)動它。 有源蜂鳴器往往比無源的貴,就是因為里面多個震蕩電路。 無源蜂鳴器的優(yōu)點是:1。便宜,2。聲音頻率可控,可以做出“多來米發(fā)索拉西”的效果。3。在一些特例中,可以和LED復(fù)用一個控制口 有源蜂鳴器的優(yōu)點是:程序控制方便 。

單片機源程序如下:
  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.                 }
復(fù)制代碼

所有資料51hei提供下載:
蜂鳴器.rar (11.04 KB, 下載次數(shù): 81)



作者: XU5276    時間: 2020-6-19 16:40
這個可以直接接在P1.7上嗎




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1