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

📄 dds.lst

📁 DDS模块 EWB Quartus2编译 电子综合设计试验箱程序
💻 LST
字号:
C51 COMPILER V7.50   DDS                                                                   08/22/2008 20:46:04 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE DDS
OBJECT MODULE PLACED IN dds.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE dds.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "intrins.h"
   2          #include"reg51.h"
   3          #include "lcd1602.h"
   4          #include "stdio.h"
   5          
   6          #define uchar unsigned char 
   7          #define uint  unsigned int 
   8          #define key_bus P0
   9          
  10          sbit reset=P1^0;
  11          sbit sclk=P1^1;
  12          sbit load=P1^2;   //FQUD
  13          sbit sdata=P1^3;  //DATA
  14          
  15          
  16          bit TIflag=1;//Note:It must be 1.
  17          
  18          #define KEYPAD_IN   XBYTE[0XF050]//XBYTE[0xA000]
  19          #define KEYPAD_OUT      XBYTE[0XF051]//XBYTE[0x8000]
  20          
  21          sbit ds=P1^3;
  22          sbit sh=P1^4;
  23          sbit st=P1^5;
  24          
  25          void WriteSIOByte(unsigned char led,unsigned char sel,unsigned char seg) 
  26          { 
  27   1        unsigned char i; 
  28   1              for (i=0;i<8;i++)
  29   1              {
  30   2                      led=led<<1; ds=CY; sh=1; sh=0;  
  31   2           }
  32   1              _nop_();//延时
  33   1              for (i=0;i<8;i++)
  34   1              {
  35   2                      sel=sel<<1; ds=CY; sh=1; sh=0;  
  36   2           }  
  37   1              _nop_();//延时
  38   1              for (i=0;i<8;i++)
  39   1              {
  40   2                      seg=seg<<1; ds=CY; sh=1; sh=0;  
  41   2           }
  42   1         st=0; 
  43   1         st=1;//打入并行数据 
  44   1      }  
  45          
  46          /*************************AD9850初始化********************************/
  47          void  ad9850init()
  48          {
  49   1        reset=0;
  50   1        reset=1;
  51   1        reset=0;
  52   1        load=0;
  53   1      }
  54          
  55          /*************************AD9850显示正弦波********************************/
C51 COMPILER V7.50   DDS                                                                   08/22/2008 20:46:04 PAGE 2   

  56          AD9850(float freq)
  57          {
  58   1          float fw;
  59   1          uchar temp;
  60   1              uchar i,j;
  61   1          uchar d[5];                    //d[4]中存放控制字最高位,即相位控制字                                 
             -            //Freq=MCLK*FW/2^32
  62   1          fw=freq*85.89934592;
  63   1          d[4]=0;
  64   1          d[0]=(unsigned long)fw;
  65   1          d[1]=(unsigned long)fw>>8;
  66   1          d[2]=(unsigned long)fw>>16;
  67   1          d[3]=(unsigned long)fw>>24;
  68   1          load=0; 
  69   1          sclk=0; 
  70   1          sclk=1;
  71   1          sclk=0;
  72   1          load=1;
  73   1          load=0;
  74   1           for(i=0;i<5;i++)
  75   1           {
  76   2              temp=d[i];
  77   2              for(j=0;j<8;j++)
  78   2              {
  79   3                  sclk=0;
  80   3                  if(temp&1) sdata=1;
  81   3                  else sdata=0;
  82   3                  sclk=1;
  83   3                  temp=temp>>1;
  84   3               }
  85   2            }
  86   1      
  87   1            load=1;
  88   1            load=0;
  89   1                load=0;
  90   1                load=0;
  91   1      }
  92          
  93          
  94          main()
  95          {
  96   1              uchar s[20]=0;                  //8位数字,含小数点
  97   1              float freq=1000;
  98   1              float step_value=100;
  99   1              int step_state=2;//0=1HZ,1=10HZ,2=100HZ,3=1KHZ,4=10KHZ,5=100KHZ,6=1MHZ
 100   1              int state=0;    //state=0等待输入步进值状态,state=1改变频率值状态
 101   1              ad9850init();
 102   1              AD9850(freq);
 103   1              P1=0x2;
 104   1              while(1)
 105   1              {
 106   2              }
 107   1              
 108   1      }
 109          
 110          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    355    ----
   CONSTANT SIZE    =     20    ----
   XDATA SIZE       =   ----      45
C51 COMPILER V7.50   DDS                                                                   08/22/2008 20:46:04 PAGE 3   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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