日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 利用蜂鳴器和單片機演奏簡單的音樂電路設(shè)計

          利用蜂鳴器和單片機演奏簡單的音樂電路設(shè)計

          作者: 時間:2011-04-10 來源:網(wǎng)絡(luò) 收藏

          ET0=1; EA=1;

          TR0=0; TR1=1;

          while(point=point2)

          {

          sl=ts%10; /* 計算出音符 */

          sh=ts/100; /* 計算出是否升半 */

          sm=ts/10%10; /* 計算出高低音 */

          hz=ftab[stab[sl-1]+sh]; /* 查出對應(yīng)音符的頻率 */

          if(sl!=0)

          {

          if (sm==1) hz>>=2; /* 若是低音 */

          if (sm==3) hz=2; /* 若是高音 */

          sc=(50000/hz)*10/plen; /* 計算脈沖個數(shù) */

          sc=65536-sc; /* 計算計數(shù)器初值 */

          sc0=sc%256; /* 算出TL0 應(yīng)裝初值 */

          sc1=sc/256; /* 算出TH0 應(yīng)裝初值 */

          TH0=sc1; /* 裝入初值 */

          TL0=sc0+12; /* 加12 是對中斷延時的補償 */

          }

          slen=ltab[tl%10]; /* 算出是幾分音符 */

          xg=tl/10%10; /* 算出音符類型(0 普通1 連音2 頓音) */

          fd=tl/100;

          len=len0/slen; /* 算出連音音符的長度(多少個10ms)*/

          if (fd==1) len=len+len/2;

          if(xg!=1)

          if(xg==0) /* 算出普通音符的長度 */

          if (slen=4)

          len1=len-len4;

          else

          len1=len*yx;

          else

          len1=len/2; /* 算出頓音的長度 */

          else

          len1=len;

          if(sl==0) len1=0;

          len2=len-len1; /* 算出不發(fā)音的長度 */

          if (sl!=0)

          {

          TR0=1;

          for(i=len1;i>0;i--) /* 發(fā)規(guī)定長度的音 */

          {

          while(TF1==0);

          TH1=tc1; TL1=tc0;

          TF1=0;

          }

          }

          if(len2!=0)

          {

          TR0=0; speaker=1;

          for(i=len2;i>0;i--) /* 音符間的間隔 */

          {

          while(TF1==0);

          TH1=tc1; TL1=tc0;

          TF1=0;

          }

          }

          point+=2; /* 音符指針下移 */

          ts=sound[point]; tl=sound[point+1]; /* 讀出下一個音符和它時時值 */

          }

          }

          void yin() interrupt 1 /* 音符發(fā)生程序(中斷服務(wù)程序)*/

          {

          speaker=~speaker;

          TH0=sc1; TL0=sc0;

          }

          //==============================================

          main()

          {

          while(1)

          {

          play(sound,0,2,60,0,57);

          play(sound,0,1,60,0,57);

          play(sound,0,3,60,0,57);

          play(sound,0,2,40,0,57);

          play(sound,5,2,60,0,57);

          play(sound,0,2,80,0,57);

          }

          }

          塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理
          蜂鳴器相關(guān)文章:蜂鳴器原理

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉