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

📄 ad9850.h

📁 用单片机控制DDS芯片的函数发生器
💻 H
字号:
/**************************************************************************
  
   File Name:       AD9850.h
   Author:          liuxinfa
   Created:         2008/8/1
   Modified:		NO
   Revision: 		1.0
   Email:           mc22@163.com
  
***************************************************************************/



//Port Definitions*********************************************************
sbit W_CLK= P3^6;
sbit FQ_UD= P3^5;
sbit DDSData= P3^7;

//初始化AD9850****************************************************************
//设为串行方式
void AD9850_Initial()
{
        W_CLK=0;
        FQ_UD=0;
        W_CLK=1;
        W_CLK=0;
        FQ_UD=1;
        FQ_UD=0;
}

//写入控制字**************************************************************
//freq为频率,d4为相位.
void AD9850_Write(float freq,unsigned long d4)
{
        float fw;
        unsigned char i,j,temp;
        unsigned char d[5];
        fw=freq*34.359738368;    //fw=freq*2^32/fs  fw为32位频率控制字;fs为参考频率源
                                //这里的fs为125M
        d[0]=(unsigned long)fw;
        d[1]=(unsigned long)fw>>8;
        d[2]=(unsigned long)fw>>16;
        d[3]=(unsigned long)fw>>24;
        d[4]=(unsigned long)(d4/11.25)*8;
        
        for(i=0;i<5;i++)
        {
            temp=d[i];
            for(j=0;j<8;j++)
            {
                W_CLK=0;
                if(temp&1)DDSData=1;
                else DDSData=0;
                W_CLK=1;
                temp=temp>>1;
            }
        }
        FQ_UD=1;
        W_CLK=0;
        FQ_UD=0;
}

⌨️ 快捷键说明

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