《基于DDS的函数发生器毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于DDS的函数发生器毕业设计论文.doc(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于DDS的函数发生器JIANGXI AGRICULTURAL UNIVERSITY本 科 毕 业 设 计题目: 基 于 DDS的 函 数 发 生 器 学 院: 工学院 姓 名: 学 号: 20081178 专 业: 电子信息工程 年 级: 2008级 指导教师: 职 称:副教授 二零一二 年 五 月- III -摘 要一块DDS芯片中主要包括频率控制寄存器、高速相位累加器和正弦计算器三个部分。频率控制寄存器可以串行或并行的方式装载并寄存用户输入的频率控制码;而相位累加器根据频率控制码在每个时钟周期内进行相位累加得到一个相位值;正弦计算器则对该相位值计算数字化正弦波幅度(芯片一般通过查表得到)
2、。DDS芯片输出的一般是数字化的正弦波,因此还需经过高速D/A转换器和低通滤波器才能得到一个可用的模拟频率信号。基于直接数字频率合成 (DDS) 原理,利用 AT89C52 单片机作为控制器件,采用 AD9850型DDS器件设计一个信号发生器。给出了信号发生器的硬件设计和软件设计参数,该系统可输出正弦波、方波,且频带较宽、频率稳定度高,波形良好。该信号发生器具有更强的市场竞争力,在跳频技术、无线电通信技术方面具有比较广阔的发展前景。关键字:信号发生器;直接数字频率合成;AD9850 芯片;AT89C52 单片机。AbstractA piece of DDS chip mainly includ
3、es frequency control registers, high-speed phase accumulators and sine calculator three parts. Frequency control register can serial or parallel way loaded and hosting the user input frequency control code; And phase accumulators according to the frequency control code in each clock cycle for phase
4、accumulate get a phase value; In this phase is sine calculator value calculation digital sine wave amplitude (chip general through the look-up table get). The general is DDS chip output digital sine wave, and so is required to pass through the D/A converter and low-pass filter to get one of the avai
5、lable simulation frequency signal.On the basis of direct digital synthesis (DDS) principle, a signal generator was designed using AT89C52 single chip machine as the control device and adopting AD9850 type DDS device. Hardware and software design parameters were given. The system can output sine wave
6、, square wave with wide frequency band, high frequency stability and good waveform. The signal generator has stronger market competitiveness with wider development prospect in frequency modulation technology and radio communication technology fields.Key words : signal generator; direct digital synth
7、esis; AD9850; AT89C52.目 录摘 要IAbstractII目 录III1 引言11.1 选题背景11.2 DDS介绍22 AD9850介绍62.1 芯片性能62.2 AD9850 的控制字及控制时序72.3 管脚定义102.4 基于AD9850的模块原理图103 总体设计方案113.1 系统设计原理113.2 总体设计框图114 系统硬件模块的组成124.1 键盘控制模块124.2 单片机控制模块124.2.1 AT89S52的主要性能124.2.3 时钟电路144.2.4 复位电路154.3 LCD显示模块164.3.1 LCD12864的主要性能164.3.2 LCD与
8、单片机的联接174.4 AT9850与单片机的联接174.5 滤波电路185 软件设计与调试205.1 程序流程图205.2 软件调试215.3 测试结果276 总结30参考文献31致 谢32基于DDS的函数发生器1 引言1.1 选题背景在电子技术领域中,经常要用一些信号作为测量基准信号或输入信号,也就是所谓的信号源。信号源有很多种,包括正弦波信号源、函数发生器、脉冲发生器、扫描发生器、任意波形发生器、合成信号源等。作为电子系统必不可少的组成部分的信号源,在很大程度上决定了系统的性能,因而常称之为电子系统的“心脏”。随着电子技术的发展,对信号源的要求越来越高,要求其输出频率高达微波频段甚至更高
9、,频率范围从零Hz到几GHz频率分辨率达到mHz甚至更小,相应的频点数更多;频率转换时间达到ns级:频谱纯度越来越高。同时,对频率合成器功耗、体积、重量等也有更高的要求。而传统的信号源采用振荡器,只能产生少数几种波形,自动化程度较低,且仪器体积大、灵活性与准确度差。而现在要求信号源能产生波形的种类多、频率高,而且还要体积小、可靠性高、操作灵活、使用方便及可由计算机控制。所以要实现高性能的信号源,必须在技术手段上有新的突破。当今高性能的信号源均通过频率合成技术来实现,随着计算机、数字集成电路和微电子技术的发展,频率合成技术有了新的突破,直接数字频率合成技术(Direct Digital Synt
10、hesis DDS),它是将先进的数字信号处理理论与方法引入到信号合成领域的一项新技术,它的出现为进一步提高信号的频率稳定度提供了新的解决方法。同时,随着微电子技术的迅速发展,尤其是单片机技术的发展,智能仪器也有了新的进展,功能更加完善,性能也更加可靠,智能程度也不断提高直接数字式频率合成技术的出现导致了频率合成领域的一次重大革命。直接数字频率合成器问世之初,构成DDS元器件的速度的限制和数字化引起的噪声这两个主要缺点阻碍了DDS的发展与实际应用。近几年超高速数字电路的发展以及对DDS的深入研究,DDS的最高工作频率以及噪声性能已接近并达到锁相频率合成器相当的水平。随着微电子技术的迅速发展,直
11、接数字频率合成器得到了飞速的发展,它以有别于其他频率合成方法的优越性能和特点成为现代频率合成技术中的佼佼者。具体体现在相对带宽宽、频率转换时间短、频率分辨率高、输出相位连续、可产生宽带正交信号及其他多种调制信号、可编程和全数字化、控制灵活方便等方面,并具有极高的性价比。现已广泛应用于通讯、导航、雷达、遥控遥测、电子对抗以及现代化的仪器仪表工业等领域。信号发生器是一种常用的信号源,广泛应用于电子测量、自动控制和工程设计等领域。随着电子技术的发展,对信号源频率的稳定度、准确度以及频谱纯度的要求越来越高。DDS(直接数字合成)技术是从相位概念出发直接合成所需波形的一种新的频率合成技术,与传统的模拟式
12、波形产生法相比,它具有相位变换连续、频率转换速度快、分辨率高、稳定度高、相位噪声小、便于集成、易于调整及控制灵活等多种优点。基于DDS技术的信号发生器是一类新型信号源,它已成为众多电子系统中不可缺少的组成部分。1.2 DDS介绍1971年,美国J. Tierney等人撰写的A Digital Frequency synthesizer.一文首次提出了一种全新的数字技术,从相位概念发出合成所需波形的一种新原理。限于当时的技术和器件的限制,它的性能不能与已有的技术相比,故未受到重视。近一年间,随着微电子技术得到飞速发展,它以有别于其他频率合成方法的性能和优越性特点成为现代频率合成的优秀者。1、DD
13、S内部结构原理DDS的基本原理是利用采样定量,通过查表法产生波形。DDS结构有很多种,其基本的电路原理用下图1所示。相位累加器由N位加法器和N位累加寄存器级联构成。没一个时钟脉冲fs,加法器将控制字K于累加寄存器输出的累加相位数据相加,把相加后的结果送到累加寄存器的数据输入端,以使加法器的下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行相位加累加。由此可以看出,相位累加器在每一个中输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的出频率就是DSS输出的信号频率,用相位累加器输出的数据作为波形存储器(ROM)的相位取样
14、地址。这样就可以把存储在波形存储器内的波形的抽样值可经查表得出,完成相位到幅值的转换。波形存储器的输出会送到D/A转换器,D/A转换器将数字量的波形幅值转换成所需的波形频率的模拟量。低通滤波器用于滤除不要的取样分量,以便于输出频谱纯净的信号。DDS在相对带宽,频率转换时间,相位连续性,正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术的水平。相位累加器波形存储器D/A转换器低通滤波器Kfs正弦波输出图1 DDS内部原理框图2、DDS的数学原理设有一个频率为的 余弦信号:现在以采样频率对进行采样,得到的离散序列为: 其中为采样周期。对应的相位序列为 从上式可以看出相位序列呈线性,即
15、相邻的样值之间的相位增量是一个常数,而且这个常数仅与信号的频率有关,相位增量为:因为信号频率与采样频率之间有以下关系: 其中与为两个正整数,所以相位的增量也可以完成:由上式可知,若将的相位均匀的分为等份,那么频率为的余弦信号以频率采样后,它的量化序列的样品之间的量化相位增量为一个不变值。 根据上述原理可以构造一个不变量为量化相位增量的量化序列: 然后完成从到另一个序列的映射,由构造序列: 公式(21)公式(2-1)是连续信号经采样频率为采样后的离散时间序列,根据采样定理,当时,经过低通滤波器平滑后,可唯一恢复出。 可见,通过上述变换不变量将唯一的确定一个单频率模拟余弦信号: 该信号的频率为:
16、公式(22)公式(22)就是直接数字频率合成(DDS)的方程式,在实际的DDS中,一般取,于是DDS方程就可以写成: 公式(23)根据公式(23)可知,要得到不同的频率只要通过改变的具体数值就可以了,而且还可以得到DDS的最小频率分辨率(最小频率间隔)为当时的输出频率:可见当参考频率始终一定是,其分辨率由相位累加器的位数决定,若取,则,即分辨率可以达到,这也是最低的合成频率,输出频率的高精度DDS的一大优点。由奈奎斯特准则可知,允许输出的最高频率,即,但实际上在应用中受到低通滤波器的限制,通常,以便于滤波镜像频率,一般:由此可见DDS的工作频率带较宽,可以合成从直流到的频率信号,同时它的输出相
17、位连续,频率稳定度高。2 AD9850介绍2.1 芯片性能随着数字技术的飞速发展,用数字控制方法用一个参考频率源产生多种频率的技术,即直接数字频率合成(DDS)技术异军突起。美国AD公司推出的高集成度频率合成器AD9850便是采用DDS技术的典型产品之一。AD9850采用先进的CMOS工艺,其功耗在3.3V供电时仅为155mW,扩展工业级温度范围为-4080,采用28脚SSOP表面封装形式。AD9850的引脚排列,图2为其组成框图。图2中层虚线内是一个完整的可编程DDS系统,外层虚线内包含了AD9850的主要组成部分。AD9850内含可编程DDS系统和高速比较器,能实现全数字编程控制的频率合成
18、。可编程DDS系统的核心是相位累加器,它由一个加法器和1个N位相位寄存器组成,N一般为2432。每来一个外部参考时钟,相位寄存器便以步长M递加。相位寄存器的输出与相位控制字相加后可输入到正弦查询表地址上。正弦查询表包含一个正弦波周期的数字幅度信息,每一个地址对应正弦波中0360范围的一个相位点。查询表把输入地址的相位信息映射成正弦波幅度信号,然后驱动DAC以输出模式量。相位寄存器每经过2N/M外部参考时钟后返回到初始状态一次,相应地正弦查询表每经过一个循环也回到初始位置,从而使整个DDS系统输出一个正弦波。输出的正弦波周期To=tc2N/M,频率fout=Mfc/2N,tc,fc分别为外部参考
19、时钟的周期和频率。AD9850采用32位的相位累加器将信号截断成14位输入到正弦查询表,查询表的输出再被截断成10位后输入到DAC,DAC再输出两个互补的电流。DAC满量程输出电流通过一个外接电阻RSET调节,调节关系为ISET=32(1.148V/RSET),RSET的典型值是3.9k。将DAC的输出经低通滤波器后接到AD9850内部的高速比较器上即可直接输出一个抖动很小的方波。AD9850在接上精密时钟源和写入频率相位控制字之间后就可产生一个频率和相位都可编程控制的模拟正弦波输出,此正弦波可直接用作频率信号源或经内部的高速比较器转换为方波输出。在125MHz的时钟下,32位的频率控制字可使
20、AD9850的输出频率分辨率达0.0291Hz;并具有5位相位控制位,而且允许相位按增量180、90、45、22.5、11.25或这些值的组合进行调整。流程如图3。图2 AD9850系统功能图微控制器相位累加器波形转换和算法低通滤波器数模转换器比较器矩形波端口参考时钟Sin信号 图3 整体原理图2.2 AD9850 的控制字及控制时序AD9850 的控制字有 40 位 ,其中 32 位是频率控制位 ,5 位是相位控制位 ,1 位是电源休眠控制位 ,2 位是工作方式选择控制位。在应用中 ,工作方式选择位设为00 ,因为 01 ,10 ,11 已经预留作为工厂测试用。频率控制位可通过下式计算得到:
21、f out = ( f r W) / 232其中: f out 要输出的频率值; f r 为参考时钟频率;W 为相应的十进制频率控制字, 然后转换为十六进制即可。AD9850 有串行和并行两种控制命令字写入方式。其中串行写入方式是采用 D7 作为数据输入端 ,每次W_CL K的上升沿时把一个数据串行移入到输入寄存器40 位数据都移入后 ,FQ_UD 上升沿时完成输出信号频率和相位的更新。串行控制字的写入时序如图 4 所示。但是要注意的是 ,此时数据输入端的三个管脚不可悬空 ,其中D0 ,D1 脚接高电平 ,D2 脚要接地。图4 时序图在表1中,位W0W31的32位是频率控制字,改变它的内容可以
22、改变AD9850的输出频率。位W32和W33用于工厂测试,应向这两位赋0。位W34用来控制AD9850的上电和掉电,当不需要输出信号时,通过打这一位置1来实现掉电。位W35W39的5位是相位控制字,改变它的内容可以改变AD9850的输出相位。串行装载时,AD9850的D7引脚和W_CLK引脚组成同步串行接口,这个接口可以直接与89S52相接连。40位控制/数据字通过AD9850的D7引脚在W_CLK引脚的脉冲信号上升边沿作用下分40次装入。W0在前,W39在后,依次装入。完成40位控制/数据字的装载后,FQ_UD引脚的脉冲信号上升沿刷新AD9850的工作状态,同时复位寄存器指针,准备下一次位控
23、制/数据字的装入。表1 AD9850串行装载的数据结构位代号功能位代号功能位代号功能位代号功能W0Freq-b0(LSB)W10Freq-b10W20Freq-b20W30Freq-b30W1Freq-b1W11Freq-b11W21Freq-b21W31Freq-b31(MSB)W2Freq-b2W12Freq-b12W22Freq-b22W32ControlW3Freq-b3W13Freq-b13W23Freq-b23W33ControlW4Freq-b4W14Freq-b14W24Freq-b24W34Power-DownW5Freq-b5W15Freq-b15W25Freq-b25W3
24、5Phase-b0(LSB)W6Freq-b6W16Freq-b16W26Freq-b26W36Phase-b 1W7Freq-b7W17Freq-b17W27Freq-b27W37Phase-b 2W8Freq-b8W18Freq-b18W28Freq-b28W38Phase-b 3W9Freq-b9W19Freq-b19W29Freq-b29W39Phase-b4(MSB)2.3 管脚定义图5 AD9850引脚图2.4 基于AD9850的模块原理图图 6 AD9850模块图3 总体设计方案3.1 系统设计原理本文提出的采用DDS作为信号发生核心器件的全数控函数信号发生器设计方案, 根据输出
25、信号波形类型可设置、输出信号频率可数控、输出频率宽等要求,选用了美国A/D公司的AD9850 芯片,并通过单片机程序控制和处理AD9850的32位频率控制字, 再经放大后加至以数字电位器为核心的数字衰减网络, 从而实现了信号频率、类型以及输出等选项的全数字控制。本系统主要由单片机、DDS直接频率信号合成器、键盘电路、A/D转换模块、滤波电路等部分组成。单片机AT89S52是整个系统关键部分,通过对键盘进行扫描读入相位信息,经转换后输出到芯片AD9850,输出波形。键盘输入的数字信息经AT89S52控制的LCD12864显示。3.2 总体设计框图系统构成如下图7所示。LCD12864键盘单片机A
26、D9850低通滤波器信号输出图7 系统框图4 系统硬件模块的组成4.1 键盘控制模块通过键盘对波形的频率进行控制,如图8所示。 图8 键盘控制模块4.2 单片机控制模块主控电路中,以单片机为主体,通过分析键盘输入的数字值,对AD9850写入相应的控制字。它是系统的大脑。单片机(MICROCONTROLLER,又称为微控制器)是在一块硅片上集成了各种部件的微型机算计,这些部件包括中央处理器CPU、数据存贮器RAM、程序存贮器ROM、定时器/计数器和多种I/O接口电路。4.2.1 AT89S52的主要性能单片机AT89S52的主要性能分别为:与MCS-51单片机产品兼容;8K字节在系统可编程Fla
27、sh存储器;1000次擦写周期;全静态操作:0Hz33Hz、三级加密程序存储器、 32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、11掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。4.2.2 AT89S52的功能描述T89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得A
28、T89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案2。AT89S52具有以下标准功能:8k字节Flash、256字节RAM、32 位I/O 口线、看门狗定时器、2个数据指针、三个16 位定时器/计数器、一个6向量2级中断结构、全双工串行口、片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52的引脚结构如图9所示:图9 单片机AT89S52引脚结构图P0
29、口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写为“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,P1.0和P1.2
30、分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),在flash编程和校验时,P1口接收低8位地址字节。P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器。能驱动4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部
31、数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号4。随着计算机技术的高速发展,单片机以其自身的特点,已广泛应用于智能仪器、工业控制、家用电器、电子玩具等各个领域。4.2.3 时钟电路XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和X
32、TAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自激振荡器5。片外石英晶体或者陶瓷谐振器及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,这里采用电容30pF,晶振通常采用11.0592MHz,如图10所示。 图10 时钟电路4.2.4 复位电路AT89C51的外部复位电路有上电自动复位和手动按键复位。上电复位电容充电来实现。手动按键复位又分为按键电平复位和按键脉冲复位。按键电平复位电路是在普通RC复位电
33、路的基础上接一个有下拉电阻10K、上拉电容10f接VCC,电源由开关经串接的1K限流电阻至复位脚(和上拉电容并联),上拉电容支路负责在“上电”瞬间实施复位;开关通过1K上拉电阻和10K下拉电阻分压器,保证对单片机实施按键电平复位。电路图如图11所示:图11 复位电路4.3 LCD显示模块现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。12684型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。4.3.1 LCD12864的主要性能带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示
34、分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。12864型接口电路说明如表2所示。 表 2 LCD接口说明管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC3.0+5V电源正3V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,表示
35、DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7DB0R/W=“L”,E=“HL”, DB7DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8位或4位并口方式,L:串口方式(见注释1)16NC-空脚17/RESETH/L复位端,低电平有效(见注释2)18VOUT-LCD驱动电压输出
36、端19AVDD背光源正端(+5V)(见注释3)20KVSS背光源负端(见注释3)4.3.2 LCD与单片机的联接图12 LCD与单片机的联接电路在实际的接线中,12864的DB0DB7与AT89S52的P0口相接,RS与P2.4相接,R/W与P2.5相接,E与P2.6相接,PSB与P2.1相接,Reset与P2.3脚相接。VL与地之间接一个10K的滑动变阻器来到12864初始显示的调节。如图12所示。4.4 AT9850与单片机的联接Reset与单片机的P1.3引脚相连,FQUP与单片机的P1.2引脚相连,WCLK与单片机的P1.1引脚相连,数据传输采用串行方式,即D7脚与单片机的P1.0引脚
37、相连,如图 13所示。图13 AD9850与单片机的联接4.5 滤波电路为了使输出的频率不受外界和一些杂波的干扰,需用一个低通滤波器(LPF)滤除高次谐波。常用的滤波器的频率响应有三种:巴特沃斯型(Butterworth),切比雪夫型 (Chebyshef)和椭圆型 (Cauer)。其中巴特沃斯型滤波器通带最平坦,它的通带内没有纹波,在靠近零频率附近,有最平坦通带,趋向阻带时衰减单调增大,缺点是从通带到阻带的过渡带最宽,对于带外干扰信号的衰减作用最弱,过渡带不够陡峭,因此它适用于对通带要求较高,而去除的频率离通带较远的情况;切比雪夫滤波器在通带内衰减在零值和一个上限值之间做等起伏变化,阻带内衰
38、减单调增大,带内有起伏,但过渡带比较陡峭;椭圆滤波器不仅通带内有起伏,阻带内也有起伏,而且过渡带陡峭。比较起来,椭圆滤波器性能更好,本设计中采用的是椭圆滤波器。具体电路图如图14所示。图14 滤波电路5 软件设计与调试5.1 程序流程图通过程序预置频率,并实现对频率步进的控制,处理用户由键盘键入的频率值,判断是否超出范围,生成频率控制字,经并行方式送入DDS,合成用户所需的频率,并通过程序实现频率的显示。程序流程图15所示。主程序输入初始化LCD显示键盘扫描是否有按键按下?处理按键频率字修改AD9850数据更新是否开始图15 程序流程图DDS的时钟频率很高,对周围电路有一定影响,在电路中采取了
39、一些抗干扰措施,如:引线尽量短,减少交叉,每个芯片的电源与地之间都要接去耦电容,数字地与模拟地分开。在LCD的显示调节时也要选取适当的电阻才能使液晶屏能够正常的显示,常选取的阻值为10千欧左右。5.2 软件调试本系统的软件调试可以在Keiluvision4的环境中完,Keiluvision4系统为软件的开发和调试提供了良好的用户界面和强大的功能,程序调试无误后,可以直接下载到单片机中进行调试。采用自下而上即单独调试好每一个模块后,再连接成一个完整的系统调试。 /向LCD中写入控制字/# include #include #include pro.h#include 12864.h#includ
40、e anjian.h#define uchar unsigned char#define uint unsigned intuchar code DIS0 = 波形:余弦波 ;uchar code DIS1 = 波形:方波 ;uchar code DIS2 = 幅度: V ;uchar code DIS3 = 频率: HZ ;uchar code DIS4 = 步进值: HZ ;/*将要显示的数组,不可放到h文件中*/void Display_V(uint a) /a两个小数位,b 7位,c3位/*首先写幅度*/lcd_pos(2,3);/写第二行,第4位lcd_wdat(0x30+a/100
41、);lcd_wdat(0x2e);lcd_wdat(0x30+a%100/10);lcd_wdat(0x30+a%100%10);delay(10);/*其次写频率*/void Display_F(long b) lcd_pos(3,3);/写 第4位lcd_wdat(0x30+b/1000000);lcd_wdat(0x30+b%1000000/100000);lcd_wdat(0x30+b%1000000%100000/10000);lcd_wdat(0x30+b%1000000%100000%10000/1000);lcd_wdat(0x30+b%1000000%100000%10000
42、%1000/100);lcd_wdat(0x30+b%1000000%100000%10000%1000%100/10);lcd_wdat(0x30+b%1000000%100000%10000%1000%100%10);delay(10); /*其次写步进*0-1000HZ*/void Display_step(uint c)lcd_pos(4,4);lcd_wdat(0x30+c/1000);lcd_wdat(0x30+c%1000/100);lcd_wdat(0x30+c%1000%100/10);lcd_wdat(0x30+c%1000%100%10);delay(10);/*数据输出
43、*/void shuchu() int i;if(temp=0) /正玄波 lcd_pos(1,0); /设置显示位置为第1行 for(i=0;i16;i+) lcd_wdat(DIS0i);delay(1); if(temp=1) /方波lcd_pos(1,0); /设置显示位置为第1行for(i=0;i16;i+)lcd_wdat(DIS0i);delay(1); lcd_pos(2,0); /设置显示位置为第二行 for(i=0;i16;i+) lcd_wdat(DIS2i); delay(1); lcd_pos(3,0); /设置显示位置为第三行 for(i=0;i16;i+) lcd_wdat(DIS3i); delay(1); lcd_pos(4,0); /设置显示位置为第四行 for(i=0;i16;i+) lcd_wdat(DIS4i); delay(1); /波形选择/#include12864.hsbit P2.6=P26;boxi