毕业设计(论文)基于C52单片机的函数信号发生器的设计 (2).doc_第1页
毕业设计(论文)基于C52单片机的函数信号发生器的设计 (2).doc_第2页
毕业设计(论文)基于C52单片机的函数信号发生器的设计 (2).doc_第3页
毕业设计(论文)基于C52单片机的函数信号发生器的设计 (2).doc_第4页
毕业设计(论文)基于C52单片机的函数信号发生器的设计 (2).doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1 单片机的函数信号发生器单片机的函数信号发生器 摘摘 要要 近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带 动传统函数信号发生器日新月益更新。单片机能产生高精度、快速变换频率、输出波形 失真小的优先选用技术。函数信号发生器是各种测试和实验过程中不可缺少的工具,在 通信、测量、雷达、控制、教学等领域应用十分广泛。不论是在生产、科研还是教学上, 信号发生器都是电子工程师信号仿真实验的最佳工具,而且,信号发生器的设计方法多, 设计技术也越来越先进。研究函数信号发生器的设计方法,克服传统方法的缺点,以更 好的方法设计出比较复杂的调频、调幅功能的信号发生器。 本文介绍的是一种用at89c52单片机构成的波形发生器,可产生方波、三角波、正弦 波、锯齿波等多种波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双 极性输出,具有线路简单、结构紧凑、性能优越等特点。文章给出了源代码,通过仿真 测试,其性能指标达到了设计要求。单片机小系统负责用户的交互和系统控制,键盘用 于频率的输入与波形的选择。lcd显示当前所选信号的频率调整情况,具有界面提示功能, 而末级放大电路则对生成的信号进行适当的放大,以提高信号的振幅和强度。 关键词关键词 单片机,dac,信号发生器 ,单片机,频率调节,界面提示. 2 abstract in recent years, with the computer in the social sector penetration and mcu application is continuously, while driving to the deepening traditional function signal generator on new pe updates. scm can produce high precision, fast transform the frequency, the output waveform distortion of preferred selection technology. function signal generator is all sorts of test and experiment process the essential tool, in communication, measuring, radar, control, teaching fields used widely. both in production and scientific research or teaching, signal generator are electronic engineer signal simulation experiment, and the best tool, signal generator design method, design technology is becoming more and more advanced. research function signal generator design methods, overcome shortcomings of traditional methods, in order to better designed complex fm, attenuation function signal generator. this thesis introduces a at89c2 single-chip computers.the waveform generator, can produce square-wave, triangle wave, sine wave, sawtooth wave etc. various waveform, waveform cycle available program change, and can choose according to need single polarity output or dual polarity output, has the line is simple, compact structure, superior performance characteristics. the article presented the source code, through the simulation test, the performance indexes meet the design requirements. : singlechip processor system is responsible for the user interaction and system control, the keyboard for frequency of input and waveform choice. lcd display the current selected the signal frequency adjustment. has the interface hint function, and final amplifier circuit is generated signal proper amplifier, in order to improve the signal amplitude and strength. keywords microcontroller, dac, signal generator, microcontroller, frequency adjustment, interface hints. 3 目目 录录 1 概述概述.1 1.1 单片机概述2 1.1.1 特殊功能寄存器.3 1.1.2 数据存储器.4 1.1.3 自动重装载方式.5 1.1.4 波特率发生器.6 1.1.5 可编程时钟输出.7 1.1.6 时钟振荡器.7 1.1.7 flash存储器的编程8 1.3 信号发生器的分类9 1.3.1 正弦信号发生器9 1.3.2 低频信号发生器10 1.3.3 频率合成式信号发生器10 1.3.4 函数发生器11 1.3.5 脉冲信号发生器11 1.3.6 噪声信号发生器11 1.4 信号发生器的应用 .12 1.5 研究内容 .12 2 方案的设计与选择方案的设计与选择.13 2.1 方案的比较13 2.2 设计原理13 2.3 设计思想14 2.4 设计功能15 3 硬件设计硬件设计 16 3.1 硬件原理框图16 3.2 主控电路16 3.3 数/模转换电路.17 3.4 按键接口电路18 3.5 时钟电路18 3.6 显示电路19 4 软件设计软件设计 20 4.1 程序流程图20 4.2 源程序的调试22 4.3 波形产生与控制25 5 总原理图及元器件清单总原理图及元器件清单 27 5.1 总电路图27 5.2 元器件清单28 6 总结与展望总结与展望 28 致致 谢谢.29 参考文献参考文献30 4 1 1 概述概述 随着大规模集成电路技术的发展,中央处理器(cpu)、随机存取存储器(ram)、只读 存储器(rom)、(i/o)接口、定时器/计数器和串行通信接口,以及其他一些计算机外围电 路等均可集成在一块芯片上构成单片微型计算机,简称为单片机。单片机具有体积小、 成本低,性能稳定、使用寿命长等特点。其最明显的优势就是可以嵌入到各种仪器、设 备中,这是其他计算机和网络都无法做到的。 1.11.1 单片机概述单片机概述 at89c52 是 51 系列单片机的一个型号,它是 atmel 公司生产的。at89c52 是一个低 电压,高性能 cmos 8 位单片机,片内含 8k bytes 的可反复擦写的 flash 只读程序存储 器和 256 bytes 的随机存取数据存储器(ram) ,器件采用 atmel 公司的高密度、非易失 性存储技术生产,兼容标准 mcs-51 指令系统,片内置通用 8 位中央处理器和 flash 存储 单元,功能强大的 at89c52 单片机可为您提供许多较复杂系统控制应用场合。at89c52 有 40 个引脚,32 个外部双向输入/输出(i/o)端口,同时内含 2 个外中断口,个 16 位 可编程定时计数器,2 个全双工串行通信口,2 个读写口线,at89c52 可以按照常规方法 进行编程,但不可以在线编程(s 系列的才支持在线编程)。其将通用的微处理器和 flash 存储器结合在一起,特别是可反复擦写的 flash 存储器可有效地降低开发成本。 at89c52p 为 40 脚双列直插封装的 8 位通用微处理器,采用工业标准的 c51 内核, 在内部功能及管脚排布上与通用的 8xc52 相同,其主要用于会聚调整时的功能控制。功 能包括对会聚主 ic 内部寄存器、数据 ram 及外部接口等功能部件的初始化,会聚调整 控制,会聚测试图控制,红外遥控信号 ir 的接收解码及与主板 cpu 通信等。主要管脚有 :xtal1(19 脚)和 xtal2(18 脚)为振荡器输入输出端口,外接 12mhz 晶振。rst/vp d(9 脚)为复位输入端口,外接电阻电容组成的复位电路。vcc(40 脚)和 vss(20 脚)为供电端口,分别接+5v 电源的正负端。p0p3 为可编程通用 i/o 脚,其功能用途 由软件定义,在本设计中,p0 端口(3239 脚)被定义为 n1 功能控制端口,分别与 n1 的相应功能管脚相连接,13 脚定义为 ir 输入端,10 脚和 11 脚定义为 i2c 总线控制端 口,分别连接 n1 的 sdas(18 脚)和 scls(19 脚)端口,12 脚、27 脚及 28 脚定义为 握手信号功能端口,连接主板 cpu 的相应功能端,用于当前制式的检测及会聚调整状态 进入的控制功能。 5 1.1.11.1.1 特殊功能寄存器特殊功能寄存器 在 at89c52 片内存储器中,80h-ffh 共 128 个单元为特殊功能寄存器(sfe) ,sfr 的地址空间映象。并非所有的地址都被定义,从 80hffh 共 128 个字节只有一部分被 定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不 确定,而写入的数据也将丢失。不应将数据“1”写入未定义的单元,由于这些单元在将 来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0” 。at89c52 除了与 at89c51 所有的定时/计数器 0 和定时/计数器 1 外,还增加了一个定时/计数器 2。定时/计数器 2 的控制和状态位位于 t2con,寄存器对(rcao2h、rcap2l)是定时器 2 在 16 位捕获方式或 16 位自动重装载方式下的捕获/自动重装载寄存器。 1.1.21.1.2 数据存储器数据存储器 at89c52 有 256 个字节的内部 ram,80h-ffh 高 128 个字节与特殊功能寄存器( sfr)地址是重叠的,也就是高 128 字节的 ram 和特殊功能寄存器的地址是相同的,但物 理上它们是分开的。当一条指令访问 7fh 以上的内部地址单元时,指令中使用的寻址方 式是不同的,也即寻址方式决定是访问高 128 字节 ram 还是访问特殊功能寄存器。如果 指令是直接寻址方式则为访问特殊功能寄存器。 1.1.3 自动重装载方式自动重装载方式 当定时器 2 工作于 16 位自动重装载方式时,能对其编程为向上或向下计数方式,这 个功能可通过特殊功能寄存器 t2con 的 dcen 位(允许向下计数)来选择的。复位时,d cen 位置“0” ,定时器 2 默认设置为向上计数。当 dcen 置位时,定时器 2 既可向上计 数也可向下计数,这取决于 t2ex 引脚的值,当 dcen=0 时,定时器 2 自动设置为向上 计数,在这种方式下,t2con 中的 exen2 控制位有两种选择,若 exen2=0,定时器 2 为 向上计数至 0ffffh 溢出,置位 tf2 激活中断,同时把 16 位计数寄存器 rcap2h 和 rca p2l 重装载,rcap2h 和 rcap2l 的值可由软件预置。若 exen2=1,定时器 2 的 16 位重 装载由溢出或外部输入端 t2ex 从 1 至 0 的下降沿触发。这个脉冲使 exf2 置位,如果 中断允许,同样产生中断。定时器 2 的中断入口地址是:002bh 0032h 。当 dcen=1 时,允许定时器 2 向上或向下计数。这种方式下,t2ex 引脚控制计数器方向。t2ex 引 脚为逻辑“1”时,定时器向上计数,当计数 0ffffh 向上溢出时,置位 tf2,同时把 16 位计数寄存器 rcap2h 和 rcap2l 重装载到 th2 和 tl2 中。 t2ex 引脚为逻辑“0”时, 定时器 2 向下计数,当 th2 和 tl2 中的数值等于 rcap2h 和 rcap2l 中的值时,计数溢 6 出,置位 tf2,同时将 0ffffh 数值重新装入定时寄存器中。当定时/计数器 2 向上溢出 或向下溢出时,置位 exf2 位。 1.1.41.1.4 波特率发生器波特率发生器 当 t2con 中的 tclk 和 rclk 置位时,定时/计数器 2 作为波特率发生器使用。如果 定时/计数器 2 作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器 1 用于其它功能,如图 7 所示。若 rclk 和 tclk 置位,则定时器 2 工作于波特率发生器 方式。波特率发生器的方式与自动重装载方式相仿,在此方式下,th2 翻转使定时器 2 的寄存器用 rcap2h 和 rcap2l 中的 16 位数值重新装载,该数值由软件设置。在方式 1 和方式 3 中,波特率由定时器 2 的溢出速率根据下式确定: 方式 1 和 3 的波特率=定时器的溢出率/16 定时器既能工作于定时方式也能工作于计 数方式,在大多数的应用中,是工作在定时方式(c/t2=0) 。定时器 2 作为波特率发生 器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期(1/12 振荡 频率)寄存器的值加 1,而作为波特率发生器使用时,在每个状态时间(1/2 振荡频率 )寄存器的值加 1。波特率的计算公式如下: 方式 1 和 3 的波特率=振荡频率/32*65536-(rcp2h,rcp2l) 式中(rcap2h,rcap2l)是 rcap2h 和 rcap2l 中的 16 位无符号数。 定时器 2 作为波特率发生器使用的电路如图 7 所示。t2con 中的 rclk 或 tclk=1 时,波特率工作方式才有效。在波特率发生器工作方式中,th2 翻转不能使 tf2 置位, 故而不产生中断。但若 exen2 置位,且 t2ex 端产生由 1 至 0 的负跳变,则会使 exf2 置位,此时并不能将(rcap2h,rcap2l)的内容重新装入 th2 和 tl2 中。所以,当定时 器 2 作为波特率发生器使用时,t2ex 可作为附加的外部中断源来使用。需要注意的是 ,当定时器 2 工作于波特率器时,作为定时器运行(tr2=1)时,并不能访问 th2 和 tl 2。因为此时每个状态时间定时器都会加 1,对其读写将得到一个不确定的数值。然而, 对 rcap2 则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装 载出错。在访问定时器 2 或 rcap2 寄存器之前,应将定时器关闭(清除 tr2) 。 1.1.51.1.5 可编程时钟输出可编程时钟输出 定时器 2 可通过编程从 p1.0 输出一个占空比为 50%的时钟信号。p1.0 引脚除了是 一个标准的 i/o 口外,还可以通过编程使其作为定时/计数器 2 的外部时钟输入和输出 占空比 50%的时钟脉冲。当时钟振荡频率为 16mhz 时,输出时钟频率范围为 61hz4mhz 。当设置定时/计数器 2 为时钟发生器时,c/t2(t2con .1)=0,t2oe (t2mod.1) =1 7 ,必须由 tr2(t2con.2)启动或停止定时器。时钟输出频率取决于振荡频率和定时器 2 捕获寄存器(rcap2h,rcap2l)的重新装载值,公式如下:输出时钟频率=振荡器频率/ 4*65536-(rcp2h,rcp2l) 在时钟输出方式下,定时器 2 的翻转不会产生中断,这个特性与作为波特率发生器 使用时相仿。定时器 2 作为波特率发生器使用时,还可作为时钟发生器使用,但需要注 意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用 rcap2l 和 rcap2l。u art at89c52 的 uart 工作方式与 at89c51 工作方式相同。 at89c52 共有 6 个中断向量:两个外中断(int0 和 int1) ,3 个定时器中断(定时 器 0、1、2)和串行口中断。所有这些中断源如图 9 所示。这些中断源可通过分别设置 专用寄存器 ie 的置位或清 0 来控制每一个中断的允许或禁止。ie 也有一个总禁止位 e a,它能控制所有中断的允许或禁止。注意表 5 中的 ie.6 为保留位,在 at89c51 中 ie. 5 也是保留位。程序员不应将“1”写入这些位,它们是将来 at89 系列产品作为扩展用 的。定时器 2 的中断是由 t2con 中的 tf2 和 exf2 逻辑或产生的,当转向中断服务程序 时,这些标志位不能被硬件清除,事实上,服务程序需确定是 tf2 或 exf2 产生中断, 而由软件清除中断标志位。定时器 0 和定时器 1 的标志位 tf0 和 tf1 在定时器溢出那 个机器周期的 s5p2 状态置位,而会在下一个机周期才查询到该中断标志。然而,定时 器 2 的标志位 tf2 在定时器溢出的那个机器周期的 s2p2 状态置位,并在同一个机器周 期内查询到该标志。 1.1.61.1.6 时钟振荡器时钟振荡器 at89c52 中有一个用于构成内部振荡器的高增益反相放大器,引脚 xtal1 和 xtal2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷 谐振器一起构成自激振荡器,振荡电路。外接石英晶体(或陶瓷谐振器)及电容 c1、c2 接在放大器的反馈回路中构成并联振荡电路。对外接电容 c1、c2 虽然没有十分严格的 要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难 易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用 30pf10pf,而如使用陶 瓷谐振器建议选择 40pf10f。用户也可以采用外部时钟。这种情况下,外部时钟脉冲 接到 xtal1 端,即内部时钟发生器的输入端,xtal2 则悬空。由于外部时钟信号是通过 一个 2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求 ,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。 8 在空闲工作模式状态, cpu 自身处于睡眠状态而所有片内的外设仍保持激活状态, 这种方式由软件产生。此时,同时将片内 ram 和所有特殊功能寄存器的内容冻结。空闲 模式可由任何允许的中断请求或硬件复位终止。由硬件复位终止空闲状态只需两个机器 周期有效复位信号,在此状态下,片内硬件禁止访问内部 ram,但可以访问端口引脚, 当用复位终止空闲方式时,为避免可能对端口产生意外写入,激活空闲模式的那条指令 后一条指令不应是一条对端口或外部存储器的写入指令。 在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令, 片内 ram 和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法 是硬件复位,复位后将重新定义全部特殊功能寄存器,但不改变 ram 中的内容,在 vcc 恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工 作。 1.1.71.1.7 flashflash 存储器的编程存储器的编程 at89c52 单片机内部有 8k 字节的 flash perom,这个 flash 存储阵列出厂时已处于 擦除状态(即所有存储单元的内容均为 ffh) ,用户随时可对其进行编程。编程接口可接 收高电压(+12v)或低电压(vcc)的允许编程信号。低电压编程模式适合于用户在线编 程系统,而高电压编程模式可与通用 eprom 编程器兼容。 at89c52 单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户 可从芯片上的型号和读取芯片内的签名字节获得该信息。 at89c52 的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对 整个芯片内的 perom 程序存储器写入一个非空字节,必须使用片擦除的方式将整个存储 器的内容清除。 at89c52 编程方法如下: 1 在地址线上加上要编程单元的地址信号。 2 在数据线上加上要写入的数据字节。 3 激活相应的控制信号。 4 在高电压编程方式时,将 ea/vpp 端加上+12v 编程电压。 5 每对 flash 存储阵列写入一个字节或每写入一个程序加密位,加上一个 ale/pr og 编程脉冲。每个字节写入周期是自身定时的,通常约为 1.5ms。重复 15 步骤,改 变编程单元的地址和写入的数据,直到全部文件编程结束。 数据查询 9 at89c52 单片机用 data palling 表示一个写周期结束为特征,在一个写周期中, 如需读取最后写入的一个字节,则 出的数据的最高位(p0.7)是原来写入字节最高位 的反码。写周期完成后,所输出的数据是有效的数据,即可进入下一个字节的写周期, 写周期开始后,data palling 可能随时有效。ready/busy:字节编程的进度可通过“rd y/bsy 输出信号监测,编程期间,ale 变为高电平“h”后,p3.4(rdy/bsy)端电平被 拉低,表示正在编程状态(忙状态) 。编程完成后,p3.4 变为高电平表示准备就绪状态 。程序校验:如果加密位 lb1、lb2 没有进行编程,则代码数据可通过地址和数据线 读回原编写的数据,加密位不可直接校验,加密位的校验可通过对存储器的校验和写入 状态来验证。 1.2 信号发生器的工作原理信号发生器的工作原理 信号发生器用来产生频率为 20hz200khz 的正弦信号(低频) 。除具有电压输出外, 有的还有功率输出。所以用途十分广泛,可用于测试或检修各种电子仪器设备中的低频 放大器的频率特性、增益、通频带,也可用作高频信号发生器的外调制信号源。另外, 在校准电子电压表时,它可提供交流信号电压。低频信号发生器的原理:系统包括主振 级、主振输出调节电位器、电压放大器、输出衰减器、功率放大器、阻抗变换器(输出 变压器)和指示电压表。 主振级产生低频正弦振荡信号,经电压放大器放大,达到电压输出幅度的要求,经 输出衰减器可直接输出电压,用主振输出调节电位器调节输出电压的大小。电源自适应 的方波发生器是一种不用电源的方波发生器,可供电子爱好者和实验室作简易信号源用。 电路是由六反相器 cd4096 组成的自适应方波发生器。当输入端输入小信号正弦波时,该 信号分两路传输,其一路径 c1、d1、d2、c2 回路,完成整流倍压功能,给 cd4096 提供 工作电源;另一路径电容 c3 耦合,进入 cd4096 的一个反相器的输入端,完成信号放大 功能(反相器在小信号工作时,可作放大器用) 。该放大信号经后级的门电路处理,变换 成方波后经 cd4096 的 12、8、10 脚输出。输出端的 r2 为可调电阻,以保证输出端信号 从 01.25v 可调。该方波发生器电路简单,制作容易,因此可利用该方波发生器电路, 作市电供电的 50hz 方波发生器。制作时,市电 220v 的正弦波,应经变压器隔离降压 (10.75v)处理后,输入到电路的输入端,以保安全。 1.3 信号发生器的分类信号发生器的分类 信号发生器主要包括低频信号发生器、高频信号发生器、微波扫频和程控信号发生 10 器、频率合成式信号发生器、函数发生器、脉冲信号发生器、随机信号发生器、噪声信 号发生器、伪随信号发生器,下面就部分信号发生器作简要介绍。 1.3.1 正弦信号发生器正弦信号发生器 正弦信号发生器主要用于测量电路和系统的频率特性、非线性失真、增益及灵敏度 等。按频率覆盖范围分为低频信号发生器、高频信号发生器和微波信号发生器;按输出 电平可调节范围和稳定度分为简易信号发生器(即信号源) 、标准信号发生器(输出功率 能准确地衰减到-100 分贝毫瓦以下)和功率信号发生器(输出功率达数十毫瓦以上) ; 按频率改变的方式分为调谐式信号发生器、扫频式信号发生器、程控式信号发生器和频 率合成式信号发生器等。 1.3.2 低频信号发生器低频信号发生器 包括音频(20020000 赫)和视频 (1 赫10 兆赫)范围的正弦波发生器。主振 级一般用 rc 式振荡器,也可用差频振荡器。为便于测试系统的频率特性,要求输出幅频 特性平和波形失真小。 1.3.3 频率合成式信号发生器频率合成式信号发生器 这种发生器的信号不是由振荡器直接产生,而是以高稳定度石英振荡器作为标准频 率源,利用频率合成技术形成所需之任意频率的信号,具有与标准频率源相同的频率准 确度和稳定度。输出信号频率通常可按十进位数字选择,最高能达 11 位数字的极高分辨 力。频率除用手动选择外还可程控和远控,也可进行步级式扫频,适用于自动测试系统。 直接式频率合成器由晶体振荡、加法、乘法、滤波和放大等电路组成,变换频率迅速但 电路复杂,最高输出频率只能达 1000 兆赫左右。用得较多的间接式频率合成器是利用标 准频率源通过锁相环控制电调谐振荡器(在环路中同时能实现倍频、分频和混频) ,使之 产生并输出各种所需频率的信号。这种合成器的最高频率可达 26.5 吉赫。高稳定度和高 分辨力的频率合成器,配上多种调制功能(调幅、调频和调相) ,加上放大、稳幅和衰减 等电路,便构成一种新型的高性能、可程控的合成式信号发生器,还可作为锁相式扫频 发生器。 1.3.4 函数发生器函数发生器 函数发生器又称波形发生器。它能产生某些特定的周期性时间函数波形(主要是正 弦波、方波、三角波、锯齿波和脉冲波等)信号。频率范围可从几毫赫甚至几微赫的超 低频直到几十兆赫。除供通信、仪表和自动控制系统测试用外,还广泛用于其他非电测 11 量领域。图 2 为产生上述波形的方法之一,将积分电路与某种带有回滞特性的阈值开关 电路(如施米特触发器)相连成环路,积分器能将方波积分成三角波。施米特电路又能 使三角波上升到某一阈值或下降到另一阈值时发生跃变而形成方波,频率除能随积分器 中的 rc 值的变化而改变外,还能用外加电压控制两个阈值而改变。将三角波另行加到由 很多不同偏置二极管组成的整形网络,形成许多不同斜度的折线段,便可形成正弦波。 另一种构成方式是用频率合成器产生正弦波,再对它多次放大、削波而形成方波,再将 方波积分成三角波和正、负斜率的锯齿波等。对这些函数发生器的频率都可电控、程控、 锁定和扫频,仪器除工作于连续波状态外,还能按键控、门控或触发等方式工作。 1.3.5 脉冲信号发生器脉冲信号发生器 产生宽度、幅度和重复频率可调的矩形脉冲的发生器,可用以测试线性系统的瞬态 响应,或用模拟信号来测试雷达、多路通信和其他脉冲数字系统的性能。脉冲发生器主 要由主控振荡器、延时级、脉冲形成级、输出级和衰减器等组成。主控振荡器通常为多 谐振荡器之类的电路,除能自激振荡外,主要按触发方式工作。通常在外加触发信号之 后首先输出一个前置触发脉冲,以便提前触发示波器等观测仪器,然后再经过一段可调 节的延迟时间才输出主信号脉冲,其宽度可以调节。有的能输出成对的主脉冲,有的能 分两路分别输出不同延迟的主脉冲。 1.3.6 噪声信号发生器噪声信号发生器 完全随机性信号是在工作频带内具有均匀频谱的白噪声。常用的白噪声发生器主要 有:工作于 1000 兆赫以下同轴线系统的饱和二极管式白噪声发生器;用于微波波导系统 的气体放电管式白噪声发生器;利用晶体二极管反向电流中噪声的固态噪声源(可工作 在 18 吉赫以下整个频段内)等。噪声发生器输出的强度必须已知,通常用其输出噪声功 率超过电阻热噪声的分贝数(称为超噪比)或用其噪声温度来表示。噪声信号发生器主 要用途是:在待测系统中引入一个随机信号,以模拟实际工作条件中的噪声而测定系 统的性能;外加一个已知噪声信号与系统内部噪声相比较以测定噪声系数;用随机 信号代替正弦或脉冲信号,以测试系统的动态特性。例如,用白噪声作为输入信号而测 出网络的输出信号与输入信号的互相关函数,便可得到这一网络的冲激响应函数。 伪随机信号发生器用白噪声信号进行相关函数测量时,若平均测量时间不够长,则 会出现统计性误差,这可用伪随机信号来解决。当二进制编码信号的脉冲宽度墹 t 足够 小,且一个码周期所含墹 t 数 n 很大时,则在低于 fb=1/墹 t 的频带内信号频谱的幅度 均匀,称为伪随机信号。只要所取的测量时间等于这种编码信号周期的整数倍,便不会 12 引入统计性误差。二进码信号还能提供相关测量中所需的时间延迟。伪随机编码信号发 生器由带有反馈环路的 n 级移位寄存器组成,所产生的码长为 n2-1。 1.4 信号发生器的应用信号发生器的应用 信号发生器又称信号源或振荡器。是最重要的测量仪器之一,在生产实践和科技领 域中有着广泛的应用。尤其是在电子工程、通信工程、自动控制、遥测控制、测量仪器、 仪表和计算机等技术领域,经常需要用到各种各样的信号波形发生器,而各种波形曲线 均可以用j角函数方程式来表示能够产生多种波形,如i角波、锯齿波、矩形波(含方波)、 正弦波的电路被称为函数信号发生器。它能满足测试系统的多种要求,成为了系统综合 测试中不可缺少的组成部分。早期的函数信号发生器集成电路。如 l8038,ba205,xr22072209,它们的功能少,精度不高,频率上限只有3000khz,无法 产生更高频率的信号,套接方式也不够灵活,频率和占空比不能独立调节,二者相互影 响。而目前广泛使用的是一些标准产品,虽然功能齐全,性能制表较高,但是价格较贵, 而且许多功能却用不上。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。 例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波, 把音频(低频) 、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、 农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等, 都需要功率或大或小、频率或高或低的振荡器。 1.5 研究内容研究内容 本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、锯齿 波、矩形波、正弦波的发生。根据设计的要求,对各种波形的频率和幅度进行程序的编 写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命 令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模 转换器和运算放大器处理后,从信号发生器的输出端口输出。 13 2 2 方案的设计与选择方案的设计与选择 2.1 方案的比较方案的比较 方案一:采用单片函数发生器(如 8038) ,8038 可同时产生正弦波、方波等,而且 方法简单易行,用 d/a 转换器的输出来改变调制电压,也可以实现数控调整频率,但产 生信号的频率稳定度不高。 方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(vco)的输出频率 锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复 杂。 方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波 形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此 外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。 鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺 点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来 实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都是 常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。 2.2 设计原理设计原理 数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换 成模拟信号的方法来获得所需要的波形。89c52 单片机本身就是一个完整的微型计算机, 具有组成微型计算机的各部分部件:中央处理器 cpu、随机存取存储器 ram、只读存储 器 rom、i/o 接口电路、定时器/计数器以及串行通讯接口等,只要将 89c52 再配置键 盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可 构成所需的波形发生器,其信号发生器构成原理框图如图 2.1 所示。 14 89c52 是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信 号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。当数字信号经过接口 电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。 2.3 设计思想设计思想 (1)利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅 度可变。 (2)将一个周期的信号分离成 256 个点(按 x 轴等分) ,每两点之间的时间间隔为 t,用单片机的定时器产生,其表示式为:t=t/256。 如果单片机的晶振为 12mhz,采用定时器方式 0,则定时器的初值为: x=213t/tmec (2.1) 定时时间常数为: tl =(8192t)/mod256 (2.2) th=(8192t)/256 (2.3) mod32 表示除 32 取余数 (3)正弦波的模拟信号是 d/a 转换器的模拟量输出,其计算公式为: y=(a/2sint)+a/2 (其中 a=vref) (2.4) t=nt (n=1256) (2.5) 那么对应着存放在计算机里的这一点的数据为: (2.6) (4)一个周期被分离成 256 个点,对应的四种波形的 256 个数据存放在以 tab1-tab 4 为起始地址的存储器中。 2.4 设计功能设计功能 (1)本方案利用 8155 扩展 8 个独立式按键,6 个 led 显示器。其中“s0”号键代表 方波输出, “s1”号键代表正弦波输出, “s2”号键代表三角波输出, “s3” 号键代表锯 齿波输出。 (sin1) 255 (255)/ 2 t diya 15 (2) “s4”号键为 10hz 的频率信号, “s5”号键为 100hz 的频率信号, “s6”号键为 500hz 的频率信号, “s7”号键为 1khz 的频率信号,6 个 led 显示器输出信号的频率值, 选用共阳极 led。 (3)利用两片 dac0832 实现幅度可调的信号源, (其中一片用来调节幅度,另外一 片用来实现信号源的输出) 。 (4)频率范围:101000hz。 (5)输出波形幅度为 05v。 16 3 3 硬件设计硬件设计 3.1 硬件原理框图硬件原理框图 硬件原理方框图如图 3.1 所示。 3.2 主控电路主控电路 at89c52 单处机内部设置两个 16 位可编程的定时器/计数器 t0 和 t1,它们具有计 数器方式和定时器方式两种工作方式及 4 种工作模式。在波形发生器中,将其作定时器 使用,用它来精确地确定波形的两个采样点输出之间的延迟时间。模式 1 采用的是 16 位 计数器,当 t0 或 t1 被允许计数后,从初值开始加计数,最高位产生溢出时向 cpu 请 求中断。 中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器 cpu 正在处理某件事的时候外界发生了紧急事件,要求 cpu 暂停当前的工作,转而去处理这 个紧急事件。在波形发生器中,只用到片内定时器计数器溢出时产生的中断请求,即 是在 at89c52 输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前, at89c51 等待,直到定时器计时结束,产生中断请求,at89c52 响应中断,接着输出下 一个采样点信号,如此循环产生所需要的信号波形6。 如图 3.2 所示,at89c52 从 p0 口接收来自键盘的信号,并通过 p2 口输出一些控制 信号,将其输入到 8155 的信号控制端,用于控制其信号的输入、输出。如果有键按下, 则在读控制端会产生一个读信号,使单片机读入信号。如果有信号输出,则在写控制端 产生一个写信号,并将所要输出的信号通过 8155 的 pb 口输出,并在数码管上显示出来 。 17 图 3.2 主控电路图 3.3 数数/模转换电路模转换电路 由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模 拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有 8 位分辨率的数模转 换器 dac0832。dac0832 主要由 8 位输入寄存器、8 位 dac 寄存器、8 位 d/a 转换器 以及输入控制电路四部分组成。但实际上,dac0832 输出的电量也不是真正能连续可调, 而是以其绝对分辨率为单位增减,是准模拟量的输出。dac0832 是电流型输出,在应用 时外接运放使之成为电压型输出。 由图 3.3 可知,dac0832 的片选地址为 7fffh,当 p25 有效时,若 p0 口向其送的 数据为 00h, 则 u1 的输出电压为 0v;若 p0 口向其送的数据为 0ffh 时, 则 u1 的输 出电压为-5v. 故当 u1 输出电压为 0v 时,由公式 得:vout = - 5v. 当输出电压为- 5v 时,可得:vout = +5v,所以输出波形的电压变化范围为- 5v+ 5v. 故可推得,当 p0 所送数据为 80h 时,vout为 0v4。 图 3.3 数模转换电路 123 0 123 uuu rrr 18 3.4 按键接口电路按键接口电路 图 3.4 为键盘接口电路的原理图,图中键盘和 8155 的 pa 口相连,at89c51 的 p0 口和 8155 的 d0 口相连,at89c51 不断的扫描键盘,看是否有键按下,如有,则根据相 应按键作出反应。其中“s0”号键代表方波输出, “s1”号键代表正弦波输出, “s2”号 键代表三角波输出。 “s3”号键代表锯齿波输出, “s4”号键为 10hz 的频率信号, “s5”号键为 100hz 的频率信号, “s6”号键为 500hz 的频率信号, “s7”号键为 1khz 的频率信号3。 图 3.4 按键接口 3.5 时钟电路时钟电路 8052 单片机有两个引脚(xtal1,xtal2)用于外接石英晶体和微调电容,从而 构成时钟电路,其电路图如图 3.5 所示。 电容 c1、c2 对振荡频率有稳定作用,其容量的选择为 30pf,振荡器选择频率为 12mhz 的石英晶体。由于频率较大时,三角波、正弦波、锯齿波中每一点的延时时间为 几微秒,故延时时间还要加上指令时间才能获得较大的频率波形9。 图 3.5 时钟电路 19 3.6 显示电路显示电路 显示电路是用来显示波形信号的频率,使得整个系统更加合理,从经济的角度出发, 所以显示器件采用 led 数码管显示器。而且 led 数码管是采用共阳极接法,当主控端 口输出一个低电平后,与其相对应的数码管即变亮,显示所需数据。其器件模型如图 3.6 所示。 图 3.6 led 显示电路 20 4 4 软件设计软件设计 4.1 程序流程图程序流程图 本文中子程序的调用是通过按键的选择来 实现,在取得按键相应的键值后,启动计时器 和相应的中断服务程序,再直接查询程序中预先 设置的数据值,通过转换输出相应的电压,从 而形成所需的各种波形。主程序的流程图如图 4.1 所示 21 图 4.1 主程序的流程图 在程序开始运行之后,首先是对 8155 进行初始化,之后判断信号频率值,如符合所 需的频率,则重置时间常数,并通过显示器显示出来,不符则返回。在中断结束后,还 要来判断波形是否符合,如符合,则显示其频率,不符则返回,重新判断。 图 4.1.2 为各波形子程序的流程图。如图所示,在中断服务子程序开始后,通过判断来 确定各种波形的输出,当判断选择的不是方波后,则转向对正弦波的判断,如此反复。 如果选择的是方波,则用查表的方法求出相应的数据,并通过 d/a 转换器将数据转换成 模拟信号,形成所需波形信号。 22 图 4.1.2 子 4.2 源程序的调试源程序的调试 源程序: org 0000h ajm main org 000bh ljmp tc0 org 0030h main:mov dptr,#9fffh 指向 dac0832(1) mov a,70h movx dptr,a dac0832(1)输出 mov dptr,#7f00h 指向 8155 命令字端口地址 mov a,#06h 设置 a 口为输入,b 口、c 口为输出 movx dptr,a 送命令字 mov dptr,#7f01h 指向 a 口地址 23 movx a,dptr 读入 a 口的开关数据 jnb acc.4,k10h 判断是否“4”号键,若是则转输出 10hz 信号 jnb acc.5,k100h 判断是否“5”号键,若是则转输出 100hz 信号 jnb acc.6,k500h 判断是否“6”号键,若是则转输出 500h

温馨提示

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

评论

0/150

提交评论