⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dds9851.c

📁 数字频率合成器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 + -