函数信号发生器Word版.docx

上传人:doc321 文档编号:14928161 上传时间:2022-02-24 格式:DOCX 页数:5 大小:110.69KB
返回 下载 相关 举报
函数信号发生器Word版.docx_第1页
第1页 / 共5页
函数信号发生器Word版.docx_第2页
第2页 / 共5页
函数信号发生器Word版.docx_第3页
第3页 / 共5页
函数信号发生器Word版.docx_第4页
第4页 / 共5页
函数信号发生器Word版.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《函数信号发生器Word版.docx》由会员分享,可在线阅读,更多相关《函数信号发生器Word版.docx(5页珍藏版)》请在三一文库上搜索。

1、函数信号发生器微电子学院 专业: 电子电路设计与工艺参赛人员: 吕瑞 ,冯丽丹 , 律森 本次设计的课题为函数信号发生器,主要控制芯片为单片机STC12c5a32s2,单片机发出信号给AD9850 DDS模块,AD9850输出波形,通过按键来切换不同的波形、幅度、频率,通过12864液晶屏蓝知道所调节的是波形或幅度还是频率,本设计还包括了串口下载调试部分。关键字: STC12c5a32s2 ad9850 DDS模块 12864 1.DDS简介:DDS的基本原理是利用采样定理,通过查表法产生波形。DDS的结构有很多种,其基本的电路原理可用图1来表示。图1相位累加器由N位加法器与N位累加寄存器级联

2、构成。每来一个时钟脉冲fs,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。 用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)

3、经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。最后用低通滤波器滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。2 设计要求:信号发生器能够输出正弦波、方波、三角波,电路必须提供合适的切换装置;输出频率范围:10Hz2MHz;正弦波输出幅度05V可调,方波输出幅度:05V可调,三角波输出幅度05V可调;所需电源需要自制;1 / 5可以设计频率和幅度显示电路(此要求为发挥内容,不作要求);3 工作原理:本设计分为:原理如图所示,可分为四个部分:以A1为核心的DDS;以U1为核心的键盘、显示及控制电路。

4、上电后对AD9850初始化并使其输出频率,AD9850输出的信号经C7C12及L1、L2组成的滤波网络送入电压比较器,从而产生脉冲波,可调电阻可调整脉冲波的幅度和占空比大小;脉冲波的输出端接RC积分电路,使脉冲波转换成三角波。键盘可输入任意的频率设定值,从而输出对应的频率;键盘同时设置了步进值,可根据大小调整需要增加或减小的频率的大小,并显示在LCD12864上。4 软件部分:编译环境选择keil 对于单片机有丰富的库函数可调用控制AD9850AD9850的控制字共40位W0-W4,其中低32位Freq-b0Freq-b31为频率控制字,用于控制DDS的输出频率。AD9850的串行模式下,第一

5、个写入的位是Freq-b0,最后一个写入的位是Phase-b4。下面程序中,“dds”和“freq”都是长整形变量,“freq” 是想要设置的dds=23.860929422*freq; 频率值,“dds”是将要写入AD9851的值。这是因为DataSheet指出(=十进制32位频率控制字,表示系统时钟,这里是125MHz),因此。 以下是将预置频率写入AD9851的参考程序#include ad9850.hsbit fq=P35;sbit rst=P36;sbit clk=P34;#define dat P2double Con_Word_1_9850 = 0x00;double Con_W

6、ord_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=w

7、ord24;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;/w3 word=ConTrol_Word_Temp;word=word8;data_word=word%256;dat=data_word;clk=1;clk=0;/w4 word=ConTrol_Word_Temp;word=word;data_word=word%256;dat=data_word;clk=1;clk=0;f

8、q=1;void Calculate_Control_Word_9850(unsigned long int Frequency_Out_9850)Con_Word_1_9850 = Frequency_Out_9850 * 34;/算出整数部分 Con_Word_2_9850 = Frequency_Out_9850 * 0.3597; /算出小数部分 (系数=232/CLK ) Con_Word_2_9850 = Con_Word_2_9850 + 0.5;/小数部分修正 Con_Word_1_9850 = Con_Word_1_9850 + Con_Word_2_9850; /整数+修正

9、后的小数 ConTrol_Word_9850 = Con_Word_1_9850 / 1;void init_9850(void)rst=1;delay_9850(10000);rst=0;void write_9850(unsigned long int fq)init_9850();Calculate_Control_Word_9850(fq);send_control_9850(ConTrol_Word_9850);void delay_9850(long int n) while(n!=0) n-; 友情提示:方案范本是经验性极强的领域,本范文无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1