|
蜂鳴器有兩種,一種是無(wú)源的,另一種為有源的,確認(rèn)的方法為:1)看封裝,如果引腳端為PCB板的,一般為無(wú)源的,引腳端為樹(shù)脂灌封的,一般為有源的。2)加電實(shí)驗(yàn),用5V電壓點(diǎn)擊接觸引腳時(shí),只有“噠噠”聲的為無(wú)源的,發(fā)出一個(gè)單音響的為有源的。
兩種蜂鳴器用單片機(jī)的控制方法是一樣的,對(duì)于無(wú)源的,要求單片機(jī)送出一組斷續(xù)的音頻信號(hào),使蜂鳴器按要求發(fā)聲,對(duì)于有源蜂鳴器,要求單片機(jī)送出一組斷續(xù)的電脈沖信號(hào),用于分?jǐn)喾澍Q器的通斷狀態(tài),而使有源蜂鳴器發(fā)出“嘀...嘀”,“嘀...嘀...嘀”等希望的聲音。
無(wú)源蜂鳴器舉例:
/**********************************************************************/
//聲響驅(qū)動(dòng)程序 BELL--整點(diǎn)報(bào)時(shí)(鬧鐘音兩短一長(zhǎng))
/**********************************************************************/
void Beep(void)
{
uint a;//定義變量用于發(fā)聲的長(zhǎng)度設(shè)置
uchar b;
for(b=2;b>0;b--){
for(a=200;a>0;a--){//第一個(gè)聲音的長(zhǎng)度
beep = ~beep;//取反揚(yáng)聲器驅(qū)動(dòng)口,以產(chǎn)生音頻
Delay_1us(500);//音調(diào)設(shè)置延時(shí)
}
DelayM(1000);
}
for(a=1000;a>0;a--){//第一個(gè)聲音的長(zhǎng)度
beep = ~beep;//取反揚(yáng)聲器驅(qū)動(dòng)口,以產(chǎn)生音頻
Delay_1us(500);//音調(diào)設(shè)置延時(shí)
}
beep = 1;//音樂(lè)結(jié)束后揚(yáng)聲器關(guān)閉 |
|