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

📄 dds9852_01.lst

📁 DDS9852开发板测试程序
💻 LST
字号:
C51 COMPILER V7.06   DDS9852_01                                                            08/08/2007 21:37:26 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DDS9852_01
OBJECT MODULE PLACED IN DDS9852_01.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE DDS9852_01.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //AD9852测试程序
   2          //**********************************************
   3          #include<reg52.h>
   4          #include<intrins.h>  //包含右移
   5          #include<math.h>
   6          
   7          sbit UPDCLK = P0^0;  //20 更新时钟,上升沿锁存数据到编程寄存器
   8          sbit MRESET = P0^1;  //71 主复位端,高电平有效复位
   9          sbit PMODE  = P0^2;  //70 串并编程模式选择 0:串行 1:并行
  10          sbit WRCLK  = P0^3;  //21 写端口数据 上升沿锁存数据
  11          sbit RDCLK  = P0^4;  //22 读端口数据 高电平读
  12          sbit F_B_H  = P0^5;  //29 低电平
  13          sbit OSK    = P0^6;  //30
  14          
  15          sbit DATACLK= P1^0;  //高电平有效,选中数据锁存器,低电平锁存
  16          sbit ADDRCLK= P1^1;  //高电平有效,选中地址锁存器,低电平锁存
  17          sbit CONCLK = P1^2;  //高电平有效,选中外部控制端驱运器,低电平锁存
  18          
  19          sbit PD     = P1^4;
  20          sbit EN     = P1^5;
  21          sbit SCLK   = P1^6;
  22          sbit SDATA  = P1^7;
  23          
  24          //unsigned char FWord[6]={0x00,0xDA,0x74,0x0D,0xA7,0x40}; //1MHz频率字寄存器
  25          unsigned char FWord[6]={0x08,0x88,0x88,0x88,0x88,0x88};   //10MHz频率字寄存器
  26          unsigned char Address;  //寄存器地址
  27          unsigned char PortReg;  //控制端口寄存器
  28          unsigned char MultReg;  //乘法寄存器
  29          unsigned char ModeReg;  //工作模式寄存器
  30          unsigned char PowerReg; //功率寄存器
  31          
  32          void WriteData(unsigned char DataByte);    //写字节数据
  33          void WriteADDR(unsigned char DATAAddress); //写寄存器地址
  34          void UpdataFWord(unsigned char *FWord);
  35          void AD8320(unsigned char Gain);//AD8320增益控制
  36          //*********************************
  37          void main()
  38          {
  39   1         unsigned char n;
  40   1      
  41   1         MultReg = 0x46;     //乘法器
  42   1         PortReg = 0x04;     //控制端口
  43   1         P0=0;
  44   1         DATACLK=0;
  45   1         ADDRCLK=0;
  46   1      
  47   1         P0=0x06;            //设置成并行模式,并复位
  48   1         for(n=5;n>0;)
  49   1             n--;
  50   1         P0=0x04;
  51   1         CONCLK =0;          //锁存控制端口状态
  52   1      //*************************
  53   1         WriteADDR(0x1E);    //写乘法器地址
  54   1         WriteData(0x46);    //初始化乘法器,打开倍速频器,倍频6x50=300Mhz
  55   1      
C51 COMPILER V7.06   DDS9852_01                                                            08/08/2007 21:37:26 PAGE 2   

  56   1         UpdataFWord(FWord);
  57   1      
  58   1         WriteADDR(0x20);    //反辛格函数滤波器地址
  59   1         WriteData(0x60);    //关闭反辛格函数滤波
  60   1         WriteADDR(0x21);    //幅度字高字节地址
  61   1         WriteData(0xFF);    //幅度字高字节
  62   1         WriteADDR(0x22);    //幅度字低字节地址
  63   1         WriteData(0xFF);
  64   1         AD8320(100); //AD8320增益控制
  65   1         while(1);
  66   1      
  67   1      }
  68          //*********************************
  69          //***频率字更新
  70          void UpdataFWord(unsigned char *FWord)
  71          {
  72   1         WriteADDR(0x04);
  73   1         WriteData(FWord[0]);//0x0f);    //频率字最高字节
  74   1         WriteADDR(0x05);
  75   1         WriteData(FWord[1]);//0x45);
  76   1         WriteADDR(0x06);
  77   1         WriteData(FWord[2]);//0x45);
  78   1         WriteADDR(0x07);
  79   1         WriteData(FWord[3]);//0x45);
  80   1         WriteADDR(0x08);
  81   1         WriteData(FWord[4]);//0x45);
  82   1         WriteADDR(0x09);
  83   1         WriteData(FWord[5]);//0x00);    //频率字最低字节
  84   1      }
  85          //*********************************
  86          //***写入数据
  87          void WriteData(unsigned char DataByte)
  88          {
  89   1         unsigned char bdata x,y;
  90   1         x =DataByte;
  91   1         y =0;
  92   1         if(x&0x01)        //数据格式旋转180
  93   1            y=y|0x80;      //由D7 D6 D5 D4 D3 D2 D1 D0
  94   1         if(x&0x02)        //  D0 D1 D2 D3 D4 D5 D6 D7
  95   1            y=y|0x40;
  96   1         if(x&0x04)
  97   1            y=y|0x20;
  98   1         if(x&0x08)
  99   1            y=y|0x10;
 100   1         if(x&0x10)
 101   1            y=y|0x08;
 102   1         if(x&0x20)
 103   1            y=y|0x04;
 104   1         if(x&0x40)
 105   1            y=y|0x02;
 106   1         if(x&0x80)
 107   1            y=y|0x01;
 108   1         P0=y;
 109   1         DATACLK=1;       //锁存数据
 110   1         DATACLK=0;
 111   1      
 112   1      }
 113          //*********************************
 114          //***完整地址
 115          void WriteADDR(unsigned char DATAAddress)
 116          {
 117   1         P0=DATAAddress;
C51 COMPILER V7.06   DDS9852_01                                                            08/08/2007 21:37:26 PAGE 3   

 118   1         ADDRCLK=1;
 119   1         ADDRCLK=0;
 120   1      
 121   1         P0=0x04;
 122   1         CONCLK = 1;
 123   1           WRCLK=1;
 124   1           WRCLK=0;
 125   1         CONCLK = 0;
 126   1      
 127   1      }
 128          //*********************************
 129          void AD8320(unsigned char Gain)
 130          {
 131   1         unsigned char n,A;
 132   1         A=Gain;
 133   1         EN=0;
 134   1         SCLK=0;
 135   1         SDATA=0;
 136   1         for(n=8;n>0;n--)
 137   1            {
 138   2               if((A&0x80)==0x80)
 139   2                  SDATA=1;
 140   2               else
 141   2                  SDATA=0;
 142   2               A=A<<1;
 143   2               SCLK=1;
 144   2               SCLK=0;
 145   2            }
 146   1          EN=1;
 147   1      }
 148          
 149          
 150          
 151          


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