资源简介
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
- 上一篇:labview音乐喷泉
- 下一篇:PIC16LF1829程序
相关资源
- IAR-8051-V8.30+破解器链接
- 51单片机ADC0809测电压12864显示程序
- 51单片机超声波测距1602显示
- MCP2551+mcp2515
- 51单片机16x16点阵程序
- 基于STC89C51单片机的数字抢答器——毕
- 51单片机智能扫地机器人
- Proteus仿真AD0808
- 基于51单片机的万年历
- 51单片机频率计设计
- 51_I2C模拟通信
- 51单片机资料\\基于单片机的函数信号
- AD9851频率、相位控制字
- M_51NET.rar
- MSP430G2553 DAC+ADC 简单应用,用nokia 51
- 相位计c51程序.txt
- mpu6050 51程序
- VDM51.dll
- 51单片机串口通信程序 含详细
- 小直流电机调速控制系统
- 51单片机AD转换程序及仿真图
- 数字电压表的设计 完整版
- 51单片机 矩阵键盘计算器
- 亲测Cadence5141可用license
- 基于51单片机SHT11温湿度传感器检测程
- 8051单片机最小系统电路原理图
- 51单片机和proteus仿真红外遥控
- 8f8c313c51b9106c29d322b46802692f.7z
- b7bc79d087b2d734fb41e951f0b7454e.rar
- 51单片机秒表课程设计
评论
共有 条评论