專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)驅(qū)動(dòng)蜂鳴器

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2008年05月26日   【字體:

蜂鳴器使用在很多的場(chǎng)合,他一般用來(lái)發(fā)出報(bào)警或者提示的聲音,是一種常用的電子器件,這里我給大家簡(jiǎn)單的介紹一下用單片機(jī)驅(qū)動(dòng)蜂鳴器的方法,蜂鳴器有二種1.本身帶有驅(qū)動(dòng)電路,分5v,9v,12v超電壓使用,聲音沙啞失真。2.象call機(jī),喇叭一樣,用軟件驅(qū)動(dòng)。頻率控制音調(diào),時(shí)間控制音量大小,第一種蜂鳴器一般都有一個(gè)固定的頻率參數(shù)也就是他他發(fā)出的聲音是不能變化的,就象食堂用的打卡器一樣,卡一貼近就發(fā)出都的一聲。第2種就不同了用單片機(jī)驅(qū)動(dòng)第2種蜂鳴器后還可以使他演奏出美妙的音樂(lè),我們只需要用簡(jiǎn)單的程序就可以控制單蜂鳴器所奏的頻率,也就控制了音調(diào)。

c51程序?qū)嵗?br /> 單片機(jī)驅(qū)動(dòng)蜂鳴器演奏中華人民共和國(guó)國(guó)歌的前4節(jié)的c51程序:
#include <REG52.h>

sbit BUZ=P2^6;  //蜂鳴器接單片機(jī)的p2.6電路很簡(jiǎn)單。
unsigned int hzs[]={131,147,165,175,196,220,247,262,294,330,349,392,440,494,523,587,659,698,784,880,988,1047,1175,1319,1397,1568,1760,1976};//標(biāo)準(zhǔn)音調(diào)頻率
char dots[]={8,28,10,12,12,13,28,28,12,28,10,28,8,12,12,12,10,28,28,8,28,5,5,5,5,5,5,8,'#'};//頻率控制數(shù)組
void delay(unsigned int u)  //延時(shí)
{
while(u--);
}
void play_hz(unsigned int u)
{
unsigned int i=u;
while(i--){
   BUZ=0;
   BUZ=1;
   delay(18432/u-24);
}
}
//http://www.torrancerestoration.com  單片機(jī)學(xué)習(xí)站出品
void play_sound(int i)   //播放音樂(lè)
{
if(i<28)
   play_hz(hzs[i-1]);
else
   delay(500);
}
void main(void)   //主程序開(kāi)始
{
while(1){
   int i=0;
   while(dots[i]!='#')
    play_sound(dots[i++]);
   delay(20000);
}
}

呵呵很好聽(tīng)吧

關(guān)閉窗口