可编程波形发生器的设计与实现

上传人:文*** 文档编号:196097466 上传时间:2023-03-25 格式:DOC 页数:37 大小:1.88MB
收藏 版权申诉 举报 下载
可编程波形发生器的设计与实现_第1页
第1页 / 共37页
可编程波形发生器的设计与实现_第2页
第2页 / 共37页
可编程波形发生器的设计与实现_第3页
第3页 / 共37页
资源描述:

《可编程波形发生器的设计与实现》由会员分享,可在线阅读,更多相关《可编程波形发生器的设计与实现(37页珍藏版)》请在装配图网上搜索。

1、可编程波形发生器设计与制作院 别:信息科学与工程学院专 业 班:通信工程0901班姓 名: 学 号:指导老师:2013年5月III可编程波形发生器设计与制作The Design and Production of Programable Waveform Generator摘要本系统是基于AD9833芯片的可编程波形发生器。采用AD9833芯片作为波形产生的核心,外围采用控制电路(AT89S52)、按键和液晶显示器等。通过按键控制可产生方波、三角波、正弦波等,同时液晶显示器指示其对应的频率。其设计简单、性能优好,可用于多种需要波形发生器的场所,具有一定的实用性。各种各样的信号是通信领域的重要组

2、成部分,其中正弦波、三角波和方波等是较为常见的信号。在科学研究及教学实验中常常需要这几种信号的发生装置。为了实验、研究方便,研制一种灵活适用、功能齐全、使用方便的波形发生器是十分必要的。本文介绍的是利用AD9833芯片和AT89S52单片机产生所需不同信号的中高频信号源,其信号频率是可以按要求控制的。文中简要介绍了AD9833芯片的结构原理和使用方法,AT89S52的基础理论,以及液晶显示器的工作原理。文中着重介绍了如何利用单片机控制AD9833芯片产生上述信号的硬件电路和软件编程。本次关于产生不同信号的中高频的波形发生器设计方案,不仅在理论和实践上都能满足实验的要求,而且具有很强的可行性。该

3、波形发生器的特点是:体积小、价格低廉、性能稳定、实现方便、功能齐全。关键词:AD9833 AT89S52 液晶显示器 按键 AbstractThis system is based on the programmable waveform generator of the AD9833 chip.Using the AD9833 chip as the core of waveform generator,its peripheral circuit contain control circuit (AT89S52), buttons and LCD display etc.It can pr

4、oduce square wave, triangle wave, sine wave and so on,through the button control.,at the same time LCD display indicates the corresponding frequency. Its design is simple, performance is good, which can be used for a variety of needs of waveform generator and has a certain practicality.All kinds of

5、signals is an important part in the field of communication, Especially sine wave, triangular wave and square wave signals are more common. The scientific research and teaching experiments often need the several kinds of signal generator. For the convenience of experiment and research ,developping on

6、e kind of waveform generator which includes flexible application, complete functions, convenient use is very necessary.This article describes the use of the AD9833 chips and AT89S52 microcontroller to generate the signal source of required different frequent signals , the signal frequency can be con

7、trolled according to the requirements. It introduces the structure principle and using method of AD9833 chip ,the based theory of AT89S52 based th, and the working principle of LCD.The waveform generator design on generating signals of different frequencies, not only in theory and practice can meet

8、the requirements of the experiment, but also has a strong feasibility. The waveform generator features are: small size, low price, stable performance, convenient, full-featured.Key words: AD9833 AT89S52 LCD buttons目 录摘要.Abstract.绪论.11 系统总体设计21.1 设计方案比较与选定.21.1.1 设计方案一.21.1.2 设计方案二. .31.1.3 设计方案三.31.

9、1.4 设计方案的选定.31.2 系统总体框图设计.42 系统硬件设计52.1 元器件的选择.52.2 系统硬件总体设计.82.3 各模块电路说明.92.3.1 波形的产生及处理部分电路.92.3.2 人机交互电路.112.3.3 液晶显示电路.123 系统软件设计.143.1 总体方案.143.2 程序流程图.153.3 主要程序说明.153.3.1 主程序.153.3.2 初始化程序.163.3.3 液晶显示程序.173.3.4 按键程序.193.3.5 AD9833程序.214 制作与调试.244.1 硬件电路制作.244.1.1 总体特点.244.1.2 焊接.244.2 调试.254

10、.2.1 液晶显示调试254.2.2 AD9833波形输出调试.26结论29致谢30参考文献31绪论波形发生器是一种常用的信号源,广泛应用于电子电路、自动控制和科学试验领域。它是一种为电子测量和计算工作提供符合严格技术要求的电信号设备。传统信号发生器一般用以下三种方法设计:用分立元件组成的函数发生器;由晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发生器IC产生;利用单片集成芯片的函数发生器。19世纪70年代,有的科学家提出利用直接数字频率合成技术(DDS)制作信号发生器。限于当时的技术和器件水平,它的性能指标尚不能与已有技术相比,故未受到重视。近年来随着数字集成电路和微电子技术的

11、进步,这种结构独特的频率合成技术得到了充分的发展。该技术在相对带宽、频率转换时间、相位连续性、正交输出、高分辨力以及集成化等一系列性能指标已远远超过了传统的频率合成技术所能达到的水平。本次毕业设计的波形发生器基于DDS数字频率合成技术,相比于传统的设计方法,它有诸多优势。基于DDS技术的信号发生器即利用频率合成技术制成的信号发生器,也称为合成信号发生器,具有输出频率稳定、准确,波形质量好和输出频率范围宽等一系列独特的优点,虽然它也有一些缺点,比如工作频带受限,相位噪声,杂散抑制差,但是相比于传统波形发生器频率不高,工作不稳定,调节方式不够灵活,已经具有很大的进步。 该波形发生器必需达到的技术指

12、标:能产生正弦波、三角波和方波信号,并通过按键切换波形类型;通过按键可以以一定的步进改变频率;输出波所能达到频率范围为010MHz。通过初步的研究与思考,该波形发生器的难点在于:硬件的具体工作原理,特别是DDS的基本原理以及所选芯片的内部的结构与引脚的功能;软件与硬件到底是怎样进行结合的,基于DDS技术所选的芯片与写程序所选芯片的数据位是否相容;软件的设计,因为必须利用程序对频率以及频率的步进值进行设置。 1 系统总体设计1.1 设计方案比较与选定依据应用场合需要实现的波形种类,波形发生器的具体指标要求会有所不同。依据不同的设计要求选取不同的设计方案。通常,波形发生器需要实现的波形有正弦波、方

13、波、三角波和锯齿波。有些场合可能还需要任意波形的产生。各种波形共有的指标有:波形的频率、幅度要求,频率稳定度,准确度等。对于不同波形,具体的指标要求也会有所差异,例如,占空比是脉冲波形特有的指标。波形发生器的设计方案多种多样,大致可以分为三大类:纯硬件设计法、纯软件设计法和软硬件结合设计法。1.1.1 设计方案一波形发生器设计的纯硬件法早期,波形发生器的设计主要是采用运算放大器加分立元件来实现1。实现的波形比较单一,主要为正弦波、方波和三角波。工作原理嗍也相对简单:首先是产生正弦波,然后通过波形变换(正弦波通过比较器产生方波,方波经过积分器变为三角波)实现方波和三角波。在各种波形后加上一级放大

14、电路,可以使输出波形的幅度达到要求,通过开关电路实现不同输出波形的切换,改变电路的具体参数可以实现频率、幅度和占空比的改变。通过对电路结构的优化及所用元器件的严格选取可以提高电路的频率稳定性和准确度。纯硬件法中,正弦波的设计是基础,实现方法也比较多,电路形式一般有LC、RC和石英晶体振荡器三类。LC振荡器适宜于产生几Hz至几百MHz的高频信号;石英晶体振荡器能产生几百KHz至几十MHz的高频信号且稳定度高;对于频率低于几MHz,特别是在几百Hz时,常采用RC振荡电路。RC振荡电路又分为文氏桥振荡电路、双T网络式和移相式振荡电路等类型。其中,以文氏桥振荡电路最为常用2,11。目前,实现波形发生器

15、最简单的方法是采用单片集成的函数信号发生器。它是将产生各种波形的功能电路集成优化到一个集成电路芯片里,外加少量的电阻、电容元件来实现。采用这种方法的突出优势是电路简单,实现方便,精度高,性能优越;缺点是功能较全的集成芯片价格较贵。实际中应用较多的单片函数信号发生器有MAX038(最高频率可达40MHz)和ICL8038(最高频率为300KHz)。1.1.2 设计方案二波形发生器设计的纯软件法 波形发生器的设计还可以采用纯软件的方法来实现。虚拟仪器鞠使传统仪器发生了革命性的变化,是21世纪测试仪器领域技术发展的重要方向。它以计算机为基础,软件为核心,没有传统仪器那样具体的物理结构在计算机上实现仪

16、器的虚拟面板,通过软件设计实现和改变仪器的功能。例如用图形化编程工具LabVIEW来实现任意波形发生器的功能:在LabVIEW软件的前面板通过拖放控件,设计仪器的功能面板(如波形显示窗口,波形选择按键,波形存储回放等工作界面),在软件的后面板直接拖放相应的波形函数并进行参数设置或直接调用编程函数来设计任意波形以实现波形产生功能;完成的软件打包后,可脱离编程环境独立运行。实现任意波形发生器的功能。采用纯软件的虚拟仪器设计思路可以使设计简单、高效,仅改变软件程序就可以轻松实现波形功能的改变或升级。从长远角度来看,纯软件法成本较低。软件法的缺点是波形的响应速度和精度逊色于硬件法。1.1.3 设计方案

17、三软硬件结合法软硬件结合的波形发生器设计方法同时兼具软硬件设计的优2:既具有纯硬件设计的快速、高性能,同时又具有软件控制的灵活性、智能性。如以单片机和单片集成函数发生器为核心。辅以键盘控制、液晶显示等电路,设计出智能型函数波形发生器,采用软硬件结合的方法可以实现功能较全、性能更优的波形发生器,同时还可以扩展波形发生器的功能,比如通过软件编程控制实现波形的存储、运算、打印等功能,采用USB接口设计。使波形发生器具有远程通信功能等。目前,实验、科研和工业生产中使用的信号源大多采用此方法来实现。1.1.4 设计方案的选定纯硬件设计法功能较单一,波形改变困难、控制的灵活性不够,不具备智能性,其中由运算

18、放大器加分立元件组成的波形发生器,除在学生实验训练中使用外。基本不被采用。纯软件设计法实现简单,程序改变及功能升级灵活,但实现的波形精度及响应速度不如硬件法高。纯软件法主要适用于对波形精度、响应速度要求不是很高的场合。相比之下,软硬件结合的方法可以设计出性能最优、功能扩展灵活、控制智能化的新一代的波形发生器,可以满足教学、科研、工业生产等各方面对波形发生器性能有较高要求的应用场合。综合以上几种设计方案,本设计采用方案三的方法软硬件设计法。其方案能够产生很好的波形,也易实现。1.2 系统总体框图设计本波形发生器的设计频率控制模块及DDS处理模块为核心,配合相应的显示模块及人机接口模块使其组成一个

19、可编程波形发生器系统。系统的总体框图如图1-1所示。图1-1 系统总体框图频率控制模块主要功能是通过程序对波形发生器的频率进行控制;DDS处理模块主要对产生的信号波形进行采样和量化处理,使输出的波形更加平整,不失真;人机接口模块负责改变波形的输出方式,而且可以设置波形的频率和频率变化的步进;显示模块的功能是显示波形的频率以及类型。 2 系统硬件设计2.1 元器件的选择因为本系统的设计是以DDS处理模块以及幅度、频率控制模块为核心,故而首先选择这两个模块的元器件,DDS处理模块的主要功能是完成波形的相位、频率和振幅的数字调制,本次设计DDS处理模块选用AD9833芯片,外加必要的外围辅助电路。A

20、D9833是一款采用DDS技术、低功耗、可编程波形发生器2,3,器件采MSOP封装,非常小巧,外围电路简单,仅需要1个外部参考时钟、一个低精度电阻器和一个解耦电容器,通过SPI接口和单片机相连,编程可生成正弦波、三角波、方波。输出频率可通过软件编程,易于调节。AD9833的主频时钟为25MHz时,精度为0.1Hz,主频时钟为1MHz时,精度可以达到0.004Hz。AD9833的引脚图如图2-1所示,图2-1 AD9833的引脚图AD9833内部电路主要有数控振荡器(NCo)、频率和相位调节器、正弦只读存储器(sineROM)、数模转换器(DAC)、电压调整器。其核心是28位的相位累加器,它由加

21、法器和相位寄存器组成,每来1个时钟,相位寄存器以步长增加相位寄存器的输出与相位控制字相加后输人到正弦查询表地址中。正弦查询表包含1个周期正弦波的数字幅度信息,每个地址对应正弦波中0-360。范围内的1个相位点。查询表把输人的地址相位信息映射成正弦波幅度的数字量信号,驱动DAC输出模拟量。相位寄存器每经过2脚M个MCLK 时钟后回到初始状态,相应的正弦查询表经过一个循环回到初始位置,这样就输出了一个正弦波。其引脚功能如下表引脚号符号功能说明1COMPDAC偏移引脚,该脚用来为DAC偏移解耦2VDD电源电压3CAP/2.5V数字电路电源端4DGND数字地5MCLK主频数字时钟输入端6SDATA串行

22、数字输入7SCLK串行时钟输入8FSYNC控制输入,低电平有效9AGND模拟地10VOUT输入频率()表2-1 AD9833的引脚功能输出正弦波频率为: (2-1) 其中,M 为频率控制字,由外部编程给定,其范围为0-228。VDD引脚为AD9833的模拟部分和数字部分供电,供电电压为2.3V一5.5V。AD9833内部数字电路工作电压为2.5V。AD9833还具有休眠功能,就是没被使用的部分休眠,减少该部分的电流损耗,例如:若利用AD9833输出作为时钟源,就可以让DAC休眠,以减少功耗。AD9833有3根串行接口线,与SPI、QSPI、MICROWIRE和DSP接口标准兼容,在串口时钟SC

23、LK的作用下,数据是以16位的方式加载到设备上,FSYNC引脚是使能引脚,电平触发方式,低电平有效。进行串行数据传输时,FSYNC引脚必须置低,要注意FSYNC有效到SCLK下降沿的建立时间t7的最小值4,5。FSYNC置低后,在16个SCLK的下降沿数据被送到AD9833的输入移位寄存器,在第16个SCLK的下降沿FSYNC可以被置高,但要注意在SCLK下降沿到FSYNC上升沿的数据保持时间ts的最小和最大值。当然,也可以在FSYNC为低电平的时候,连续加载多个16位数据,仅在最后一个数据的第16个SCLK的下降沿的时将FSYNC置高,最后要注意的是,写数据时SCLK时钟为高低电平脉冲,但是

24、,在FSYNC刚开始变为低时,(即将开始写数据时),SCLK必须为高电平(注意t11这个参数)。如图2-2和图2-3分别是AD9833的主时钟时序和串行时序6 。图2-2 主时钟时序图2-3 串行时序 当AD9833初始化时,为了避免DAC产生虚假输出,RESET必须置为1(RESET不会复位频率、相位和控制寄存器),直到配置完毕,需要输出时才将RESET置为0;RESET为0后的89个MCLK时钟周期可在DAC的输出端观察到波形。 AD9833写入数据到输出端得到响应,中间有一定的响应时间,每次给频率或相位寄存器加载新的数据,都会有78个MCLK时钟周期的延时之后,输出端的波形才会产生改变,

25、有1个MCLK时钟周期的不确定性,因为数据加载到目的寄存器时,MCLK的上升沿位置不确定。 AD9833内部有5个可编程寄存器,其中包括3个16位控制寄存器,2个28位频率寄存器和2个12位相位寄存器。 其中16位控制寄存器供用户设置所需的功能。除模式选择位外,其他所有控制位均在内部时钟MCLK的下沿被AD9833读取并动作,要更改AD9833控制寄存器的内容,D15和D14位必须均为0。AD9833包含2个频率寄存器和2个相位寄存器,其模拟输出为: (2-2) 其中:FREQEG为所选频率寄存器中的频率字。该信号会被移相: (2-3)其中,PHASEREC为所选相位寄存器中的相位字。 AD9

26、833可运作的主时钟频率高达25MHz。一般25 MHz的振荡器包含外部电路中,但是这振荡器也可以删除,如有需要可以连接到外部CMOS时钟上11。频率、幅度控制模块可以用FPGA/CPLD或单片机进行设计,由于对FPGA/CPLD语言的接触较少、不熟悉,故而该模块选用单片机以及必要的外围电路进行控制。单片机选择AT89S52系列,因为其涵盖了AT89C51系列的大部分优点并且烧录程序速度快,性能稳定,耐压值比较高等。至于显示模块用1602液晶显示器,可以明显的观察到频率的步进变化以及所选择的波形类型,人际接口模块主要是按键,控制波形的输出类型以及频率。2.2 系统硬件总体设计 根据元器件的特性

27、及外围必要辅助电路,其硬件总体设计如下 图2-4 硬件总体设计图2.3 各模块的电路说明2.3.1 波形的产生及处理部分电路波形的产生与控制部分由DDS芯片AD9833和单片机AT89S52组成,用户通过键盘输入的信号要求被AT89S52接收,并经其处理后将计算出的控制字传送给AD9833,由AD9833产生频率幅度可控的信号。AD9833系统模块是整个系统的功能核心部分,由此模块可产生所需要的信号了产生所需信号,必须对其进行适当的设置。具体外围设备如下图示。 图2-5 AD9833波形处理电路AD9833外围需要一个参考时钟,即在MCLK处接入一个晶振。因为当AD9833的主频时钟为25MH

28、z时,精度为0.1Hz,主频时钟为1MHz时,精度可以达到0.004Hz,而本次设计中对精度要求不高,为了提高AD9833的操作速度,此处选择了25MHz的有源晶振。有源晶振有4只引脚,是一个完整的振荡器,里面除了石英晶体外,还有晶体管和阻容元件6 。有源晶振不需要DSP的内部振荡器,信号质量好,比较稳定,而且连接方式相对简单(主要是做好电源滤波,通常使用一个电容和电感构成的PI型滤波网络,输出端用一个小阻值的电阻过滤信号即可),不需要复杂的配置电路。把有源晶振有个点标记的记为1脚,按逆时针(管脚向下)分别为2、3、4,它的通常的接法为一脚悬空,二脚接地,三脚接输出,四脚接电压。 AD9833

29、有3根串行接口线,分别是FSYNC、SCLK和SDATA,与SPI、QSPI、MICROWIRE和DSP接口标准兼容,在串口时钟SCLK的作用下,数据是以16位的方式加载到设备上,FSYNC引脚是使能引脚,电平触发方式,低电平有效。进行串行数据传输时,FSYNC引脚置低,在16个SCLK的下降沿数据通过SDATA引脚被送到AD9833的输入移位寄存器。因此,此处我们通过3个100的电阻进行限流,并将这3个引脚接到单片机AT89S52的P3.2、P3.1和P3.0脚,通过单片机来控制AD9833。AD9833的其他引脚用了诸多电容,主要是为了去藕和滤波,起到稳定输入电压和输出波形的作用。 至于单

30、片机与AD9833连接是,P3.2与AD9833的FSYNC相连、P3.1与AD9833的SCLK相连,P3.0与AD9833的SDATA相连,单片机与AD9833的连接如下:图2-6 单片机与AD9833引脚连接图2.3.2 人机交互电路人机交互电路以单片机AT89S52为核心,通过其控制液晶显示模块和键盘输入模块,使其输出一定的波形。其电路图如下: 图2-7 人机交互电路2.3.3 液晶显示电路本系统采用的液晶型号为LCD1602,这是一款飞利蒲公司生产的图形液晶。该液晶除应用于移动电话外,也可广泛应用于各类便携式设备的显示系统。该系统中,我们选用LCD1602的三大理由为:一、性价比高,

31、LCD1602可显示32个字符,而LCD5110可显示15个汉字,30个字符。LCD1602一般15元左右,LCD5110一般20元,LCD12864一般5070元;二、LCD1602需11根IO线,LCD12864需12根;三、速度快,是LCD12864的20倍,是LCD5110的40倍。在与单片器连接中,将1602的VCC和LED引脚接3.3V电压,因为1602的最佳工作电压为3V3.3V,过高会使其灰度加重,影响显示效果,过低会显示不清晰。另CD-E,LCD-RW,LCD-RS引脚分别与AT89S52P1.1P1.3引脚相连,用单片机控制1602的显示。图2-8为1602液晶显示器和它的

32、连接电路。图2-8 液晶显示器与单片机连接图3 系统软件设计3.1 总体方案本系统的软件设件包括了1602液晶显示、AD9833模块、AT89S52模块、按键模块、初始化函数和主函数。设计时首先对系统进行初始化,其次显示LCD,并使系统运作起来,由AT89S52控制AD9833输出波形,最后,我们可以通过按键模块对整个系统的输出波形和频率进行变化。AD9833模块和AT89S52模块是本次软件设计的重点。由于AT89S52和AD9833的SPI接口速率较高,可达到1Mbps,所以在软件中需要对时序做准确的设计。信号发生器至今都是设计的一个热点话题,本系统较好地实现了系统的基本功能,而且实现了系

33、统的小型化和便捷化。3.2 程序流程图图3-1 系统软件设计流程图3.3 主要程序说明3.3.1 主程序:主要液晶输出程序,包括系统的整个运行流程。液晶的显示根据1602.H中字符、数字以及特殊符号来显示,再通过AD9833.H中的定义来输出各种波。/*主程序*/main() unsigned char i = 0x00; long uint shiyanshuju = 0x00; uchar Wave_Select = 0x00; lcd_init(); AD9833_Initial(); Control_Register = 0x2000; TMOD=0x01; /选择中断方式1TH0=0

34、xa6; /刷屏的时间设置 TL0=0x66; ET0 = 1; TR0 = 1;EA = 0x00; Frequency_Out = 0;/开机默认的频率输出值; Calculate_Control_Word(Frequency_Out);/根据设置的频率换算成将要送入AD9833中的整数值; Control_Word_to_AD9833(Control_Register,(0x4000|(ConTrol_Word/16384),(0x4000|(ConTrol_Word%16384),0xD000); display_data(); display_string(0,1,LcdBuf2);

35、 /显示第二行,从第0个位置开始 AnJianCiShuBiangLiang = 0x00;3.3.2 初始化程序:主要是对单片机AT89S52进行初始化,属于AT89S52系列单片机固有的初始化程序7,包括晶振的选择,振荡器的清除以及MCLK和SMCLK时钟源的选择等。另外1602液晶和AD9833等的初始化函数都在各自的子程序中。可通过按键实现频率的设置,然后输出/基本功能全部实现;20091181017#include /调用头文件(单片机内部的寄存器定义)#define uchar unsigned char#define uint unsigned int/*本段为硬件I/O口定义*

36、/sbit LCD_E = P11;sbit LCD_RW = P12; sbit LCD_RS = P13; sbit DDSCLK = P31; / P3_1,AD9833的DDS片选或者写数据 有效信号sbit DDSEN = P32; / P3_2,AD9833的DDS片选或者写数据 有效信号sbit DDSData = P30; / P3_0,AD9833的DDS 数据信号#define LCD_DATA P2 /LCD DATA#define LCD_BUSY 0x80 / 用于检测LCD的BUSY标识(本程序中用的延时,未检测)/LCD显示内容,定义到代码段unsigned ch

37、ar code LcdBuf1= FRQ: Hz;unsigned char code LcdBuf2= TYPE:sin;/输出波形显示,默认为正弦。unsigned char code LcdBuf3= TYPE:tri;/输出波形显示:三角波。unsigned char code LcdBuf4= TYPE:SQ1;/输出波形显示:方波,此时方波频率为设置频率的值一半。unsigned char code LcdBuf5= TYPE:SQ2;/输出波形显示:方波,此时方波频率和设置频率的值相等。/long uint ConTrol_Word = 0x00;/根据设置的频率换算成将要送入A

38、D9833中的整数量;3.3.3 液晶显示程序:先对1602液晶进行了字符、数字和特殊符号的设置,其次介绍了液晶的清屏和初始化程序,最后详细介绍了1602的写入程序,包括写入汉字、字符以及特殊符号,在结尾还说明了频率的书写方法。/函数声明void display_xy(unsigned char x,unsigned char y) if(y=0x01) x = x + 0x40 + 0x80; else x = x+0x80; WriteCommandLcd(x);/* 函数名称: display_char* 入口参数:x(unsigned char型),y(unsigned char型),

39、dat(unsigned char型)* 出口参数:无* 功能描述: 在具体位置显示单个字符,x是列号,y是行号*/ /*void display_char(unsigned char x,unsigned char y,unsigned char dat) display_xy(x,y); WriteDataLcd(dat); */* 函数名称: display_string* 入口参数:x(unsigned char型),y(unsigned char型),s(指针型)* 出口参数:无* 功能描述: 在具体位置显示字符串,以/0结束,x是列号,y是行号3.3.4 按键程序:主要是对接入AT

40、89S52的P3口的6个按键程序进行说明,其中按键1表示闪烁位每按一次就加一,按键2表示闪烁位向右移,按键3表示闪烁位向左移,按键4表示闪烁位每按一次就减一,当按键5被按下后频率的数值被选定,不再闪烁,按键6表示波形的切换,其中波形有4种,分别为正弦波、三角波和频率为正弦波一半的方波和频率为正弦波一样的方波,四者循环,频率的步进最小单位值为1Hz。scan_KEY(void) /The subprogram is used to scan keyuchar key = 0;key = P3; /Eliminate themost high bit and low three bitskey =

41、 key & 0xf8; switch(key) case 0xb0: keyzhi = 3 ;break; case 0xa8: keyzhi = 2 ;break; case 0x98: keyzhi = 1 ;break; case 0x70: keyzhi = 6 ;break; case 0x68: keyzhi = 5 ;break; case 0x58: keyzhi = 4 ;break; default: keyzhi=0; return(keyzhi);keychuli() P3_3 = 0x01;P3_5 = 0x01;P3_4 = 0x01;P3_6 = 0x00;P3

42、_7 = 0x00;delay(100); if(P3_3&P3_4&P3_5) = 0x00) /delay(1000); if(P3_3&P3_4&P3_5) = 0x00) P3_6 = 0x00;P3_7 = 0x01; dat = scan_KEY(); if(dat = 0x00) P3_6 = 0x01;P3_7 = 0x00; dat = scan_KEY(); else dat = 0x00; goto down; /无键按下 down:return(dat); 3.3.5 AD9833程序:主要是对AD9833进行SPI模拟与单片机进行连接,再根据按键输入的数据分别转换成正

43、弦波、三角波和方波进行输出的程序2。其中转换的格式固定,但是AD9833输出频率时是先低位后高位,区别于SPI模拟时单片机给AD9833数据时是先高位后低位。void AD9833_writedata(unsigned int DDSdata) unsigned char data_num=0; unsigned int DDSdata_temp; DDSdata_temp=DDSdata; DDSCLK=1; SDelay(4); DDSEN=0; /DDS able SDelay(4); for(data_num=0;data_num16;data_num+) if(DDSdata_tem

44、p & 0X8000 ) DDSData=1; else DDSData=0; SDelay(5); DDSCLK=0; SDelay(5); DDSData=0; SDelay(5); DDSCLK=1; DDSdata_temp=DDSdata_temp1; if(data_num 15) SDelay(50); DDSEN=1;void AD9833_reset() /add code here AD9833_writedata(0x0100); /寄存器复位 AD9833_writedata(0x2000); /准备清空频率寄存器0 AD9833_writedata(0x4000);

45、/Filled with 0 AD9833_writedata(0x4000); /Filled with 0 AD9833_writedata(0x2000); /Prepare for clear Fre1 AD9833_writedata(0x8000); /Filled with 0 AD9833_writedata(0x8000); /Filled with 0 AD9833_writedata(0xD000); /clear PHS 0 AD9833_writedata(0xF000); /clear PHS 1void Control_Word_to_AD9833(unsigne

46、d int Contr_Reg_data,unsigned int Fre_MSBdata,unsigned int Fre_LSBdata,unsigned int Phs_data) /add unsigned int Fre_MSBdata_temp=Fre_MSBdata; unsigned int Fre_LSBdata_temp=Fre_LSBdata; unsigned int Contr_Reg_data_temp=Contr_Reg_data; unsigned int Phs_data_temp=Phs_data; AD9833_writedata(Contr_Reg_da

47、ta_temp); AD9833_writedata(Fre_LSBdata_temp); AD9833_writedata(Fre_MSBdata_temp); AD9833_writedata(Phs_data);/*根据硬件连接选通AT89S52与AD9833的数据线路;将AD9833的内部数据进行清零操作*/void AD9833_Initial() DDSEN=1; /DDSEN disable DDSCLK=1; /Clock high DDSData=0; AD9833_reset();4 制作与调试4.1 硬件电路制作4.1.1 总体特点该系统所涉及的各部分硬件电路,总体的特点

48、是:(1) 电路原理较为简单,所用的器件均为常用器件,但因为进行了投板制作,且器件基本是贴片形式,所以前期必须保证PCB版图的正确性和可实施性11; (2) 由于AD9833贴片引脚相当密,因此焊接过程中要特别注意,切勿将周围引脚焊接在一起。所以,应合理布线,以降低焊接难度,降低出错率,同时防止干扰。4.1.2 焊接焊接前应熟悉各芯片的引脚,焊接时参照电路图,仔细地连接引脚。先焊接各芯片的电源线和地线,这样确保各芯片有正确的工作电压,同类的芯片应顺序焊接,在一片焊接并检查好之后,其他的同类芯片便可以参照第一片进行焊接。这样便可大大节省时间,也可降低出错率。在大面积的接地(电)中,常用元器件的腿

49、与其连接,对连接腿的处理需要进行综合的考虑,就电气性能而言,元件腿的焊盘与铜面满接为好,但对元件的焊接装配就存在一些不良隐患如焊接需要大功率加热器,容易造成虚焊点。所以兼顾电气性能与工艺需要,做成十字花焊盘,称之为热隔离俗称热焊盘,这样,可使在焊接时因截面过分散热而产生虚焊点的可能性大大减少。下图为焊接完成后的两张图 图4-1 硬件总体图图4-2 AD9833及外围硬件电路图4.2 调试4.2.1 液晶显示器调试:LCD显示的调试时硬件调试中较为重要的一部分,关系到此后的频率和波形等的显示,首先应确保通电后显示屏能够发光发亮,如果显示屏不能正常发光,应检查硬件中电源输入和接地部分与单片机相应端

50、口的连接是否正确,引脚是否有虚焊现象存在。这次在调试中,系统上电后,液晶发光,显示正常。然后调节出显示屏的初始化状态,即显示一个一个的黑色方格,这一步的关键还是引脚的连接要正确。最后将相应显示程序载入单片机,调出最简单的显示。这一些在调试中均正常。 图4-3 1602液晶显示器实物图4.2.1 AD9833波形输出调试: 在AD9833的VOUT引脚进行测试,将示波器连到此引脚,起先未观察到任何波形,这说明AD9833的输出存在问题。查询电路,发现硬件电路的连接没有问题,不存在断路短路问题,于是考虑到可能是程序问题。查询AD9833.H子程序,未发现问题,于是进一步查看了AD9833的PDF,

51、最后发现一个重大问题,即AD9833给出频率时需要先给频率的低字节,后给高字节,再次查看程序,发现程序中的错误:write_ad9833_d16(dds_h);write_ad9833_d16(dds_l)。将两者次序调换,在进行调试,发现AD9833有了波形输出,但有严重的波形失真。所以这里要区别于SP模拟时单片机给AD9833数据时是先高位后低位的情况。整个调试过程已经全部结束,系统所能达到的技术指标为,下面为部分输出波形,由于频率在3MHz以上输出波形失真比较大,故而没有列出,下面为频率在2.5MHz500Hz的典型输出波形: 图4-5 2.5MHz正弦波 图4-6 2.5MHz三角波

52、图4-7 2.5MHz方波 图4-8 1MHz正弦波 图4-9 1MHz三角波 图4-10 1MHz方波 图4-11 10KHz正弦波 图4-12 10KHz三角波 图4-13 10KHz方波 图4-14 500Hz正弦波 图4-15 500HZ三角波 图4-16 500HZ方波分析:从以上的数据与图形可知利用DDS频率合成技术制作的可编程波形发生器输出频率相对带宽很宽(03MHz),频率分辨率极高(fmin=fc/2N,fc代表时钟频率,在本系统中fc =25MHz,N代表相位累加器的字长,AD9833的相位累加器的字长28),在本系统中其步进值可达1Hz,但是其最大输出带宽没有达到fmax

53、=2fc/5=10MHz,这是因为DDS的工作频率受到器件速度的限制,主要是AD9833内部ROM和DAC速度的限制。结论可编程波形发生器是一种常用的电子仪器,它广泛应用于实验、产品开发研制和调试以及系统测试中。本次设计的波形发生器是基于DDS技术的,再加上用了一款低功耗的单片机,因此系统具有结构简便、性能良好且低功耗的特别。论文主要论述了以下方面的内容:分析了波形发生器的原理,提出了基于DDS的信号发生器的设计方案,并对DDS技术、AT89S52单片机和AD9833芯片进行了详细的介绍。在这次设计中本设计也遇到不少问题,也正是对这些问题的逐步解决该波形发生器设计完成。本设计的设计主要面临着硬

54、件设计和软件设计的两大问题,以及硬件和软件的结合。硬件设计的难点在于元器件的布局以及连线,但是可编程波形发生器是一个比较成熟的产品,故而元器件、印制电路板以及原理图比较容易购得,所以硬件没有花多少工夫。软件设计中面临的主要问题是程序的书写,由于AT89S52单片机一次只能传输8位数据位,而AD9833在接收数据时是16位数据位,因此,需要用软件模拟SPI总线,如同软件模拟I2C总线;其次必须先发送控制寄存器字然后发送想要的频率字;并且发送数据前必须把FSYNC置成低电平,发送完以后把FSYNC置成高电平;这些都是软件设计中的难点。虽然该波形发生器的主要功能已经实现,但是波形频率要达到10MHZ

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!