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

📄 main.lst

📁 单片机用c语言编写的快速傅里叶变换
💻 LST
字号:
C51 COMPILER V8.08   MAIN                                                                  08/08/2008 11:35:12 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1            #include <c8051f020.h>
   2            #include <math.h>
   3            float  xdata datar[129];
   4              float xdata datai[129];
   5                  float  xdata  w[32];
   6           //float  FFT(float datar[],float  datai[],float w[])
   7           
   8            float  FFT(void)
   9            {unsigned  int x0,x1,x2,x3,x4,x5,x6;
  10   1         unsigned  int L ,j,k,b,p,xx,i;  
  11   1         float  TR,TI,temp;
  12   1         for(i=0;i<128;i++)
  13   1         {x0=x1=x2=x3=x4=x5=x6=0;
  14   2         x0=i&0x01;x1=(i/2)&0x01;x2=(i/4)&0x01;
  15   2         x3=(i/8)&0x01;x4=(i/16)&0x01;x5=(i/32)&0x01;x6=(i/64)&0x01;
  16   2         xx=x0*64+x1*32+x2*16+x3*8+x4*4+x5*2+x6;
  17   2         datai[xx]=datar[i];
  18   2         }
  19   1         for(i=0,i<128;i++;)
  20   1         {datar[i]=datai[i];datai[i]=0;}
  21   1      
  22   1           for(L=1;L<=7;L++)
  23   1           {b=1;i=L-1;
  24   2            while(i>1)
  25   2             {b=b*2;i--;}
  26   2            for(j=0;j<=b-1;j++)
  27   2            {p=1;i=7-L;
  28   3             while(i>0)
  29   3                 {p=p*2;i--;}
  30   3                  p=p*j;
  31   3               for(k=j;k<128;k=k+2*b)
  32   3               {TR=datar[k];TI=datai[k];temp=datar[k+b];
  33   4               datar[k]=datar[k]+datar[k+b]*cos(2*3.14159*p/128)+datai[k+b]*sin(2*3.14159*p/128);
  34   4               datai[k]=datai[k]-datar[k+b]*sin(2*3.14159*p/128)+datai[k+b]*cos(2*3.14159*p/128);
  35   4               datar[k+b]=TR-datar[k+b]*cos(2*3.14159*p/128)-datai[k+b]*sin(2*3.14159*p/128);
  36   4               datai[k+b]=TI+temp*sin(2*3.14159*p/128)-datai[k+b]*cos(2*3.14159*p/128);
  37   4               }
  38   3              }
  39   2        }
  40   1      for(i=0;i<32;i++)
  41   1         {w[i]=sqrt(datar[i]*datar[i]+datai[i]*datai[i]);
  42   2          w[i]=w[i]/64;}
  43   1         w[0]=w[0]/2;
  44   1         return  w[32];
  45   1        }       
  46          
  47            void  main(void)
  48          
  49          
  50            {     //float  xdata datar[129];
  51   1          //float xdata datai[129];
  52   1          unsigned  int   i;
  53   1              //float  xdata  w[32];
  54   1              for(i=0;i<64;i++)
  55   1              {datar[i]=100;
C51 COMPILER V8.08   MAIN                                                                  08/08/2008 11:35:12 PAGE 2   

  56   2               datai[i]=0;
  57   2               }
  58   1              for(i=64;i<128;i++)
  59   1              {datar[i]=0;                      
  60   2               datai[i]=0;
  61   2               }      
  62   1               FFT();
  63   1        // FFT(datar,datai,w);
  64   1      
  65   1               while(1);       
  66   1        }


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