<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

      51單片機蜂鳴器播放音樂代碼

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2016-11-21

       /*生日快樂歌曲*/
      /*******************************************/

      #include <reg51.h>
      #define uint unsigned int
      #define uchar unsigned char
      sbit beep = P1^5;
      uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,
      212,212,106,126,159,169,190,119,119,126,159,142,159,0};

      uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,
      9,3,12,12,12,12,12,9,3,12,12,12,24,0};

      //延時
      void DelayMS(uint x)
      {
      uchar t;
      while(x--) for(t=0;t<120;t++);
      }

      void PlayMusic()
      {
      uint i=0,j,k;
      while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)
      { //播放各個音符,SONG_LONG 為拍子長度
          for(j=0;j<SONG_LONG[i]*20;j++)
      {
          beep=~beep;
      //SONG_TONE 延時表決定了每個音符的頻率
          for(k=0;k<SONG_TONE[i]/3;k++);
      }
          DelayMS(10);
          i++;
      }
      }


      void main()
      {

      beep=0;
      while(1)
      {
      PlayMusic(); //播放生日快樂
      DelayMS(500); //播放完后暫停一段時間
      }
      }

      /*兩只蝴蝶歌曲*/  
      /*******************************************/

      #include <reg51.h>             // 這是  單片機音樂代碼生成器  生成的代碼
      #define uchar unsigned char
      sbit beepIO=P1^5;                 // 輸出 為 P1.5  可以修改 成 其它 IO 口
      uchar m,n;
      uchar code T[49][2]={{0,0},
      {0xF8,0x8B},{0xF8,0xF2},{0xF9,0x5B},{0xF9,0xB7},{0xFA,0x14},{0xFA,0x66},{0xFA,0xB9},{0xFB,0x03},{0xFB,0x4A},{0xFB,0x8F},{0xFB,0xCF},{0xFC,0x0B},
      {0xFC,0x43},{0xFC,0x78},{0xFC,0xAB},{0xFC,0xDB},{0xFD,0x08},{0xFD,0x33},{0xFD,0x5B},{0xFD,0x81},{0xFD,0xA5},{0xFD,0xC7},{0xFD,0xE7},{0xFE,0x05},
      {0xFE,0x21},{0xFE,0x3C},{0xFE,0x55},{0xFE,0x6D},{0xFE,0x84},{0xFE,0x99},{0xFE,0xAD},{0xFE,0xC0},{0xFE,0x02},{0xFE,0xE3},{0xFE,0xF3},{0xFF,0x02},
      {0xFF,0x10},{0xFF,0x1D},{0xFF,0x2A},{0xFF,0x36},{0xFF,0x42},{0xFF,0x4C},{0xFF,0x56},{0xFF,0x60},{0xFF,0x69},{0xFF,0x71},{0xFF,0x79},{0xFF,0x81}
      };
      uchar code music[][2]={{0,4},
      {23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,16},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{14,24},
      {23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,24},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{21,24},
      {23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,16},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{14,24},
      {23,4},{26,4},{26,16},{26,4},{28,4},{26,4},{23,24},{21,4},{23,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{16,2},{19,2},{19,24},{0,20},
      {26,4},{26,4},{28,4},{31,4},{30,4},{30,4},{28,4},{23,4},{21,4},{21,4},{23,16},{0,4},{23,4},{23,4},{26,4},{28,8},{28,12},{16,4},{23,4},{21,4},
      {21,24},{23,4},{26,4},{26,4},{23,4},{26,8},{0,4},{31,8},{30,4},{28,4},{30,4},{23,8},{0,4},{28,4},{28,4},{30,4},{28,4},{26,4},{23,4},{21,8},{23,4},{21,4},{23,4},{26,16},
      {0xFF,0xFF}};
      void delay(uchar p)
      {
          uchar i,j;
          for(;p>0;p--)
          for(i=181;i>0;i--)
          for(j=181;j>0;j--);
      }
      void pause()
      {
          uchar i,j;
          for(i=150;i>0;i--)
          for(j=150;j>0;j--);
      }
      void T0_int() interrupt 1
      {
       beepIO=!beepIO;
       TH0=T[m][0]; TL0=T[m][1];
      }
      void main()
      {
       uchar i=0;
       TMOD=0x01;  EA=1; ET0=1;
       while(1)
            {
              m=music[i][0];n=music[i][1];
                 if(m==0x00)
                   {TR0=0;delay(n);i++;}
                 else if(m==0xFF)
                   {TR0=0;delay(30);i=0;}
                 else if(m==music[i+1][0])
                   {TR0=1;delay(n);TR0=0;pause();i++;}
                 else
                   {TR0=1;delay(n);i++;}
            }
      }

       

      /*祝你平安*/  
      /*******************************************/

      #include "reg52.h"
      unsigned char Count;
      sbit _Speak =P1^5 ;
      unsigned char code SONG[] ={      //祝你平安
      0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,
      0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,
      0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,
      0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,
      0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,
      0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,
      0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,
      0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,
      0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,
      0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,
      0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,
      0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,
      0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,
      0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00};

      void Time0_Init()
      {
       TMOD = 0x01;
       IE   = 0x82;
       TH0  = 0xD8;
       TL0  = 0xEF;  //12MZ晶振,10ms
      }

      void Time0_Int() interrupt 1
      {
       TH0 = 0xD8;
       TL0 = 0xEF;
       Count++;   //長度加1
      }

      /*-------------------------------------------------
      功能:1MS延時子程序
      -------------------------------------------------*/
      void Delay_xMs(unsigned int x)
      {
          unsigned int i,j;
          for( i =0;i < x;i++ )
          {
              for( j =0;j<3;j++ );
          }
      }

      void Play_Song(unsigned char i)
      {
       unsigned char Temp1,Temp2;
       unsigned int Addr;
       Count = 0;      //中斷計數器清0
       Addr = i * 217;
       while(1)
       {
        Temp1 = SONG[Addr++];
           if ( Temp1 == 0xFF )          //休止符
           {
            TR0 = 0;
            Delay_xMs(100);
           }
           else if ( Temp1 == 0x00 )   //歌曲結束符
           {
            return;
           }
           else
           {
            Temp2 = SONG[Addr++];
            TR0 = 1;
           while(1)
           {
             _Speak = ~_Speak;
             Delay_xMs(Temp1);
             if ( Temp2 == Count )
             {
              Count = 0;
              break;
             }
            }
           }
       }
      }
      /*-------------------------------------------------
      功能:主程序
      -------------------------------------------------*/
      void main()
      {
       Time0_Init();   //定時器0中斷初始化
       while(1)
       {
        Play_Song(0);  //播放
       }
      }

      Tags:51單片機,編程,歌曲  
      責任編輯:admin
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 一本色道久久综合狠狠躁篇| 伊人久久成人成综合网222| 亚洲AV日韩综合一区尤物 | 激情综合色五月丁香六月亚洲| 婷婷五月六月激情综合色中文字幕| 亚洲国产免费综合| 亚洲综合一区二区| 国产精品综合久成人| 亚洲综合色7777情网站777| 色综合久久加勒比高清88| 亚洲综合成人网在线观看| 国产亚洲精品第一综合| 中文字幕亚洲综合久久| 在线亚洲97se亚洲综合在线| 2020久久精品亚洲热综合一本| 伊人久久大香线蕉综合爱婷婷| 亚洲香蕉网久久综合影视| 狠狠色丁香婷婷久久综合 | 精品久久综合一区二区| 中文字幕亚洲综合精品一区| 激情五月综合综合久久69| 亚洲综合激情九月婷婷| 亚洲综合无码一区二区| 熟女少妇色综合图区| 精品亚洲综合久久中文字幕| 一本大道道无香蕉综合在线 | 亚洲国产成人久久综合一区77| 亚洲欧美日韩综合久久久| 国产成人综合野草| 天天狠狠色综合图片区| 天天躁日日躁狠狠躁综合| 亚洲欧美国产国产综合一区| 亚洲精品第一综合99久久| 国产成人综合一区精品| 一本久久a久久精品综合夜夜 | 亚洲综合国产成人丁香五月激情| 中文字幕亚洲综合小综合在线| 98精品国产综合久久| 一本大道无香蕉综合在线| 综合人妻久久一区二区精品| 中文字幕亚洲综合久久|