📄 ad9851.c
字号:
#include<reg52.h>
#include"AD9851.H"
void ad9851_reset() //初始化
{
w_clk=0;
fq_ud=0;
w_clk=1;
w_clk=0;
fq_ud=1;
fq_ud=0;
}
void ad9851_write(uchar m,lint k) //写控制字
{
uchar i;
fq_ud=0;
for(i=0;i<32;i++)
{
if(((k>>i)&1)==1) sdata=1;
else sdata=0;
w_clk=1;
w_clk=0;
}
for(i=0;i<8;i++)
{
if(((m>>i)&1)==1) sdata=1;
else sdata=0;
w_clk=1;
w_clk=0;
}
fq_ud=1;
fq_ud=0;
}
lint ad9851_cal(lint k) //频率计算
{
return(fins*k);
}
uchar ad9851_phase(uint k) //相位计算
{
uchar i;
i=k/phs;
return((i<<3)|0x01);
}
void ad9851(lint Frequency,uint phase)
{
lint i;
uchar k;
reset=0;
ad9851_reset();
i=ad9851_cal(Frequency);
k=ad9851_phase(phase);
ad9851_write(k,i);
P1=~k;
}
void main()
{
ad9851(1045000,0); //写入频率值和相位值,当前频率为1.045MHz,相位为0
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -