⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad9851_driver.lst

📁 幅频特性测试:主要用DDS芯片AD9851实现在5秒内完成步进为1KHZ的频率特性测试。
💻 LST
字号:
C51 COMPILER V8.02   AD9851_DRIVER                                                         04/17/2009 20:27:00 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE AD9851_DRIVER
OBJECT MODULE PLACED IN AD9851_driver.OBJ
COMPILER INVOKED BY: E:\学习软件安装程序\Keil3\C51\BIN\C51.EXE AD9851_driver.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<c8051f020.h>
   2          #include "initial.h"
   3          #define Data_Port_DDS P6
   4          #define REF_clk 30000000.0//DDS参考时钟输入频率30M;
   5          sbit W_clk=P2^3;    /*上升沿有效*/
   6          sbit FQ_UD=P2^4;    /*上升沿有效*/ 
   7          sbit DDS_RES=P2^5;    /*低电平有效*/
   8          
   9          void AD9851_Init(void)
  10          {
  11   1         FQ_UD=0;
  12   1         DDS_RES=1;       //   /*重启AD9851
  13   1         delay(5);
  14   1         W_clk=0;
  15   1      //   delay(5);
  16   1         DDS_RES=0;        //  /*开始操作AD9851
  17   1      }  
  18          ////////////////////////////////////////////////////
  19          //计算发送的频率和相位值并发送给单片机
  20          ///////////////////////////////////////////////////
  21          void AD9851_DDS_Control(long Freq,uchar Phase)
  22          {
  23   1         long Freq_Data;
  24   1         //long Freq_Data,d1;  //////32位频率控制字
  25   1         //float fl_data;        //////d1和fl_data为通过频率Freq计算控制字的中间变量
  26   1         uchar FData[5],i;
  27   1         //uchar PData;                 /////////5位相位控制字
  28   1      
  29   1        // d1=Freq<<8; //d1*256
  30   1        // fl_data=d1/REF_clk;
  31   1         Freq_Data=Freq*143; //得到频率控制字(加上面2的8次方,共2的32次方)
  32   1         
  33   1         FData[4]=Freq_Data;           /////////////   ,FData为char型,
  34   1         FData[3]=Freq_Data>>8;         ///////////   ,数据保存到FData数组
  35   1         FData[2]=Freq_Data>>16;        /////////////   ,高8位丢失;
  36   1         FData[1]=Freq_Data>>24;       //////////////////
  37   1         
  38   1         //PData=0;/*(Phase/360)*32; */
  39   1         FData[0]=0x00;  //6倍频开‘1’,并行工作‘0’,非掉电方式‘0’;
  40   1         //PData=PData<<3;
  41   1         //FData[0]=FData[0]|PData; ////////确定相位控制字以及工作方式;  
  42   1         FQ_UD=0;W_clk=0;DDS_RES=1;//复位;
  43   1         delay(5);
  44   1         DDS_RES=0;
  45   1         for(i=0;i<5;i++)
  46   1         {
  47   2                      Data_Port_DDS=FData[i];
  48   2                      W_clk=1;delay(5); //上升沿将数据写入;
  49   2                      W_clk=0;delay(5);
  50   2         }
  51   1         FQ_UD=1;//频率更新控制信号(上升沿将40位数据送入DDS;)
  52   1         delay(5);
  53   1         FQ_UD=0;   
  54   1      }
*** WARNING C280 IN LINE 21 OF AD9851_DRIVER.C: 'Phase': unreferenced local variable
C51 COMPILER V8.02   AD9851_DRIVER                                                         04/17/2009 20:27:00 PAGE 2   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    155    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      15
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -