• 大小: 67KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: 其他
  • 标签: 51  9852  

资源简介

51控制AD9852 频率幅度可调

资源截图

代码片段和文件信息

#include“delay.h“
#include“typedefine.h“
#include“ad9852.h“
unsigned char  AD9852_Data[6];
//={0x400xA70x0D0x740xDA0x00};
unsigned char  Dutyfactor_Data[2];
unsigned int   Dutyfactor;
unsigned long  Crystal_CLOCK=50000000;
unsigned long  base_SYSCLK=250000000;
unsigned char  Triangle_bit;
unsigned char  AD9852_Reset_flag;
unsigned char  Chirp_freq_changes_direction;
unsigned char OutputShapedKeying_enable_flag=1;
unsigned char OutputSincFilter_enable_flag=0;
unsigned char Triangle_bit=0;
unsigned char AD9852_Reset_flag=1;
bdata unsigned char temp;
sbit temp0=temp^0;
sbit temp1=temp^1;
sbit temp2=temp^2;
sbit temp3=temp^3;
sbit temp4=temp^4;
sbit temp5=temp^5;
sbit temp6=temp^6;
sbit temp7=temp^7;

void AD9852_Write_Reg (uchar ADDRuchar *AD9852_Data)    //根据已有的地址ADDR和DATA 写数据到AD9852
{
char numi;
AD9852_Set_IORESET;
DelayMs(2);
AD9852_Clr_IORESET;
AD9852_Set_CS;
AD9852_Clr_SCLK;
if(ADDR==0||ADDR==1||ADDR==8||ADDR==9||ADDR==0x0b)
num=2;
else if(ADDR==0x0a)
num=1;
else if(ADDR==6)
num=3;
else if(ADDR==5||ADDR==7)
num=4;
else num=6;
AD9852_Clr_CS;
// AD9852_Clr_IOUD;
temp=ADDR;
for(i=7;i>=0;i--)
{
AD9852_Clr_SCLK;
AD9852_SDIO=temp7;
AD9852_Set_SCLK;
temp<<=1;
}
for(;num>0;num--)
{
temp=AD9852_Data[num-1];
for(i=7;i>=0;i--)
{
AD9852_Clr_SCLK;
AD9852_SDIO=temp7;
AD9852_Set_SCLK;
temp<<=1;
}
}
// DelayMs(5);
// AD9852_Set_IOUD;
AD9852_Set_IOUD;
DelayMs(2);
AD9852_Clr_IOUD;
AD9852_Clr_SCLK;
AD9852_Set_CS;
}

/*****************************************************  
发送控制字  
*****************************************************/   
void Send_Con(uint Con_word)   
{   
uchar i;   
AD9852_Clr_CS;                        //低电平使数据有效    
for(i=0;i<16;i++)                //传输16位控制字    
{   
AD9852_SDIO=Con_word&0x8000;          //最高位不变,最高位赋给SDATA    
Con_word<<=1;                 //控制字左移一位,准备下一次    
AD9852_SCLK=0;                         //产生下降沿,传输SDATA    
AD9852_SCLK=1;            
}    
AD9852_Set_CS;                        //高电平,无效    
}

/*void AD9852_Write_Reg(uchar Addruchar *pDatuchar DataLen)
{

uchar i=0;
AD9852_Set_IORESET;
DelayUs2x(10);
AD9852_Clr_IORESET;
AD9852_ByteSend(Addr);
for(i=0;i {
AD9852_ByteSend(pDat[i]);
}
AD9852_Set_IOUD;
DelayUs2x(100);
AD9852_Clr_IOUD;
}
*/
void AD9852_Set_Frequency(uchar ADDR_FREQulong frequency)
{
//FTW = (Desired Output Frequency × 2^N)/SYSCLK
double k;
unsigned long j;
//2^48/1M=281474976.710656
k=(2147483648/N*4/CLK);
k=k*512/15625;
k=k*frequency;
j=k/65536;
k=(k/65536-j)*65536;
AD9852_Data[2]=j;
j>>=8;
AD9852_Data[3]=j;
j>>=8;
AD9852_Data[4]=j;             
j>>=8;
AD9852_Data[5]=j;
j=k;
AD9852_Data[0]=0x88;
AD9852_Data[1]=0x88;

AD9852_Write_Reg(ADDR_FREQAD9852_Data);
}
/*void AD9852_Set_Delta_Frequency(ulong frequency)
{
unsigned long long FTW=281474976710656/base_

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-12-02 10:31  DDS模块\
     文件        6589  2012-07-08 18:12  DDS模块\ad9852.c
     文件        2754  2012-07-08 18:13  DDS模块\ad9852.h
     文件       13849  2012-07-08 18:24  DDS模块\ad9852.LST
     文件       14700  2012-07-08 18:24  DDS模块\ad9852.OBJ
     文件         463  2011-08-06 09:45  DDS模块\delay.c
     文件         651  2011-08-06 11:47  DDS模块\delay.h
     文件        1502  2012-07-08 18:24  DDS模块\delay.LST
     文件        1120  2012-07-08 18:24  DDS模块\delay.OBJ
     文件        2499  2011-08-10 10:03  DDS模块\LCD.c
     文件         189  2011-08-10 10:03  DDS模块\LCD.h
     文件        4918  2011-08-10 11:56  DDS模块\LCD.LST
     文件        5513  2011-08-10 11:56  DDS模块\LCD.OBJ
     文件        6812  2012-07-08 18:24  DDS模块\main.c
     文件       14297  2012-07-08 18:24  DDS模块\main.LST
     文件       19024  2012-07-08 18:24  DDS模块\main.OBJ
     文件       31003  2012-07-08 18:24  DDS模块\Signal Generator
     文件       11353  2012-07-08 18:24  DDS模块\Signal Generator.hex
     文件          81  2012-07-08 18:24  DDS模块\Signal Generator.lnp
     文件       27645  2012-07-08 18:24  DDS模块\Signal Generator.M51
     文件        2940  2011-08-29 11:01  DDS模块\Signal Generator.opt.bak
     文件        2065  2011-08-06 12:16  DDS模块\Signal Generator.Uv2.bak
     文件       58199  2013-12-02 10:31  DDS模块\Signal Generator.uvopt
     文件       13573  2012-06-28 17:08  DDS模块\Signal Generator.uvproj
     文件        2940  2011-08-27 16:57  DDS模块\Signal Generator_Opt.Bak
     文件        2233  2011-08-06 11:50  DDS模块\Signal Generator_Uv2.Bak
     文件       59363  2013-11-30 14:06  DDS模块\Signal Generator_uvopt.bak
     文件         146  2011-08-06 11:50  DDS模块\typedefine.h

评论

共有 条评论