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

📄 ad9851_driver.lst

📁 此程序是基于c8051f020单片机的c语言程序
💻 LST
字号:
C51 COMPILER V8.02   AD9851_DRIVER                                                         01/14/2009 21:15:25 PAGE 1   


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


C51 COMPILER V8.02   AD9851_DRIVER                                                         01/14/2009 21:15:25 PAGE 2   

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


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

⌨️ 快捷键说明

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