• 大小: 83KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-08
  • 语言: C/C++
  • 标签: DDS  AD9833  

资源简介

C语言,基于51单片机的DDS信号发生器(AD9833)程序

资源截图

代码片段和文件信息

#include 
#include 
  
//定义AD9833的时钟    
#define  FMCLK 250000000 //AD9833的主晶振为1MHz     
   
sbit FSYNC1   =P1^0;   //DDS使能引脚低电平有效

sbit SCLK9833 =P3^2;   //DDS串行时钟输入

sbit SDATA9833=P3^3;   //DDS串行数据输入
   
//函数声明    
   
void Write_word(unsigned int dataa);//写16位数据到SPI接口    
void init_ad9833(void);   
void output(unsigned long freq_dword);//AD9833输出指定频率的正弦波:freq_dword=fout*268435456/FMCLK    
void delay_nus(unsigned int t);//延时函数——微妙    
void delay_nms(unsigned int t);//延时函数——毫秒    
   
int main(void)   
{           
 init_ad9833();  
 output(100007);//freq_dword=fout*268435456/FMCLK       
    while(1)   
    {              
    }   
}   
   
   
   
/*-----------------------------------------------------------------------  
delay_nus       :长延时函数(GCC内部延时函数的延时过短)  
   
输入参数: t         :延时时间 us  
-----------------------------------------------------------------------*/   
void delay_nus(unsigned int t)   
{   
    while (t--);   
          
}   
   
/*-----------------------------------------------------------------------  
delay_nms       :长延时函数(GCC内部延时函数的延时过短)  
   
输入参数: t         :延时时间 ms  
-----------------------------------------------------------------------*/   
void delay_nms(unsigned int t)   
{   
    while (t--);   
          
}   
   
//-----------------------------------------------------------------------    
//Write_word    : 写16位数据到SPI接口,软件SPI方式    
//     
//输入参数: data:   数据(16位)    
//-----------------------------------------------------------------------    
   
void Write_word(unsigned int dataa)   
{   
    unsigned char i;   
       
    SCLK9833=1;   
    SDATA9833=1;   
    FSYNC1=1;   
    delay_nus(2);   
    FSYNC1=0;   
    for(i=0;i<16;i++)   
    {   
        if(dataa&0x8000)    SDATA9833=1;   
        else                SDATA9833=0;   
        delay_nus(1);   
        SCLK9833=0;   
        delay_nus(5);   
        SCLK9833=1;             
        dataa=dataa<<1;   
    }   
       
    delay_nus(2);   
    FSYNC1=1;   
    delay_nus(1);   
    SCLK9833=0;   
    delay_nus(200);   
}   
void init_ad9833(void)   
{   
    Write_word(0x2100); //28位连续,选择频率0,相位0,RESET=1    
    delay_nus(1000);   
    Write_word(0x2000);   
    Write_word(0x4000); //写频率0寄存器的低字节LSB    
    Write_word(0x403f); //写频率0寄存器的高字节MSB    
    Write_word(0x2900); //28位连续,选择频率0,相位0,RESET=1    
    Write_word(0x8000); //写频率1寄存器的低字节LSB    
    Write_word(0x803f); //写频率1寄存器的高字节MSB    
    Write_word(0xC002); //写相位0寄存器    
    Write_word(0xF100); //写相位1寄存器    
    Write_word(0x2000); //28位连续,选择频率0,相位0,RESET=0       
}   
   
//------------------------------------------------------------------    
//output    :AD9833输出指定频率的正弦波    
//    
//输入参数:freq_value   类型:unsigned long    
//输出参数:无    
//------------------------------------------------------------------    
   
void output(unsigned long freq_dword)//freq_dword=fout*2684

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4706  2011-07-21 10:19  AD9833\AD9833程序\AD9833

     文件       1038  2011-07-21 10:19  AD9833\AD9833程序\AD9833.hex

     文件         42  2011-07-21 10:19  AD9833\AD9833程序\AD9833.lnp

     文件       7485  2011-07-14 10:55  AD9833\AD9833程序\AD9833.LST

     文件       7191  2011-07-21 10:19  AD9833\AD9833程序\AD9833.M51

     文件          0  2009-06-29 15:30  AD9833\AD9833程序\AD9833.mpw

     文件       7356  2011-07-14 10:55  AD9833\AD9833程序\AD9833.OBJ

     文件       1848  2011-08-05 07:53  AD9833\AD9833程序\AD9833.Opt

     文件        198  2011-08-05 07:53  AD9833\AD9833程序\AD9833.plg

     文件       2001  2011-07-14 12:10  AD9833\AD9833程序\AD9833.Uv2

    .......      1848  2011-07-21 10:19  AD9833\AD9833程序\AD9833_Opt.Bak

     文件       2204  2009-07-03 10:03  AD9833\AD9833程序\AD9833_Uv2.Bak

     文件        781  2009-07-23 15:29  AD9833\AD9833程序\config.h

     文件      77878  2009-08-11 12:55  AD9833\AD9833程序\Copy_2009811125512.bmp

     文件      77878  2009-08-11 12:55  AD9833\AD9833程序\Copy_2009811125531.bmp

     文件       6432  2011-07-14 12:10  AD9833\AD9833程序\include\AT89X52.H

     文件       3795  2013-03-09 11:26  AD9833\AD9833程序\main.c

     文件       6584  2011-07-21 10:19  AD9833\AD9833程序\main.LST

     文件       5308  2011-07-21 10:19  AD9833\AD9833程序\main.OBJ

    ..A.SH.     19456  2009-08-11 19:50  AD9833\AD9833程序\Thumbs.db

     文件    1668702  2009-07-07 16:45  AD9833\AD9833程序\仿真时序.bmp

     文件      74989  2009-07-15 11:42  AD9833\AD9833程序\仿真时序Final.bmp

     文件     230454  2009-07-07 03:45  AD9833\AD9833程序\时基时序0X2100.bmp

     文件     230454  2009-07-08 17:45  AD9833\AD9833程序\时序0X2100.bmp

     目录          0  2011-07-21 10:19  AD9833\AD9833程序\include

     目录          0  2011-08-05 07:53  AD9833\AD9833程序

     目录          0  2013-03-09 11:25  AD9833

----------- ---------  ---------- -----  ----

              2438628                    27



............此处省略0个文件信息

评论

共有 条评论