多功能信号发生器的设计_第1页
多功能信号发生器的设计_第2页
多功能信号发生器的设计_第3页
多功能信号发生器的设计_第4页
多功能信号发生器的设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 学号学号: 1144000011440000 常常 州州 大大 学学 毕毕业业设设计计(论论文文)(2015届)届)题题 目目 多功能信号发生器的设计多功能信号发生器的设计 学学 生生 XXX 学学 院院 信息科学与工程学院信息科学与工程学院 专专 业业 班班 级级 电子电子 115 校内指导教师校内指导教师 何宝祥何宝祥 专业技术职务专业技术职务 教教 授授 二二一五年六月一五年六月多功能信号发生器的设计多功能信号发生器的设计摘要:摘要:信号发生器在通信、教学、测量等领域应用十分广泛,是信号仿真实验中不可缺少的重要工具。本文通过分析现有多功能信号发生器的工作原理,根据提供的参数要求,决定采

2、用DDS技术,以Atmel公司生产的AT89S52单片机为主控机,且以DDS芯片AD9854作为系统信号产生的关键器件,设计出了一种输出频率高、分辨率高、低功耗、能产生多种波形的多功能信号发生器。其中相关软件的设计使用C语言来完成。关键词:信号发生器,DDS技术, AD9854,AT89S52 Design of multi-function generatorAbstract:Signal generator is widely used in communication, teaching, measurement and so on. It is an important tool in

3、 signal simulation experiment.In this paper, through the analysis of the working principle of the existing multi function signal generator, according to the requirements of the parameters provided by, decided to use DDS technology, MCU AT89S52 of ATMEL company produces as the master machine and DDS

4、chip AD9854 as signal system to produce the key devices, design a high output frequency, high resolution, low power consumption, produce a variety of waveforms of multifunctional signal generator. The design of the relevant software using C language to complete.Key Word: Signal Generating, DDS, AD98

5、54, AT89S52目目 录录摘 要-IAbstract-1 绪论-11.1 信号发生器的发展和现状-21.2 信号发生器研究背景及其意义-22 信号发生器系统设计-32.1 方案的原理、特点与选择依据- 32.2 系统总体设计-42.2.1 键盘输入方案论证-52.2.2 显示方案论证-53 系统硬件设计-63.1 单片机最小系统-63.1.1 最小系统的构成特点-63.1.2 AT89S52 的晶振及其连接方法-63.2 AT89S52 与 AD9854 的接口-83.3 键盘电路原理-113.3.1 独立式键盘结构的工作原理及接口-113.3.2 矩阵式键盘结构的工作原理-123.4

6、液晶显示电路-133.5 幅度调节电路-144 系统的软件设计-164.1 软件总体设计-164.2 主程序模块-164.3 信号产生软件的设计-184.4 人机交互模块设计-204.4.1 键盘程序设计-204.4.2 显示程序设计-235 系统仿真和分析-266 系统调试-286.1 硬件调试-286.2 软件调试-287 实验数据和元器件清单-307.1 实验数据及分析-307.2 实际波形与失真度分析-317.3 实物制作-328 总结-34参考文献-35致谢-36附录-37常州大学本科生毕业设计(论文)01 绪论绪论1.1 信号发生器的发展信号发生器的发展在今天,随着新材料技术和集成

7、电路(integrated circuit)制造技术的发展,出现了许多体积小,性能优异的新型信号发生器。而面向控制是信号发生器的最大特点。新型信号发生器的优点很多,如低功耗、体积小巧、计算和转换的速度快,价格低廉等。而信号发生器作为工程技术学科必备的装置,它的快速发展,对于工程技术学科有了很大的推进作用。在以下四个方面体现了信号发生器的发展:(1) CPU 功能增强CPU 在精度和运算速度的有了很大的提升。而为了提高精度和运算速度,信号发生器通常采用 16 位或 32 位的字长的 CPU 到和布尔处理机。例如 HDX801和 DG400 等性能优异的信号发生器。(2)内部资源增多随着制造水平的

8、提高,在相同体积的情况下,能够在内部添加更多的资源。可以使用内部的串并行 I/O 接口来与外部装置通信,使用内置的定时器/计数器来产生中断功能,并且自带掉电保护和系统故障检测功能。而信号发生器的容量也得到了提高,RAM 可达 1KB,ROM 也达到了 32KB,能够进行更大数据量的计算。为了能转换模拟信号和数字信号,通常还内置 A/D 和 D/A 转化器。(3)引脚的多功能化由于芯片内置功能的不断增加,为了使用这些功能,必须增加芯片的引脚数量。例如:当信号发生器寻址为 1MB 大小时,必须使用 8 条数据线和 20 条地址线才能完成2。但是芯片的引脚太多会使得制造成本和制造难度大大提高,也增大

9、了芯片的体积,不利于单片机使用的灵活性。为了在不影响芯片功能的前提下,可以采用一脚多用的方案来减少引脚的数量。(4)低电压和低功耗常州大学本科生毕业设计(论文)1在实际应用中,为了节约能源,或者条件所限,信号发生器必须能够在较低的电压环境下工作。同时满足低功耗的设计要求。为了达到这个目的,通常使用互补金属氧化物工艺。1.2 信号发生器研究背景及其意义信号发生器研究背景及其意义信号发生器的技术发展到今天,其中的关键技术仍然被国外的几家大公司所掌握,如日本的 Tektronix、Agilent 、横河等。美国的 FLUKE 公司生产的FLUKE-25 函数信号发生器性能强大,所产生的正弦波和三角波

10、失真度小,最高可达 5MHZ 的频率,幅值也能达到 10Vpp3。国内信号发生器的起步比较晚,但随着技术的积累和进步,已经能够逐渐达到国际平均水平。如中国电子科技集团公司的 AV1445 通信矢量信号发生器、固纬电子公司的 SFG-2110 数字合成函数信号发生器。信号发生器在科学研究和生产生活领域有着非常广泛的应用,例如在广播、通信、电视系统中,都需要射频发射。通过载波,把低频的音频或脉冲信号发射出去,就需要高频的振荡器。而在农业、工业、医学等领域,如熔炼、淬火、核磁共振、超声诊断等,都需要频率或低或高、功率或小或大的振荡器。随着我国科学技术和经济的快速发展,对测试手段和测试仪器也有了更大的

11、要求,而开发在测试环节中占用重要地位的信号发生器,具有十分重要的意义。常州大学本科生毕业设计(论文)22. .信号发生器总体设计信号发生器总体设计2.1 方案的原理、特点与选择依据方案的原理、特点与选择依据方案一:通过锁相频合成的办法,全部使用硬件电路来实现。使用 IC145152 芯片来搭建锁相电路,此电路可以输出稳定性很好的正弦波,再连接过零比较器,将正弦波转换成方波,通过积分电路转换成三角波。该方案具有较高的成本,且会产生过多的杂散分量,难以达到较高的频谱纯度。设计也更加复杂一点,不利于大规模的生产制造,不易实现。但此方法的最大优势在于,运行的速度较高,适用于需要高速运算的应用场景。方案

12、二:使用波形产生芯片 MAX038 来直接生成波形.优点:频率范围从 0.1Hz 到 20MHz,最高可达 40MHz。调节占空比时不会影响频率,反之亦然,且占空比调节范围大。本方案波形失真小,精确度高,功耗低。缺点:此方案成本较高,不利于大规模生产。方案三:通过 51 单片机来控制 DAC 芯片,从而输出波形。这个方案中,可以使用编程的方法来改变波形的幅度和频率。此方案产生的波形十分稳定,且具有较高的精确度,电路的元器件也很少,成本较低,适合大规模生产。但电路产生波形的分辨率不太理想,频率十分有限。流程图如 2-1 所示。图图 2-12-1 5151 单片机作为发生装置单片机作为发生装置按键

13、复位89C51D/A 转换波形输出常州大学本科生毕业设计(论文)3方案四:通过采用 AT89S52 单片机,AD9854(DDS)和数字模拟转换技术来实现目标。AD9854 作为 DDS 芯片用以产生波形。通过键盘输入模块,可以通过简单的并行或串行通信接口与单片机转换为芯片频率相位控制字,可以方便的调节信号的频率。AD7520 芯片在 AT89S52 单片机的控制下调整信号幅度。通过采用 AD9854 芯片,由于它相对高的稳定性和非线性失真的较小,所以所产生的波动是比较小的。波形的产生过程由单片机实现。所以理论上我们可以写一个程序来生成任意波形。该系统不仅结构简单,易于实现,而且它具有一定的理

14、论和实践价值。流程图如 2-2 所示。图图 2-22-2 总体模块设计总体模块设计方案的确定:方案三的最大特点就是简洁高效,能够最简单的实现任务要求,成本低,且方便纠错,但可调频率太低,不能进行实际的应用。而方案一电路结构复杂,干扰因素较多,不能简洁的完成要求。方案二能够更加精准的产生波形,但比方案三的成本高出太多,不切合实际。方案四的成本虽然比其他要高,但能实现高频率波形的输出,稳定性高,失真度小。所以选方案四。2.2 系统总体设计系统总体设计本设计的目标是设计一个多功能信号发生器,它能够输出多种波形。且该信号发生器输出信号的频率范围很大,为 20Hz 至 2MHz,还能调节波形的幅度。这样

15、,由于单片机本身的硬件限制,不能作为信号的发生装置,只能作为控制装置。发生装置则只能使用 DDS 或者 FPGA 才能完成任务。该信号发生器有以下几部分组成:控制模块、按键及其显示模块、低通滤波模块、运放模块。基本原理:单片机控制 DDS 芯片方案AT89S52 单片机显示屏信号产生模块AD9854键盘波形输出常州大学本科生毕业设计(论文)4在本方案中,控制电路使用单片机来实现,连接其它的外围电路,如键盘,显示等。它能对信号的产生、处理、显示加以控制。并使用低通滤波电路和信号放大电路来对信号进行处理。而最为关键的信号发生,则采用 DDS 芯片中的AD985X 系列芯片来实现。该芯片具有速度快、

16、精确度高、分辨率高的优点,能够满足电路设计的参数要求。2.2.1 键盘输入方案论证键盘输入方案论证方案一:采用矩阵式键盘。矩阵式键盘的原理十分简单。键盘由行线和列线组成,按键安放在行线和列线的交叉点。使用时是通过检测线路导通与否来确定是否有按键被按下。方案二:编码式键盘。芯片 74LS148 与所有的按键相连,当没有按键按下时,74LS148 收不到信号。当有按键按下时,该按键所对应的键码,就会传输到芯片内,从而执行相应的任务。方案三:可以选择 zlg7289 作为键盘,它不但能够与单片机进行通信,还能消除抖动,避免输入错误。还能的自动扫描键盘,提高了单片机的效率。2.2.2 显示方案论证显示

17、方案论证方案一:使用 LED 数码管来显示。LED 数码管由八个发光的二极管组成,可以显示所有的数字和 A、B、C、D、E、F 六个字母。但在本设计中,需要显示波形的种类和具体的参数,如果使用该方案的话,需要较多的数码管才能完成,成本较高。方案二:使用 LCD 液晶显示。LCD 液晶显示器是一种专门用来显示字母、符号、数字的装置。与 LED 数码管不同,LCD 液晶显示器是点阵式的,所以它显示的信息比 LED 要多,也更加美观,所以选择方案二。常州大学本科生毕业设计(论文)53 系统硬件设计系统硬件设计3.1 单片机最小系统单片机最小系统3.1.1 最小系统的构成特点最小系统的构成特点(1)由

18、于单片机没有扩展存储器和外设,P0、P1、P2、P3 都可以作为 I/O接口使用4。其原理图如 3-1 所示。(2)片内数据存储器有 128B,地址空间为 00H7FH,片外数据存储器。(3)片内有 4KB 的程序存储器,地址空间为 0000H0FFFH,没有片外存储器,应接高电平。EA(4)可以使用两个定时/计数器 T0 和 T1,一个全双工的串行通信接口,5个中断源。图图 3-13-1 单片机最小系统的原理图单片机最小系统的原理图3.1.2 AT89S52AT89S52 的晶振及其连接方法的晶振及其连接方法 常州大学本科生毕业设计(论文)6为了使单片机 AT89S52 能够正常工作,必须连

19、接脉冲信号。而提供时钟脉冲的方式有两种:第一种是外部时钟方式,即 AT89S52 连接外部电路来提供时钟脉冲,如图 3-2;第二种是使用内部时钟方式,AT89S52 内部存在一个高增益的反相放大器,通过 XTAL1 和 XTAL2 引脚外接石英晶振和微调电容构成振荡器,该振荡器发出的脉冲直接送入内部时钟电路,即使用晶振由 89S52 内部电路产生时钟脉冲。一般常用第二种方法,其电路如图 3-3 所示。使用陶瓷滤波器时,可能对系统的频率稳定性有一定的影响,为了减少误差,提高性能,通常使用石英晶体。一般来说,使用石英晶体时,C1=C2=30(10)pF,晶体的振荡频率范围为 112MHz。使用陶瓷

20、滤波器时,C1=C2=40(10)pF。89S52XTAL2XTAL189S52XTAL2XTAL1悬空外部时钟信号C1C2J图图 3-23-2 外部时钟外部时钟图图 3-33-3 内部时钟内部时钟信号发生器作为现代测量领域必备的产品,必须满足高速度、高精度、高分辨率等要求。信号的产生采用 DDS 专用芯片 AD9854。而信号发生器的控制部分则则采用爱特梅尔公司的 8 位单片机 AT89S52 芯片。使用爱特梅尔公司高密度非易失性存储器技术制造,与 80C51 产品在引脚和指令完全兼容。由于AT89S52 拥有十分灵活的八位 CPU 以及能够编程的 Flash 芯片,让 AT89S52能够为

21、大部分嵌入式开发提供高效、灵活的解决方案6。设计中信号的控制由 AT89S52 完成,而信号的发生则由 AD9854 完成。用户通过键盘输出指令,由 AT89S52 接收这个指令,经过处理之后,将指令所代表的控制字发送给 AD9854。由 AD9854 产生频率幅度可控的信号。常州大学本科生毕业设计(论文)7在本设计中。AD9854 ASQ 具有许多优异的性能,如可控扫频和自动扫频,价格便宜,适合大规模生产。3.2 AT89S52AT89S52 与与 AD9854AD9854 的接口的接口由于 AD9854 不存在内置 RAM,所以在 DDS 芯片和单片机的接口电路中,实现可编程调制功能时,必

22、须使用高速并行接口来及时刷新内部寄存器的方法。单片机作为控制中心除了要控制 AD9854 以外,还得控制其它外围电路如键盘及显示等,单片机的引脚有限,所以地址线和数据线需要复用。由于 AT89S52 工作电压为 5V 而 AD9854 的工作电压为 3.3V,所以需要使用 74LVCH16245 16 位低压 CMOS 收发器来协调 3.3V 和 5V 器件的信号传输。在本系统中传输数据的方向为单向,即 AT89S52 向 AD9854 传输数据7。对74LVCH16245 来说,引脚 1DIR 和 2DIR 分别控制 lA1B 和 2A2B 端口,当 1 DIR 和 2DIR 均为高电平时,

23、数据由 1A 和 2A 端口传到 1B 和 2B 端口;当 1 DIR和 2DIR 都为低电平时,数据反过来由 1B 端口和 2B 端口传到 1A 和 2A 端口。在本系统中,可以将高电平接引脚 1 DIR 和 2DIR 引脚,这样连接以后,AT89S52 就将数据从 A 端口传送到 B 端口,再由 B 端口传送给 AD89548。 74LVCH16245 的 1OE 和 2OE 引脚为片选信号端,低电平时工作,当 1OE 和2OE 接高电平时,芯片的数据线则处于高阻状态。常州大学本科生毕业设计(论文)8图图 3-43-4 AT89S52AT89S52 与与 74LVCH1624574LVCH

24、16245 的连接图的连接图如图 3-4 所示,AT89S52 的 P0.0P0.7 端口与 74LVCH16245 电平转换芯片的 1A11A8 端口连接,1B11B8 输出端口则与 AD9854 的 DO 至 D7 端口相连,P2.0 至 P2.5 端口通过 LOCH 16245A 的 2A12A6 端口输入,AO 至 A5 端口和 2B12B6 端口相连,从而输出传输寄存器地址信息,P3.6, P3.7 通过LVCH 16245A 的 2A7,2A8 端口输入,2B7, 2B8 端口输出分别与 WR,RD 两个引脚相连控制读写操作,由这三部分共同组成并行传输控制9。AT89S52 的 P

25、3.5引脚控制 LVCH 16245 的 OE 引脚,当向 AD9854 传输数据时置低电平,当单片机 AT89S52 向液晶显示器传送数据时,接高电平,使得 LVCH 16245 处于高阻状态。AT89S52 的 P3.3 引脚与 AD9854 的 71 引脚(MASTER RESET)相连,对其进行复位控制;如果要控制数字调制方式,则必须使 P3.4 引脚与 29 引脚 (FSK/BPSK/HOLD)相连。通过这个倍频器,有效的降低了参考时钟在频率方面的问题,而电路也变得简介,但这样一来,就使得输出频率的性能不理想。因为根据 PLL 理论可知,PLL 的相位噪声性能与倍频倍数和环路宽度有关

26、,提高了倍频数,相位噪声也常州大学本科生毕业设计(论文)9会增加。如果使用环路滤波器,它可以有效的对带外的参考时钟分量进行滤除,但却会恶化带内的频率。当电路的参考时钟端出现噪声时,在环路带宽内,此噪声都会成比例的增加。根据公式 dB=lO1gX(其中 X 代表倍频数)来看,噪声对窄带 SFDR 有着严重的影响。图图 3-53-5 AD9854AD9854 与与 74LVCH74LVCH 1624516245 的连接图的连接图除此之外,由于 PLL 还会使工作电流在原来的基础上增大约 100mA10,这将增加 DDS 发热量。本设计的目标是输出频率可达 80MHz,通过计算可知,参考时钟必须有

27、200MHz 以上。如果直接购买 200MHz 的时钟,成本太高,考虑到实际的情况,还是采用 PLL 的方法用低频晶振来作为参考时钟。在电路中,AT89S52 和 AD8954 使用同一个 20MHz 的晶振。这个晶振可以作为单片机最小系统的一部分。而 20MHz 的晶振经过 AD9854 内部的倍频器倍频 15 倍后,能够产生高达 300MHz 的频率,足以满足要求。常州大学本科生毕业设计(论文)103.3 键盘电路原理键盘电路原理在实际的应用中,为了向系统输入指令或者可以改变控制系统的工作状态,需要连接键盘来达到目的。通常按键的两个触点连接则按键导通,反之则断开,多个按键可以组成键盘来输入

28、复杂的命令。从键盘的结构来看,可以分为矩阵键盘和独立式键盘。而按键的识别,如果有专门的硬件芯片来实现,就是编码式键盘,反之,如果使用软件来识别按键,则是未编码键盘。本设计采用未编码键盘。3.3.1 独立式键盘结构的工作原理及接口独立式键盘结构的工作原理及接口 当一个系统只需要几个按键即可满足指令的输入时,可使用独立式键盘来满足要求。独立式键盘的原理图如 3-4-1 所示,当没有按键按下时,输入线的电压为高电平,而当有键按下时,按键的一脚连接到地线,使得按键相应的输入线为低电平,此时,CPU 就可以通过检查输入线的状态来知道是哪个键按下了。每一个按键都需要独立的输入线,每增加一个按键,就要增加一

29、根地址线,可以看出,独立式键盘适用于按键较少的电路,一旦按键数量有较大的要求时,独立式键盘就不适用了,此时可以采用矩阵式键盘11。独立式键盘的原理图如图 3-6 所示。+5V图图 3-63-6 独立式未编码键盘独立式未编码键盘K1K2K3K34.7K4.7K4.7K4.7KX0X1X2X3常州大学本科生毕业设计(论文)113.3.2 矩阵式键盘的工作原理矩阵式键盘的工作原理 如图 3-4-2 所示是一个 3*2 矩阵式键盘,按键处于行线(X0X1)与列线(Y0Y2)的交叉处。当键盘上没有按键按下时,行线和列线都处于断开状态,列线连接接了+5V 电源的电阻。当有按键按下时,该键位置上的行线与列线

30、则被短路。例如:按下 S1 键时,行线 X1 和列线 Y0 都被短路,此时 X1 的电平由 Y0 的电位所决定。把电路的行线与单片机的输入口相连,列线则与输出口相连,此时可令 Y0 为低电平,Y1、Y2、皆为高电平,读行线的状态。如果行线 X0、X1 都处于高电平的状态,则 Y0 这一列没有按键按下。反之,如果行线的状态不全为高电平,则低电平的那条行线与 Y0 交叉点上,有按键按下。依此类推,最后使列线 Y2 处于低电平,其余的列线为高电平,检查 Y2 这一列上是否有键闭合。其结构图如 3-7 所示。图图 3-73-7 3*23*2 矩阵式未编码键盘结构图矩阵式未编码键盘结构图通过这种逐行逐列

31、的扫描,CPU 能够知道哪个按键被按下,这也叫做对键盘的一次扫描。对键盘扫描的方式有很多,如定时扫描,每隔上固定的时间,CPU 对键盘扫描一次,也可以采取程序控制的随机方式,如当 CPU 空闲时间时扫描。还可以采用中断方式,当有按键被按下时,向 CPU 发出中断请求,CPU 收到请求后,对键盘进行扫描,判断是那个键按下,从而执行相关的指令。CPU 对键盘上究竟哪个键被按下,可以根据行线和列线状态查表求得,也可以根据行线和列线的状态计算求得。X0X1Y0Y1Y2常州大学本科生毕业设计(论文)123.4 液晶显示电路液晶显示电路本设计通过液晶 1602 显示输出的波形、频率。LCD1602 能同时

32、显示 16x02即 32 个字符。 (16 列 2 行) 1602 采用标准的 16 脚接口,其中: 第 1 脚:VSS 为电源地 第 2 脚:VDD 接 5V 电源正极 第 3 脚:V0(VEE)可以调节液晶显示器的对比度,接高电平时,对比度最弱,接低电平(通常是地线)时,对比度最高。通常连接一个 10K 的电阻来调节对比度。 第 4 脚:RS 为寄存器选择,低电平时为指令寄存器,高电平时为数据寄存器。 第 5 脚:RW 为读写信号线,低电平时进行写操作,高电平时进行读操作。 第 6 脚:E(或 EN)端为使能(enable)端。 第 714 脚:D0D7 为 8 位双向数据端。 第 151

33、6 脚:空脚或背灯电源。15 脚为背光正极,16 脚为背光负极。 常州大学本科生毕业设计(论文)13图图3-83-8 液晶液晶16021602显示显示由图 3-8 所示,LCD1602 的三个使能端 RS、RW、E 分别与单片机的P3.2、P3.3、P3.4 连接。而单片机的 P1 口则与 LCD1602 的八位数据端连接。可以通过软件编程的方法来显示波形的种类和频率。3.5 幅度调节电路幅度调节电路本次设计的信号发生器,要求可以对它进行幅度上的调节,调节范围是 0至图图 3-93-9 幅度调节模块电路幅度调节模块电路常州大学本科生毕业设计(论文)145V。而 AD9854 的输出信号幅度为

34、0.5V,达不到要求。因此必须使用信号放大电路来调节幅度的大小。如图 3-9 所示,通过使用 MAX437 芯片组成电路,MAX437 性能优异,信号的抗干扰能力很强。可以调节电位器的电阻来达到调节信号幅度的目的。常州大学本科生毕业设计(论文)154. .系统软件设计系统软件设计4.1 系统软件设计方案系统软件设计方案 在本设计中当操作者按下不同的按键后,单片机的主要工作就是执行与之对应的任务,而按键的键码决定任务的先后顺序。操作者通过键盘发出指令,同时,监控主程序接收到命令后进行分析,再把具体的命令发送给执行子程序。系统软件设计采用模块化的设计方案,通过将一个具有完整功能的程序,按照特定的类

35、型,分成几个具有独立功能的程序模块。分别对这些模块进行设计、编程、调试,调试完成之后,再把所有的模块组合成完整的程序。采用模块化的程序设计方法,其独立设计的功能模块容易调试,功能也十分明确,不容易出现各个功能相互影响的情况。一个模块可以为多个程序所共享。使用模块化编程就是将主程序写成一个不断循环检测的结构,而把各个相对独立的功能模块写成子函数。当系统初始化之后,主程序就在不断循环查找按键的状态,如果有按键按下,则执行相应的命令。在本系统中,PC 机可以通过串行口来发出指令控制系统。 本系统由三个模块组成,主程序模块、人机交互模块、信号产生模块。其中主程序模块在系统中处于至关重要的作用。主程序模

36、块的主要工作是识别键盘发出的指令,经过处理后找到该指令所对应模块的入口。主程序模块统筹了整个系统的功能。4.2 主程序模块主程序模块上电复位后,系统将运行初始化程序,包括单片机 AT89S52 的初始化、DDS 芯片 AD9854 的初始化, LCD 液晶显示的初始化等。完成初始化后,CPU不断扫描键盘状态,一旦检测到有按键按下时,计算出键值,根据键值来执行相应的子程序。同时也将相应的输入信息显示在 LCD 液晶面板上。当输入完成时,CPU 检测到按下设置键,单片机计算出波形的数据,把数据传给 DDS 芯片,最终输出所需波形。主程序流程图如图 4-1 所示。常州大学本科生毕业设计(论文)16

37、图图 4-14-1 系统主程序流程图系统主程序流程图当完成一次任务后,重新执行主程序,接着扫描键盘状态,检测是否有按键按下。初始化程序主要是以下工作:(1)设置 PSW 的 RSO,RS1 均为 0,将当前工作寄存器选择为第一组寄存器;(2)将堆栈指针设置为 SP=70H;(3)调用 LCD 液晶显示器的初始化程序;(4)设置键盘输入值存放区,为 20H,21 H,22H,23H,24H,25H;(5)初始化串行口通信,允许定时器 0 中断,置中断允许触发器 IE=92H,允许串行口中断12;(6)转键盘扫描程序;系统主程序图如图 4-2 所示。用 20 个系统周期的高电平输入至 AD9854

38、 的71 引脚,从而使得 AD9854 初始化。初始化之后,就能对将控制字写入常州大学本科生毕业设计(论文)17AD9854 中。在接收到系统发送的控制字之后,DDS 可以保持输出信号参数不变,直到再次接收到初始化命令。4.3 信号产生软件的设计信号产生软件的设计在本设计中 AT89S52 根据键盘上得到信号,得出所需信号的频率和幅度,再计算出频率控制字和幅度控制字, DDS 芯片 AD9854 得到控制字后,它可以根据控制字来产生相应的波形。当 DDS 工作时,接收到 AT89S52 发出的 48位的频率控制字,当接收到控制字之后,AD9854 便在 DDS 核内进行相关信号的合成。再经过内

39、部的 D/A 转换,把合成的数字信号转换成模拟信号。 在 AD9854 内部有一个寄存器表,地址范围是 00H27H,这个寄存器的功能就是用来存储各种状态字和控制字。所以外部设备就可以通过 I/O 端口和这个寄存器进行数据的传输。在通信之前,首先通过地址端口 A1A6 来确定写入的寄存器,再通过数据端口 D0D7 写入控制字或状态字,I/O 缓冲区的内容必须在更新脉冲的作用下才能刷新到寄存器表中,这样可以很好地达到同步。相位控制字为 14 位,频率控制字为 48 位。相位控制字 1 存放在寄存器表中的 00H、01H 中,而相位控制 2 存放于 02H、03H 中。输出信号的相位精确度与它有很

40、大的关系。最低相位可达 0.022 度。与之相对应的频率控制字 1 存放在 04H 至 09H,频率控制字 2 则存放在 0AH 至 0FH 中13。输出信号的频率与之相关。最低频率可达 1.066*10-6Hz。在生成波形前,需要知道波形的频率,根据频率计算出频率控制字,这样系统才能识别。其计算公式为: CLKfNfFCW/)2( (4-3) 在 4-3 这个公式中,fCLK 代表时钟频率,N 代表相位累加器的位数,我们使用的 AD9854 为 48 位,f 代表输出频率,WFC 代表频率控制字。由于本设计采用 AD9854 芯片,其相位累加器的位数高达 48,由此可知,计算比较复杂。考虑到

41、计算精度的问题,可以将频率寄存器中的 16 位置零,只使用其中的 32位就能够达到精度要求。根据 4-4 公式来看,当输出的频率为 20MHz 的时候,与之对应的频率控制字为:常州大学本科生毕业设计(论文)18 (4-4)为了避免较大的误差,可以把 11E1A300 向右移动四位,可以得到11E1A30H。这时再进行除法运算,得 15H。15H 是一个固定的值,如此,为了方便计算,可以将 15H 与所需要的频率相乘,这样就能够十分容易的得到频率控制字的低 16 位。此时,频率控制字低 32 位为 1312D00H* 15H=1908B100H,再在高 16 位补上 0000H,则 48 位的频

42、率控制字为00001908B100H。当未产生更新脉冲时,数据并不会被传输。得到频率控制字之后,系统会把控制字分成几个数据块送到 AD9854 中的 DDS 核中,在核中进行频率的合成。表 4-1 AD9854 控制寄存器表常州大学本科生毕业设计(论文)19由上表 4-1 所示的 AD8954 控制寄存器表可以看出,从 1DH 至 20H 都是用来存放控制数据的。由于本设计采用 20MHz 的晶振,而参考时钟频率高达300MHz,所以必须进行 15 倍的倍频。表中的 Bit6 到 Bit0 是用来控制输入时钟的频率,在 Bit6 上置一,在 Bit5 上置零。当倍频数为 15 时,可将 Bit

43、4 至 bit1都置一,其余置零,由此可以得到 1EH 的单元控制字是 4FH。如果把 1FH 中的 Bit1 单元置一,可以使用内部更新时钟。由上表 4-1 的 AD9854 控制寄存器表可知,通过合理得设置第九位到第十一位,即 Mode0、Mode1、Mode2,可以进行多种数字调试,如 BPSK 和 FSK。使用芯片 AD9854 所输出的正弦波作为数字调制时的载波。根据芯片资料可知,可以根据需求修改控制寄存器里面的数据,来使得AD9854 进行工作模式的切换,它一共有五种工作模式,分别为FSK、BPSK、Ramped FSK、Single-Tone、Chirp。4.4 人机交互模块设计

44、人机交互模块设计4.4.1 键盘程序设计键盘程序设计在信号发生器中,键盘起到了输入指令的重要作用。系统的控制和参数的输入都需要键盘来完成。如图 4-2 所示,本信号发生器根据要求,设计了一个4*4 的矩阵键盘。其中 0 到 9 十个数字和小数点用来输入、修改波形的参数。“”和“”用来移动光标。 “DEL”键,顾名思义,就是用来删除数字用的。使用时,通过“”和“”移动光标,选择需要删除的参数,按下“DEL”键,就能使之为零。 “TAB”键比较复杂,它既可以切换波形,也可以选择调制功能,以及切换幅度和频率的单位。 “EXE”键是执行键,当波形的参数,如频率、幅度等已经输入完成后,按下“EXE”键,

45、就能得到想要的波形。常州大学本科生毕业设计(论文)20 图图 4-24-2 键盘功能设计图键盘功能设计图 按下按键后,键盘的软件处理部分对于信号发生器是否能按照输入的数据输出波形,具有十分重要的作用。它执行任务的流程为检测是否有按键按下按键的消抖,消抖有软件消抖和硬件消抖,本次采用软件消抖检测出究竟是哪个按键按下,并计算键值得到键值之后,执行相应的任务。在本系统中,键盘的软件程序包括以下几个部分: 一共有三种方式,用来判断是否有按键按下,分别是定时扫描工作方式;程序控制扫描方式;中断扫描工作方式。常州大学本科生毕业设计(论文)21 (1)定时扫描方式 即每隔一段固定的时间,扫描一次键盘。工作原

46、理是利用单片机内部的定时器,当定时器产生中断时,CPU 会相应来自定时器的中断,执行扫描键盘的任务。 (2)程序控制扫描方式 利用 CPU 的空闲时间,只要 CPU 没有任务执行,就扫描一次键盘,知道接收到键值,执行相应的任务。 (3)中断扫描方式 每次按下按键时,都会产生中断,CPU 就会执行相应的中断子程序,扫描键盘,执行任务。 本次采用第二种扫描方式,即利用空闲时间,扫描键盘。键盘扫描的步骤如下: (1)查询是否有键按下。把全为零的扫描码 FOH 通过行扫描口 P1.0 至 P1.3输出,得到列检测信号,把列检测信号输入到 P1.4 到 P1.7,如有一列信号不是“1” ,则表示有键按下

47、。(2)去抖动。操作者在输入指令时,由于采用了机械式的开关,按下按键时会产生电压的抖动,单片机可能会判断为连续输入,为了避免这个错误,必须消抖。可以采用硬件消抖,即使用 RS 触发器来达到目的。本次采用软件的方法来消抖,在检测到有按键按下时,记录按键的位置,使用延时子程序延时10ms,如果仍然检测到相同的键值,则此次按键有效。 (3)确定按下键的行列值。将单片机 AT89S52 中得到的信号取反,查找在P1.4 到 P1.7 中是否有为“1”的列。有的话按键就在这一列上,此时再进行逐行扫描,令 P1.0 至 P1.3 依次为零,扫描所在列的输入信号,信号为零的话,则可确定行数。若扫描到最后根本

48、没有结果,则可以认为是操作者误操作了按键。常州大学本科生毕业设计(论文)22(4)键值译码。扫描键盘后,得到返回值,如果返回值为 0,则没有按键被按下。得到相应的键值后,CPU 就可以执行键值所代表的子程序了。图图 4-34-3 键盘扫描程序流程图键盘扫描程序流程图4.4.2 显示程序设计显示程序设计本模块的设计,是为了显示信号的具体参数,如波形的类型,频率等。显示模块采用 GXM1602NSL 显示器。这个液晶显示器一共有两行,其中每行可以显示 16 个独立的符号。HD44780 是这个液晶显示器的控制芯片。为了存储显示数据,在 HD44780 中存在着 DD RAM(显示数据寄存器) ,它

49、的地址与字符的相对关系如表 4-2 。常州大学本科生毕业设计(论文)23 表 4-2 DD ROM 地址表对于 HD44780 来说,其内部的字符发生器有两种工作方式,一种是使用八位字符码来构成 32 种 5*10 的点阵字符,另外一种就是构成 160 种 5*7 的点阵字符。字符集中的元素很多,有数字、标点还有大小写的英文字母。如果这些不能满足要求,还可以利用 HD44780 的自定义字符库来设计所需要的符号。用户可以设计显示为 5*8 点阵的字符,一共可以设计八个。在本系统中,由于没有显示波形以及工作方式的符号,所以必须自己定义符号。查看 HD44780 的资料可知,CG RAM(字符发生

50、器)的地址为 00H 到 3FH,而用户自定义库的地址为 00H 到 07H。 在此设计中,自定义字符代码为: 正弦波:OOH;三角波:O1H;方波:02H; 各字符的字模组为: 正弦波字模:00H, 08H, 14H, 14H, 0SH, 05H, 02H, 00H(存放首地址为 00H); 三角波字模:00H , 00H, 08H , 14H , 05H , 02H 00H , 00H(存放首地址为 08H) ; 方波字模:00H ,00H , 1CH , 14H , 05H , 07H , 00H , 00H(存放首地址为 10H) ; 常州大学本科生毕业设计(论文)24GXM 1602

51、NS L 的输入方式共有 5 种:画面左滚动输入、画面右滚动输入光标左移输入、光标右移输入逐字依次输入。本次系统采用光标右移输入方式来实现。一共有十一条指令用来控制 HD44780。从功能上可以分为两种,一种是用来对数据进行读或写操作,另一种则是用来显示当前波形的状态14。当操作者对系统进行复位时,LCD 显示模块也能复位,由此,单片机能够与 HD44780芯片进行连接。复位后,HD44780 对 LCD 进行初始化:(1)使用清屏指令,使得 LCD 中的显示数据随机存储器(display data RAM)中的数据被删除,地址计数器 AC 置“0” ,光标回到原位;(2)LCD 显示开关的设

52、置,点亮液晶屏,并且光标开始闪烁;设定双行显示、8 位传输、5*7 点阵的功能;(3)入口模式设定。在初始化 LCD 液晶显示屏之后,在显示屏上显示波形相应的频率和类型等信息。在显示的过程中,执行每一个任务之前都需要查一下 BF(忙标志)15,当芯片没有任务时,才能执行下面的命令。程序流程图如图 4-4 所示。常州大学本科生毕业设计(论文)25图图 4-44-4 液晶控制器操作流程图液晶控制器操作流程图常州大学本科生毕业设计(论文)265 系统仿真系统仿真和分析和分析 图(a)1000Hz 正弦波图(b)1000Hz 三角波2.5ms2.5ms2.5ms图(d)100Hz 正弦波5ms10ms

53、15ms5ms20ms20ms20ms1.25ms1.25ms0.625ms0.625ms1.875ms1.875ms.1.25ms0.625ms1.875ms10ms15ms10ms15ms.5V5V2.5V5V2.5V5V2.5V2.5V.5ms.5V5V2.5V2.5V.图(c)500Hz 方波图(e)100Hz 三角波图(f)50Hz 方波常州大学本科生毕业设计(论文)27对比图(a)与图(d)、图(b)与图(e)、图(c)与图(f)可以看出,当信号的频率减小到一点范围时,波形出现失真。特别是在正弦波和三角波中,可以明显看出来。由于 DDS 芯片对于整个系统的性能有着至关重要的作用,因

54、此,可以把AD9854 换成下一代的 AD9954,AD9954 芯片的抗噪声能力比较强,能够有效的减少失真。同时也可以选择不使用 DDS 芯片中的倍频器来倍频信号,可以直接使用 300MHZ 的信号源作为参考时钟。考虑到单片机在计算性能上的限制,为了加快信号发生器的运行速度,可以考虑把 AT89S52 换成 DSP 芯片。这样能够极大的提高处理速度。常州大学本科生毕业设计(论文)286 6 系统调试系统调试6.1 硬件调试硬件调试在本系统的电路中,涉及了很多模块,如单片机最小系统、LCD 液晶显示模块,信号产生模块、幅度调节模块。对于焊接的要求很大,不能存在短路和虚焊的问题,不然电路就不能正

55、常运行。在实际焊接之前,应该先使用PROTEL 软件画出电路图并制作 PCB 图。在实际的硬件调试中遇到了许多的问题。以下为主要的问题:问题 1:一开始波形一直没有输出,示波器上显示杂波。解决: 仔细检查电路的连接,没有发现问题,开始在最小系统模块和信号产生模块等模块检查,发现是最小系统中的外部晶振在焊接的时候烧坏了,没有起振,换了一个新的晶振,问题解决。问题 2:波形能够正常显示,但有时候又完全没有波形解决:这应该是电路中存在虚焊的现象,用万用表仔细检查,发现是公共地那一部分,因为连线太多,焊锡都聚在一起,里面有虚焊的现象。重新对公共地这块进行焊接,解决了问题6.2 软件调试软件调试在调试软

56、件的过程中出现了很多问题,为模拟较为真实的环境,使用 Keil软件来编写 AT89S52 单片机控制程序,在编译完成之后,使用开发板,把写好的程序导入单片机。在不断的更改错误后,终于解决了系统在软件方面的问题。在 debug 的过程中,遇到了如下的问题:问题 1通过开发板把 Keil 生成的 hex 文件导入单片机,但此时 LCD 显示闪烁的厉害。解决:首先对 LCD 液晶显示器进行检查,发现没有问题,那就是软件方面出现了错误。找到关于显示部分的程序,仔细修改发现延时子程序出了问题。常州大学本科生毕业设计(论文)29再进一步探究,由于本设计的显示方案采用动态设计,动态扫描很快,肉眼无法看出,但

57、如果返回时不屏蔽掉最后的赋值,就会出现液晶显示很亮的问题。问题 2当按下按键的时候,89S52 单片机读取的数值跟设定的数值不相符。解决:检查独立键盘电路的连线,建立一个新的对应关系。 常州大学本科生毕业设计(论文)307. 实验数据和元器件清单实验数据和元器件清单7.1 实验数据及分析实验数据及分析在实验的过程中,使用示波器 DSO-X 3012A 来测量数据,具体测试数据如表 7-1、7-2、7-3 所示,其中 7-1 是正弦波的测试数据,7-2 是三角波的测试数据,7-3 是方波的测试数据。表 7-1 正弦波频率的测量测量值/Hz12测量值/Hz34平均值/Hz误差/%201002000

58、11061.510623.3103.420221.051061.6310621.2101.320151.091061.6510621.8108.120071.101061.7010622.799.820091.071061.6610622.25102.152013.251.07751061.66106-11.25-2.15-0.6625-7.75-16表 7-2 三角波频率的测量测量值/Hz12测量值/Hz34平均值/Hz误差/%20100200011061.510621.2101.520081.111061.7210622.6109.220111.041061.6310621.3102.92

59、0241.051061.6410623.798.420141.091061.6710622.2010320141.07251061.665106-11-3-0.7-7.25-16.5表 7-2 方波频率的测量测量值/Hz12测量值/Hz34平均值/Hz误差/%20100200011061.510622.5110.420111.071061.5210621.8104.520231.141061.6910622.1107.420141.031061.5910622.4102.920071.171061.7210622.2106.32013.751.10251061.63106-11-6.3-0.6

60、875-10.25-13常州大学本科生毕业设计(论文)31使用焊接好的信号发生器进行频率的测量,可以发现,设置的频率和实际输出的频率存在误差。经过简单的计算,当频率较小时,实际输出的信号和设置的信号存在较大的误差。频率较高时,误差也比较大。总体趋势是,随着频率的增加,误差越来越小,当增大到一定频率时,误差反而增大了。7.2 实测波形与失真度分析实测波形与失真度分析图(a)中的正弦波,在波峰和波谷有稍许的失真,而同样频率的三角波(如图(b)所示)并没有相似的失真。图(c)中的方波的情况和三角波类似。通过对完成的信号发生器进行测试,可以看出,理论数据与实际的数据有很大的不同,有时候仿真的时候波形失

温馨提示

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

评论

0/150

提交评论