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

📄 ad9834asm.c

📁 该程序是完整的9834的测试程序
💻 C
字号:
/***************************************
AD9834
//AD8333
AD8370
AD5235BRUZ2
AD9952
USB
SPI
AD
****************************************/
 
/*****************************************************
AD9834波形产生程序
*****************************************************/
#include
#include
#include 

sbit FSYNC_1=P1^0;
sbit SDATA_1=P1^1;
sbit SCLK_1=P1^2;
sbit FSYNC_2=P1^3;
sbit SDATA_2=P1^4;
sbit SCLK_2=P1^5;

#define FCLK 50
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long

/**************************
发送控制字
**************************/
void Send_Con(uint Con_word)
{
uchar i;
FSYNC_1=0;
for(i=0;i<16;i++)
{
SDATA_1=Con_word&0x8000;
Con_word<<=1;
SCLK_1=0;
SCLK_1=1;
} 
FSYNC_1=1; 
}
/***********************************************************************************
初始化函数:
-------------------------------------------------------------------
功能:软件位控制,IOUT正弦波,SIGNBITOUT方波,写FREQREG0,写PHASE0
Send_Con(0x2038)   一次性写FREQREG0
Send_Con(0x0038)   单独改写FREQREG0的LSB
Send_Con(0x1038)   单独改写FREQREG0的MSB
-------------------------------------------------------------------
功能:软件位控制,IOUT三角波写FREQREG0,写PHASE0
Send_Con(0x2002)   一次性写FREQREG0
Send_Con(0x0002)   单独改写FREQREG0的LSB
Send_Con(0x1008)   单独改写FREQREG0的MSB************************************************************************************/

/****************************
发送频率字
****************************/
void Send_Freq(uint Freq_word)
{
uchar i;
FSYNC_1=0;
for(i=0;i<16;i++)
{
SDATA_1=Freq_word&0x8000;
Freq_word<<=1;
SCLK_1=0;
SCLK_1=1;
} 
FSYNC_1=1; 
}

/*****************************
发送相位字
注:根据情况可设定入口参数,设置相位
*****************************/
void Send_Phase(uint Phase_word)
{
  Send_Con(0xC000);   //设置初相位为0
}


/*******************************************************
设置频率值   Freq_value(value)=Freq_data(data)*FCLK/2^28
2^28=268435456=0x10000000
*******************************************************/
void main()
{
ulong Freq_value
ulong value1,value2;
uint LSB_D,MSB_D;
SCLK_1=1;
FSYNC_1=1;
value1=Freq_value;
value2=Freq_value;
LSB_D=(value1/0x4000)+0x4000;  //写FREQ0 REG 的LSB
MSB_D=(value2%0x4000)+0x4000;   //写FREQ0 REG 的MSB
Send_Con(0x2038);    //DDS初始化设置,IOUT正弦波,SIGNBITOUT方波,一次性写FREQREG0
Send_Freq(LSB_D);
Send_Freq(MSB_D);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -