📄 ad9851.c
字号:
/*************************DDS信号源芯片AD9851****************/
/* 采用IO口方式:
单片机 ---- AD9851
P2^6 ---- W_CLK
P2^5 ---- FQ_UD
P2^4 ---- RESET
*/
#include<reg52.h>
#include<absacc.h>
#include<math.h>
#include<intrins.h>
#define uint unsigned int
#define ulong unsigned long
#define uchar unsigned char
#define nop _nop_()
#define Kf 2147.48 //定义频率控制字系数 Kf=2^32/SCLOCK 此处用SCLK=2M
sbit W_CLK=P2^6;
sbit FQ_UD=P2^5;
sbit RESET=P2^4;
void DDS(float f);
ulong FnDDS(float f);
void DDS(float f)
{
uchar i;
ulong Dn;
uchar W[5];
Dn=FnDDS(f);
W[0]=0x00; //若用6倍频则取 W[0]=01;
W[1]=(Dn&0xff000000)>>24;
W[2]=(Dn&0x00ff0000)>>16;
W[3]=(Dn&0x0000ff00)>>8;
W[4]=Dn&0x000000ff;
RESET=0;
RESET=1;
nop;
RESET=0;
FQ_UD=0;
W_CLK=0;
for(i=0;i<5;i++)
{
P0=W[i];
W_CLK=1;
nop;
W_CLK=0;
}
nop;
FQ_UD=1;
nop;
FQ_UD=0;
}
ulong FnDDS(float f)
{
ulong temp;
temp=Kf*f;
return temp;
}
void main()
{
P0=0xff;
DDS(1000);
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -