新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于DDS芯片AD9833的音源發生器設計

        基于DDS芯片AD9833的音源發生器設計

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

        本文引用地址:http://www.104case.com/article/188546.htm


        3 軟件實現
        本設計中,主頻時鐘采用4.194 304 MHz。輸出頻率計算如下:

        式中,f0為輸出頻率,fMCLK為主頻(4.194 304 MHz),FREQREG為頻率寄存器設置的頻率字。頻率分辨率為1/64=0.015 625 Hz。
        根據上述公式,計算出各音階對應的頻率字參數如表1所示。


        控制程序在Keil uv2環境下開發,程序采用匯編語言和C語言混合編程形式實現。實現時序控制部分采用匯編語言,主體部分則采用C語言進行編程。程序主體部分調用時序控制部分時,通過全局字節變量light_o和light_o1傳遞數據。
           時序控制部分程序通過模擬SPI接口時序,完成對芯片內部寄存器的設置,具體程序如下(定義部分略):
        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
        程序主體部分中,根據表1將音階數據定義成一個一維數組:
        code unsigned int music_table[ ]={0x5268,0x5c80,
        0x67d3,0x6e00,0x7b78,0x8a97,0x92d5,0xa4d5,0xb8ff,0xcfa7,0xdc00,0xf6f0,};
        主程序的編程框圖如圖5所示。對AD9833芯片通過寫入控制字的方式進行初始化。程序在主循環中運行。主循環對有效按鍵進行處理,對于有效琴鍵,調用音階函數即可。音階函數如下:
        void play_music(unsigned char nn)
        {
        light_o = 0x20;
        light_o1 = 0x00; //設控制字
        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(); //設頻率字
        light_o = 0x40;
        light_o1 = v_3.cm.cm_0 / 0x40;
        to_9833();
        }
        如有音階2的琴鍵被按下有效,C語言對調用函數描述為:
        play_music(2);


        程序中還包含按鍵處理、顯示、存儲控制等部分,限于篇幅,不再贅述。經實測,本音源發生器產生的各音階頻率與表1設計值一致,頻率誤差0.02%,波形則是“純凈”的正弦波。通過功率放大,驅動揚聲器發聲。
        通常不同樂器發音時,均有不同特征的諧波。常規樂器難以實現只有主音、無諧波成分的音階,而通過本文芯片設計的音源器,實現了精準的無諧波成分的音階,有獨特的聽覺效果。可作為基準音階,用于各類樂器的校音。


        上一頁 1 2 下一頁

        關鍵詞: 9833 DDS AD 芯片

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 佳木斯市| 营山县| 镶黄旗| 石嘴山市| 湖南省| 平凉市| 衡水市| 巩留县| 无极县| 拉萨市| 阳新县| 报价| 营山县| 丹东市| 龙州县| 化隆| 安阳市| 资讯 | 吉林省| 瑞丽市| 广宗县| 日照市| 聂拉木县| 乌拉特前旗| 西吉县| 阜康市| 闻喜县| 鸡泽县| 图们市| 德兴市| 大英县| 阳春市| 犍为县| 江永县| 原阳县| 锡林郭勒盟| 绥化市| 凤山市| 湘阴县| 鸡西市| 边坝县|