您的位置 首页 汽车

AD9850(DDS)驱动程序

串行时序includereg51h>sbitad9850_fq_up=P1^1;接ad9850的fq_up脚sbitad9850_bit_data=P1^2;接ad9850的D

//串行时序

#include sbit ad9850_fq_up    =P1^1;  //接ad9850的fq_up脚sbit ad9850_bit_data =P1^2;  //接ad9850的D7脚sbit ad9850_w_clk    =P1^3;  //接ad9850的w_clk脚//***************************************************////          向ad9850中写指令(串口)             ////---------------------------------------------------//void ad9850_wr_com(unsigned char w, double frequence){unsigned char i;unsigned long int M;//核算频率值frequence=frequence*85.89934592+0.5; //合适50M晶振  f=fclk*M/2^32即M=f*2^32/fclkM=frequence;        //频率操控字ad9850_w_clk=0;       //初始化 ad9850_fq_up=0;//写频率操控字for(i=0;i<32;i++)       //接连写入32位频率操控字{ad9850_w_clk=0;ad9850_bit_data=(bit)((M>>i)&0x0001);ad9850_w_clk=1;         //上升沿写入数据}//写相位操控字  for(i=0;i<8;i++)        //需求w<=32  相位有180、90、45、22.5、11.25以及它们的组合。{ad9850_w_clk=0;ad9850_bit_data=(bit)(w>>i)&0x01;ad9850_w_clk=1;         //上升沿写入数据}//移入始能 ad9850_fq_up=0;       ad9850_fq_up=1;         //上升沿将40位数一次性打入数据寄存器}void main(){ad9850_wr_com(0,1000000);    while(1);}//该芯片运用简略,新手或许困惑于相位,如无特殊情况相位设置为0即可,如需参阅不明白处可留言。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/255242.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部