日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

51单片机学习笔记4 -- 蜂鸣器控制

發布時間:2023/12/9 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51单片机学习笔记4 -- 蜂鸣器控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

蜂鳴器控制

      • 1.蜂鳴器簡介
        • 1.分類
        • 2.有源蜂鳴器和無源蜂鳴器
        • 3.區分有源蜂鳴器和無源蜂鳴器
        • 4.蜂鳴器驅動電路
      • 2.電路圖繪制
      • 3.蜂鳴器控制
      • 4.程序補充

1.蜂鳴器簡介

蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作發聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”(舊標準用“FM”、“LB”、“JD”等)表示

1.分類

  • 按其驅動方式的原理分,可分為:有源蜂鳴器(內含驅動線路,也叫自激式蜂鳴器)和無源蜂鳴器(外部驅動,也叫他激式蜂鳴器);
  • 按構造方式的不同,可分為:電磁式蜂鳴器和壓電式蜂鳴器;
  • 按封裝的不同,可分為:DIP BUZZER(插針蜂鳴器)和SMD BUZZER(貼片式蜂鳴器);
  • 按電流的不同,可分為:直流蜂鳴器和交流蜂鳴器,其中,以直流最為常見壓電式蜂鳴器,用的是壓電材料,即當受到外力導致壓電材料發生形變時壓電材料會產生電荷。同樣,當通電時壓電材料會發生形變。

2.有源蜂鳴器和無源蜂鳴器

下面有綠色電路板的一種是無源蜂鳴器,沒有電路板而用黑膠封閉的一種是有源蜂鳴器

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

3.區分有源蜂鳴器和無源蜂鳴器

判斷有源蜂鳴器和無源蜂鳴器,可以用萬用表電阻檔Rxl檔測試:用黑表筆接蜂鳴器"+"引腳,紅表筆在另一引腳上來回碰觸,如果觸發出咔、咔聲的且電阻只有8Ω(或16Ω)的是無源蜂鳴器,如果能發出持續聲音的,且電阻在幾百歐以上的,是有源蜂鳴器

4.蜂鳴器驅動電路

由于蜂鳴器的工作電流比較大,以單片機的I/O 口是無法直接驅動的,所以要利用放大電路來驅動,一般使用三極管來放大電流

2.電路圖繪制

先看看蜂鳴器的原理圖,單片機的蜂鳴器控制引腳串聯1k電阻經三極管連接到蜂鳴器

在Protues中找出來三極管和蜂鳴器,三極管直接搜PNP即可,不用找詳細型號,需要做水平鏡像翻轉,接地與按鍵并到一起,其他的參照原理圖接

3.蜂鳴器控制

51開發板上搭載的蜂鳴器是有源蜂鳴器,只需要高低電平來控制即可,也就是和LED的控制方式一樣,參考程序如下

#include <reg52.h>#define ON 0 #define OFF 1sbit BUZZER = P0^7;void delay_ms(unsigned int nms) {unsigned int i,j;for(i=nms;i>0;i--)for(j=113;j>0;j--); }void main() { BUZZER = ON;delay_ms(200);BUZZER = OFF;delay_ms(200);while(1); }

蜂鳴器在protues上不能做仿真,也就是不能看到蜂鳴器是否有響應控制,只能找開發板進行蜂鳴器測試

4.程序補充

學習了蜂鳴器控制后,可以結合前面的LED和按鍵,如下面代碼可做參考

#include <reg52.h> #include <intrins.h>#define ON 0 #define OFF 1sbit KEY1 = P3^3; sbit KEY2 = P3^4; sbit KEY3 = P3^6; sbit KEY4 = P3^7;sbit BUZZER = P0^7;void delay_ms(unsigned int nms) {unsigned int i,j;for(i=nms;i>0;i--)for(j=113;j>0;j--); }void main() { unsigned int i;P1 = 0xff;while(1){if(KEY1 == ON){delay_ms(10);if(KEY1 == ON){BUZZER = ON;}while(KEY1 == ON);}if(KEY2 == ON){delay_ms(10);if(KEY2 == ON){BUZZER = OFF;}while(KEY2 == ON);}if(KEY3 == ON){delay_ms(10);if(KEY3 == ON){P1 = 0xfe;for(i=8;i>0;i--){delay_ms(150);P1 = _crol_(P1,1);}}while(KEY3 == ON);}if(KEY4 == ON){delay_ms(10);if(KEY4 == ON){P1 = 0x7f;for(i=8;i>0;i--){delay_ms(150);P1 = _crol_(P1,-1);}}while(KEY4 == ON);}} }

總結

以上是生活随笔為你收集整理的51单片机学习笔记4 -- 蜂鸣器控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。