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

📄 main.lst

📁 用51单片机控制AD9851产生正弦信号的源程序
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  07/15/2006 09:30:23 PAGE 1   


C51 COMPILER V7.50, 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          /*
   2          *Author hejun
   3          *Date   2006_7_14
   4          */
   5          
   6          /*SystemClock=180MHz*/
   7          //F_out=10MHz   FrqDWord=238609294;     W1=0x0e; W2=0x38; W3=0xe3; W4=0x83;//(W1=Freq–b31__Freq–b3Freq–b24)
   8          //F_out=5MHz    FrqDWord=119304647;     W1=0x07; W2=0x1c; W3=0x71; W4=0xc7;//(W1=Freq–b31__Freq–b3Freq–b24)
   9          //F_out=1MHz    FrqDWord=23860929;      W1=0x01; W2=0x6c; W3=0x16; W4=0xc1;//(W1=Freq–b31__Freq–b3Freq–b24)
  10          //F_out=100kHz  FrqDWord=2386093;       W1=0x00; W2=0x24; W3=0x68; W4=0xad;//(W1=Freq–b31__Freq–b3Freq–b24)
  11          //F_out=50kHz   FrqDWord=1193046;       W1=0x00; W2=0x12; W3=0x34; W4=0x56;//(W1=Freq–b31__Freq–b3Freq–b24)
  12          //F_out=10kHz   FrqDWord=238609;        W1=0x00; W2=0x03; W3=0xa4; W4=0x11;//(W1=Freq–b31__Freq–b3Freq–b24)
  13          //F_out=5kHz    FrqDWord=119305;        W1=0x00; W2=0x01; W3=0xd2; W4=0x09;//(W1=Freq–b31__Freq–b3Freq–b24)
  14          //F_out=1kHz    FrqDWord=23861;         W1=0x00; W2=0x00; W3=0x5d; W4=0x35;//(W1=Freq–b31__Freq–b3Freq–b24)
  15          //F_out=100Hz   FrqDWord=2386;          W1=0x00; W2=0x00; W3=0x09; W4=0x52;//(W1=Freq–b31__Freq–b3Freq–b24)
  16          #include <at89X52.h>
  17          #define RESET  P1_0
  18          #define W_CLK  P1_1
  19          #define FQ_UD  P1_2
  20          #define STROBE P1_3
  21          #define DDSData         P2 
  22          unsigned char W0,W1,W2,W3,W4;   
  23          
  24          /*
  25          void delay_1s(void)
  26          {
  27                  unsigned char i;
  28                  
  29                  TMOD &= 0xf0;
  30                  TMOD |= 0x01;
  31                  TR0=1;
  32                  
  33                  for( i=0; i<20 ; i++)           
  34                  {
  35                          
  36                          TH0=0x4c;TL0=0x00;              //定时50毫秒
  37                          while(!TF0);
  38                          TF0=0;
  39                  }
  40                  
  41                  TR0=0;
  42          }
  43          */
  44          /*
  45          void debug()
  46          {
  47                  unsigned int j;
  48                  unsigned int i;
  49                  
  50                  for(j=100;j>0;j--)
  51                  for(i=250;i>0;i--);
  52                  
  53                  P0_0= 0;
  54                  P0_1= 1;
  55          
C51 COMPILER V7.50   MAIN                                                                  07/15/2006 09:30:23 PAGE 2   

  56                  P1_4=1;
  57                  while(P1_4);
  58                  
  59                  P0_0= 1;
  60                  P0_1= 0;
  61          }
  62          */
  63          void enable(void)
  64          {
  65   1              //unsigned char cnt=0;
  66   1              STROBE=0;
  67   1              //cnt++;cnt++;
  68   1              STROBE=1;//还可以在STROBE=0;STROBE=1;之间加cnt++延时
  69   1      }
  70          void init()
  71          { 
  72   1          unsigned char cnt=0;
  73   1           
  74   1          RESET=0; enable();
  75   1          //cnt++;
  76   1          RESET=1; enable();
  77   1          //cnt++;cnt++;cnt++;cnt++;cnt++;cnt++;cnt++;cnt++;cnt++;cnt++;
  78   1          RESET=0;  enable(); //AD9851复位   
  79   1      }
  80          void load_40bit_data()
  81          {
  82   1              unsigned char cnt=0;      //无用只对其操作只作延时用;
  83   1              
  84   1              FQ_UD=0; enable();
  85   1              
  86   1              W_CLK=0; enable();
  87   1              DDSData=W0;enable();
  88   1              W_CLK=1; enable();
  89   1              
  90   1              W_CLK=0;enable();
  91   1              DDSData=W1;enable();
  92   1              W_CLK=1;enable();
  93   1              
  94   1              W_CLK=0;enable();
  95   1              DDSData=W2;enable();
  96   1              W_CLK=1;enable();
  97   1              
  98   1              W_CLK=0;enable();
  99   1              DDSData=W3;enable();
 100   1              W_CLK=1;enable();
 101   1              
 102   1              W_CLK=0;enable();
 103   1              DDSData=W4;enable();
 104   1              W_CLK=1;enable();
 105   1              
 106   1              W_CLK=0;enable();
 107   1              FQ_UD=1;enable();
 108   1              FQ_UD=0;enable();
 109   1      }
 110          
 111          
 112          void main()
 113          {
 114   1              
 115   1              W0=0x01;                                //Enable 6′ REFCLK Multiplier 
 116   1              W1=0x01; W2=0x6c; W3=0x16; W4=0xc1;     //f_out=1MHz
 117   1          //W1=0x00; W2=0x00; W3=0x5d; W4=0x35;    //f_out=1KHz
C51 COMPILER V7.50   MAIN                                                                  07/15/2006 09:30:23 PAGE 3   

 118   1              init();
 119   1              load_40bit_data();
 120   1              while(1)P0=0;
 121   1      }


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