打印
[51单片机]

关于AD9850输出波形求助

[复制链接]
2848|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
剑花落影|  楼主 | 2014-6-5 17:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在淘宝买了块ad9850的模块,用at89s52控制该模块,程序也是用的例程,为什么模块输出的方波频率跟程序中设定的频率一样,也很稳定,但是正弦波频率一直不稳定啊(输出频率越高,波动范围越大)。
下面是我写10kHz波形的程序
#include<reg52.h>
#include<intrins.h>
sbit ad9850_fq_up    =P2^3;  //P2.3口接ad9850的fq_up脚/PIN8
sbit ad9850_rest     =P2^4;  //P2.4口接ad9850的rest脚/PIN12
sbit ad9850_w_clk    =P2^5;  //2.5口接ad9850的w_clk脚/PIN7       
sbit ad9850_bit_data =P3^7;  //P3.7口接ad9850的D7脚/PIN25
//***************************************************//
//            ad9850复位程序(并口)                   //
//---------------------------------------------------//

void ad9850_reset()
{
        ad9850_w_clk=0;
        ad9850_fq_up=0;
        //rest信号
        ad9850_rest=0;
        ad9850_rest=1;
        ad9850_rest=0;
}       
//***************************************************//
//          向ad9850中写命令与数据(并口)             //
//---------------------------------------------------//
void ad9850_wr_parrel(unsigned char w0,double frequence)
{
        unsigned char w;
        long int y;
        double x;
        //计算频率的HEX值
        x=4294967295/125;//适合125M晶振
        //如果时钟频率不为125MHZ,修改该处的频率值,单位MHz !!!
        frequence=frequence/1000000;
        frequence=frequence*x;
        y=frequence;
        //写w0数据
        w=w0;   
        P3=w;      //w0
        ad9850_w_clk=1;
        ad9850_w_clk=0;
        //写w1数据
        w=(y>>24);
        P3=w;      //w1
        ad9850_w_clk=1;
        ad9850_w_clk=0;
        //写w2数据
        w=(y>>16);
        P3=w;      //w2
        ad9850_w_clk=1;
        ad9850_w_clk=0;
        //写w3数据
        w=(y>>8);
        P3=w;      //w3
        ad9850_w_clk=1;
        ad9850_w_clk=0;
        //写w4数据
        w=(y>>=0);
        P3=w;      //w4
        ad9850_w_clk=1;
        ad9850_w_clk=0;
        //移入始能
        ad9850_fq_up=1;
        ad9850_fq_up=0;
}
void main()
{
        ad9850_reset();
        ad9850_wr_parrel(0x00,10000);
        while(1)
        {
        }               
}
以下AD9850的原理图,输出幅度没有要求,我直接把模块的正弦波输出接到示波器的。

有没有哪位大神指导一下啊!!!

相关帖子

沙发
限量_个性。| | 2014-6-5 18:30 | 只看该作者
频率越高,幅值相应的就会减小啊。

使用特权

评论回复
板凳
asfraee| | 2014-6-13 13:26 | 只看该作者
是不是串入了干扰信号了。

使用特权

评论回复
地板
ningling_21| | 2014-6-13 13:42 | 只看该作者
图片挂了,直接上传图片吧...

使用特权

评论回复
5
ysuyubin| | 2016-5-14 15:15 | 只看该作者
同求???????????

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

6

帖子

0

粉丝