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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于DDS芯片AD9833的音源發(fā)生器設(shè)計

          基于DDS芯片AD9833的音源發(fā)生器設(shè)計

          作者: 時間:2009-10-26 來源:網(wǎng)絡(luò) 收藏
          本設(shè)計中,MCU采用51系列,圖4是音源器部分的電路原理圖。P1.5、P1.6、P1.7分別與的FSYN、SCLK、SDA相連,MCU通過模擬SPI的時序,對的各寄存器進行設(shè)置。Y2是一個有源晶振,其第3腳輸出頻率為4.194 304 MHz的信號,提供給芯片的主頻輸入端,AD9833芯片產(chǎn)生的信號通過JP3輸出,與音頻功放電路相連,通過音頻功放驅(qū)動揚聲器發(fā)聲。

          本文引用地址:http://www.ex-cimer.com/article/188546.htm


          3 軟件實現(xiàn)
          本設(shè)計中,主頻時鐘采用4.194 304 MHz。輸出頻率計算如下:

          式中,f0為輸出頻率,fMCLK為主頻(4.194 304 MHz),F(xiàn)REQREG為頻率寄存器設(shè)置的頻率字。頻率分辨率為1/64=0.015 625 Hz。
          根據(jù)上述公式,計算出各音階對應(yīng)的頻率字參數(shù)如表1所示。


          控制程序在Keil uv2環(huán)境下開發(fā),程序采用匯編語言和C語言混合編程形式實現(xiàn)。實現(xiàn)時序控制部分采用匯編語言,主體部分則采用C語言進行編程。程序主體部分調(diào)用時序控制部分時,通過全局字節(jié)變量light_o和light_o1傳遞數(shù)據(jù)。
             時序控制部分程序通過模擬SPI接口時序,完成對芯片內(nèi)部寄存器的設(shè)置,具體程序如下(定義部分略):
          to_9833:
          setb SCK
          clr CS
          mov a,light_o
          mov r1,#08h
          call out_SPI
          mov a,light_o1
          mov r1,#08h
          call out_SPI
          setb CS
          clr SCK
          ret
          out_SPI:
          RLC A
          mov SO,c
          clr SCK
          setb SCK
          djnz r1,out_SPI
          ret
          程序主體部分中,根據(jù)表1將音階數(shù)據(jù)定義成一個一維數(shù)組:
          code unsigned int music_table[ ]={0x5268,0x5c80,
          0x67d3,0x6e00,0x7b78,0x8a97,0x92d5,0xa4d5,0xb8ff,0xcfa7,0xdc00,0xf6f0,};
          主程序的編程框圖如圖5所示。對AD9833芯片通過寫入控制字的方式進行初始化。程序在主循環(huán)中運行。主循環(huán)對有效按鍵進行處理,對于有效琴鍵,調(diào)用音階函數(shù)即可。音階函數(shù)如下:
          void play_music(unsigned char nn)
          {
          light_o = 0x20;
          light_o1 = 0x00; //設(shè)控制字
          to_9833();
          v_3.cm_int =music_table[nn]; //查音階表
          light_o = 0x40 | (v_3.cm.cm_0 0x3f);
          light_o1 = v_3.cm.cm_1;
          to_9833(); //設(shè)頻率字
          light_o = 0x40;
          light_o1 = v_3.cm.cm_0 / 0x40;
          to_9833();
          }
          如有音階2的琴鍵被按下有效,C語言對調(diào)用函數(shù)描述為:
          play_music(2);


          程序中還包含按鍵處理、顯示、存儲控制等部分,限于篇幅,不再贅述。經(jīng)實測,本音源發(fā)生器產(chǎn)生的各音階頻率與表1設(shè)計值一致,頻率誤差0.02%,波形則是“純凈”的正弦波。通過功率放大,驅(qū)動揚聲器發(fā)聲。
          通常不同樂器發(fā)音時,均有不同特征的諧波。常規(guī)樂器難以實現(xiàn)只有主音、無諧波成分的音階,而通過本文芯片設(shè)計的音源器,實現(xiàn)了精準(zhǔn)的無諧波成分的音階,有獨特的聽覺效果??勺鳛榛鶞?zhǔn)音階,用于各類樂器的校音。


          上一頁 1 2 下一頁

          關(guān)鍵詞: 9833 DDS AD 芯片

          評論


          相關(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); })();