📄 dds9851.c
字号:
//========================================================================
//AD9850.c开始
//=========================================================================
//============================================================
//日期:2007.04.10
//作者:张丰盛
//审核:张丰盛
//============================================================
/*
//============================================================
include "spce061a.h"
#define AD9850_FQ_UD IOA6
#define AD9850_DATA IOA5
#define AD9850_W_CLK IOA7
//============================================================
//============================================================
//函数名称:void AD9850(unsigned long int frq)
//函数功能:给AD9850送入频率数据
//输入参数:频率参数
//输出参数:无
//日期:2007.04.10
//============================================================
void AD9850(unsigned long int frq)
{
unsigned int i;
unsigned int ioa;
unsigned int Comm=0x0001; //AD9850的相关控制字
AD9850_FQ_UD=0; //FQ_UD=0
for(i=32;i>0;i--)
{
AD9850_W_CLK=0; //CLK=0;
if(frq&0x00000001)
AD9850_DATA=1;
else
AD9850_DATA=0;
AD9850_W_CLK=1; //CLKL=1;
frq=frq>>1;
}
for(i=8;i>0;i--) //相位
{
AD9850_W_CLK=0; //CLK=0;
if(Comm&0x0001)
AD9850_DATA=1;
else
AD9850_DATA=0;
AD9850_W_CLK=1; //CLKL=1;
Comm=Comm>>1;
}
AD9850_FQ_UD=1; //FQ_UD=1; 频率更新
AD9850_FQ_UD=0; //FQ_UD=0;
}
//============================================================
//============================================================
//函数名称:void dds_inital(void)
//函数功能:dds初始化
//输入参数:无
//输出参数:无
//日期:2007.04.19
//============================================================
void dds_inital(void)
{
unsigned int ioa;
unsigned int i;
AD9850_W_CLK=0; //CLK=0;
i=20;
while(i--);
AD9850_FQ_UD=0; //FQ_UD=0;
i=20;
while(i--);
AD9850_W_CLK=1; //CLK=1;
i=20;
while(i--);
AD9850_W_CLK=0; //CLK=0;
i=20;
while(i--);
AD9850_FQ_UD=1; //FQ_UD=1;
i=20;
while(i--);
AD9850_FQ_UD=0; //FQ_UD=0;
}
*/
//========================================================================
//AD9850.c开始
//=========================================================================
//============================================================
//日期:2007.04.10
//作者:张丰盛
//审核:张丰盛
//============================================================
//============================================================
#include "spce061a.h"
#define Set_AD9850_FQ_UD 0x0080 //IOA6 FQ_UP
#define Clear_AD9850_FQ_UD 0xff7f
#define Set_AD9850_DATA 0x0020 //IOA5 DATA
#define Clear_AD9850_DATA 0xffdf
#define Set_AD9850_W_CLK 0x0040 //IOA7 W_CLK
#define Clear_AD9850_W_CLK 0xffbf
//============================================================
//============================================================
//函数名称:void AD9850(unsigned long int frq)
//函数功能:给AD9850送入频率数据
//输入参数:频率参数
//输出参数:无
//日期:2007.04.10
//============================================================
void AD9850(unsigned long int frq)
{
unsigned int i;
unsigned int ioa;
unsigned int Comm=0x0000; //AD9850的相关控制字
ioa=*P_IOA_Data; //FQ_UD=0;
ioa=ioa&Clear_AD9850_FQ_UD;
*P_IOA_Data=ioa;
for(i=32;i>0;i--)
{
ioa=*P_IOA_Data; //CLK=0;
ioa=ioa&Clear_AD9850_W_CLK;
*P_IOA_Data=ioa;
ioa=*P_IOA_Data;
if(frq&0x00000001)
ioa=ioa|Set_AD9850_DATA;
else
ioa=ioa&Clear_AD9850_DATA;
*P_IOA_Data=ioa;
ioa=*P_IOA_Data; //CLKL=1;
ioa=ioa|Set_AD9850_W_CLK;
*P_IOA_Data=ioa;
frq=frq>>1;
}
for(i=8;i>0;i--) //相位
{
ioa=*P_IOA_Data; //CLK=0;
ioa=ioa&Clear_AD9850_W_CLK;
*P_IOA_Data=ioa;
ioa=*P_IOA_Data;
if(Comm&0x0001)
ioa=ioa|Set_AD9850_DATA;
else
ioa=ioa&Clear_AD9850_DATA;
*P_IOA_Data=ioa;
ioa=*P_IOA_Data; //CLKL=1;
ioa=ioa|Set_AD9850_W_CLK;
*P_IOA_Data=ioa;
Comm=Comm>>1;
}
ioa=*P_IOA_Data; //FQ_UD=1; 频率更新
ioa=ioa|Set_AD9850_FQ_UD;
*P_IOA_Data=ioa;
ioa=*P_IOA_Data; //FQ_UD=0;
ioa=ioa&Clear_AD9850_FQ_UD;
*P_IOA_Data=ioa;
}
//============================================================
//============================================================
//函数名称:void dds_inital(void)
//函数功能:dds初始化
//输入参数:无
//输出参数:无
//日期:2007.04.19
//============================================================
void dds_inital(void)
{
unsigned int ioa;
unsigned int i;
ioa=*P_IOA_Data; //CLK=0;
ioa=ioa&Clear_AD9850_W_CLK;
*P_IOA_Data=ioa;
i=20;
while(i--);
ioa=*P_IOA_Data; //FQ_UD=0;
ioa=ioa&Clear_AD9850_FQ_UD;
*P_IOA_Data=ioa;
i=20;
while(i--);
ioa=*P_IOA_Data; //CLK=1;
ioa=ioa|Set_AD9850_W_CLK;
*P_IOA_Data=ioa;
i=20;
while(i--);
ioa=*P_IOA_Data; //CLK=0;
ioa=ioa&Clear_AD9850_W_CLK;
*P_IOA_Data=ioa;
i=20;
while(i--);
ioa=*P_IOA_Data; //FQ_UD=1;
ioa=ioa|Set_AD9850_FQ_UD;
*P_IOA_Data=ioa;
i=20;
while(i--);
ioa=*P_IOA_Data; //FQ_UD=0;
ioa=ioa&Clear_AD9850_FQ_UD;
*P_IOA_Data=ioa;
}
//============================================================
//============================================================
//函数名称:
//函数功能:
//输入参数:
//输出参数:
//日期:2007.
//============================================================
//============================================================
//============================================================
//函数名称:
//函数功能:
//输入参数:
//输出参数:
//日期:2007.
//============================================================
//============================================================
//============================================================
//函数名称:
//函数功能:
//输入参数:
//输出参数:
//日期:2007.
//============================================================
//============================================================
//============================================================
//函数名称:
//函数功能:
//输入参数:
//输出参数:
//日期:2007.
//============================================================
//============================================================
//============================================================
//函数名称:
//函数功能:
//输入参数:
//输出参数:
//日期:2007.
//============================================================
//============================================================
//=============================================================================
//AD9850.c结束
//=============================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -