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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機(jī)驅(qū)動無源蜂鳴器

          51單片機(jī)驅(qū)動無源蜂鳴器

          作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
          在學(xué)習(xí)過程中遇到如下例題:8個發(fā)光管由上至下間隔1s流動,其中每個管亮500ms,滅500ms,亮?xí)r蜂鳴器響,滅時關(guān)閉蜂鳴器,一直重復(fù)下去。
          流水燈的程序相對我個人來說比較簡單,但是蜂鳴器有些難度,正常給I/0口一個信號,蜂鳴器既然不響,后經(jīng)查證是無源蜂鳴器;

          無源的蜂鳴器,就要通過IO口輸出振蕩信號來驅(qū)動蜂鳴器

          本文引用地址:http://www.ex-cimer.com/article/201612/324157.htm
          蜂鳴器簡介:蜂鳴器根據(jù)結(jié)構(gòu)不同分為壓電式蜂鳴器和電磁式蜂鳴器;而兩種蜂鳴器又分為有源蜂鳴器和無源蜂鳴器,這里的源特指振蕩源;有源蜂鳴器直接加電就可以響起,無源蜂鳴器需要我們給提供振蕩源。理想的振蕩源為一定頻率的方波。
          由于系統(tǒng)采用了無源蜂鳴器,所以需要我們通過編程來控制I/0口的翻轉(zhuǎn)來產(chǎn)生一定頻率的方波信號。本文采用默認(rèn)頻率0.5KHZ的標(biāo)準(zhǔn)方波??梢运愠鲋芷赥 = 2ms脈寬t = 1ms,因此我們可以通過簡單的延時函數(shù)延時1ms。然后控制P3.7口的電平高低產(chǎn)生0.5KHZ的方波信號;
          本程序只是通過簡單延時達(dá)到驅(qū)動蜂鳴器的效果。
          #include
          sbit buzzer = P1^5;
          void delayms(unsigned int xms)//延時函數(shù),延時xms
          {
          unsigned int i , j;
          for(i = 0; i < xms; i++)
          for(j = 0; j < 110; j++);
          }
          void fengming()//蜂鳴函數(shù),脈寬t = 1ms周期T = 2ms頻率f = 0.5khz實際發(fā)現(xiàn)延時1ms的時候效果最好
          {
          buzzer = 0; //給P1.5口送低電平
          delayms(1);//延時1ms
          buzzer = 1;//給P1.5口送高電平
          delayms(1);//延時1ms
          }

          如果去掉delay(1);那么你的蜂鳴器控制端狀態(tài)大約在2us左右翻轉(zhuǎn)一次(晶振12M,12T單片機(jī)),這個時間對于驅(qū)動電路和蜂鳴器來講都是很短的,可以通俗的理解成他們沒反應(yīng)過來,還沒到最響的時候就被關(guān)掉了,加上延時之后顯然可以讓它到達(dá)峰值,所以就能聽到更響。
          void main()
          {
          while(1)
          {
          fengming();
          }
          }



          #include
          #define uint unsigned int
          #define uchar unsigned char
          sbit buzzer=P1^5;
          sbit D1=P1^0;
          void delay(uint z)//延時1ms
          {
          uint x,y;
          for(x=z;x>0;x--)
          {
          for(y=0;y<114;y++)
          {
          }
          }
          }
          fasheng() //發(fā)聲子程序
          {
          unsigned int a,x;
          for (a=0;a<456;a++)
          {
          buzzer=!buzzer;
          for (x=0;x<45;x++); //45為蜂鳴器發(fā)聲頻率
          }
          }
          void main()
          {
          while (1)
          {
          D1=0;
          fasheng();
          D1=1;
          delay(200);
          }
          }


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

          評論


          技術(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); })();