单片机控制 AD9850 的数字信号发生器 C51 程序
[日期:2009-08-17 ] [来源:东哥单片机学习网 作者:admin] [字体:大 中 小] (投递新闻)
单片机控制 AD9850 的数字信号发生器 C51 程序
//-----------------------函数声明,变量定义------------------------------
#include <reg51.h>
#include <intrins.h>
#include<ABSACC.H>
//-----------------------定义管脚----------------------------------------
#define data_OUT P1
sbit FQ_UD=P3^0; //AD9850 信号更新申请
sbit W_CLK=P3^1; //写控制字时钟
unsigned char CON_word[5];
//Word data[7] data[6] data[5] data[4] data[3] data[2] data[1] data[0]
//W0 Phase b Phase b3 Phase b2 Phase b1 Phase b0 Power Down Control
Control
//W1 Freq-b31 Freq-b30 Freq-b29 Freq-b28 Freq-b27 Freq-b26 Freq-b25 Freq-b24
//W2 Freq-b23 Freq-b22 Freq-b21 Freq-b20 Freq-b19 Freq-b18 Freq-b17 Freq-b16
//W3 Freq-b15 Freq-b14 Freq-b13 Freq-b12 Freq-b11 Freq-b10 Freq-b9 Freq-b8
//W4 Freq-b7 Freq-b6 Freq-b5 Freq-b4 Freq-b3 Freq-b2
//--------------------------------------------------------------------------------------------------
// 函数名称: delay
// 入口参数: N
// 函数功能:延时子程序,实现(16*N+24)us 的延时
// 系统采用 11.0592MHz 的时钟时,延时满足要求,其它情况需要改动
//--------------------------------------------------------------------------------------------------
void delay(unsigned int N)
{
int i;
for(i=0;i<N;i++);
}
//--------------------------------------------------------------------------------------------------
// 函数名称: WRITE_AD9850
// 函数功能: 将控制字写入 AD9850
//--------------------------------------------------------------------------------------------------
void WRITE_AD9850(void)
{
unsigned char i;
FQ_UD=0;
W_CLK=0;
delay(0);
CON_word[0]=CON_word[0]&0xFC; //置工作方式选择位为 00
for(i=0;i<5;i++)
评论5