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

📄 ad9833.lst

📁 DDS芯片AD9833 芯片单片机控制程序,非常好用
💻 LST
字号:
C51 COMPILER V7.06   AD9833                                                                08/16/2008 14:17:54 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE AD9833
OBJECT MODULE PLACED IN ad9833.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ad9833.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          // name   : ad9833.c
   2          // author : pyy
   3          // date   : 2008-8-6
   4          
   5          #include <reg51.h>
   6           
   7          sbit AD9833_FSYNC = P1^2;
   8          sbit AD9833_SCLK  = P1^3;
   9          sbit AD9833_SDATA = P1^4;
  10          //控制子数组
  11          unsigned int Config_Data[8];
  12          //写入一个字的数据
  13          void Send_Word(unsigned int Data_In);
  14          //产生一个频率波形 以及选择波形模式
  15          void Wave_Generate(unsigned long , unsigned char );
  16          void main( void )
  17          {
  18   1              AD9833_FSYNC = 1;
  19   1              AD9833_SCLK = 0;
  20   1              while(1)
  21   1              {
  22   2              Wave_Generate(1, 2);
  23   2              Wave_Generate(12, 2);
  24   2              Wave_Generate(123, 2);
  25   2              Wave_Generate(1234, 2);
  26   2              Wave_Generate(12345, 2);
  27   2              Wave_Generate(123456, 2);
  28   2              Wave_Generate(1234567, 2);
  29   2              Wave_Generate(2234567, 2);
  30   2              Wave_Generate(3234567, 2);
  31   2              Wave_Generate(4234567, 2);
  32   2              Wave_Generate(5234567, 2);
  33   2              Wave_Generate(6234567, 2);
  34   2              Wave_Generate(7234567, 2);
  35   2              Wave_Generate(8234567, 2);
  36   2              Wave_Generate(9234567, 2);
  37   2      
  38   2              Wave_Generate(10000000, 2);
  39   2              // 5Mhz sine
  40   2              Wave_Generate(5000000, 2);
  41   2              Wave_Generate(4000000, 2);
  42   2              Wave_Generate(3000000, 2);
  43   2              Wave_Generate(2000000, 2);
  44   2              Wave_Generate(1000000, 2);
  45   2              // 1Mhz sine    
  46   2              Wave_Generate(1000000, 2);
  47   2              Wave_Generate(900000, 2);
  48   2              Wave_Generate(800000, 2);
  49   2              Wave_Generate(700000, 2);
  50   2              Wave_Generate(600000, 2);
  51   2              Wave_Generate(500000, 2);
  52   2              Wave_Generate(400000, 2);
  53   2              Wave_Generate(300000, 2);
  54   2              Wave_Generate(200000, 2);
  55   2              Wave_Generate(100000, 2);
C51 COMPILER V7.06   AD9833                                                                08/16/2008 14:17:54 PAGE 2   

  56   2      
  57   2              Wave_Generate(5000000, 0);
  58   2              Wave_Generate(4000000, 0);
  59   2              Wave_Generate(3000000, 0);
  60   2              Wave_Generate(2000000, 0);
  61   2              Wave_Generate(1000000, 0);
  62   2              Wave_Generate(1000000, 0);
  63   2              Wave_Generate(900000, 0);
  64   2              Wave_Generate(800000, 0);
  65   2              Wave_Generate(700000, 0);
  66   2              Wave_Generate(600000, 0);
  67   2              Wave_Generate(500000, 0);
  68   2              Wave_Generate(400000, 0);
  69   2              Wave_Generate(300000, 0);
  70   2              Wave_Generate(200000, 0);
  71   2              Wave_Generate(100000, 0);
  72   2      
  73   2      
  74   2              Wave_Generate(1000000, 1);
  75   2              Wave_Generate(900000, 1);
  76   2              Wave_Generate(800000, 1);
  77   2              Wave_Generate(700000, 1);
  78   2              Wave_Generate(600000, 1);
  79   2              Wave_Generate(500000, 1);
  80   2              Wave_Generate(400000, 1);
  81   2              Wave_Generate(300000, 1);
  82   2              Wave_Generate(200000, 1);
  83   2              Wave_Generate(100000, 1);
  84   2              // 100Khz sine  
  85   2              Wave_Generate(100000, 2);
  86   2                      // 10Khz sine   
  87   2              Wave_Generate(10000, 2);
  88   2                      // 1Khz sine    
  89   2              Wave_Generate(1000, 2);
  90   2                      // 100hz sine   
  91   2              Wave_Generate(100, 2);
  92   2                      // 10hz sine    
  93   2              Wave_Generate(10, 2);
  94   2                      // 1hz sine     
  95   2              Wave_Generate(1, 2);
  96   2      
  97   2      
  98   2              
  99   2              
 100   2              // 10Mhz sine
 101   2              Wave_Generate(10000000, 0);
 102   2              // 5Mhz sine
 103   2              Wave_Generate(5000000, 0);
 104   2              // 1Mhz sine    
 105   2              Wave_Generate(1000000, 0);
 106   2              // 100Khz sine  
 107   2              Wave_Generate(100000, 0);
 108   2                      // 10Khz sine   
 109   2              Wave_Generate(10000, 0);
 110   2                      // 1Khz sine    
 111   2              Wave_Generate(1000, 0);
 112   2                      // 100hz sine   
 113   2              Wave_Generate(100, 0);
 114   2                      // 10hz sine    
 115   2              Wave_Generate(10, 0);
 116   2                      // 1hz sine     
 117   2              Wave_Generate(1, 0);
C51 COMPILER V7.06   AD9833                                                                08/16/2008 14:17:54 PAGE 3   

 118   2      
 119   2      
 120   2                      // 10Mhz 三角波
 121   2              Wave_Generate(10000000, 1);
 122   2              // 5Mhz sine
 123   2              Wave_Generate(5000000, 1);
 124   2              // 1Mhz sine    
 125   2              Wave_Generate(1000000, 1);
 126   2              // 100Khz sine  
 127   2              Wave_Generate(100000, 1);
 128   2                      // 10Khz sine   
 129   2              Wave_Generate(10000, 1);
 130   2                      // 1Khz sine    
 131   2              Wave_Generate(1000, 1);
 132   2                      // 100hz sine   
 133   2              Wave_Generate(100, 1);
 134   2                      // 10hz sine    
 135   2              Wave_Generate(10, 1);
 136   2                      // 1hz sine     
 137   2              Wave_Generate(1, 1);
 138   2      
 139   2      
 140   2                      // 10Mhz 方波
 141   2              Wave_Generate(10000000, 2);
 142   2              // 5Mhz sine
 143   2              Wave_Generate(5000000, 2);
 144   2              // 1Mhz sine    
 145   2              Wave_Generate(1000000, 2);
 146   2              // 100Khz sine  
 147   2              Wave_Generate(100000, 2);
 148   2                      // 10Khz sine   
 149   2              Wave_Generate(10000, 2);
 150   2                      // 1Khz sine    
 151   2              Wave_Generate(1000, 2);
 152   2                      // 100hz sine   
 153   2              Wave_Generate(100, 2);
 154   2                      // 10hz sine    
 155   2              Wave_Generate(10, 2);
 156   2                      // 1hz sine     
 157   2              Wave_Generate(1, 2);
 158   2          }
 159   1      
 160   1      }
 161          
 162          void Send_Word(unsigned int Data_In)
 163          {
 164   1              unsigned int i,j;
 165   1              AD9833_SCLK = 1;
 166   1          AD9833_FSYNC = 0;
 167   1          for(i = 0; i < 16; i++)
 168   1              {
 169   2                      AD9833_SCLK = 1;
 170   2                      AD9833_SDATA = (bit) ((Data_In & 0x8000)>>15);
 171   2                      j = 0x01;
 172   2                      while(j--);
 173   2                      AD9833_SCLK = 0;
 174   2                      Data_In = Data_In << 1;
 175   2                      j = 0x01;
 176   2                      while(j--);
 177   2              }
 178   1              AD9833_FSYNC = 1;
 179   1              AD9833_SCLK = 0;
C51 COMPILER V7.06   AD9833                                                                08/16/2008 14:17:54 PAGE 4   

 180   1      }
 181          //波形发生函数
 182          //入口参数: 频率 <= 10MHz
 183          //          形状: 0 正弦波  1 三角波  2 方波
 184          //默认: FMCLK - 20MHz  0相移
 185          
 186          void Wave_Generate(unsigned long Freq, unsigned char Shape )
 187          {
 188   1              unsigned long temp;
 189   1              unsigned char k;
 190   1              if(Freq > 10000000) Freq = 10000000;
 191   1              switch(Shape)
 192   1              {
 193   2                      case 0 :    Config_Data[0]=0x2108; 
 194   2                                              Config_Data[7]=0x2008;
 195   2                                              break;
 196   2                      case 1 : 
 197   2                                              Config_Data[0]=0x210A;
 198   2                                              Config_Data[7]=0x200A;
 199   2                                          break;
 200   2                      case 2 :
 201   2                                              Config_Data[0]=0x2128;
 202   2                                              Config_Data[7]=0x2028;
 203   2                                              break;
 204   2                  default :   Config_Data[0]=0x2108; 
 205   2                                              Config_Data[7]=0x2008;
 206   2                                              break;
 207   2      
 208   2              }
 209   1          //20M                13.4218
 210   1              //19.6608M           13.6533
 211   1              //16M                16.7772
 212   1              //24M                11.1848
 213   1              temp = Freq*11.1848;
 214   1              Config_Data[1] = temp&0x00003fff;
 215   1              Config_Data[3] = Config_Data[1];
 216   1              Config_Data[2] = (temp&0x0fffc000)>>14;
 217   1              Config_Data[4] = Config_Data[2];
 218   1      
 219   1              Config_Data[1] = Config_Data[1] | 0x4000;
 220   1              Config_Data[2] = Config_Data[2] | 0x4000;
 221   1              Config_Data[3] = Config_Data[3] | 0x8000;
 222   1              Config_Data[4] = Config_Data[4] | 0x8000;
 223   1      
 224   1              Config_Data[5] = 0xC000;
 225   1              Config_Data[6] = 0xE000;
 226   1              for(k = 0; k<8; k++)
 227   1              {
 228   2                      Send_Word(Config_Data[k]);
 229   2              }
 230   1      
 231   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1408    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16      11
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V7.06   AD9833                                                                08/16/2008 14:17:54 PAGE 5   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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