4509|1

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

有用过AD9951的朋友请进,求指导,十万火急 [复制链接]

    最近用89C52控制AD9951做一个DDS简易信号源,但是硬件做出来了,程序写上去没有波形输出啊,现在都不知道是怎么回事,求大神指导下小弟啊!

这是写的测试程序,输出10M:

#include<stdio.h>
#include"reg52.h"

#define uint unsigned int
#define uchar unsigned char

#define CFR2 0x01
#define FTW0 0x04

sbit DDS_SCLK=P3^1;
sbit DDS_SDIO=P3^2;
sbit DDS_UPDATA=P3^3;

void DDSWrite_Address(uint Data_address) //从最高位开始写
{
 uint Data;
 uchar i;
 Data=Data_address;
 for(i=7;i!=0;i--)
 {
  DDS_SCLK=0;
  DDS_SDIO=Data&0x80;
  Data=Data<<1;
  DDS_SCLK=1;
 }
 DDS_SCLK=0;  
}
void DDSWrite_Data(uint Data_data)//从最高位开始写,写8位
{
 unsigned char i;
 uint Data;
 Data=Data_data;
 
 for(i=7;i!=0;i--)
 {
  DDS_SCLK=0;
  DDS_SDIO=Data&0x80;
  Data=Data<<1;
  DDS_SCLK=1;
 }
}
void DDS_WRITE(uint Frequence_DATA)
{
 uint DATA;
 uint CFR2_DATA=0x0000a7;
 char j;
 uint TEMP_CFR2;
 uint TEMP_FTW0;
 DATA=Frequence_DATA;
 
 DDSWrite_Address(0x01);//送出CFR2寄存器地址
 for(j=3;j!=0;j--)//送出要写入CF2寄存器的内容
 {
  TEMP_CFR2=CFR2_DATA&0xff0000;
  CFR2_DATA=CFR2_DATA<<8;
  DDSWrite_Data(TEMP_CFR2); 
 }
 DDS_UPDATA=1;
 DDS_UPDATA=0;//DDS发送一个UPDATA脉冲

 DDSWrite_Address(FTW0);//写FTW0寄存器地址
 for(j=4;j!=0;j--)
 {
  TEMP_FTW0=DATA&0xff000000;
  DATA=DATA<<8;
  DDSWrite_Data(TEMP_FTW0); 
 }
 DDS_UPDATA=1;
 DDS_UPDATA=0;//DDS发送一个UPDATA脉冲
}
void main()
{
 DDS_UPDATA=0;
 while(1)
 {
   DDS_WRITE(0x06666666);//写10MHz
 }
}

 

111.jpg (76.08 KB, 下载次数: 2)

这是AD9951外围电路

这是AD9951外围电路

最新回复

我都没有用过这个东西呢  详情 回复 发表于 2012-5-3 15:13
点赞 关注

回复
举报

1018

帖子

0

TA的资源

纯净的硅(中级)

沙发
 
我都没有用过这个东西呢
 
个人签名android培训
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表