在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用51單片機實現(xiàn)音頻信號的頻譜顯示

      用51單片機實現(xiàn)音頻信號的頻譜顯示

      作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏

      void Init()
      {

      //-----------------------------------------------------------------------------------
      P1ASF = 0x02; //0000,0010, 將 P1.1 置成模擬口
      AUXR1 &=0xFB; //1111,1011, 令 ADRJ=0
      EADC=1; //AD中斷打開
      ADC_CONTR = ADC_POWER | ADC_SPEEDHH | ADC_START | channel;
      //1110 1001 1打開 A/D (ADC_POWER)轉(zhuǎn)換電源;11速度為70周期一次;
      //0中斷標志清零;1啟動adc(ADC_START);001AD通道打開(這里為P1.1);
      //-----------------------------------------------------------------------------------
      P2M0=1;
      P0M0=1;
      TMOD=0X12;
      TH0=0x30; //大約20K的采樣率(要完整頻段需40K以上。但音頻中10k以下居多,故本人選擇20K采樣,美觀些)
      TL0=0x30;
      TH1=0xEE;
      TL1=0XC0;
      ET0=1; //定時器0 打開
      TR0=0; //關(guān)閉定時器
      ET1=1;
      TR1=1;
      PT1=0;
      PT0=1;
      IPH=PADCH;
      IP=PADC; //中斷優(yōu)先級
      EA=1; //總中斷打開
      }


      void ADC_Finish() interrupt 5
      { ADC_CONTR &= !ADC_FLAG;
      Fft_Real[LIST_TAB[ADC_Count]]=(int)((ADC_RES)<<1)+(ADC_RESL>>1)-256;//-512; //按LIST_TAB表里的順序,進行存儲采樣值,,
      // ADC_CONTR = ADC_POWER | ADC_SPEEDHH| ADC_START | channel; // 為了采集負電壓,采用 偏置采集。電壓提高到1/2 vcc,,所以要減去256
      if(ADC_Count<=127)ADC_Count++;
      else {EADC=0;TR0=0;}
      }

      void LED_Display() interrupt 3 //中斷一次 顯示一行。。。
      {
      TH1=0xF3;
      TL1=0X00;
      for (G=0;G<64;G++) //往點陣屏填充 一行的 數(shù)據(jù)
      {
      if(LED_TAB[G]<=LINE+16)SDA_R_TOP=1;
      else SDA_R_TOP=0;
      if(LED_TAB[G]<=LINE)SDA_R=1;
      else SDA_R=0;

      if(LED_TAB1[G]==LINE){SDA_G_TOP=1;SDA_G=0;}
      else if(LED_TAB1[G]==(LINE+16)){SDA_G_TOP=0;SDA_G=1;}
      else SDA_G=SDA_G_TOP=1;
      SHCP=1;SHCP=0;
      }
      STCP=1;STCP=0;
      P2=15-LINE;
      if(LINE>0)LINE--;
      else LINE=15;
      //////////////////////////

      if(LED_TAB[COUNT]>0)LED_TAB[COUNT]--; //柱狀遞減,
      COUNT++;
      if(LED_TAB[COUNT]>0)LED_TAB[COUNT]--;
      COUNT++;
      if(LED_TAB[COUNT]>0)LED_TAB[COUNT]--;
      COUNT++;
      if(LED_TAB[COUNT]>0)LED_TAB[COUNT]--;
      COUNT++;
      if(LED_TAB[COUNT]>0)LED_TAB[COUNT]--; //柱狀遞減,
      COUNT++;
      if(LED_TAB[COUNT]>0)LED_TAB[COUNT]--;
      COUNT++;
      if(LED_TAB[COUNT]>0)LED_TAB[COUNT]--;
      COUNT++;
      if(LED_TAB[COUNT]>0)LED_TAB[COUNT]--;
      COUNT++;
      if(COUNT>=64)COUNT=0;

      //漂浮物遞減
      if(LED_TAB2[COUNT1]==0) //判斷是否需要停頓
      {
      if(LED_TAB1[COUNT1]>LED_TAB[COUNT1])LED_TAB1[COUNT1]--;//大于柱狀則遞減(保持漂浮物在柱狀之上)
      }
      else LED_TAB2[COUNT1]--;
      COUNT1++;
      if(LED_TAB2[COUNT1]==0)
      {
      if(LED_TAB1[COUNT1]>LED_TAB[COUNT1])LED_TAB1[COUNT1]--;
      }
      else LED_TAB2[COUNT1]--;
      COUNT1++;
      if(LED_TAB2[COUNT1]==0) //判斷是否需要停頓
      {
      if(LED_TAB1[COUNT1]>LED_TAB[COUNT1])LED_TAB1[COUNT1]--;//大于柱狀則遞減(保持漂浮物在柱狀之上)
      }
      else LED_TAB2[COUNT1]--;
      COUNT1++;
      if(LED_TAB2[COUNT1]==0)
      {
      if(LED_TAB1[COUNT1]>LED_TAB[COUNT1])LED_TAB1[COUNT1]--;
      }
      else LED_TAB2[COUNT1]--;
      COUNT1++;
      if(COUNT1>=64)COUNT1=0;
      }

      void Ad_Control() interrupt 1 //控制采樣率
      {
      ADC_CONTR = ADC_POWER | ADC_SPEEDHH| ADC_START | channel; //開始AD采集
      }
      //==============================================================================================================
      // ******************* main() *********************************
      //===============================================================================================================

      void main()
      {
      Init();
      while(1)
      {
      ADC_Count=0;
      TR0=1;
      EADC=1; //開啟定時器中斷0,,開啟ADC
      while(ADC_Count<128);
      FFT();
      //FFT運算。并轉(zhuǎn)換為功率值。。。
      // TR1=1;
      }
      }


      上一頁 1 2 下一頁

      評論


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

      關(guān)閉
      ×

      “芯”朋友见面大会
      珠海|11.14|泰克“芯”朋友见面大会珠海站|泰克带您从测试角度看半导体的整条产业链,快来报名抢位吧>>