📄 main.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 + -