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

📄 ad9851.c

📁 基于AD9851的DDS信号发生器的c语言编程
💻 C
字号:
/*************************DDS信号源芯片AD9851****************/
/*                  采用IO口方式:
                          单片机   ----    AD9851
                          P2^6     ----    W_CLK
                          P2^5     ----    FQ_UD
                          P2^4     ----    RESET
*/
#include<reg52.h>
#include<absacc.h>
#include<math.h>
#include<intrins.h>
#define uint unsigned int
#define ulong unsigned long
#define uchar unsigned char
#define nop  _nop_()
#define Kf 2147.48      //定义频率控制字系数 Kf=2^32/SCLOCK 此处用SCLK=2M 
sbit W_CLK=P2^6;
sbit FQ_UD=P2^5;
sbit RESET=P2^4;

void DDS(float f);
ulong FnDDS(float f);

void DDS(float f)
{
    uchar i;
    ulong Dn;
    uchar W[5];
    Dn=FnDDS(f);
    W[0]=0x00;         //若用6倍频则取 W[0]=01;
    W[1]=(Dn&0xff000000)>>24;
    W[2]=(Dn&0x00ff0000)>>16;
    W[3]=(Dn&0x0000ff00)>>8;
    W[4]=Dn&0x000000ff;
    
    RESET=0;
    RESET=1;
    nop;
    RESET=0;
    FQ_UD=0;
    W_CLK=0;
    for(i=0;i<5;i++)
    {
      P0=W[i];
      W_CLK=1;
      nop;
      W_CLK=0;
    }
    nop;
    FQ_UD=1;
    nop;
    FQ_UD=0;
}

ulong FnDDS(float f)
{
    ulong temp;
    temp=Kf*f;
    return temp;
}


void main()
{
     P0=0xff;
     DDS(1000);
     while(1);
   
}

⌨️ 快捷键说明

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