ad9850启动程序

来源:百度知道 编辑:UC知道 时间:2024/06/21 01:00:43
#include<at89x52.h>
unsigned char mode[5]={0x58,0x00,0x00,0x01,0x80};//发给ad9850的5组数据
sbit CLK=P3^6;\\数据时钟
sbit FQ_UD=P3^7;
sbit DATA_OUT=P2;\\与ad9850数据输入口连接口--P2口

void delay(unsigned int i)
{
while(i--);
}
void da(void)
{
unsigned char j=0;
FQ_UD=0;
for(j=0;j<5;j++)
{
CLK=0; \\时钟低电平
DATA_OUT=mode[j]; \\发送数据
delay(1);
CLK=1; \\时钟高电平
delay(1);
}
CLK=0;
FQ_UD=1;
DATA_OUT=0X00;
}

void main()
{
DATA_OUT=0X00;
CLK=0;
FQ_UD=1;
da();
while(1)
{
;;
}
}
为什么没有波形产生?
ad9850是一个波形产生芯片(DDS),只要给它写好控制字(写一次就可以),就可以产生波形,当然我外接了16M有源晶振,芯片和晶振都是5V的。

你的da()函数放在mainLoop外面,也就是说执行一次就OVER了,来得及抓波形吗???

你可以把da()放在一个loop里来看波形
或者调下示波器的触发方式,当电平变化时自动stop

SFD