返回该小组首页 回复主题
likee

likee

小组等级:     E币:811  (E币换礼)

#1楼主:全国赛我们组写的用51控制AD9954的程序,发上来给大家分享一下.

文章发表于:2007-11-16 04:04

#include<reg52.h>
#define PLL_M 6
#define Fclk  (20*1000000*PLL_M)   //时钟频率
#define uchar unsigned char
#define uint  unsigned int

sbit OSK="P1"^5; //
sbit PS0=P1^6;  //
sbit PS1=P1^7;  // RAM选择控制寄存器选择位 /////////自动扫描模式下必须保持0
/*********************************************/

/*********************************************/

sbit IO_UPDATE=P2^0;                            
sbit SDIO="P2"^1; //数据上升沿写入,下降沿读出
sbit SCLK="P2"^2;
sbit _CS=P2^3;
sbit SDO="P2"^4;      //可以不要
sbit IOSYNC="P2"^5;   //保持低电平
sbit RESET="P2"^6;   //保持低电平
sbit PWRDWNCTL="P2"^7;//保持低电平
             

 
void delay10ms()
{uchar i,j;
 for(i=248;i>0;i--)
 for(j=20;j>0;j--);
}


void AD9954_init()
{ IO_UPDATE=0; 
  RESET="0";
  PWRDWNCTL="0";
  IOSYNC="0";
  OSK="0";
   _CS=1;                                                   
  SDIO="0";

}


void run()
{
IO_UPDATE=0;
IO_UPDATE=0;
IO_UPDATE=0;
IO_UPDATE=1;
IO_UPDATE=1;
IO_UPDATE=1;

}


void write_a_byte(uchar  w_data)
{
 uchar i;
 for(i=0;i<8;i++)
  {
   SDIO=(w_data&0x80);
   w_data<<=1;
   SCLK="0";
   SCLK="0";
   SCLK="1";
   SCLK="1";
  }
}

//********************** 写控制字1 ****************************/

void write_CFR1(uchar w1,uchar w2,uchar w3,uchar w4)
{_CS=0;
 _CS=0;
 write_a_byte(0x00);
 write_a_byte(w1);
 write_a_byte(w2);
 write_a_byte(w3);
 write_a_byte(w4);
 _CS=1;
 _CS=1;
}
 
//********************** 写控制字2 ****************************/
  //*************  主要确定PLL倍频控制字M*********************/

void write_CFR2(uchar w1,uchar w2,uchar w3)
{_CS=0;
 _CS=0;
 write_a_byte(0x01);
 write_a_byte(w1);
 write_a_byte(w2);
 write_a_byte(w3);
 _CS=1;
 _CS=1;
}


//**********************写幅度转换字****************************/

void write_ASF(uchar w1,uchar w2)
{_CS=0;
 _CS=0;
 write_a_byte(0x02);
 write_a_byte(w1);
 write_a_byte(w2);
 _CS=1;
 _CS=1;
}

//**********************写幅度转换速度字****************************/


void write_ARR(uchar w1)
{_CS=0;
 _CS=0;
 write_a_byte(0x03);
 write_a_byte(w1);
 _CS=1;
 _CS=1;
}

//**********************写频率转换字FTW1****************************/

void write_FTW0(uchar w1,uchar w2,uchar w3,uchar w4)
{_CS=0;
 _CS=0;
 write_a_byte(0x04);
 write_a_byte(w1);
 write_a_byte(w2);
 write_a_byte(w3);
 write_a_byte(w4);
 _CS=1;
 _CS=1;
}

//**********************写相位偏移字****************************/

void write_POW0(uchar w1,uchar w2)
{_CS=0;
 _CS=0;
 write_a_byte(0x05);
 write_a_byte(w1);
 write_a_byte(w2);
 _CS=1;
}

//**********************写频率转换字2****************************

void write_FTW1(uchar w1,uchar w2,uchar w3,uchar w4)
{_CS=0;
 _CS=0;
 write_a_byte(0x06);

 write_a_byte(w1);
 write_a_byte(w2);
 write_a_byte(w3);
 write_a_byte(w4);
 _CS=1;
}


main()
{
 uint i;


 for(i=200;i>0;i--)
 delay10ms();

 AD9954_init();

while(1)
{
 for(i=200;i>0;i--)
 delay10ms();

 write_CFR1(0x02,0x00,0x02,0x00);
 
 write_CFR2(0x00,0x02,0x30);//  写PLL_M=6, 必不可少

 write_ASF(0x10,0x00);

 write_FTW0(0x01,0x00,0x00,0x00);

 write_POW0(0x00,0x01);

 run();
 while(1);

}


}

      【回复】

yangchming

   小组等级:    E币:58  (E币换礼)

#2

文章发表于:2007-11-16 21:04

谢谢啦,楼主真是强淫啊 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

power_on

   小组等级:    E币:118  (E币换礼)

#3

文章发表于:2007-11-18 10:24

谢谢啦!

ls_wei

   小组等级:    E币:51  (E币换礼)

#4

文章发表于:2007-11-25 03:07

能工作吗?

visualcnet

   小组等级:    E币:69  (E币换礼)

#5

文章发表于:2007-11-25 23:54

现在的全国赛讲的就是靠元件的集成度和质量的好坏.考查学生的基础知识比重越来越少.

jiang228

   小组等级:    E币:51  (E币换礼)

#6

文章发表于:2007-12-17 11:17

谢谢,楼主

你的程序我已经借用,但是没出来信号,请问你的程序最后出来结果了么,你是采用的那种模式,定频、扫频、还是RAM控制

 

likee

   小组等级:    E币:811  (E币换礼)

#7

文章发表于:2007-12-26 09:56

ram的调不出来.有点问题.

laoma1985311

   小组等级:    E币:5  (E币换礼)

#8

文章发表于:2008-03-30 14:59

你好,我用您的程序调试AD9954,可一直没信号出来,您能出来吗?

laoma1985311

   小组等级:    E币:5  (E币换礼)

#9

文章发表于:2008-03-30 15:01

老兄,你还有AD9954的设计电路图马? 有的话,能否给我一份?

likee

   小组等级:    E币:811  (E币换礼)

#10

文章发表于:2008-04-05 19:18

电路图在官方网站上有下载.我宿舍里有.

y469262292

   小组等级:    E币:55  (E币换礼)

#11

文章发表于:2008-04-15 15:28

能不能给我发个电路图,我最近正在做毕业设计,给个电路图参考一下,感激不尽!yhcyuhongcheng@126.com麻烦您了!

总共 , 当前 /,2【下一页】

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

浏览该小组的用户还看过...

设计资源与分销

赞助商链接

";