最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

AD9832

来源:动视网 责编:小OO 时间:2025-09-24 17:12:28
文档

AD9832

基于AD9832的两相正弦信号发生器程序设计(C语言)2010-03-3014:22/*********************************************************************山东科技大学电气工程研究所开发人员:柴龙庆软件功能:初始化DDS接口简介:SDA9832_A——DDS_A_SDATASDA9832_B——DDS_B_SDATASCLK9832——DDS_SCLKSY9832——DDS_FSYNC频率可调范围:1Hz-10MHz相位差可调
推荐度:
导读基于AD9832的两相正弦信号发生器程序设计(C语言)2010-03-3014:22/*********************************************************************山东科技大学电气工程研究所开发人员:柴龙庆软件功能:初始化DDS接口简介:SDA9832_A——DDS_A_SDATASDA9832_B——DDS_B_SDATASCLK9832——DDS_SCLKSY9832——DDS_FSYNC频率可调范围:1Hz-10MHz相位差可调
基于AD9832的两相正弦信号发生器程序设计(C语言) 

2010-03-30 14:22

 /*********************************************************************

                    山东科技大学电气工程研究所

 开发人员:柴龙庆          

 软件功能:初始化DDS

 接口简介: 

     SDA9832_A —— DDS_A_SDATA

     SDA9832_B —— DDS_B_SDATA

     SCLK9832 —— DDS_SCLK

     SY9832    —— DDS_FSYNC

 频率可调范围:1Hz-10MHz

 相位差可调范围:0°- 360°

 **********************************************************************/

 #include "C8051F360.h"

 #include "math.h"

sbit SDA9832_A=P2^0;

 sbit SDA9832_B=P2^3;

 sbit SCLK9832=P2^1;

 sbit SY9832=P2^2;

unsigned int wwA[]={0x3000,0x2100,0x3200,0x2300,0x1800,0x0900,0x6000,0xc000};

 unsigned int wwB[]={0x3000,0x2100,0x3200,0x2300,0x1800,0x0900,0x6000,0xc000};

 /***********************************************************************

 函数名称:控制器初始化子函数

     1、void Oscillator_Init()

     2、void Init_Device(void)

 函数功能:

 入口参数:

 出口参数:

 ***********************************************************************/

 void Oscillator_Init()

 {

     SFRPAGE   = CONFIG_PAGE;

     OSCICN    = 0x83;//单片机工作频率24.5MHz

 }

void Init_Device(void)

 {

     Oscillator_Init();

 PCA0MD    = 0x00;

     P2MDOUT   = 0xFF;

     XBR1      = 0x40;

 }

 /***********************************************************************

 函数名称:延时函数,void Delay(unsigned int i)

 函数功能:延时时间为——(0.565i+1.13)uS

 入口参数:

 出口参数:

 ***********************************************************************/

 void Delay(unsigned int i)

 {

 //unsigned char j;

for(i;i>0;i--)

 {}

}

 /***********************************************************************

 函数名称:发送子函数,void SendDate(unsigned int Date)

 函数功能:发送16位地址和数据

 入口参数:

 出口参数:

 ***********************************************************************/

 void SendDate(unsigned int DataA,DataB)

 {

 unsigned int i;

 SY9832=0;   //When this input is taken low, the internal logic is informed that a Date is being loaded into the device.

 SCLK9832=1;   //Date is clocked into the AD9832 on each falling SCLK edge.

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

 {

    SCLK9832=1;

DataA<<=1;

    SDA9832_A=CY;

DataB<<=1;

    SDA9832_B=CY;

    Delay(1);

    SCLK9832=0;

    Delay(1);

 }

 SCLK9832=1;

 SY9832=1;

 }

/***********************************************************************

 函数名称:AD9832初始化子函数,void AD9832Init(void)

 函数功能:发送16位地址和数据

 入口参数:

 出口参数:

 ***********************************************************************/

 /*void AD9832Init(void)

 {

 SY9832=1;

    SendDate(0xf800);//复位AD9832

 SendDate(0xb000);//用位选择频率相位寄存器

 SendDate(0x3088);//分四次把频率控制字送入寄存器0

 SendDate(0x2188);

 SendDate(0x3288);

 SendDate(0x2300);

 SendDate(0x1800);//初始化相位寄存器0

 SendDate(0x0900);

 SendDate(0x6000);//选择频率寄存器0、相位寄存器0

 SendDate(0xc000);//AD9832开始输出

 }

 */

 /***********************************************************************

 函数名称:

 函数功能:

 入口参数:

 出口参数:

 ***********************************************************************/

 void Output(float freq,phaseA_B)

 {

 unsigned long ddsf,ddsp;

 unsigned char ddsf1,ddsp1,i,j;

 ddsf=freq*pow(2,32)/25e6;

 ddsp=phaseA_B*pow(2,12)/360;

 //dds1=dds;

 //ww[0]=dds1|0x3000;

//dds1 =dds>>8;

 //ww[1]=dds1;

for(i;i<4;i++)

 {

ddsf1=ddsf>>i*8;

    wwA[i]=ddsf1|wwA[i];

    wwB[i]=wwA[i];

 }

for(j;j<2;j++)

 {

ddsp1=ddsp>>j*8;

    wwB[j+4]=ddsp1|wwB[j+4];

 }

}

/***********************************************************************

 函数名称:主函数,void AD9832Init(void)

 函数功能:

 入口参数:

 出口参数:

 ***********************************************************************/

 void main ()

 {   char i;

 Init_Device();

 Output(50,120);

 SendDate(0xD800,0xD800);//复位AD9832

 Delay(100);

 SendDate(0x9000,0x9000);//用位选择频率寄存器和相位偏移寄存器

for(i=0;i<8;i++)

 {

    SendDate(wwA[i],wwB[i]);

 }

 Delay(100);

     for(;;){}

 }

文档

AD9832

基于AD9832的两相正弦信号发生器程序设计(C语言)2010-03-3014:22/*********************************************************************山东科技大学电气工程研究所开发人员:柴龙庆软件功能:初始化DDS接口简介:SDA9832_A——DDS_A_SDATASDA9832_B——DDS_B_SDATASCLK9832——DDS_SCLKSY9832——DDS_FSYNC频率可调范围:1Hz-10MHz相位差可调
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top