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

📄 fft.lst

📁 单片机驱动32X64点阵资料
💻 LST
字号:
C51 COMPILER V8.08   FFT                                                                   11/20/2012 17:34:52 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE FFT
OBJECT MODULE PLACED IN FFT.OBJ
COMPILER INVOKED BY: D:\Program Files\keil_51\C51\BIN\C51.EXE FFT.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<STC12C5A60S2.H> 
   2          #define uchar unsigned char
   3          #define uint unsigned int  
   4          #define  channel  0x00                    //设置AD通道为 P1.0
   5          //----http://59tiaoba.taobao.com------------------qq:77554971---------------------------------------------
             ---
   6          #define ADC_POWER   (1<<7) 
   7          #define ADC_SPEEDHH (0x03<<5) 
   8          #define ADC_START   (1<<3) 
   9          #define PADCH       (1<<5) 
  10          #define ADC_FLAG    (1<<4) 
  11          
  12          #define  scan0    {IA=0;IB=0;IC=0;ID=0;}
  13          #define  scan1    {IA=1;IB=0;IC=0;ID=0;}
  14          #define  scan2    {IA=0;IB=1;IC=0;ID=0;}
  15          #define  scan3    {IA=1;IB=1;IC=0;ID=0;}
  16          #define  scan4    {IA=0;IB=0;IC=1;ID=0;}
  17          #define  scan5    {IA=1;IB=0;IC=1;ID=0;}
  18          #define  scan6    {IA=0;IB=1;IC=1;ID=0;}
  19          #define  scan7    {IA=1;IB=1;IC=1;ID=0;}
  20          #define  scan8    {IA=0;IB=0;IC=0;ID=1;}
  21          #define  scan9    {IA=1;IB=0;IC=0;ID=1;}
  22          #define scan10    {IA=0;IB=1;IC=0;ID=1;}
  23          #define scan11    {IA=1;IB=1;IC=0;ID=1;}
  24          #define scan12    {IA=0;IB=0;IC=1;ID=1;}
  25          #define scan13    {IA=1;IB=0;IC=1;ID=1;}
  26          #define scan14    {IA=0;IB=1;IC=1;ID=1;}
  27          #define scan15    {IA=1;IB=1;IC=1;ID=1;}
  28          
  29          sbit  SDA_R=P2^4;       //下半屏红色数据
  30          sbit  SDA_R_TOP=P2^3;//上半屏红色数据
  31          sbit  SDA_G=P2^6;//下半屏绿色数据                               
  32          sbit  SDA_G_TOP=P2^5; 
  33          sbit  STCP=P4^1;
  34          sbit  SHCP=P2^7;
  35          sbit OE=P0^4;                   //时钟减
  36          sbit IA  =P4^0;  //行控制线A
  37          sbit IB  =P2^0;  //行控制线B
  38          sbit IC  =P2^1;  //行控制线C
  39          sbit ID  =P2^2;  //行控制线D
  40          
  41          
  42          sbit resget=P1^5;                       //时钟复位
  43          sbit key_moda=P1^7;                     //模式转换
  44          sbit key_color=P4^3;                    //时钟加
  45          sbit key_Down=P3^3;                     //时钟减
  46          void Scan_Mode();
  47          extern uchar byte_read(uint);
  48          extern void sector_erase(uint);
  49          extern void byte_program(uint, uchar);
  50          uchar Mode=0;//模式
  51          uchar color=0;
  52          uchar Stop_time=0;
  53          uchar stop=0;
  54          uchar Move,Speed,linee;  //变量
C51 COMPILER V8.08   FFT                                                                   11/20/2012 17:34:52 PAGE 2   

  55          uint zimuo;                                //字模计数器
  56          uchar BUFF[20];                            //缓存
  57          uchar BUFF1[20];                                   //缓存
  58          uchar fractional_frequency=0;//分频
  59          uchar code hanzi[];                                         //汉字字模
  60          uchar code hanzi1[];                                        //汉字字模
  61          //uchar code sw[16]={0X00,0X08,0x04,0x0C,0X02,0X0A,0X06,0X0E,0X01,0X09,0X05,0X0D,0X03,0X0B,0X07,0X0F};/*16
             -行段码*/
  62          //---------------------------------------------------------------------
  63          //--------------------------------------------------------------------------------------------------------
             ---------------
  64          //放大128倍后的sin整数表(128) 
  65          code char SIN_TAB[128] = { 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 59, 65, 70, 75, 80, 85, 89, 94, 98, 102, 
  66          
  67          105, 108, 112, 114, 117, 119, 121, 123, 124, 125, 126, 126, 126, 126, 126, 125, 124, 123, 121, 119, 117, 1
             -14, 112, 
  68          
  69          108, 105, 102, 98, 94, 89, 85, 80, 75, 70, 65, 59, 54, 48, 42, 36, 30, 24, 18, 12, 6, 0, -6, -12, -18, -24
             -, -30, 
  70          
  71          -36, -42, -48, -54, -59, -65, -70, -75, -80, -85, -89, -94, -98, -102, -105, -108, -112, -114, -117, -119,
             - -121, 
  72          
  73          -123, -124, -125, -126, -126, -126, -126, -126, -125, -124, -123, -121, -119, -117, -114, -112, -108, -105
             -, -102, 
  74          
  75          -98, -94, -89, -85, -80, -75, -70, -65, -59, -54, -48, -42, -36, -30, -24, -18, -12, -6 };
  76          
  77          //放大128倍后的cos整数表(128)
  78          code char COS_TAB[128] = { 127, 126, 126, 125, 124, 123, 121, 119, 117, 114, 112, 108, 105, 102, 98, 94, 
  79          
  80          89, 85, 80, 75, 70, 65, 59, 54, 48, 42, 36, 30, 24, 18, 12, 6, 0, -6, -12, -18, -24, -30, -36, -42, -48, -
             -54, -59, 
  81          
  82          -65, -70, -75, -80, -85, -89, -94, -98, -102, -105, -108, -112, -114, -117, -119, -121, -123, -124, -125, 
             --126, -
  83          
  84          126, -126, -126, -126, -125, -124, -123, -121, -119, -117, -114, -112, -108, -105, -102, -98, -94, -89, -8
             -5, -80, 
  85          
  86          -75, -70, -65, -59, -54, -48, -42, -36, -30, -24, -18, -12, -6, 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 59, 
             -65, 70, 
  87          
  88          75, 80, 85, 89, 94, 98, 102, 105, 108, 112, 114, 117, 119, 121, 123, 124, 125, 126, 126 };
  89          
  90          //采样存储序列表
  91          code char LIST_TAB[128] = { 0, 64, 32, 96, 16, 80, 48, 112,
  92          8, 72, 40, 104, 24, 88, 56, 120,
  93          4, 68, 36, 100, 20, 84, 52, 116,
  94          12, 76, 44, 108, 28, 92, 60, 124,
  95          2, 66, 34, 98, 18, 82, 50, 114,
  96          10, 74, 42, 106, 26, 90, 58, 122,
  97          6, 70, 38, 102, 22, 86, 54, 118,
  98          14, 78, 46, 110, 30, 94, 62, 126,
  99          1, 65, 33, 97, 17, 81, 49, 113,
 100          9, 73, 41, 105, 25, 89, 57, 121,
 101          5, 69, 37, 101, 21, 85, 53, 117,
 102          13, 77, 45, 109, 29, 93, 61, 125,
 103          3, 67, 35, 99, 19, 83, 51, 115,
 104          11, 75, 43, 107, 27, 91, 59, 123,
 105          7, 71, 39, 103, 23, 87, 55, 119,
 106          15, 79, 47, 111, 31, 95, 63, 127
C51 COMPILER V8.08   FFT                                                                   11/20/2012 17:34:52 PAGE 3   

 107          };
 108          
 109          
 110          uchar COUNT=15,COUNT1=0,ADC_Count=0,LINE=15,G,T;
 111          uchar i,j,k,b,p;                 
 112          int Temp_Real,Temp_Imag,temp;                // 中间临时变量  
 113          uint TEMP1;
 114          uchar PWM;      
 115          int xdata Fft_Real[128]; 
 116          int xdata Fft_Image[128];               // fft的虚部 
 117          uchar xdata LED_TAB2[64];                               //记录 漂浮物 是否需要 停顿一下
 118          uchar xdata LED_TAB[64];                                //记录红色柱状 
 119          uchar xdata LED_TAB1[64];                               //记录 漂浮点
 120          void show_start();
 121          void DelayMs(void);
 122          
 123          /*------------------------------------------------
 124                              发送一个字节
 125          ------------------------------------------------*/
 126          void SendByte(unsigned char dat)
 127          {
 128   1              SBUF = dat;
 129   1              while(!TI);
 130   1            TI = 0;
 131   1      }
 132          /*****不影响其他端口的扫描*************************/
 133          void scan(unsigned char Value)
 134          {switch(Value)
 135   1              {case  15: scan0;break;
 136   2                        case  0: scan1;break;
 137   2                         case  1: scan2;break;
 138   2                          case  2: scan3;break;
 139   2                   case  3: scan4;break;
 140   2                            case  4: scan5;break;
 141   2                             case  5: scan6;break;
 142   2                              case  6: scan7;break;
 143   2                       case  7: scan8;break;
 144   2                             case  8: scan9;break;
 145   2                            case 9:scan10;break;
 146   2                           case 10:scan11;break;
 147   2                  case 11:scan12;break;
 148   2                        case 12:scan13;break;
 149   2                       case 13:scan14;break;
 150   2                  case 14:scan15;break;
 151   2                 default:break;
 152   2              }
 153   1      }
 154          /*------------------------------------------------
 155                              发送一个字符串
 156          ------------------------------------------------*/
 157          void SendStr(unsigned char *s)
 158          {
 159   1              while(*s!='\0')// \0 表示字符串结束标志,
 160   1                      //通过检测是否字符串末尾
 161   1              {
 162   2                      SendByte(*s);
 163   2                      s++;
 164   2              }
 165   1      }
 166          
 167          void FFT()
 168          {     
C51 COMPILER V8.08   FFT                                                                   11/20/2012 17:34:52 PAGE 4   

 169   1              //uchar x;              
 170   1          for( i=1; i<=7; i++)                            /* for(1) */
 171   1          { 
 172   2              b=1;
 173   2              b <<=(i-1);                                       //碟式运算,用于计算 隔多少行计算 例如 第一极 1

⌨️ 快捷键说明

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