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

📄 main.lst

📁 DDS芯片9833的驱动
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  07/09/2007 20:07:17 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          
   3          #define uint unsigned int
   4          #define uchar unsigned char
   5          sbit dds_en=P1^4;
   6          sbit dds_clk=P1^5;
   7          sbit dds_dat=P1^6;
   8          
   9          
  10          void delay(uint k)
  11          {
  12   1              while (--k);
  13   1      }
  14          
  15          void write_2byte(uint a)         //写2BYTE到DDS
  16          {
  17   1              uchar i;
  18   1              dds_clk=1;
  19   1              dds_dat=1;
  20   1              dds_en=1;
  21   1      //      control=0;
  22   1              delay(1000);
  23   1              dds_clk=1;
  24   1              delay(2);
  25   1              dds_en=0;
  26   1              for(i=0;i<16;i++)
  27   1                      {
  28   2                              if(a&0x8000){dds_dat=1;}//the MSB=1
  29   2                              else dds_dat=0;//the MSB=0
  30   2                              dds_clk=0;
  31   2                              delay(5);
  32   2                              dds_clk=1;
  33   2                              a=a<<1;
  34   2                      }
  35   1              delay(2);
  36   1              dds_en=1;
  37   1              dds_clk=0;
  38   1              delay(1000);
  39   1      //      control=1;
  40   1      }
  41          
  42          void init_dds(void)//初始化DDS芯片
  43          {
  44   1              write_2byte(0x2100);
  45   1              write_2byte(0x2000);//write command;28mode;
  46   1              write_2byte(0x4000);//write LSB of freq0 reg  置入00FC000
  47   1              write_2byte(0x403F);//write MSB of freq0 reg
  48   1              write_2byte(0x2900);
  49   1              write_2byte(0x8000);//write LSB of freq1 reg  置入00FC000
  50   1              write_2byte(0x803F);//write MSB of freq1 reg
  51   1              write_2byte(0xC000);//write phase0 reg
  52   1              write_2byte(0xF000);//write phase1 reg
  53   1              write_2byte(0x2000);//lect freq0,phase 0,28bit mode,rst=0
  54   1      }
  55          //输出指定频率
C51 COMPILER V7.50   MAIN                                                                  07/09/2007 20:07:17 PAGE 2   

  56          void output(unsigned long freq_value)
  57          {
  58   1              unsigned long dds;//32 bit data for dds control word
  59   1              uint dds1,dds2;
  60   1              dds=freq_value*18.64135111111;
  61   1              dds=dds<<2;
  62   1              dds1=dds;        //低字节
  63   1              dds2=dds>>16;  //高字节
  64   1              dds1=dds1>>2;
  65   1              dds2=dds2&0x7FFF;
  66   1              dds2=dds2|0x4000;
  67   1              write_2byte(0x2000);//enable the command mode is 28mode
  68   1              write_2byte(dds1);
  69   1              write_2byte(dds2);
  70   1      }
  71          
  72          void main()
  73          {
  74   1              init_dds();
  75   1              output(1000000);
  76   1              while (1);
  77   1      }
  78          


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