⑴ 51單片機蜂鳴器程序是什麼
51單片機蜂鳴器程序為:
#include"reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit beep=P1^5;
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
beep=~beep;
delay(1000);//控制音調頻率
beep=~beep;/控制聲音大小
delay(10);
}
}
(1)單片機怎麼控制蜂鳴器擴展閱讀:
BUZZER蜂鳴器的分類:
1、按其驅動方式的原理分,可分為:有源蜂鳴器(內含驅動線路,也叫自激式蜂鳴器)和無源蜂鳴器(外部驅動,也叫他激式蜂鳴器)。
2、按構造方式的不同,可分為:電磁式蜂鳴器和壓電式蜂鳴器。
3、按封裝的不同,可分為:DIP BUZZER(插針蜂鳴器)和SMD BUZZER(貼片式蜂鳴器)。
4、按電流的不同,可分為:直流蜂鳴器和交流蜂鳴器,其中,以直流最為常見壓電式蜂鳴器,用的是壓電材料,即當受到外力導致壓電材料發生形變時壓電材料會產生電荷。同樣,當通電時壓電材料會發生形變。
電磁式蜂鳴器,主要是利用通電導體會產生磁場的特性,用一個固定的永久磁鐵與通電導體產生磁力推動固定在線圈上的鼓膜。
由於兩種蜂鳴器發音原理不同,壓電式結構簡單耐用但音調單一音色差,適用於報警器等設備。而電磁式由於音色好,所以多用於語音、音樂等設備。
⑵ 單片機控制蜂鳴器產生發音
蜂鳴器的動作由P3.7控制。當輸出低電平時蜂鳴器發出響聲,輸出高電平時不響,
------------------------------------
用電平控制的蜂鳴器,不適合發出不同的頻率。
必須使用「輸入周期性變化的電平信號才響」的蜂鳴器,才能控制頻率。
⑶ 單片機蜂鳴器工作原理是什麼哪位高手可以指教一下
蜂鳴器工作發聲原理:
蜂鳴器的發聲原理由振動裝置和諧振裝置組成,而蜂鳴器又分為無源他激型與有源自激型。
無源他激型蜂鳴器的工作發聲原理是:方波信號輸入諧振裝置轉換為聲音信號輸出。
有源自激型蜂鳴器的工作發聲原理是:直流電源輸入經過振盪系統的放大取樣電路在諧振裝置作用下產生聲音信號。
電路原理: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)單片機怎麼控制蜂鳴器擴展閱讀:
蜂鳴器的應用領域
蜂鳴器廣泛應用領域:計算機行業(主板蜂鳴器,機箱蜂鳴器,電腦蜂鳴器)列印機(控制板蜂鳴器)、復印機、報警器行業(報警蜂鳴器,警報蜂鳴器)、電子玩具(音樂蜂鳴器)、農業、汽車電子設備行業(車載蜂鳴器,倒車蜂鳴器,汽車蜂鳴器,摩托車蜂鳴器)電話機(環保蜂鳴器)、定時器,空調,醫療設備等電聲行業。
⑷ 單片機驅動蜂鳴器電路
單片機驅動蜂鳴器電路如下:
蜂鳴器經常用於電腦、列印機、萬用表這些設備上做提示音,提示音一般也很簡單,就是簡單發出個聲音就行,我們用程序簡單做了個 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; //反轉蜂鳴器控制電平
}
⑸ 在51單片機中怎樣讓中斷控制蜂鳴器
讓中斷控制蜂鳴器,用定時器,一種應用是做電子鍾,定點鬧鍾,整點報警都可以。第二種應用,用定時器控制蜂鳴器間斷發聲,產生各種效果。第三種應用是控制無源蜂鳴器,用定時器產生不同頻率的信號,加到蜂鳴器上發出不同音調的聲音。
⑹ 請問單片機三極體怎麼控制蜂鳴器
首先,三極體是PNP,發射極E接5V,集電極C接蜂鳴器再接地是沒錯的,要導通的話是基極B接高電平就可以導通發聲,低電平截止,而蜂鳴器如果是無源的話是由脈沖驅動的,因此,是需要在P3^7 I/O口輸出脈沖就可以了,可以簡單的利用軟體延時實現,如果還有其他任務的話,還是用定時器吧,定時多久,定時中斷就讓I/O電平翻轉一次就可以實現了,如果還要控制響度,再設定合適的占空比就可以實現了,這些都是很簡單的,自己學習下「定時器」「占空比」相關的知識就知道了。
1.在這里,單片機只是相當於高速的開關一樣,實現快速地打開或者關斷蜂鳴器,電流要不了多大的,只要能驅動三極體就可以了,通常也就最多幾個mA吧。
2.電流的話跟輸出的頻率和占空比都有關系吧,這個不用萬用表測的話,只能大概估計了。
3.這里三極體不是放大作用,而是工作在飽和狀態,相當於是開關,明白嗎??
⑺ 怎樣控制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;//變換一次蜂鳴器
}
⑻ 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);
}
}
該程序實現蜂鳴器的響和停,程序較為簡單,可以在此基礎上進行擴展。
⑼ 單片機如何讓點陣和蜂鳴器同時運行
單片機如何讓點陣和蜂鳴器同時運行?單片機程序是依次運行的,掃描點陣後,控制蜂鳴器發聲,速度快,人是分辨不出來的。理論同時運行也是可以的,比如說用串列,用74hc595,多片。74HC595是一個8位串列輸入、並行輸出的位移緩存器:並行輸出為三態輸出。在SCK 的上升沿,串列數據由SDL輸入到內部的8位位移緩存器。並由Q7'輸出,而並行輸出則是在LCK的上升沿將在8位位移緩存器的數據存入到8位並行輸出緩存器。當串列數據輸入端OE的控制信號為低使能時,並行輸出端的輸出值等於並行輸出緩存器所存儲的值。74hc595串聯,輸出點陣和蜂鳴器控制信號,控制使能端,就能同時運行點陣和蜂鳴器了。
⑽ 怎麼控制單片機讓蜂鳴器發出我想要的聲音
蜂鳴器分為有源和無源,如果是有源蜂鳴器,直接把控制蜂鳴器的IO輸出一個高電位就OK了,如果是無源蜂鳴器,把控制蜂鳴器的IO輸出一個高,如果是2K的無源蜂鳴器(延時500US,再輸出一個低,一直這樣循環)。如果是4K的無源蜂鳴器(延時250US,再輸出一個低,一直這樣循環)