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

📄 dds.txt

📁 直接数字频率直接数字频率合成器(DDS)合成器(DDS)
💻 TXT
字号:
#include "main.h"    
#include <REG51.H>    
   
   
   
sbit  FSYNC=P1^2;   
sbit  SCLK=P1^1;   
sbit  SDATA=P1^0;   
   
tWord Config_Data[8];   
   
void  Wave_Generate(tLong,tByte);   
   
void main(void)   
{   
   
  FSYNC=1;   
  SCLK=0;   
   
  Wave_Generate(1000000,0);   
   
  while(1) ;   
   
}   
   
   
//向ad9833写一命令字(2Bytes)    
void AD9833_Send_Word(tWord Data_In)   
{   
   tByte i;   
   tByte j;   
   
   SCLK=1;   
   FSYNC=0;   
   for(i=0;i<16;i++)   
   {   
     SCLK=1;   
     SDATA=(bit)((Data_In & 0x8000)>>15);   
     j=0x01;   
     while(j--);   
     SCLK=0;   
     Data_In=Data_In<<1;   
     j=0x01;   
     while(j--);   
   }   
   FSYNC=1;   
   SCLK=0;   
   
}   
   
   
//波形发生函数    
//入口参数: 频率:Freq (<=12000000)    
//          形状:0(正弦波),1(三角波),2(方波)    
//默认: Fmclk=25MHz, 0相移,方波不分频.    
void  Wave_Generate(tLong Freq,tByte Shape)   
{   
   tLong temp;   
   tByte k;   
   if(Freq>12000000) Freq=12000000;   
   switch(Shape)   
   {   
     case 0: Config_Data[0]=0x2108;   
             Config_Data[7]=0x2008;   
             break;   
     case 1: Config_Data[0]=0x210A;   
             Config_Data[7]=0x200A;   
             break;   
     case 2: Config_Data[0]=0x2128;   
             Config_Data[7]=0x2028;   
             break;   
     default:Config_Data[0]=0x2108;   
             Config_Data[7]=0x2008;   
   }   
   
   temp=Freq*13.4217728;   //temp=Freq*(0x10000000/20000000);    
   Config_Data[1]=temp&0x00003fff;   
   Config_Data[3]=Config_Data[1];   
   Config_Data[2]=(temp&0x0fffc000)>>14;   
   Config_Data[4]=Config_Data[2];   
   
   Config_Data[1]=Config_Data[1]|0x4000;   
   Config_Data[2]=Config_Data[2]|0x4000;   
   Config_Data[3]=Config_Data[3]|0x8000;   
   Config_Data[4]=Config_Data[4]|0x8000;   
   Config_Data[5]=0xC000;   
   Config_Data[6]=0xE000;   
   
   for(k=0;k<8;k++)   
  {   
     AD9833_Send_Word(Config_Data[k]);   
  }   
   
}   
   

⌨️ 快捷键说明

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