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

📄 ad9851.lst

📁 AD9851:本程序实现了用51单片机串行控制AD9851的DDS芯片输出频率可变的正弦波信号.
💻 LST
字号:
C51 COMPILER V8.15   AD9851                                                                07/13/2008 20:42:00 PAGE 1   


C51 COMPILER V8.15, COMPILATION OF MODULE AD9851
OBJECT MODULE PLACED IN AD9851.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE AD9851\AD9851.c BROWSE DEBUG OBJECTEXTEND PRINT(.\AD9851.lst) OBJECT(AD9851
                    -.obj)

line level    source

   1          /*
   2           *      Copyright (C) 2007, 华中科技大学电气与电子科技创新中心
   3           *      All Rights Reserved.
   4           *      
   5           *      文件名:         AD9851.c
   6           *      文件描述:       AD9851驱动程序文件
   7           *                      
   8           *      当前版本:       1.1
   9           *      作者:           
  10           *      完成日期:       2007年7月25日
  11           *      
  12          */
  13          #include"AD9851\AD9851.h"
  14          #include<intrins.h>
  15          
  16          /***************************************
  17          说明:   初始化AD9851,写入空数据进行初始化
  18          *****************************************/
  19          void AD9851_Initial(void)
  20          {
  21   1              CLK=0;
  22   1              _nop_();
  23   1              LOAD=0;
  24   1              AD9851_Delay(2);
  25   1              CLK=1;
  26   1              AD9851_Delay(2);
  27   1              CLK=0;
  28   1              AD9851_Delay(5);
  29   1              LOAD=1;
  30   1              AD9851_Delay(2);
  31   1              LOAD=0; 
  32   1      }
  33          /***************************************
  34          说明:  写入频率,将要写入的频率转化成32位频率控制位;
  35                          如写入500Hz,即调用此函数AD9851_WriteFreq(500);
  36          ****************************************/
  37          void AD9851_WriteFreq(unsigned long f)
  38          {
  39   1              unsigned long dds;
  40   1              dds=f*35.79139413;                       //30MHz晶振所用23.860929422做为倍乘系数
  41   1              AD9851_WriteData(dds);
  42   1      }
  43          
  44          /**************************************
  45          说明:  串行写入数据子程序,先写入32位数据控制位,
  46                          后写入8位其他控制位,用6倍频。
  47          **************************************/
  48          void AD9851_WriteData(unsigned long dds)
  49          {
  50   1              unsigned char i;
  51   1              LOAD=0;
  52   1              CLK=0;
  53   1              for(i=0;i<40;i++)
  54   1              {
C51 COMPILER V8.15   AD9851                                                                07/13/2008 20:42:00 PAGE 2   

  55   2                      CLK=0;
  56   2                      _nop_();
  57   2                      if((dds&0x00000001)||(i==32))
  58   2                              DAT=1;
  59   2                      else
  60   2                              DAT=0;
  61   2                      _nop_();
  62   2                      CLK=1;
  63   2                      dds=dds>>1;
  64   2              }
  65   1              LOAD=1;
  66   1              CLK=0;
  67   1              _nop_();
  68   1              AD9851_Delay(5);
  69   1              LOAD=0;
  70   1      }
  71          
  72          /************************************
  73           说明:延量50us子程序
  74          **************************************/
  75          void AD9851_Delay(unsigned char t)
  76          {
  77   1              unsigned char i,j;
  78   1              for(i=0;i<t;i++)
  79   1              {
  80   2                      for(j=0;j<255;j++)
  81   2                      ;
  82   2              }
  83   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    147    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   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 + -