<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 用單片機(jī)控制蜂鳴器的實(shí)驗(yàn)電路

          用單片機(jī)控制蜂鳴器的實(shí)驗(yàn)電路

          作者: 時(shí)間:2012-11-13 來源:網(wǎng)絡(luò) 收藏

          無源也是有極性的電子元件,它的控制電路與有源一樣,如下圖所示。但它的發(fā)聲條件與有源不同。

          用單片機(jī)控制蜂鳴器的實(shí)驗(yàn)電路

            只有當(dāng)一定頻率的電流從正極流向負(fù)極時(shí),無源蜂鳴器才會(huì)鳴響。下圖所示是P3.4引腳輸出的各種頻率的方波,三極管Q1在這些方波信號(hào)的控制下導(dǎo)通、截止,就會(huì)有和方波頻率相同的電流流過無源蜂鳴器的正負(fù)兩極,無源蜂鳴器就會(huì)發(fā)聲了。

            改變控制方波的頻率可以調(diào)整控制蜂鳴器音調(diào),產(chǎn)生各種不同音色、音調(diào)的聲音。如圖2(a)(b)的方波頻率不同,控制方坡的頻率越高蜂鳴器的聲音越尖細(xì),反之頻率越低聲音越低沉。

            另外,改變控制方波的高低電平占空比,則可以控制蜂鳴器的聲音大小,如圖2中(c)(d)的頻率相同占空比不同。

          用單片機(jī)控制蜂鳴器的實(shí)驗(yàn)電路

            我們可以根據(jù)這些特性編寫程序,使輸出不同頻率和占空比的方波信號(hào),用無源蜂鳴器來演奏出簡(jiǎn)單的樂曲。

            下面的程序可以產(chǎn)生頻率為1OOOHz的方波,使無源蜂鳴器發(fā)出響聲。

            在編寫這段程序時(shí),利用了內(nèi)部資源定時(shí)器中斷的功能。STC12C541O單片機(jī)的內(nèi)部定時(shí)器可以定義為16伍累加計(jì)數(shù)器,每12個(gè)系統(tǒng)時(shí)鐘周期計(jì)數(shù)器加1,當(dāng)計(jì)數(shù)器累加到Oxffff時(shí),再累加1就會(huì)溢出,這時(shí)會(huì)產(chǎn)生一個(gè)中斷,通過編程我們使該中斷每0.5ms發(fā)生一次,并在該中斷服務(wù)程序中轉(zhuǎn)變P3.4口的狀態(tài)(1變0,0變1),就能得到周期為lms(頻率為1OOOHz)的方波,在本實(shí)驗(yàn)中假設(shè)時(shí)鐘頻率為12MHz,程序如下:

            #include

            sbitBuzzer=P3^4;//將位變量Buzzer定義為單片機(jī)

            P3.4口

            voidsquare_wave(void)interrupt1//定時(shí)器0中斷服

            務(wù)程序

            {

            THO=Oxfe;//【注1】,【注2】,【注3】

            TLO=OxOc:

            Buzzer^=1;//使蜂鳴器控制口線輸出電平轉(zhuǎn)變,產(chǎn)生

          手機(jī)電池相關(guān)文章:手機(jī)電池修復(fù)


          塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
          蜂鳴器相關(guān)文章:蜂鳴器原理
          電流傳感器相關(guān)文章:電流傳感器原理

          上一頁 1 2 下一頁

          關(guān)鍵詞: 單片機(jī) 蜂鳴器

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();