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

📄 main.lst

📁 DDS芯片9833的驱动
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  07/09/2007 20:52:29 PAGE 1   


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

line level    source

   1          #include <reg52.h>
   2          #include <intrins.h>
   3          #define BITB 0x0800
   4          sbit fsync = P1^4;
   5          sbit sclk = P1^5;
   6          sbit sdata = P1^6;
   7          
   8          
   9          #define DDS_SCLK_UP sclk=1
  10          #define DDS_SCLK_DOWN sclk=0
  11          #define DDS_SDATA_UP sdata=1
  12          #define DDS_SDATA_DOWN sdata=0
  13          #define DDS_FSYNC_UP fsync=1
  14          #define DDS_FSYNC_DOWN fsync=0
  15          
  16          unsigned int Config_Data[8];
  17          
  18          void delay2us(unsigned char i) {
  19   1              while (--i);
  20   1      }
  21          void writeDDS2Byte(unsigned int config) {
  22   1              unsigned char i;
  23   1              DDS_SCLK_DOWN;
  24   1              _nop_();
  25   1              DDS_FSYNC_UP;
  26   1              _nop_();
  27   1              DDS_SCLK_UP;
  28   1              delay2us(1);
  29   1              DDS_FSYNC_DOWN;
  30   1              _nop_();
  31   1              for (i=0; i<16; i++) {
  32   2                      if (config & 0x8000) DDS_SDATA_UP;
  33   2                      else DDS_SDATA_DOWN;
  34   2                      delay2us(1);
  35   2                      DDS_SCLK_DOWN;
  36   2                      delay2us(1);
  37   2                      DDS_SCLK_UP;
  38   2                      config <<= 1;
  39   2              }
  40   1              DDS_FSYNC_UP;
  41   1              _nop_();
  42   1              DDS_SCLK_DOWN;
  43   1              delay2us(100);
  44   1      }
  45          //波形发生函数
  46          //入口参数: 频率:Freq (<=12000000)
  47          //          形状:0(正弦波),1(三角波),2(方波)
  48          //默认: Fmclk=25MHz, 0相移,方波不分频.
  49          void  waveGenerate(unsigned long Freq,unsigned char Shape)
  50          {
  51   1         unsigned long temp;
  52   1         unsigned char k;
  53   1         if(Freq>12000000) Freq=12000000;
  54   1         switch(Shape)
  55   1         {
C51 COMPILER V7.50   MAIN                                                                  07/09/2007 20:52:29 PAGE 2   

  56   2           case 0: Config_Data[0]=0x2108;
  57   2                   Config_Data[7]=0x2008;
  58   2                   break;
  59   2           case 1: Config_Data[0]=0x210A;
  60   2                   Config_Data[7]=0x200A;
  61   2                   break;
  62   2           case 2: Config_Data[0]=0x2128;
  63   2                   Config_Data[7]=0x2028;
  64   2                   break;
  65   2           default:Config_Data[0]=0x2108;
  66   2                   Config_Data[7]=0x2008;
  67   2         }
  68   1      
  69   1         temp=Freq*13.4217728;   //temp=Freq*(0x10000000/20000000);
  70   1         Config_Data[1]=temp&0x3fff;
  71   1         Config_Data[3]=Config_Data[1];
  72   1         Config_Data[2]=(temp&0x0fffc000)>>14;
  73   1         Config_Data[4]=Config_Data[2];
  74   1      
  75   1         Config_Data[1]=Config_Data[1]|0x4000;
  76   1         Config_Data[2]=Config_Data[2]|0x4000;
  77   1         Config_Data[3]=Config_Data[3]|0x8000;
  78   1         Config_Data[4]=Config_Data[4]|0x8000;
  79   1         Config_Data[5]=0xC000;
  80   1         Config_Data[6]=0xE000;
  81   1         
  82   1         for(k=0;k<8;k++)
  83   1        {
  84   2           writeDDS2Byte(Config_Data[k]);
  85   2        }
  86   1      
  87   1        /* for (;;) {
  88   1            writeDDS2Byte(0xc000);
  89   1                for (k=200;k;k--);
  90   1                writeDDS2Byte(0xc000|2047);
  91   1                for (k=200;k;k--);
  92   1         }*/
  93   1      }
  94          void DDS_2FSK(unsigned long freq1, unsigned long freq2, unsigned char shape) {
  95   1         unsigned long temp;
  96   1         unsigned char k;
  97   1         if (freq1>12000000) freq1=12000000;
  98   1         if (freq2>12000000) freq2=12000000;
  99   1         switch(shape)
 100   1         {
 101   2           case 0: Config_Data[0]=0x2108;
 102   2                   Config_Data[7]=0x2008;
 103   2                   break;
 104   2           case 1: Config_Data[0]=0x210A;
 105   2                   Config_Data[7]=0x200A;
 106   2                   break;
 107   2           case 2: Config_Data[0]=0x2128;
 108   2                   Config_Data[7]=0x2028;
 109   2                   break;
 110   2           default:Config_Data[0]=0x2108;
 111   2                   Config_Data[7]=0x2008;
 112   2         }
 113   1         temp=freq1*13.4217728;   //temp=Freq*(0x10000000/20000000);
 114   1         Config_Data[1]=temp&0x3fff;
 115   1         Config_Data[2]=(temp&0x0fffc000)>>14;
 116   1         temp=freq2*13.4217728;
 117   1         Config_Data[3]=temp&0x3fff;
C51 COMPILER V7.50   MAIN                                                                  07/09/2007 20:52:29 PAGE 3   

 118   1         Config_Data[4]=(temp&0x0fffc000)>>14;
 119   1      
 120   1         Config_Data[1]=Config_Data[1]|0x4000;
 121   1         Config_Data[2]=Config_Data[2]|0x4000;
 122   1         Config_Data[3]=Config_Data[3]|0x8000;
 123   1         Config_Data[4]=Config_Data[4]|0x8000;
 124   1         Config_Data[5]=0xC000;
 125   1         Config_Data[6]=0xE000;
 126   1         
 127   1         for(k=0;k<8;k++)
 128   1        {
 129   2           writeDDS2Byte(Config_Data[k]);
 130   2        }
 131   1              while (1) {     
 132   2                      for (k=200; k; k--);
 133   2                      writeDDS2Byte(Config_Data[7] | BITB);
 134   2                      for (k=200; k; k--);
 135   2                      writeDDS2Byte(Config_Data[7] & (~BITB));
 136   2              }
 137   1      
 138   1      }
 139          void main() {
 140   1              unsigned char i;
 141   1              DDS_2FSK(3000, 1000, 0);
 142   1      }
*** WARNING C280 IN LINE 140 OF MAIN.C: 'i': unreferenced local variable
 143          


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