📄 ad9851.h
字号:
#define uchar unsigned char
#define lint long int
#define uint unsigned int
//--------- AD9851控制IO定义------------------------
sbit load=P3^5; //AD9851信号更新位FQ_UP
sbit clk=P3^6; //写控制字时钟WCLK
sbit dat=P3^7; //数据位D7
void delay(uint t)
{
uint i;
while(t--)
{
/* 对于12M时钟,约延时1ms */
for (i=0;i<125;i++)
{}
}
}
void ad9851_reset() //初始化
{
clk=0;
load=0;
clk=1;
clk=0;
load=1;
load=0;
}
void write_dds(unsigned long dds)
{
uchar temp=0x80;
uchar i;
load=0;
clk=0;
for(i=0;i<40;i++)
{
clk=0;
delay(10);
if( (dds&0x00000001) || (i==32) )
{
dat=1;
}
else dat=0;
delay(10);
clk=1;
dds=dds>>1;
}
load=1;
clk=0;
delay(10);
load=0;
}
void write_freq(unsigned long frequency)
{
frequency=(unsigned long)(23.860929422*frequency); //使用30M*6晶振,frequence就是所要输出的频率
write_dds(frequency);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -