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

📄 main.c

📁 用51单片机控制AD9851产生正弦信号的源程序
💻 C
字号:
/*
*Author hejun
*Date   2006_7_14
*/

/*SystemClock=180MHz*/
//F_out=10MHz 	FrqDWord=238609294;	W1=0x0e; W2=0x38; W3=0xe3; W4=0x83;//(W1=Freq–b31__Freq–b3Freq–b24)
//F_out=5MHz 	FrqDWord=119304647;	W1=0x07; W2=0x1c; W3=0x71; W4=0xc7;//(W1=Freq–b31__Freq–b3Freq–b24)
//F_out=1MHz 	FrqDWord=23860929;	W1=0x01; W2=0x6c; W3=0x16; W4=0xc1;//(W1=Freq–b31__Freq–b3Freq–b24)
//F_out=100kHz 	FrqDWord=2386093;	W1=0x00; W2=0x24; W3=0x68; W4=0xad;//(W1=Freq–b31__Freq–b3Freq–b24)
//F_out=50kHz 	FrqDWord=1193046;	W1=0x00; W2=0x12; W3=0x34; W4=0x56;//(W1=Freq–b31__Freq–b3Freq–b24)
//F_out=10kHz 	FrqDWord=238609;	W1=0x00; W2=0x03; W3=0xa4; W4=0x11;//(W1=Freq–b31__Freq–b3Freq–b24)
//F_out=5kHz 	FrqDWord=119305;	W1=0x00; W2=0x01; W3=0xd2; W4=0x09;//(W1=Freq–b31__Freq–b3Freq–b24)
//F_out=1kHz 	FrqDWord=23861; 	W1=0x00; W2=0x00; W3=0x5d; W4=0x35;//(W1=Freq–b31__Freq–b3Freq–b24)
//F_out=100Hz 	FrqDWord=2386; 		W1=0x00; W2=0x00; W3=0x09; W4=0x52;//(W1=Freq–b31__Freq–b3Freq–b24)
#include <at89X52.h>
#define RESET  P1_0
#define W_CLK  P1_1
#define FQ_UD  P1_2
#define STROBE P1_3
#define DDSData		P2 
unsigned char W0,W1,W2,W3,W4;   

/*
void delay_1s(void)
{
	unsigned char i;
	
	TMOD &= 0xf0;
	TMOD |= 0x01;
	TR0=1;
	
	for( i=0; i<20 ; i++)		
	{
		
		TH0=0x4c;TL0=0x00;		//定时50毫秒
		while(!TF0);
		TF0=0;
	}
	
	TR0=0;
}
*/
/*
void debug()
{
	unsigned int j;
 	unsigned int i;
	
	for(j=100;j>0;j--)
	for(i=250;i>0;i--);
	
	P0_0= 0;
	P0_1= 1;

	P1_4=1;
	while(P1_4);
	
	P0_0= 1;
	P0_1= 0;
}
*/
void enable(void)
{
	//unsigned char cnt=0;
	STROBE=0;
	//cnt++;cnt++;
	STROBE=1;//还可以在STROBE=0;STROBE=1;之间加cnt++延时
}
void init()
{ 
    unsigned char cnt=0;
     
    RESET=0; enable();
    //cnt++;
    RESET=1; enable();
    //cnt++;cnt++;cnt++;cnt++;cnt++;cnt++;cnt++;cnt++;cnt++;cnt++;
    RESET=0;  enable(); //AD9851复位   
}
void load_40bit_data()
{
	unsigned char cnt=0;      //无用只对其操作只作延时用;
	
	FQ_UD=0; enable();
	
	W_CLK=0; enable();
	DDSData=W0;enable();
	W_CLK=1; enable();
	
	W_CLK=0;enable();
	DDSData=W1;enable();
	W_CLK=1;enable();
	
	W_CLK=0;enable();
	DDSData=W2;enable();
	W_CLK=1;enable();
	
	W_CLK=0;enable();
	DDSData=W3;enable();
	W_CLK=1;enable();
	
	W_CLK=0;enable();
	DDSData=W4;enable();
	W_CLK=1;enable();
	
	W_CLK=0;enable();
	FQ_UD=1;enable();
	FQ_UD=0;enable();
}


void main()
{
	
	W0=0x01;				//Enable 6′ REFCLK Multiplier 
	W1=0x01; W2=0x6c; W3=0x16; W4=0xc1;     //f_out=1MHz
    //W1=0x00; W2=0x00; W3=0x5d; W4=0x35;    //f_out=1KHz
	init();
	load_40bit_data();
	while(1)P0=0;
}

⌨️ 快捷键说明

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