电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>规则标准>ad9850-例程

ad9850-例程

2017-12-06 | doc | 37KB | 次下载 | 免费

资料介绍

  //Fout=调制频率控制字*SYSCLK/2的32次方 (SYSCLK=50M) 50M=2faf080 2的32次方=100 000 000 1K=3e8 对应的调制频率控制字=14f8b

  //

  #include《reg52.h》

  #define uchar unsigned char //这里用“uchar”代替“unsigned char”,“uchar”用来定义无符号字符型数。

  #define uint unsigned int //“uint”用来定义无符号整型数。

  sbit w_clk1= P1^0; //AD9850_1的将8bit的频率控制字加载进入数据锁存器 上升沿有效

  sbit fq_ud1=P1^1; //AD9850_1将40bit的控制字加载进入相位累加器 上升沿有效

  sbit Rset1= P1^2; //AD9850_1的复位 上升沿有效

  sbit w_clk2 =P1^4 ; //AD9850_2的将8bit的频率控制字加载进入数据锁存器 上升沿有效

  sbit fq_ud2 =P1^5; //AD9850_2的40bit的控制字加载进入相位累加器 上升沿有效

  sbit Rset2 =P1^6; //AD9850_1的复位 上升沿有效

  sbit DDSLE_1 =P1^7; //AD9850的数据锁存器控制端 上升沿有效

  uchar code AD9850[61]={0,0x01,0x4f,0x8d,0x02,0x9f,0x16,0x03,0xee,0xa1,0x05,0x3e,0x2c,0x06,0x8d,0xb7,

  0x07,0xdd,0x42,0x09,0x2c,0xcd,0x0a,0x7c,0x58,0x0b,0xcb,0xe3,0x0d,0x1b,0x6e,

  0x0e,0x6a,0xf9,0x0f,0xba,0x84,0x11,0x0a,0x0f,0x12,0x59,0x9a,0x13,0xa9,0x25,

  0x14,0xf8,0xb0,0x16,0x48,0x3b,0x17,0x97,0xc6,0x18,0xe7,0x51,0x1a,0x36,0xdc};

  uint AD9850_kz=0; //AD9850_1的8bit的频率控制字

  uint AD9850_sc=0; //AD9850_1的8bit的频率数据

  uint AD9850_sccs=0; //AD9850_1的8bit的频率数据传输的次数

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

  * 名称 : Delay()

  * 功能 : 延时,延时时间为 10ms * del。这是通过软件延时,有一定误差。

  * 输入 : del

  * 输出 : 无

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

  void Delay(uint del)

  {

  uint i,j;

  for(i=0; i《del; i++)

  for(j=0; j《1827; j++) //这个是通过软件仿真得出的数

  ;

  }

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

  * 名称 : Main()

  * 功能 : 实现灯的闪烁

  * 输入 : 无

  * 输出 : 无

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

  void AD9850_Rset(void) //AD9850复位

  {

  Rset1= 0; //AD9850_1的复位 上升沿有效

  Rset1= 1;

  Rset1= 0;

  Rset2= 0; //AD9850_2的复位 上升沿有效

  Rset2= 1;

  Rset2= 0;

  }

  void AD98501_kzz(void) //将8bit的频率控制字加载到AD9850_1

  {

  w_clk1= 0; //将8bit的频率控制字加载进入AD9850_1的数据锁存器 上升沿有效

  DDSLE_1=1;

  P1=0;

  w_clk1= 1;

  DDSLE_1=0;

  }

  void AD98501_scpl(uint AD9850_sc) //AD9850_1的将32bit的频率数据加载

  {

  uint s=0; //临时变量

  w_clk1= 0; //将16bit的0的频率数据加载进入AD9850_1的数据锁存器 上升沿有效

  DDSLE_1=1;

  P1=0;

  w_clk1= 1;

  w_clk1= 0;

  w_clk1= 1;

  w_clk1=0;

  DDSLE_1=0;

  for(AD9850_sccs=0;AD9850_sccs《3;AD9850_sccs++)

  {

  s=AD9850_sccs+ AD9850_sc*3;

  w_clk1= 0; //将8bit的频率数据加载进入AD9850_1的数据锁存器 上升沿有效

  DDSLE_1=1;

  P1=AD9850[s];

  w_clk1= 1;

  DDSLE_1=0;

  }

  fq_ud1=0;

  fq_ud1=1;

  AD9850_sc=0;

  }

  void AD98502_kzz(void) //将8bit的频率控制字加载到AD9850_2

  {

  // w_clk2= 0; //将8bit的频率控制字加载进入AD9850_2的数据锁存器 上升沿有效

  DDSLE_1=1;

  // NOP();

  // NOP();

  P1=0;

  // w_clk2=1;

  DDSLE_1=0;

  }

  void AD98502_scpl(uint AD9850_sc) //将 32bit的频率数据加载到AD9850_2

  {

  uint s=0; //临时变量

  w_clk2= 0; //将16bit的0的频率数据加载进入AD9850_2的数据锁存器 上升沿有效

  DDSLE_1=1;

  P1=0;

  w_clk2= 1;

  w_clk2= 0;

  w_clk2= 1;

  w_clk2=0;

  DDSLE_1=0;

  for(AD9850_sccs=0;AD9850_sccs《3;AD9850_sccs++)

  {

  s=AD9850_sccs+ AD9850_sc*3;

  w_clk2= 0; //AD9850_1的将8bit的频率数据加载进入数据锁存器 上升沿有效

  DDSLE_1=1;

  P1=s;

  w_clk2= 1;

  DDSLE_1=0;

  }

  fq_ud2=0;

  fq_ud2=1;

  AD9850_sc=0;

  }

  void Main(void)

  {

  uint pl=0;

  uint x=0;

  P0=0;

  P1=0;

  AD9850_Rset(); //复位AD9850

  AD98501_kzz(); //制AD9850控制字

  AD98502_kzz();

  while(1) //重复输出1-20KHz的波形

  {

  for(pl=0;pl《20;pl++)

  {

  AD98501_scpl(x);

  AD98502_scpl(x);

  Delay(500);

  }

  }

  }

评论

查看更多

下载排行

本周

  1. 1电子电路原理第七版PDF电子教材免费下载
  2. 0.00 MB  |  1490次下载  |  免费
  3. 2单片机典型实例介绍
  4. 18.19 MB  |  93次下载  |  1 积分
  5. 3S7-200PLC编程实例详细资料
  6. 1.17 MB  |  27次下载  |  1 积分
  7. 4笔记本电脑主板的元件识别和讲解说明
  8. 4.28 MB  |  18次下载  |  4 积分
  9. 5开关电源原理及各功能电路详解
  10. 0.38 MB  |  10次下载  |  免费
  11. 6基于AT89C2051/4051单片机编程器的实验
  12. 0.11 MB  |  4次下载  |  免费
  13. 7基于单片机和 SG3525的程控开关电源设计
  14. 0.23 MB  |  3次下载  |  免费
  15. 8基于单片机的红外风扇遥控
  16. 0.23 MB  |  3次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234313次下载  |  免费
  3. 2PADS 9.0 2009最新版 -下载
  4. 0.00 MB  |  66304次下载  |  免费
  5. 3protel99下载protel99软件下载(中文版)
  6. 0.00 MB  |  51209次下载  |  免费
  7. 4LabView 8.0 专业版下载 (3CD完整版)
  8. 0.00 MB  |  51043次下载  |  免费
  9. 5555集成电路应用800例(新编版)
  10. 0.00 MB  |  33562次下载  |  免费
  11. 6接口电路图大全
  12. 未知  |  30320次下载  |  免费
  13. 7Multisim 10下载Multisim 10 中文版
  14. 0.00 MB  |  28588次下载  |  免费
  15. 8开关电源设计实例指南
  16. 未知  |  21539次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935053次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537791次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420026次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234313次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191183次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183277次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138039次下载  |  免费