7785|14

111

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

AD9833的一些资料 [复制链接]

一、程序
(一)
#define OSC_FREQ (11059200UL)//振荡器频率(Hz)
#define OSC_PER_INST (12) //每个指令的振荡周期数
//数据类型
#define tByte unsigned char
#define tWord unsigned int
#define tLong unsigned long
//杂项
#define FALSE 0
#define TRUE (!FALSE)
#define RETURN_NORMAL (bit) 0
#define RETURN_ERROR (bit) 1
//中断索引
//通用8051定时器中断(用于大多数调度器)
#define INTERRUPT_Timer_0_Overflow 1
#define INTERRUPT_Timer_1_Overflow 3
#define INTERRUPT_Timer_2_Overflow 5
//其他中断
#define INTERRUPT_UART 4

(二)
  • #include "main.h"  

  • #include   
  • sbit  FSYNC=P1^2;   
  • sbit  SCLK=P1^1;   
  • sbit  SDATA=P1^0;   
  • tWord Config_Data[8];   

  • void  Wave_Generate(tLong,tByte);   

  • void main(void)   
  • {   
  •   FSYNC=1;   
  •   SCLK=0;   
  •   Wave_Generate(1000000,0);   

  • while(1) ;   
  • }   

  • //向ad9833写一命令字(2Bytes)  

  • void AD9833_Send_Word(tWord Data_In)   
  • {   
  •    tByte i;   
  •    tByte j;   
  •    SCLK=1;   
  •    FSYNC=0;   

  • for(i=0;i<16;i++)   
  •    {   
  •      SCLK=1;   
  •      SDATA=(bit)((Data_In & 0x8000)>>15);   
  •      j=0x01;   

  • while(j--);   
  •      SCLK=0;   
  •      Data_In=Data_In<<1;   
  •      j=0x01;   

  • while(j--);   
  •    }   
  •    FSYNC=1;   
  •    SCLK=0;   
  • }   

  • //波形发生函数  

  • //入口参数: 频率:Freq (<=12000000)  

  • //          形状:0(正弦波),1(三角波),2(方波)  

  • //默认: Fmclk=25MHz, 0相移,方波不分频.  

  • void  Wave_Generate(tLong Freq,tByte Shape)   
  • {   
  •    tLong temp;   
  •    tByte k;   

  • if(Freq>12000000) Freq=12000000;   

  • switch(Shape)   
  •    {   

  • case 0: Config_Data[0]=0x2108;   
  •              Config_Data[7]=0x2008;   

  • break;   

  • case 1: Config_Data[0]=0x210A;   
  •              Config_Data[7]=0x200A;   

  • break;   

  • case 2: Config_Data[0]=0x2128;   
  •              Config_Data[7]=0x2028;   

  • break;   

  • default:Config_Data[0]=0x2108;   
  •              Config_Data[7]=0x2008;   
  •    }   
  •    temp=Freq*13.4217728;   //temp=Freq*(0x10000000/20000000);  
  •    Config_Data[1]=temp&0x00003fff;   
  •    Config_Data[3]=Config_Data[1];   
  •    Config_Data[2]=(temp&0x0fffc000)>>14;   
  •    Config_Data[4]=Config_Data[2];   
  •    Config_Data[1]=Config_Data[1]|0x4000;   
  •    Config_Data[2]=Config_Data[2]|0x4000;   
  •    Config_Data[3]=Config_Data[3]|0x8000;   
  •    Config_Data[4]=Config_Data[4]|0x8000;   
  •    Config_Data[5]=0xC000;   
  •    Config_Data[6]=0xE000;   

  • for(k=0;k<8;k++)   
  •   {
  •      AD9833_Send_Word(Config_Data[k]);   
  •   }
  • }   
此帖出自单片机论坛

最新回复

谢谢分享  详情 回复 发表于 2018-1-24 14:51
点赞 关注
 

回复
举报

111

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
二、文档
(注:文档中的电路不是对应上述一楼的程序)

AD9833型高精度可编程波形发生器及其应用.zip (216.49 KB, 下载次数: 169)
此帖出自单片机论坛
 
 

回复

111

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
再上个程序,要试验调试才知道是否可行
  • #include "reg51.h"  
  • sbit    dds_en=P1^5;   
  • sbit    dds_clk=P1^6;   
  • sbit    dds_dat=P1^7;   
  • unsigned    char    control;   

  • void delay(unsigned     int T)   
  • {   

  • while(T){   
  •     T--;   
  •     }   
  • }   

  • void    write_2byte(unsigned    int a){     //write 2 byte to dds  
  •     unsigned char   i   ;   
  •     dds_clk=1;   
  •     dds_dat=1;   
  •     dds_en=1;   
  •     control=0;   
  •     delay(1000);   
  •     dds_clk=1;   
  •     delay(2);   
  •     dds_en=0;   

  • for(i=0;i<16;i++){   

  • if(a&0x8000){dds_dat=1;}   

  • else    dds_dat=0;   
  •         dds_clk=0;   
  •         delay(5);   
  •         dds_clk=1;   
  •         a=a<<1;   
  •     }   
  •     delay(2);   
  •     dds_en=1;   
  •     dds_clk=0;   
  •     delay(1000);   
  •     control=1;   
  •     }   

  • void    init_dds(void){   
  •         write_2byte(0x2100);   
  •         write_2byte(0x2000);   
  •         write_2byte(0x4000);   
  •         write_2byte(0x403F);   
  •         write_2byte(0x8000);   
  •         write_2byte(0x803F);   
  •         write_2byte(0xC000);   
  •         write_2byte(0xF000);   
  •         write_2byte(0x2000);   
  •         }   

  • void    output(unsigned long freq_value){              
  •         unsigned long dds;   
  •         unsigned int dds1,dds2;   
  •         dds=freq_value*11.18481067;   
  •         dds=dds<<2;   
  •         dds1=dds;   
  •         dds2=dds>>16;   
  •         dds1=dds1>>2;   
  •         dds2=dds2&0x7FFF;   
  •         dds2=dds2|0x4000;   
  •         dds1=dds1&0x7FFF;   
  •         dds1=dds1|0x4000;   
  •         write_2byte(0x2000);   
  •         write_2byte(dds1);   
  •         write_2byte(dds2);   
  •         }   

  • void    scan(unsigned   long    first,unsigned  long    step,unsigned   long    end){   
  •             unsigned    long    temp,jj;   

  • for(temp=first;temp  
  •   


此帖出自单片机论坛
 
 
 

回复

111

帖子

0

TA的资源

五彩晶圆(初级)

4
 
DDS调试心得(转自:哈罗火腿)

DDS调试心得.zip (1.21 MB, 下载次数: 172)
此帖出自单片机论坛

赞赏

1

查看全部赞赏

 
 
 

回复

19

帖子

0

TA的资源

纯净的硅(初级)

5
 
谢谢 老师的资料
此帖出自单片机论坛
 
 
 

回复

29

帖子

0

TA的资源

纯净的硅(中级)

6
 
多谢老师提供的资料,不过9833好像很贵啊
此帖出自单片机论坛
 
 
 

回复

111

帖子

0

TA的资源

五彩晶圆(初级)

7
 
原帖由 TSB53 于 2009-5-29 11:48 发表
多谢老师提供的资料,不过9833好像很贵啊


AD9833还算便宜的,AD9852更贵,要一百好几。我手上有两片AD9852,但是他是四边小贴片的,没做板子无法焊接,所以裸片应该还在,不知道还能不能找得到。
AD98系列DDS价钱都很贵,照买不误!报就是了。
此帖出自单片机论坛

赞赏

1

查看全部赞赏

 
 
 

回复

29

帖子

0

TA的资源

纯净的硅(中级)

8
 
原帖由 tsb00 于 2009-5-31 01:37 发表


AD9833还算便宜的,AD9852更贵,要一百好几。我手上有两片AD9852,但是他是四边小贴片的,没做板子无法焊接,所以裸片应该还在,不知道还能不能找得到。
AD98系列DDS价钱都很贵,照买不误!报就是了。

爽,一个“报”字解决问题哈:P
此帖出自单片机论坛
 
 
 

回复

375

帖子

0

TA的资源

五彩晶圆(高级)

9
 

下了看看啊!学习学习啊!

下了看看啊!学习学习啊!
此帖出自单片机论坛
 
个人签名我可以做的更好
 
 

回复

375

帖子

0

TA的资源

五彩晶圆(高级)

10
 

大家下载看看吧

大家下载看看吧
此帖出自单片机论坛
 
个人签名我可以做的更好
 
 

回复

174

帖子

0

TA的资源

五彩晶圆(初级)

11
 
多谢多谢。
此帖出自单片机论坛
 
 
 

回复

618

帖子

0

TA的资源

一粒金砂(中级)

12
 
现在在调试AD9833模块,玩一下!谢谢!
此帖出自单片机论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

13
 
此帖出自单片机论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

14
 

mark

谢谢共享哈!!!
此帖出自单片机论坛
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(初级)

15
 
谢谢分享
此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表