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

📄 dds.lst

📁 使用单片机控制FPGA完成直接数字频率合成(DDFS),采用Keil C51
💻 LST
字号:
C51 COMPILER V8.02   DDS                                                                   09/12/2008 21:03:49 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE DDS
OBJECT MODULE PLACED IN dds.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE dds.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include"includes.h"
   2          
   3          extern unsigned char wav[256];           //波形数据
   4          extern unsigned char addr[256];      //地址数据
   5          extern unsigned long K_value;              //K值
   6          extern unsigned char P_value;              //P值
   7          extern unsigned char wav_flag;
   8          
   9          
  10          void wav_count(unsigned char f)         //计算波形数据
  11          {
  12   1           unsigned int i;
  13   1               for(i=0;i<256;i++)
  14   1               {
  15   2                 addr[i]=i;
  16   2               }
  17   1           if(f==0)
  18   1               {
  19   2                   for(i = 0; i <256;i++)
  20   2                  {
  21   3                      wav[i]=125*(1+sin(6.28*i/255));
  22   3                      }
  23   2               }
  24   1      
  25   1               else if(f==1)
  26   1               {
  27   2                  for(i=0;i<128;i++)
  28   2                      {
  29   3                         wav[i]=0;
  30   3                      }
  31   2                      for(i=128;i<256;i++)
  32   2                      {
  33   3                         wav[i]=250;
  34   3                      }
  35   2               }
  36   1               else if(f==2)
  37   1               {
  38   2                  for(i=0;i<128;i++)
  39   2                      {
  40   3                         wav[i]=2*i;
  41   3                      }
  42   2                      for(i=128;i<256;i++)
  43   2                      {
  44   3                         wav[i]=255-((i-128)*2);
  45   3                      }
  46   2               }
  47   1               else if(f==3)
  48   1               {       
  49   2                   for(i=0;i<256;i++)
  50   2                       {
  51   3                          wav[i]=256-i;
  52   3                       }
  53   2               }
  54   1      
  55   1      }
C51 COMPILER V8.02   DDS                                                                   09/12/2008 21:03:49 PAGE 2   

  56          void write_wav_addr()       //  写波形、地址
  57          {
  58   1          unsigned char wave,address;
  59   1              unsigned int i,j;
  60   1              for(i=0;i<256;i++)
  61   1              {  
  62   2                  wave=wav[i];
  63   2                      address=addr[i];
  64   2                      for(j=0;j<8;j++)
  65   2                      {
  66   3                         wave<<=1;
  67   3                         da=CY;
  68   3                         clk=0;
  69   3                         clk=1;
  70   3                         clk=0;
  71   3                      }
  72   2                      for(j=0;j<8;j++)
  73   2                      {
  74   3                         address<<=1;
  75   3                         da=CY;
  76   3                         clk=0;
  77   3                         clk=1;
  78   3                         clk=0;
  79   3                      }
  80   2                      wren=0;
  81   2                      wren=1;
  82   2                      wren=0;
  83   2              }
  84   1         
  85   1      }
  86          
  87          
  88          
  89          void write_fre()                   //写频率、相位
  90          {
  91   1           unsigned int i;
  92   1               for(i=0;i<32;i++)
  93   1               {
  94   2                         K_value<<=1;
  95   2                         da=CY;
  96   2                         clk=0;
  97   2                         clk=1;
  98   2                         clk=0;
  99   2           }
 100   1               P_value<<=3;
 101   1               for(i=0;i<5;i++)
 102   1               {
 103   2                     P_value<<=1;
 104   2                         da=CY;
 105   2                         clk=0;
 106   2                         clk=1;
 107   2                         clk=0;
 108   2                   
 109   2               }
 110   1      
 111   1      
 112   1      }
 113          
 114          void wtite_clr()                   //清零
 115          {
 116   1         clr=0;
 117   1         clr=1;
C51 COMPILER V8.02   DDS                                                                   09/12/2008 21:03:49 PAGE 3   

 118   1         mydelay(500);
 119   1         clr=0;
 120   1         
 121   1      }
 122          
 123          void saom()
 124          {
 125   1                               unsigned int i;
 126   1                           ena=0;
 127   1                               
 128   1                               for(i=0;i<64;i++)
 129   1                               K_value=i*1310720;
 130   1                   wtite_clr();
 131   1                               wav_count(wav_flag);
 132   1                               write_wav_addr();
 133   1                               write_fre();
 134   1                               mydelay(100);
 135   1                               ena=1;
 136   1                               delay_nms(1000);
 137   1                               
 138   1      }
 139          
 140          
 141          void delay_1msb(void)
 142          {
 143   1           unsigned int i;
 144   1               for(i=0;i<1950;i++);
 145   1               
 146   1      }
 147          
 148          void delay_nms(unsigned int num)        //延时nms子程序
 149          {
 150   1              unsigned int i;
 151   1              for(i=0;i<num;i++)
 152   1              {
 153   2                 delay_1msb();
 154   2               }
 155   1              
 156   1      } 
*** WARNING C316 IN LINE 156 OF dds.c: unterminated conditionals


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