Ⅰ 求大神解釋下51單片機蜂鳴器的工作原理 下面是原理圖 急!
工作原理非常簡單:圖示電路為灌電流驅動方式(低電平有效),Q5為開關三極體,平時I/O口P3.6輸出高電平,因Q5為PNP型三極體,故高電平使得基極電位接近Vcc,三極體截止處於集電極迴路的蜂鳴器不響,當P3.6輸出低電平時Q5經由Vcc-Q5eb-R17-P3.6到地迴路獲得基極電流而飽和導通,蜂鳴器得電發出鳴響。
Ⅱ 單片機驅動蜂鳴器的電路分析
你所說的情況並不限制與蜂鳴器的驅動,包括常用的繼電器,指示燈等很多情況(布爾控制器件)都會遇到。
設計這種電路,首先是要考察驅動的對象,看其正常工作的額定電流和電壓。根據電流和電壓參數選擇三極體的,一般要保證三極體的最大Ic要大於等於1.5倍驅動對象的額定電流,Vce要大於等於1.2倍驅動器件的額定電壓,如果是感性負載(如繼電器),還必須在負載上反向並聯吸收二極體,以防止感生電壓過高損壞三極體。
選擇好三極體後,根據三極體手冊給出的最小放大倍數和驅動器件的最大工作電流計算所需要的Ib,根據這個Ib查詢三極體數據手冊,看看是否在三極體的安全工作范圍中,如果超出就必須要重新選擇三極體,如果合用,則計算Rb。
三極體的Vbe基本上可以取一個定值0.7V,查詢單片機手冊在既定工作電壓下IO埠的高電平輸出電壓,用此電壓減去0.7V,再除以之前所得的Ib,得出所需的Rb,這個Rb可能不是標准電阻,取最接近的標准電阻,記住,只能取小值(以保證三極體能處於飽和狀態),驗算實際Ib是不是在三極體的安全范圍之內。
Ⅲ 單片機蜂鳴器問題 請大蝦舉個簡單例子來說明如何實現發出不同音調的音樂
用蜂鳴器產生音樂很詭異。大家都知道,單片機上的蜂鳴器都是加高低電平後,才有聲音的。從理論上來說,聲音是不具有頻率,音色,等。對於單片機來說,用一個IO口的高低電平變化來產生的不同平率帶動蜂鳴器產生各種生音事可以實現的。
這個主要用定時器1CTC模式,啟動iv_TIMER1_COMPA中斷,然後得到一定的歌曲平率參數就可以搞定。我搜到個程序,如下;
/****************************************
* 用M16單片機I/O口生成模擬音樂 *
* 功 能:用I/O口生成模擬音樂 *
* 時鍾頻率:外部7.3728M *
* 設 計:tonghe *
* 修改日期:2007年04月13日 *
* 編譯環境:ICC-AVR6.31 *
* 實驗環境:阿發的M16學習板 *
* 發 聲:無源蜂鳴器接於PD5 *
* 結 果:試驗通過 *
****************************************/
#include <iom16v.h>
#include <macros.h>
#include "wo_ni.h" //包含音樂文件
#include "delay.h" //延時文件
#define uchar unsigned char
#define uint unsigned int
/************************************
* 埠初始化函數 *
************************************/
void port_init(void)
{
PORTD=0x20; //蜂鳴器介面初始化為高
DDRD=0x20; //蜂鳴器介面為輸出
}
/**********************************
*定時器1中斷入口函數:產生方波發聲*
**********************************/
#pragma interrupt_handler timer1:iv_TIMER1_COMPA
void timer1(void) //定時器1中斷入口
{
PORTD^=(1<<5); //產生方波,發聲
}
/***********************************
* 音樂產生函數 *
* 功能:輸出頻率為x的方波,延時y MS*
* 范圍:x:100-20000Hz,0:不發聲 *
* y:0-65536 MS *
***********************************/
void sound(uint i)
{
uint x;
x=i; //取音樂的頻率數據
if(x!=0)
{
x=3686400/x; //數據計算
OCR1A=x; //比較值賦值
TCCR1B = 0x09; //允許比較反轉輸出
}
else
{
TCCR1B = 0x00; //頻率為0,休止符,不發聲
}
}
/******************************
* 主函數 *
******************************/
void main(void)
{
uchar i=0;
port_init();
TCCR1A = 0x40; //將T/C1配置為CTC模式,OC1A取反:產生音樂
TIMSK |= (1<<OCIE1A); //開啟比較匹配中斷
SEI(); //開總中斷
while(1)
{
TCCR1B = 0x09; //開啟比較匹配
while(music_data[i][1]!=0) //等待最後一個音符到來
{
sound(music_data[i][0]); //輸出音符
delay_ms(music_data[i][1]);//節拍延時
TCCR1B = 0x00; //奏完一個音符停止
PORTD|=(1<<5); //關閉蜂鳴,保護喇叭
i++; //准備一下個音符
delay_ms(5); //演奏
}
TCCR1B = 0x00;
PORTD|=(1<<5); //關閉蜂鳴,保護喇叭
delay_ms(4000);
i=0;
}
}
//////頭文件2
flash unsigned int music_data[][2]=
{
{587,800},{698,800},{466,1600},{523,800},{587,800},{349,1600},
{466,800},{523,800},{587,800},{698,800},{523,3200},{587,800},
{698,800},{466,1600},{523,800},{587,800},{392,1600},{523,800},
{349,800},{523,800},{587,800},{466,1600},{784,1600},{698,1600},
{784,1600},{466,1600},{587,800},{392,800},{587,1200},{698,400},
{523,3200},{587,800},{698,800},{466,1600},{523,800},{587,800},
{392,1600},{523,800},{349,800},{523,800},{587,800},{466,3200},
{ 0, 0}
};
#pragma data:data
//頭文件3
/****************************************
* 函數名稱: void delay_us(uchar i) *
* 函數功能:延時函數 *
* 晶振頻率:7.3728MHZ *
****************************************/
void delay_us(unsigned int i)
{
while(i--)
{
NOP();
NOP();
}
}
/****************************************
* 函數名稱: void delay_ms(uint i) *
* 函數功能:延時函數 *
* 晶振頻率:7.3728MHZ *
* 入口參數:i mS *
****************************************/
void delay_ms(unsigned int i)
{
unsigned int a;
for(;i;i--)
{
for(a=1052;a;a--)
{;}
}
}
你自己組合下這些程序,把PD5接蜂鳴器的介面。會很奇妙的。
有疑問聯系
Ⅳ 這是一個利用89C52RC單片機蜂鳴器演奏生日快樂歌。請高手幫我解釋一下:整體思想,再在每一步添加註釋。
#include<reg51.h>
sbit speaker=P1^6;
unsigned char timer0h,timer0l,time;
//生日歌,這三個位元組一組,分別定義:旋律(1234567)、高低音(低音、中音、高音)、節奏(長度)
code unsigned char sszymmh[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,
5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,
5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,
4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4};
// 音階頻率表 高八位,也就是發音對應頻率的高八位
code unsigned char FREQH[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,} ;
// 音階頻率表 低八位,也就是發音對應頻率的低八位
code unsigned char FREQL[]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16, };
void delay(unsigned char t) //延時程序
{
unsigned char t1;
unsigned long t2;
for(t1=0;t1<t;t1++)
{
for(t2=0;t2<8000;t2++)
{ ; } }
TR0=0;
}
void t0int() interrupt 1 //定時器0中斷服務程序,控制聲音打頻率
{ TR0=0;
speaker=!speaker;
TH0=timer0h;
TL0=timer0l;
TR0=1;
}
void song() //啟動演奏當前頻率
{ TH0=timer0h; //當前頻率的高八位
TL0=timer0l; //當前頻率的低八位
TR0=1; //啟動定時器0
delay(time); //延時當前頻率的演奏時間
}
void main(void)
{
unsigned char k,i;
TMOD=1; //置CT0定時工作方式1 EA=1; ET0=1;//IE=0x82 //CPU開中斷,CT0開中斷
while(1)
{
i=0;
while(i<75)
{ //音樂數組長度 ,唱完從頭再來
k=sszymmh[i]+7*sszymmh[i+1]-1; //取當前節奏的頻率地址
timer0h=FREQH[k]; //取當前頻率高八位
timer0l=FREQL[k]; //取當前頻率低八位
time=sszymmh[i+2]; //取當前頻率的時長
i=i+3; //三個位元組一組
song(); //演奏當前頻率,共75/3,25個曲調。
}
}
}
//程序的設計思路就是將一首樂曲分成三個變數來控制,分別是曲調、所在音區、時長。而控制曲調的因素也就是頻率又分成高八位和第八位兩個表,每演奏一個曲調,就根據該曲調的三個變數來取值。
Ⅳ 51單片機之蜂鳴器
蜂鳴器是一種一體化結構的電子訊響器,採用直流電壓供電,廣泛應用於計算機、列印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作發聲器件。我們開發板上常用的蜂鳴器就是常常說的交流蜂鳴器或直流蜂鳴器(自激式蜂鳴器)。 直流蜂鳴器是給一定的驅動直流電壓就會響。而交流蜂鳴器是需要給蜂鳴器一個脈沖才會響。常見的有PWM波控制蜂鳴器的頻率。脈沖就是高低電平的切換,如下圖:一個方波脈沖
我們用單片機的IO口實現一種這樣高低電平的方波,驅動蜂鳴器發音。我們板子上配的就是交流蜂鳴器。
接下來我們看一下蜂鳴器的硬體電路:
蜂鳴器通過三極體驅動。我們利用杜邦線將蜂鳴器的一端J8連接到板子上P1.5管腳上。
示常式序:
#include "reg52.h"
#include "intrins.h"
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit beep = P1^5;
void delay(uint16 i)
{
while(i--);
}
void main()
{
while(1)
{
beep = ~beep;
delay(10);
}
}
該程序實現蜂鳴器的響和停,程序較為簡單,可以在此基礎上進行擴展。
Ⅵ 怎樣控制51單片機的蜂鳴器發出不同頻率的聲音
用定時器來產生頻率,如產生100Hz的聲音。
思路:
100Hz即每秒變換200次,每次的時間就是1/200秒=0.005秒=5毫秒。
計算定時器的初值:TH0 = 0x0EE; TL0 = 0x00;
#include <reg51.h>
sbit BEEP=P0^0;//蜂鳴器引腳
void main(void)
{
//初始化定時器(晶振:11.0592MHz,12T)
TMOD = 0x01;
TH0 = 0x0EE;//5毫秒中斷一次
TL0 = 0x00;
EA = 1;//開總中斷
ET0 = 1;;//開中斷
TR0 = 1;//啟動定時器
while(1);//死循環等蜂鳴器響。
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x0EE;
TL0 = 0x00;
BEEP=!BEEP;//變換一次蜂鳴器
}
Ⅶ 關於蜂鳴器報警原理的相關論文
蜂鳴器是一種一體化結構的電子訊響器,本文介紹如何用單片機驅動蜂鳴器,他廣泛應用於計算機、列印機、復印機、報警器、電話機等電子產品中作發聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。
電磁式蜂鳴器由振盪器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源後,振盪器產生的音頻信號電流通過電磁線圈,使電磁線圈產生磁場,振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發聲。
壓電式蜂鳴器主要由多諧振盪器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。多諧振盪器由晶體管或集成電路構成,當接通電源後(1.5~15V直流工作電壓),多諧振盪器起振,輸出1.5~2.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發聲。
下面是電磁式蜂鳴器的外形圖片及結構圖。。。電磁式蜂鳴器實物圖:電磁式蜂鳴器結構示意圖:圖 1圖 2 電磁式蜂鳴器內部構成:1. 防水貼紙
2. 線軸
3. 線圈
4. 磁鐵 5. 底座
6. 引腳
7. 外殼
8. 鐵芯9. 封膠
10. 小鐵片
11. 振動膜
12. 電路板
一、電磁式蜂鳴器驅動原理
蜂鳴器發聲原理是電流通過電磁線圈,使電磁線圈產生磁場來驅動振動膜發聲的,因此需要一定的電流才能驅動它,單片機IO引腳輸出的電流較小,單片機輸出的TTL電平基本上驅動不了蜂鳴器,因此需要增加一個電流放大的電路。S51增強型單片機實驗板通過一個三極體C8550來放大驅動蜂鳴器,原理圖見下面圖3:
S51增強型單片機實驗板蜂鳴器驅動原理圖:圖 3
如圖所示,蜂鳴器的正極接到VCC(+5V)電源上面,蜂鳴器的負極接到三極體的發射極E,三極體的基級B經過限流電阻R1後由單片機的P3.7引腳控制,當P3.7輸出高電平時,三極體T1截止,沒有電流流過線圈,蜂鳴器不發聲;當P3.7輸出低電平時,三極體導通,這樣蜂鳴器的電流形成迴路,發出聲音。因此,我們可以通過程序控制P3.7腳的電平來使蜂鳴器發出聲音和關閉。
程序中改變單片機P3.7引腳輸出波形的頻率,就可以調整控制蜂鳴器音調,產生各種不同音色、音調的聲音。另外,改變P3.7輸出電平的高低電平占空比,則可以控制蜂鳴器的聲音大小,這些我們都可以通過編程實驗來驗證。
二、蜂鳴器列子 下面我們舉幾個簡單的單片機驅動蜂鳴器的編程和電路設計的列子。
1、簡單的蜂鳴器實驗程序:本程序通過在P3.7輸出一個音頻范圍的方波,驅動實驗板上的蜂鳴器發出蜂鳴聲,其中DELAY延時子程序的作用是使輸出的方波頻率在人耳朵聽覺能力之內的20KHZ以下,如果沒有這個延時程序的話,輸出的頻率將大大超出人耳朵的聽覺能力,我們將不能聽到聲音。更改延時常數,可以改變輸出頻率,也就可以調整蜂鳴器的音調。大家可以在實驗中更改#228為其他值,聽聽蜂鳴器音調的改變。
2、倒車警示音實驗程序:我們知道各種卡車、貨櫃車在倒車時候,會發出倒車的蜂鳴警示提示音,同時警示黃燈也同步閃爍,提醒後面的人或車輛注意。本實驗常式就實現倒車警示功能,通過實驗板上的蜂鳴器發出警示音,同時通過實驗板上P1.2和P1.5上的兩個黃色發光二極體來發出黃色警示燈。
3、「叮咚」電子門鈴實驗程序:常見的家用電子門鈴在有客人來訪時候,如果按壓門鈴按鈕時,室內會發出「叮咚」聲音,本實驗程序模擬電子門鈴的發音,當我們按壓實驗板上的K1按鈕時候,蜂鳴器發出「叮咚」音樂聲,是一個比較實用的程序。
Ⅷ 用51單片機控制蜂鳴器,如何使蜂鳴器輸出最高聲音
可以通過控制蜂鳴器的發生頻率來改變音調,頻率高時,聲音聽起來就尖銳;感覺聲音就像變大了
Ⅸ 單片機蜂鳴器工作原理是什麼哪位高手可以指教一下
工作原理:蜂鳴器主要由多諧振盪器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發光二極體。
多諧振盪器由晶體管或集成電路構成。當接通電源後(1.5~15V直流工作電壓),多諧振盪器起振,輸出1.5~2.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發聲。
壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料製成。在陶瓷片的兩面鍍上銀電極,經極化和老化處理後,再與黃銅片或不銹鋼片粘在一起。
接通電源後,振盪器產生的音頻信號電流通過電磁線圈,使電磁線圈產生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發聲。
(9)物聯網單片機蜂鳴器的設計思路擴展閱讀:
蜂鳴器的分類:
1、按其驅動方式的原理分,可分為:有源蜂鳴器(內含驅動線路,也叫自激式蜂鳴器)和無源蜂鳴器(外部驅動,也叫他激式蜂鳴器);
2、按構造方式的不同,可分為:電磁式蜂鳴器和壓電式蜂鳴器;
3、按封裝的不同,可分為:DIP
BUZZER(插針蜂鳴器)和SMD
BUZZER(貼片式蜂鳴器);
驅動電路:
蜂鳴器驅動電路一般都包含以下幾個部分:一個三極體、一個蜂鳴器、一個續流二極體和一個電源濾波電容。
1、蜂鳴器
發聲元件,在其兩端施加直流電壓(有源蜂鳴器)或者方波(無源蜂鳴器)就可以發聲,其主要參數是外形尺寸、發聲方向、工作電壓、工作頻率、工作電流、驅動方式(直流/方波)等。這些都可以根據需要來選擇。
2、續流二極體
蜂鳴器本質上是一個感性元件,其電流不能瞬變,因此必須有一個續流二極體提供續流。否則,在蜂鳴器兩端會產生幾十伏的尖峰電壓,可能損壞驅動三極體,並干擾整個電路系統的其它部分。
3、濾波電容
濾波電容C1的作用是濾波,濾除蜂鳴器電流對其它部分的影響,也可改善電源的交流阻抗,如果可能,最好是再並聯一個220uF的電解電容。
4、三極體
三極體Q1起開關作用,其基極的高電平使三極體飽和導通,使蜂鳴器發聲;而基極低電平則使三極體關閉,蜂鳴器停止發聲。
參考資料來源:網路--蜂鳴器