《函数信号发生器.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《函数信号发生器

函数信号发生器微电子学院专业:电子电路设计与工艺参赛人员:吕瑞,冯丽丹,律森摘要 本次设计的课题为函数信号发生器,主要控制芯片为单片机STC12c5a32s2,单片机发出信号给AD9850 DDS模块,AD9850输出波形,通过按键来切换不同的波形、幅度、频率,通过12864液晶屏蓝知道所调节的是波形或幅度还是频率,本设计还包括了串口下载调试部分。关键字: STC12c5a32s2 ad9850 DDS模块 12864 1.DDS简介:DDS的基本原理是利用采样定理,通过查表法产生波形。DDS的结构有很多种,其基本的电路原理可用图1来表示。图1相位累加器由N位加法器与N位累加寄存器级联构成。每来一个时钟脉冲fs,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。 用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。最后用低通滤波器滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。2 设计要求:信号发生器能够输出正弦波、方波、三角波,电路必须提供合适的切换装置;输出频率范围:10Hz~2MHz;正弦波输出幅度0~5V可调,方波输出幅度:0~5V可调,三角波输出幅度0~5V可调;所需电源需要自制;可以设计频率和幅度显示电路(此要求为发挥内容,不作要求);3 工作原理:本设计分为:原理如图所示,可分为四个部分:以A1为核心的DDS;以U1为核心的键盘、显示及控制电路。上电后对AD9850初始化并使其输出频率,AD9850输出的信号经C7~C12及L1、L2组成的滤波网络送入电压比较器,从而产生脉冲波,可调电阻可调整脉冲波的幅度和占空比大小;脉冲波的输出端接RC积分电路,使脉冲波转换成三角波。键盘可输入任意的频率设定值,从而输出对应的频率;键盘同时设置了步进值,可根据大小调整需要增加或减小的频率的大小,并显示在LCD12864上。4 软件部分:编译环境选择keil 对于单片机有丰富的库函数可调用控制AD9850AD9850的控制字共40位W0-W4,其中低32位Freq-b0~Freq-b31为频率控制字,用于控制DDS的输出频率。AD9850的串行模式下,第一个写入的位是Freq-b0,最后一个写入的位是Phase-b4。下面程序中,“dds”和“freq”都是长整形变量,“freq” 是想要设置的dds=23.860929422*freq; 频率值,“dds”是将要写入AD9851的值。这是因为DataSheet指出(=十进制32位频率控制字,表示系统时钟,这里是125MHz),因此。 以下是将预置频率写入AD9851的参考程序#include ad9850.hsbit fq=P3^5;sbit rst=P3^6;sbit clk=P3^4;#define dat P2double Con_Word_1_9850 = 0x00;double Con_Word_2_9850 = 0x00;unsigned long int ConTrol_Word_9850 = 0x00; void init9850(void){ clk=0; fq=0; rst=1; rst=0;}void send_control_9850(unsigned long int word){unsigned long int ConTrol_Word_Temp;unsigned char data_word ;clk=0;fq=0;data_word=0x00;dat=data_word;clk=1;clk=0;//w1ConTrol_Word_Temp=word;word=word24;data_word=word%256;dat=data_word;;clk=1;clk=0;//w2word=ConTrol_Word_Temp;word=word16;data_word=word%256;dat=data_word;;clk=1;clk=0;//w3word=ConTrol_Word_Temp;word=word8;data_word=word%256;

文档评论(0)

1983xuesheng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档