《基于51单片机的波形发生器设计_本科毕业设计(论文)(134页).doc》由会员分享,可在线阅读,更多相关《基于51单片机的波形发生器设计_本科毕业设计(论文)(134页).doc(139页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于51单片机的波形发生器设计_本科毕业设计(论文)-第 23 页本科毕业设计论文基于51单片机的波形发生器设计摘 要波形发生器作为信号源广泛应用于电子工业、自动控制和科学试验等领域。目前国内市场上波形发生器种类匮乏,价格昂贵。为了实验、研究以及工业需要,研制一种功能齐全、使用方便的波形发生器十分重要。本文介绍了两种基于89C51单片机和数模转换器DAC0832产生所需波形的波形发生器设计方案,两种方案各有特色,可以满足不同领域对波形发生器的需求。其中,程控波形发生器设计方案运用单片机执行程序产生波形数据,再由单片机通过定时器定时控制将波形数据送给DAC转换输出波形,本方案扩展有LED显示模
2、块和键盘模块,具有良好的人机交互性。硬件波形发生器设计中,单片机执行程序产生波形数据或从上位机接受波形数据写入外部RAM中,然后由外部电路控制从RAM中取出波形数据送于DAC转换输出波形,本方案可以产生高频波,且具有良好的可升级性。本次设计的两种方案均能产生频率、幅值可调的正弦波、三角波、锯齿波和方波四种波形。本次设计运用Keil c软件采用C语言进行软件设计,使用仿真软件Proteus进行系统功能校验,并使用Protel软件制作印刷电路板(PCB)。本次设计的两种波形发生器具有精度高、误差小、功耗低、数据传输速度快、可靠性高等特点,且具有良好的经济性,具有一定的开发价值。关键词:波形发生器,
3、单片机,DAC0832,程控波形发生器设计,硬件波形发生器设计THE DESIGN OF WAVEFORM GENERATOR BASED ON 51 MCUABSTRACTWaveform generators are widely used in the electronics industry, automatic control and scientific experiments and other fields. Currently, waveform generators, in domestic market, are very limit. So the developmen
4、t of a waveform generator which is fully functional and easy to use is very important for experimental, research, and industrial needs.This article describes two schemes of the design of waveform generator (WG) based on 51 MCU and DAC 0832 chip. And the two schemes have their own advantages to meet
5、different areas need. Among them, in the scheme of programmable WG design, we use the MCU to generate waveform data, and then use the timer timing to control DAC converter which translate the waveform data into the output waveform. This scheme expanded with LED display module and keyboard module, wh
6、ich has a good human-machine interaction. In hardware WG design scheme, we use the MCU to generate waveform data or accept the data from PC, and then transfer this data to external RAM. Specially, we use an external circuit to control the DAC conversion. This design can generate high-frequency waves
7、, and it also has good scalability. Whats more, these two schemes can produce four kinds of waveforms (sine, triangle, sawtooth and square wave); their frequency and amplitude can adjust by users need.In this design,we use the Keil c software for software design in C language. And then we use the si
8、mulation software Proteus to check system functions, Finally, we use Protel software to produce printed circuit boards (PCB).This design of the two kinds of waveform generator has good precision, low power consumption, high data transmission speed, great reliability, and good economy value. To a cer
9、tain extent, it is worthy of being further developed.KEY WORDS:waveform generators, MCU, DAC0832, programmable WG design, hardware WG design目录前言1第1章 绪论21.1 选题背景21.2 波形发生器的发展状况21.3 选题意义31.4 本文研究的主要内容41.5 章节安排4第2章 波形发生器系统方案设计及选择52.1 总体方案选择52.2 子系统模块方案选择72.2.1 控制器的选择72.2.2 调频方案设计72.2.3 调幅方案设计102.2.4 按键
10、方案设计102.2.5 显示模块方案设计112.2.6 D/A转换器的选择112.2.7 静态RAM的选择122.3 系统总体框图132.3.1 程控波形发生器系统框图132.3.2 硬件波形发生器设计框图132.4 系统可行性分析14第3章 主要芯片及设计软件介绍153.1 主要芯片介绍153.1.1 89C51单片机153.1.2 数模转换器DAC0832213.1.3 可编程并行接口电路8255A233.1.4 定时器555253.1.5 计数器74161263.2 设计软件介绍273.2.1 仿真软件Proteus273.2.2 编程软件Keil C51283.2.3 EDA软件Pro
11、tel28第4章 硬件实现及模块设计电路294.1 程控波形发生器设计硬件电路294.1.1 单片机最小系统及I/O扩展模块294.1.2 波形产生及调幅模块304.1.3 LED显示模块314.1.4 按键模块324.2 硬件波形发生器设计334.2.1 单片机最小系统及I/O扩展模块334.2.2 波形产生及调幅模块344.2.3 调频模块354.2.4 SRAM模块364.2.5 按键模块374.2.6 串行通信和供电模块38第5章 系统软件设计395.1 系统软件编程语言方案设计395.2 程控波形发生器软件设计405.2.1 主程序405.2.2 按键子程序405.2.3 显示子程序
12、415.2.4 波形子程序425.2.5 定时器中断子程序435.3 硬件波形发生器软件设计455.3.1 主程序455.3.2 波形子程序465.3.3 数模转换子程序48第6章 PCB设计与系统调试496.1 PCB设计496.2 系统调试506.2.1 程控波形发生器仿真结果506.2.2 硬件波形发生器仿真结果546.3 系统误差测试及分析586.4 系统功能实现情况596.5 经济分析报告61结论62参考文献63致谢65附录 A66附录 B67附录 C68附录 D85附录 E95附录 E95附录 E97附录 F98符号说明Hz赫兹,频率单位KHz千赫,1千赫(KHz)= 1103赫兹
13、(Hz)MHz兆赫,1兆赫(MHz)= 1103千赫(KHz)GHz吉赫,1吉赫(GHz)= 1103兆赫(MHz)V伏特,电压单位欧姆,电阻单位K千欧, 1千欧(K)= 1103欧姆()F法拉,电容单位F 微法,1法拉(F)= 1106微法(F)pF皮法,1微法(F)= 1106皮法(pF)s秒,时间单位ms毫秒,1秒(s)= 1103毫秒(ms)s微秒,1毫秒(ms)= 1103毫秒(s)R/RESResistance,电阻C/CAPCapacitance,电容SW拨码开关RV滑动变阻器Crystal石英晶振ROMRead only memory,只读存储器RAMRandom access
14、 memory,随机存储器SRAMStatic RAM,静态随机存储器CPUCentral Processing Unit,中央处理器D/ADigital/Analog,数/模转换DACDigital/Analog Converter,数模转换器前言波形发生器作为信号源广泛应用于电子工业、自动控制和科学试验等领域。雷达、通信、宇航、遥控遥测技术和电子系统等领域都随处可见波形发生器的应用。从上世纪20年代起,世界上对于波形发生器的研究与改进从未间断过,到现今已经研制出了用于不同频域的各种高性能的波形发生器。但是我国对波形发生器的研究起步较晚,国内市场上波形发生器种类匮乏,价格昂贵,且多用于航天军
15、事等领域。在这种情况下,在实际工业应用中往往需要设计人员自行设计出所需的波形发生器,带来不必要的工程开销。所以说研制一种功能齐全、使用方便的波形发生器十分重要。本文介绍了两种基于89C51单片机和数模转换器DAC0832产生所需波形的波形发生器设计方案,两种方案各有千秋,可以满足不同领域对波形发生器的需求。其中,程控波形发生器设计方案运用单片机执行程序产生波形数据,再由单片机通过定时器定时控制将波形数据送给DAC转换输出波形,由于软件的限制产生波形的上限频率受到限制无法在本方案内寻求突破方法。本方案扩展有LED显示模块和键盘模块,且可以实现频率和幅值的连续可调,具有良好的人机交互性,因此在低频
16、需求的教学实验领域具有很好的应用前景。硬件波形发生器设计中,单片机执行程序产生波形数据或从上位机接受波形数据写入外部RAM中,然后由外部电路控制从RAM中取出波形数据送于DAC转换输出波形,本方案虽然无法像程控方案那样方便的调节波形信息,但是可以产生高频波,且具有良好的可升级性,可以用于对高频信号需求的领域。本次设计运用Keil c软件采用C语言进行软件设计,使用仿真软件Proteus进行系统功能校验,并使用Protel软件制作印刷电路板(PCB)。本文着重介绍了在设计过程中的方案选择以及两种硬件和软件电路的设计,也对设计所使用的芯片及功能进行简要介绍,并对设计结果进行误差和经济性分析说明系统
17、的可行性。另外在文章中,还分散对两种设计方案的原理、特点、实现方式、性能比对和应用领域进行说明。以便于读者能够通过本篇文章对本次设计全面理解。第1章 绪论1.1 选题背景波形发生器又名信号源,广泛应用于电子电路、自动控制和科学试验等领域。雷达、通信、宇航、遥控遥测技术和电子系统等领域都随处可见波形发生器的应用。如今作为电子系统“心脏”的信号源的性能很大程度上决定了电子设备和系统的性能的提高。因此随着电子技术的不断发展,现今对信号源的频率稳定度、频谱纯度和频率范围以及信号波形的形状提出越来越高的挑战。1.2 波形发生器的发展状况早在上世纪20年代就出现了作为测量仪器的波形发生器1。随着电子技术的
18、发展,波形发生器实现了从定性分析的测试仪器到用于测试接收机的标准波形发生器的转变。早期的波形发生器的机构复杂,功率较大,因此发展缓慢。伴随着晶体管的问世所带来的电子领域的巨大变革,于1964年研制出了第一台全晶体管的波形发生器。自60年代以来波形发生器有了迅速的发展,这个时期的波形发生器运用模拟电子技术,由分立元件和模拟集成电路构成。这种波形发生器电路尺寸大,价格贵,功耗高,结构复杂,功能单一,且由于模拟器件存在漂移输出波形的幅度稳定性差。所以模拟技术的波形发生器的发展在后期也受到了一定的制约。70年代随着微处理器的出现,波形发生器的设计开始往数字电子技术方面进军。这时的波形发生器主要运用软硬
19、件结合的方法从而可以实现更加复杂的功能。但是由于这时期的设计主要采用软件去实现程控波形的功能,所以也就带来了一些问题,即由于CPU工作频率的制约使得设计产品只能输出低频波形。当时专用于信号处理的微处理器时钟频率只有1-2MHz,A/D和D/A一般为8位,且内部存储容量也很小。所以实际上能够产生波形的有效频宽不会超过1MHz,再去考虑波形的平滑度和失真度,重复频宽不会超过10KHz。80年代后期才真正克服软件的问题出现了几种高性能的函数发生器。其中最具代表性的是HP公司推出的HP70S信号模拟装置系统,它由HP8770A任意波形数字化和HP1776A波形发生软件组成。传统的波形发生器产生的波形比
20、较单一,如正弦波、方波、脉冲波、三角波等。随着科学实验研究的需求的不断发展,对波形种类的需求也呈现出多样化的趋势。如电子设备的性能指针测试中就需要能提供一些非常规的测试信号的信号源,即能产生现场所需要波形的任意波形发生器(Arbitrary Waveform Generator, AWG)。 早期的任意波形发生器主要着重音频等低频频段,现在的任意波形发生器已扩展到射频频段,目前任意波形发生器的带宽可以达到2GHz,足够仿真许多移动通信、卫星电视的复杂信号。任意波形发生器的典型代表为Lecroy公司生产的的9100任意波形发生器2。现今市场上技术比较成熟的波形发生器产品有:安捷伦公司生产的332
21、50A函数任意波形发生器,其输出频率宽度范围为1Hz-80MHz,可应用于各供不同频段的设计。该公司生产的8648D射频信号发生器大量应用于超高频的工业设计领域,频率宽度范围高达9KHz-4GHz3。1.3 选题意义虽然我国对于波形发生器的研制起步较晚,但是通过几年的努力也取得了一些可喜的成果。国产SG1060数字合成信号发生器可以双通道同时输出高分辨率、高精度、高可靠性的各种波形,其频率覆盖范围为1Hz-60MHz。国产S1000数字合成扫频信号发生器的频率范围为1MHz-1024MHz,可应用于超高频领域。但是总的来说,这些设计产品价格昂贵主要应用于航空、军事等高端领域,在日常民用方面并没
22、有形成自己真正的产业。目前国内成熟的产品多位一些PC仪器插卡,独立仪器少之又少。并且我国现今的任意波形发生器的种类和性能与国外相比仍有很大差距,因此对此内产品的研究设计仍具有重要意义。1.4 本文研究的主要内容本次设计的任务是运用新一代高性能数字芯片设计一种使用方便,性能良好的独立式波形发生器。该波形发生器系统采用51单片机进行控制,DAC0832芯片进行D/A转换。本次设计所实现的基本功能如下:(1) 能够产生正弦波、三角波、锯齿波和方波四种波形。(2) 扩展有键盘模块用于对对波形类型、频率和峰峰值进行设定。(3) 扩展有显示输出模块显示当前输出波形的类型、频率和峰值信息。本篇论文主要讨论的
23、是波形发生器设计的方案选择,系统硬件电路设计问题,单片机软件和生成常用波形软件编写问题,以及对本次设计中的主要芯片的介绍。另外,本文还分散的对本次设计所采用的两种设计方案(程控波形发生器设计和基于硬件的波形发生器设计)的特点进行比较说明,并对两种设计的应用前景进行阐述。1.5 章节安排本文对基于单片机的波形发生器设计进行了详细的说明,共分六章。第一章主要介绍了课题的研究背景、发展、意义,设计的整体内容以及任务安排。第二章对设计前的系统方案以及各模块的实现方案进行比对和选择,从而确定出最终的两种设计方案,即程控波形发生器设计方案和硬件波形发生器设计方案。第三章对本次设计所使用的主要芯片如89C5
24、1单片机、8255A3、DAC0832等进行了介绍,并且对这些芯片在系统设计运用的功能给予简要说明,在本章最后对系统设计所使用的开发软件予以介绍。第四章对系统两种设计方案的硬件电路各模块的设计及工作方法分别进行详细介绍。第五章对两种设计方案的各程序模块的设计及流程图分别予以详细的说明。第六章主要分为4个部分,首先对PCB设计进行了简要说明,然后对系统仿真结果及误差进行分析,接着对系统实现的功能及不足进行综合说明,组后对系统的可行性进行分析说明。在文章的最后还附录了软件程序、硬件电路图和PCB图。第2章 波形发生器系统方案设计及选择2.1 总体方案选择波形发生器的设计可以通过多种方案来实现,在设
25、计之前需要对各种设计方案进行比较和选择:方案一:采用分立元件构成非稳态的多谐振荡器,然后根据所需波形的要求加入积分电路等构成波形发生器,如图2-1所示。U0输出为正弦波、U1输出为方波、U2输出为三角波,三种波形输出频率相同。通过调节第一级运放的RC参数,可以改变频率。图2-1 采用分立元件构成的简易波形发生器方案二:采用单片机控制的单片函数发生器(如8038芯片)来进行波形发生器的设计。8038可以同时产生方波、三角波和正弦波专用集成电路4。方案三:利用专用直接数字合成DDS芯片去实现波形发生器的设计。例如专门用于波形发生器的集成微处理器8XC196MC/MD单片机可以直接产生高频率的各种常
26、用信号波形5。方案四:对51单片机进行编程,在单片机ROM中写入各种波形子程序,使其根据按键设定产生相应的波形数据,波形数据送入D/A转换芯片DAC0832从而输出相应的波形。我将此种方法称作“程控波形发生器设计”6。方案五:对51单片机进行编程,在生成波形之前单片机将各波形的离散数据写入SRAM中,随后由外部时钟控制SRAM将波形数据输送给D/A转换器从而生成波形。我将此种方法称作“硬件波形发生器设计” 7。对以上五个方案进行比较,可以得出如下结论:方案一由于采用分立元件,模拟信号容易受到干扰难以保证高的精度(如放大器有饱和失真、截止失真、交越失真,集成电路难免有零点漂移),且结构复杂,设备
27、体积较大,不便于波形参数的调节。方案二简单易行,但是8038产生的波形容易寄生高次谐波分量,且频率的稳定性差。方案三虽然集成度高,生成的波形质量高,但是硬件成本较高。方案四和方案五基于51单片机设计软硬件结合,硬件成本低,软件起点低,优化型相对比较好,设计时间短,成本低,可靠性高,且满足设计要求。方案四“程控波形发生器设计”8是运用软件编写波形子程序,并通过单片机将数据向D/A转换器的传输。这种方案如1.2节所说只能产生不高于10KHz的波形,因此只可用于低频波形发生器的设计。但是此种方案所生成的波形完全由程序实现,所以峰峰值和频率在一定范围内连续可调,而且可以添加键盘和显示功能模块来提高人机
28、交互性,这使得此种方案设计更接近于一个完整的系统。基于这些考虑,此种设计产品仍有很大的应用前途,例如,用于实验教学的信号源或低频段的工业设计。方案五“硬件波形发生器设计”9首先它运用单片机将波形数据写入SRAM中,然后由外部时钟源控制SRAM向D/A转换器输送数据进行转换。这种方案生在单片机写入波形数据到SRAM后就解放了工作任务,剩下的波形输出任务完全由外部时钟源控制,所以输出波的频率由外部时钟决定。因此只要外部时钟源允许就可以生成任意频率的波形。但是这也就带来了一个问题:如果要求对波的频率进行调节就需要更换外部时钟源。由于这个问题也就造成了此种方案无法像方案四中那样实现频率的连续可调。但是
29、考虑到在实际的工业设计中所需的波形频率是有限的,针对特定的系统我们可以通过分频得到多个频率来满足系统的要求。并且本方案中单片机在后期处于闲置状态,这时单片机作为控制器可以去完成更多的功能,如时钟显示功能,可见此种方案具有很好的可扩展性。基于这些考虑,本方案的设计适于作为一个大系统中的波形发生器子系统,如雷达系统的波形发生器。综上所述,本次设计采用方案四和方案五进行两种不同应用领域的波形发生器设计。两种设计方案的具体实施在下文中将会分别予以介绍。2.2 子系统模块方案选择本节对本次设计中起主要作用的控制器、调频模块、调幅模块、按键模块、显示模块、D/A转换器和SRAM的设计方案和选型方法进行了具
30、体的阐述。下面分别予以介绍。2.2.1 控制器的选择本次设计中提供了三种控制器方案,具体阐述如下:方案一:选用89C51单片机作为控制器。方案二:选用FPGA、CPLD等可编程器件组合构成控制模块10。方案三:选用专用于波形发生器的集成微处理器8XC196MC/MD作为控制器。对以上方案综合比对,可以得出如下结论:方案二中的FPGA可以实现各种复杂的逻辑功能,且具有密度高、速度快、稳定性好等优点。但是FPGA在掉电后会丢失当前数据,需要增加额外的程序开销。并且FPGA具有数字逻辑器件所共有的问题竞争和冒险,所以设计时必须考虑抗干扰性。另外FPGA相对于单片机的编程起点较高,增加编程的难度。方案
31、三中的专用处理器生成的波形频段宽,稳定性好,精度高,执行速度快,且编程简单,不需要外围硬件电路,但是芯片价格昂贵。方案一中51单片机使用灵活,软件起点低,功耗低,价格低廉,但是必须配合一定的外围硬件电路才能实现波形发生器的功能(其实外围电路并不复杂)。从电路结构复杂程度和成本角度及综合性价比考虑,确定选择方案一。2.2.2 调频方案设计本次设计提供了两种调频方案的构思,具体阐述如下:方案一:通过硬件电路控制离散波形数据的输出速度从而实现频率的改变。将外部时钟信号经过不同的分频作为储存离散波形数据的SRAM的输出译码地址,使SRAM按照一定的时间间隔输出波形数据给DAC进行转换。通过外部时钟分频
32、器的设置来选择波形的频率档位。(具体方法参见第四章4.2.3节)方案二:通过对单片机的定时器(具体参见第三章3.1.1节第3部分)的编程来实现调频。将一个周期的波形数据离散成256个采样点数据(具体方法见第五章5.2.5节),然后令微处理器的累加器A自身循环增加,没增加一次即向DAC送出一个波形采样数据,并启用一次定时器延时。当8位累加器A的内容达到最大的计数值255时在自增一次就变成最小值零,然后可以继续增加。如此,周而复始就可以从DAC得到要求的波形输出。当然通过对定时器初值的设定可以改变波形的频率。例如,单片机的晶振频率fOSC=12MHz,定时器采用方式1,若产生周期为T的波形,定时器
33、初值的计算方法如下:单片机机械周期Tmec为: (2-1)定时器初值TC为: (2-2)定时器初值高位TCH为: (2-3)定时器初值低位TCL为: (2-4)当要获得1Hz的波形时,按照上述方法可以算出:TC=61630, TCH=240, TCL=190但是此种方案最大计数值为65536,最小计数值为1,所以决定了此种方法所能得到的波形的上限频率fMAX为: (2-5)下限频率fMIN为: (2-6)需要说明的是以上上限下限频率是对于将一周期波形离散成256个数据点的正弦波和锯齿波而言的。对于三角波本次设计是将一个周期的波形离散成512个波形数据,所以能得到的波形的上限频率fMAX为: (
34、2-7)下限频率fMIN为: (2-8)对于方波本次设计是将一个周期的波形离散成2个波形数据(0和255),所以能得到的波形的上限频率fMAX为: (2-9)下限频率fMIN为: (2-10)可见方波输出的下限频率过高,所以进行方波的低频输出时需要进行特别的程序处理,具体参见第五章5.2.5节方波子程序部分。对以上方案综合比对,可以得出如下结论:方案一主要是靠硬件实现调频,无上限频率和下限频率的限制,且频率的误差度可以忽略不计,但是频率的选择只可是外部时钟源的整倍数分频(如2分频、4分频等),不可实现频率的连续可调。方案二是靠软件来实现调频,综合可以看出此种方案的有效频段为0.06Hz到195
35、3Hz,在此范围内输出波形频率连续可调。但是由于输出高频时受到软件执行(例如对定时器的重新赋值指令需要占用4个机械周期,一周期波形需要进行256次再赋值操作,所以一个周期也就引入了的误差)的影响,在高于1KHz时得到波形频率与期望频率误差较大,且得出低于0.1Hz波形的意义不大,故设定有效调频范围为0.1Hz1KHz。如2.1节所述,硬件波形发生器设计选择方案一,程控波形发生器设计选择方案二。2.2.3 调幅方案设计在此之前,首先需要说明DAC0832的输出电压的计算方法: (2-11)其中Vref为DAC0832的基准电压,N为单片机送给DAC0832的8位数字量。方案一:将DAC0832的
36、RFB引脚接一个滑动变阻器来改变DAC0832的基准电压Vref,从而通过改变基准电压Vref来改变DAC0832的输出电压Vo,即实现波形幅度的改变。方案二:为了将DAC0832输出的电流信号转化为电压信号,需要在DAC的电流输出接运放。在运放的电压输出端加滑动变阻器可以实现输出波形幅值的调节。方案三:采用两片DAC0832串接在一起,即第一片DAC的电压输出接第二片DAC的基准电压Vref引脚。单片机通过程序改变送给第一片DAC0832的数字量来改变其输出电压,即第二片DAC的参考电压Vref,从而改变幅值。方案一和方案二相比,方案二在改变输出电压的过程中,实际的电压与预期的电压会有一个纹
37、波的差别,所以方案一更好。方案一与方案三相比,虽然方案三增加了额外的硬件和软件的开销,但是可以通过按键对程序参数进行设定来改变输出幅值,不需要对硬件滑动变阻器进行手动调节,具有优越的人机交互性。综合考虑而言,硬件波形发生器设计选择方案一,程控波形发生器设计选择方案三。2.2.4 按键方案设计方案一:采用独立按键。方案二:采用矩阵键盘。方案一按键的数目少,结构简单,编程容易,执行效率高。方案二可以节省单片机的I/O口资源,但是其编程方法(行扫描法和反转扫描法)难度较大。由于我们需求的按键数目较少,功能比较简单且对执行效率的要求较高,所以采用独立按键。2.2.5 显示模块方案设计方案一:采用LED
38、七段数码管对波形类型、频率和幅度进行显示。方案二:采用LCD1602液晶显示相关信息。方案三:采用LCD1286液晶图文显示相关信息。方案一占用较多的I/O口资源,需要添加额外的I/O扩展电路和译码电路,但是此方案硬件价格低廉,编程起点低。方案二运用液晶显示可以显示点阵字母和数字信息,速度快,功耗低,体积小,但是硬件价格较贵,且编程相对于LED较难。方案三的液晶可以显示汉字和图形,这些功能在本次设计中用不到。综合考虑,程控波形发生器设计并不需要显示复杂的信息,所以选择方案一。硬件波形发生器设计不准备加入显示模块,主要是因为此种方案适用于生成特定波形的系统中,使用人员并不需要经常对波形的频率和幅
39、值进行更改,所以显示模块在此种方案中显得冗余。2.2.6 D/A转换器的选择D/A转换器的转换时间是指模数转换器完成一个转换所需的时间,是D/A转换器的一个重要参数。在本次设计中DAC的转换时间直接影响到输出波形的上限频率。按转换速度去划分现有的DAC可以分为低速(建立时间大于100)、中速(建立时间1100)、高速(建立时间0.150ns)和超高速(建立时间小于50ns)四种。因此本次设计最初对D/A转换器的选择提供了如下两种方案:方案一:采用8位高速D/A转换器(如DAC908,TLC7524)进行设计。方案二:采用常用的8位D/A转换器DAC0832进行设计。方案一转换器的转换上限频率f
40、MAX至少为: (2-12)方案二中选用的DAC0832为中速转换器,其转换速度为1us,所以其转换的上限频率fMAX为: (2-13)可见使用DAC0832产生的波形由于硬件的限值上限频率只有4KHz左右。但是在随后使用的仿真软件Proteus的元件库所提供的D/A转换器只有DAC0832这类中速转换器,所以在后面的仿真介绍中我们选用DAC0832芯片作为系统的转换器去仿真低频波形,而在制作PCB板时我们选用转换速度更高的DAC908芯片作为转换器以满足高频要求。2.2.7 静态RAM的选择根据前文的介绍可知在硬件波形发生器设计中需要用到SRAM去存储离散的波形数据。以下是对SRAM进行选择
41、的两种方案:方案一:采用普通的6116型号的SRAM。方案二:采用双端口RAM(如IDT7132芯片)。由于此次设计是将波形离散成256个波形数据,所以对RAM容量的要求大于256B即可。硬件波形发生器设计的设计中首先需要单片机将数据写入RAM中,然后需要RAM将数据发送给DAC进行转换,这就意味着RAM即要从单片机接受数据又要输出数据给DAC。基于这种考虑首先想到的是使用双口RAM IDT7132解决这一问题,因为7132芯片有两组数据端口可以分别用于输入和输出。但是考虑到IDT7132芯片的价格昂贵,且Proteus仿真软件也没有提供此类软件,所以我选择用普通的6116RAM解决问题。由于
42、设计时RAM的输入和输出不是同步进行的,可以运用锁存器去控制不同执行阶段数据的传输方向,具体方法请参见第四章4.2.4节。2.3 系统总体框图如前文所述,本次设计采用两种设计方案以满足两种不同领域的波形发生器设计。以下分别对这两种设计的系统框图予以介绍。2.3.1 程控波形发生器系统框图本系统由单片机最小系统(由51单片机、晶振电路和复位电路组成),键盘电路,LED显示模块,两片DAC0832构成的调幅模块和电源供电模块以及用于扩展I/O口的8255A芯片组成。图2-2 程控波形发生器系统框图在使用过程中用户首先通过键盘输入波形的类型、频率和幅值,单片机通过按键输入动作计算频率和幅值,然后执行
43、程序驱动LED显示器显示当前波形的类型、频率和幅值信息,同时产生波形数据送于D/A转换器并通过放大器输出波形。2.3.2 硬件波形发生器设计框图本系统由单片机最小系统,键盘电路,数模转换模块,串行通信模块,USB供电模块,由外部时钟和分频电路组成的调频模块以及8255A芯片,SRAM芯片组成。图2-2 硬件波形发生器系统框图在使用过程中,用户先通过键盘设定要输出波形的类型和分频选择。随后在系统运行初期51单片机将波形数据通过8255A写入SRAM中,然后将外部时钟经设定的分频电路的信号作为SRAM的地址信息从SRAM中读取数据送入数模转换模块生成波形。同时系统中扩展了RS232串行通信模块用于
44、与上位机通信,可以从上位机获取波形数据。2.4 系统可行性分析系统地电源部分我们选用7805、7815、7915三个三端集成稳压器得到+5V、+15V、15V的电压,然后再将这三个集成稳压器输出的电压值供给整个系统;通过DAC0832或DAC908进行数模转换;集成运放OP05进行电压放大;运用8255A芯片进行I/O扩展;拨码开关组成按键系统;程控波形发生器设计的显示模块还用到一片74LS138、两篇7404反相器和8组LED;硬件波形发生器设计额外用到一片SRAM6116,两片74LS373锁存器,一片555作外部时钟源,三片74161作分频译码电路,一个MAX232和一个9针插口组成串行
45、通信模块。以上这些器件在市场上都很普及,价格低廉,容易获得,因此器件的选择经济可行。第3章 主要芯片及设计软件介绍3.1 主要芯片介绍为了便于对下章硬件电路进行说明,本节将对设计中起主要作用的一些芯片进行介绍,如89C5111、8255A12、DAC083213、DAC908、55514、74161。3.1.1 89C51单片机STC89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中, 89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1. 主要特性l 与MCS-51 兼容l 4K字节可编程闪烁存储器l 寿命:1000写/擦循环l 数据保留时间:10年l 全静态工作:0Hz-24MHzl 三级程序存储器锁定l 1288位内部RAMl 32可编程I/O线l 两个16位定时器/计数器l 5个中断源l 可编程串行通道l 低功耗的闲置和掉电模式l 片内振荡器和时钟电