① 單片機報警電路(NPN驅動蜂鳴器)急求解答疑問
三極體的e接地,蜂鳴器一邊接電源一邊接尺段三極體c。單片機輸出高電平時陵攜譽蜂隱含鳴器工作,注意蜂鳴器的極性不要接反了
② 單片機驅動蜂鳴器的電路分析
你所說的情況並不限制與蜂鳴器的驅動,包括常用的繼電器,指示燈等很多情況(布爾控制器件)都會遇到。
設計這種電路,首先是要考察驅動的對象,看其正常工作的額定電流和電壓。根據電流和電壓參數選擇三極體的,一般要保證三極體的最大Ic要大於等於1.5倍驅動對象的額定電流,Vce要大於等於1.2倍驅動器件的額定電壓,如果是感性負載(如繼電器),還必須在負載上反向並聯吸收二極體,以防止感生電壓過高損壞三極體。
選擇好三極體後,根據三極體手冊給出的最小放大倍數和驅動器件的最大工作電流計算所需要的Ib,根據這個Ib查詢三極體數據手冊,看看是否在三極體的安全工作范圍中,如果超出就必須要重新選擇三極體,如果合用,則計算Rb。
三極體的Vbe基本上可以取一個定值0.7V,查詢單片機手冊在既定工作電壓下IO埠的高電平輸出電壓,用此電壓減去0.7V,再除以之前所得的Ib,得出所需的Rb,這個Rb可能不是標准電阻,取最接近的標准電阻,記住,只能取小值(以保證三極體能處於飽和狀態),驗算實際Ib是不是在三極體的安全范圍之內。
③ 單片機蜂鳴器工作原理是什麼哪位高手可以指教一下
蜂鳴器工作發聲原理:
蜂鳴器的發聲原理由振動裝置和諧振裝置組成,而蜂鳴器又分為無源他激型與有源自激型。
無源他激型蜂鳴器的工作發聲原理是:方波信號輸入諧振裝置轉換為聲音信號輸出。
有源自激型蜂鳴器的工作發聲原理是:直流電源輸入經過振盪系統的放大取樣電路在諧振裝置作用下產生聲音信號。
電路原理:PORTC.3/T0 作為I/O 口通過三極體Q2 來驅動蜂鳴器LS1,而PORTC.2/PWM0 則作為PWM 輸出口通過三極體Q1 來驅動蜂鳴器LS2。另外在PORTA.3 和PORTA.2 分別接了兩個按鍵,一個是PWM 按鍵,是用來控制PWM 輸出口驅動蜂鳴器使用的;另一個是PORT 按鍵,是用來控制I/O 口驅動蜂鳴器使用的。連接按鍵的I/O 口開內部上拉電阻。
(3)單片機驅動蜂鳴器電路擴展閱讀:
蜂鳴器的應用領域
蜂鳴器廣泛應用領域:計算機行業(主板蜂鳴器,機箱蜂鳴器,電腦蜂鳴器)列印機(控制板蜂鳴器)、復印機、報警器行業(報警蜂鳴器,警報蜂鳴器)、電子玩具(音樂蜂鳴器)、農業、汽車電子設備行業(車載蜂鳴器,倒車蜂鳴器,汽車蜂鳴器,摩托車蜂鳴器)電話機(環保蜂鳴器)、定時器,空調,醫療設備等電聲行業。
④ 求大神解釋下51單片機蜂鳴器的工作原理 下面是原理圖 急!
工作原理非常簡單:圖示電路為灌電流驅動方式(低電平有效),Q5為開關三極體,平時I/O口P3.6輸出高電平,因Q5為PNP型三極體,故高電平使得基極電位接近Vcc,三極體截止處於集電極迴路的蜂鳴器不響,當P3.6輸出低電平時Q5經由Vcc-Q5eb-R17-P3.6到地迴路獲得基極電流而飽和導通,蜂鳴器得電發出鳴響。
⑤ 單片機蜂鳴器
1、單片機與蜂鳴器連接圖已附.
2、通常P1、P2、P3口都可以用來作為控制,P0口也可以,但因其內部無上拉電阻,所以外接時,應接一1K的上拉電阻,其他一樣。有源蜂鳴器驅動電路設計,無須外加驅動電路。
3、C語言編程為:
#include<reg51.h>//頭文件
sbit d1=P1^2;//位定義,把P1口的P1.2位設為驅動口,當然其它口也可。
void main()//主函數
{
d1=0//單片機默認狀態為1,不用初始化了,此處直接賦值0則可驅動
};
此為最最簡單的電路程序設計。下載後,蜂鳴器一會一直處於鳴叫狀態。
你可以加一個延時函數,再把d1口置高,可讓它,叫一下關閉。也可以加個while(1)大循環,讓它「滴、滴」不停地叫。還可以設置一個按鍵,按一個亮一下。
隨程序的變化,現象也會各不同。
⑥ 單片機驅動蜂鳴器電路
單片機驅動蜂鳴器電路如下:
蜂鳴器經常用於電腦、列印機、萬用表這些設備上做提示音,提示音一般也很簡單,就是簡單發出個聲音就行,我們用程序簡單做了個 4KHZ 頻率下的發聲和 1KHZ 頻率下的發聲程序代碼如下:
#include
sbit BUZZ = P1^6; //蜂鳴器控制引腳
unsigned char T0RH = 0; //T0 重載值的高位元組
unsigned char T0RL = 0; //T0 重載值的低位元組
voidOpenBuzz(unsigned int frequ);
void StopBuzz();
void main(){
unsigned int i;
TMOD = 0x01; //配置 T0 工作在模式 1,但先不啟動
EA = 1;
while(1){ //使能全局中斷
OpenBuzz(4000); //以 4KHz 的頻率啟動蜂鳴器
for (i=0; i<40000; i++);
StopBuzz(); //停止蜂鳴器
for (i=0; i<40000; i++);
OpenBuzz(1000); //以 1KHz 的頻率啟動蜂鳴器
for (i=0; i<40000; i++);
StopBuzz(); //停止蜂鳴器
for (i=0; i<40000; i++);
}
}
/* 蜂鳴器啟動函數,frequ-工作頻率 */
void OpenBuzz(unsigned int frequ){
unsigned int reload;//計算所需的定時器重載值
reload = 65536 - (11059200/12)/(frequ*2); //由給定頻率計算定時器重載值
T0RH = (unsigned char)(reload >> 8); //16 位重載值分解為高低兩個位元組
T0RL = (unsigned char)reload;
TH0 = 0xFF; //設定一個接近溢出的初值,以使定時器馬上投入工作
TL0 = 0xFE;
ET0 = 1; //使能 T0 中斷
TR0 = 1; //啟動 T0
}
/* 蜂鳴器停止函數 */
void StopBuzz(){
ET0 = 0; //禁用 T0 中斷
TR0 = 0; //停止 T0
}
/* T0 中斷服務函數,用於控制蜂鳴器發聲 */
void InterruptTimer0()interrupt1{
TH0 = T0RH; //重新載入重載值
TL0 = T0RL;
BUZZ = ~BUZZ; //反轉蜂鳴器控制電平
}