❶ DDS与单片机之间有什么区别
楼主:
1,DDS:直接数字合成技术;单片机:一个小微处理器.
2,例如:基于DDS技术 和AT89C51 组成的单片机小系统进行硬件和软件的设计,实现低频信号源的产生。
3,如使用AT89C51+DAC0832(数模芯片)设计一个简单的信号发生器,就是DDS技术与单片机结合。就是基于DDS 和单片机的应用。
❷ 怎样用STC12单片机实现DDS技术(即思想)
想用一个单片机就能实现这种技术 ,就是那个不同的脉冲宽度怎么调节和输出的频率?
不可完全代替DDS!
❸ 单片机DDS波形发生器
外接一块AD9850
# include <reg51.h>
# include <intrins.h>
sbit ad9850_w_clk =P2^2; //P2.2口接ad9850的w_clk脚/PIN7
sbit ad9850_fq_up =P2^1; //P2.1口接ad9850的fq_up脚/PIN8
sbit ad9850_rest =P2^0; //P2.0口接ad9850的rest脚/PIN12
sbit ad9850_bit_data =P1^7; //P1.7口接ad9850的D7脚/PIN25
//P1为8位数据口
//***************************************************//
// ad9850复位(并口模式) //
//---------------------------------------------------//
void ad9850_reset()
{
ad9850_w_clk=0;
ad9850_fq_up=0;
//rest信号
ad9850_rest=0;
ad9850_rest=1;
ad9850_rest=0;
}
void ad9850_wr_parrel(unsigned char w0,double frequence)
{
unsigned char w;
long int y;
double x;
//计算频率的HEX值
x=4294967295/40;//适合40M晶振
//如果时钟频率不为40MHZ,修改该处的频率值,单位MHz !!!
frequence=frequence/1000000;
frequence=frequence*x;
y=frequence;
//写w0数据
w=w0;
P1=w; //w0
ad9850_w_clk=1;
ad9850_w_clk=0;
//写w1数据
w=(y>>24);
P1=w; //w1
ad9850_w_clk=1;
ad9850_w_clk=0;
//写w2数据
w=(y>>16);
P1=w; //w2
ad9850_w_clk=1;
ad9850_w_clk=0;
//写w3数据
w=(y>>8);
P1=w; //w3
ad9850_w_clk=1;
ad9850_w_clk=0;
//写w4数据
w=(y>>=0);
P1=w; //w4
ad9850_w_clk=1;
ad9850_w_clk=0;
//移入始能
ad9850_fq_up=1;
ad9850_fq_up=0;
}
main()
{
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x00;
//---------------------------------------------------//
//并行写1000Hz程序
ad9850_reset();
ad9850_wr_parrel(0x00,1000);
//---------------------------------------------------//
while(1);
}
❹ dds和单片机制作信号发生器有什么缺陷
dds 波形好,单片机波形差,单片机波形发生器波形可以任意设置,但不能真正用,速度低,失真大。除非采用很高速处理器,高速DA。
❺ 基于FPGA的DDS波形发生器和由单片机控制,并采用FPGA实现DDS功能这俩个有什么区别 ...
基于FPGA的DDS波形发生器和由单片机控制,并采用FPGA实现DDS功能这俩个有什么区别
❻ 基于FPGA的DDS波形发生器和由单片机控制,并采用FPGA实现DDS功能这俩个有什么区别,急需高手指教
如果为了提高毕设的成功率的话还是用FPGA来做好,这样调试起来简单
如果用单片机控制FPGA的话还需要增加单片机和FPGA之间的接口调试,不确定因素多了,调试会更复杂。增加工作量。但是这样能够学到更多东西,看你怎么取舍了。
❼ 单片机DDS波形发生器
单片机DDS波形发生器
度是没办法由它自己调的,它输出的是电流值,由外加一个电阻决定的幅值,如果要调幅的话你得外加其他电路。
控制字的注入有两种模式:并行与串行,你自己看它的DATASHEET,了解它的时序并模拟时序就行。不过提醒你:上电后必须给它一个RESET信号才能写其他控制字,否则出不了的,这个在DATASHEET上没说。
至于程序我以前写的不在了,挺简单的,不过控制字的计算比较烦,可以建立一个查找表,32位控制字每个控制字对应一个频率,再比较而得控制字。
DATASHEET可在
匿名 0 2span class="tm"
❽ 51单片机DDS程序 (dds>>8)&0xFF 的意思
ww[5]={0x09,0x0E,0x38,0xE3,0x8E} 是在给数组定值,以后如果你要调用这些值的话直接调用数组就可以了,方便而且有比较好的移植性
&这符号是"与"运算,你可以把它理解为相乘,
ww[1]=(dds>>8)&0xFF 就是对数组ww里的第二个元素(数组下标最低为0),进行赋值,赋的值是将dds这个变量的值向右移8位,然后与0xFF相与(假如dds右移8位后的值为10101010,那么与0xFF(11111111)相与后得到的值就是10101010,前面说过,&就是做相乘的动作,所以1*0=0,1*1则等于1)
这样你理解了吗?