找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1550|回复: 0
收起左侧

51单片机+AD9851模块频率数据没有写进去?附源程序

[复制链接]
ID:499266 发表于 2019-7-17 09:02 | 显示全部楼层 |阅读模式
问题描述:按照卖家提供的51单片机程序基础上,把程序移植到自己的51单片机上,写数据方式也是根据AD9851模块的工作时序图来写的,但是问题来了:现在不论是我怎样修改频率,出来的波形都不是标准正弦波,而且频率在示波器上一直显示50hz不变,四个通道都是一样(如附图1)昨天晚上我想了一下,怀疑是数据没有写进去,但是本人还不会看数据有没有写进去(只会简单使用debug,但是用debug好像也没啥用,编译环境用的keil5)。求助问题:1、请问各位大神知道为什么会出现这种情况?除了是数据没写进去之外,还有其他可能问题吗?(模块硬件应该没问题)
                  2、请问怎么看我的数据有没有写进去?


现将代码贴至如下:


# include <reg51.h>
# include <stdio.h>
# include <intrins.h>
sbit ad9850_w_clk    =P1^4;  
sbit ad9850_fq_up    =P1^3;  
sbit ad9850_rest     =P1^2;  


//***************************************************//
//              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/156.25;//适合125M晶振
//如果时钟频率不为125MHZ,修改该处的频率值,单位MHz !!!
frequence=frequence/1000000;
frequence=frequence*x;
y=frequence;
//写w0数据
w=w0;   
P0=w;      //w0
ad9850_w_clk=1;
ad9850_w_clk=0;
//写w1数据
w=(y>>24);
P0=w;      //w1
ad9850_w_clk=1;
ad9850_w_clk=0;
//写w2数据
w=(y>>16);
P0=w;      //w2
ad9850_w_clk=1;
ad9850_w_clk=0;
//写w3数据
w=(y>>8);
P0=w;      //w3
ad9850_w_clk=1;
ad9850_w_clk=0;
//写w4数据
w=(y>>=0);
P0=w;      //w4
ad9850_w_clk=1;
ad9850_w_clk=0;
//移入始能
ad9850_fq_up=1;
ad9850_fq_up=0;
}

//***************************************************//
//                   测试程序1000Hz                  //
//---------------------------------------------------//
void main()
{

//---------------------------------------------------//
//并行写5000Hz程序
ad9850_reset();
ad9850_wr_parrel(0x00,15000000);
//---------------------------------------------------//

}


输出问题波形

输出问题波形

AD9851并行时序图

AD9851并行时序图

ad9851模块测试程序(51单片机).rar

27.2 KB, 下载次数: 16

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表