基于51单片机的波形发生器设计本科毕业设计(论文)

上传人:痛*** 文档编号:149090717 上传时间:2022-09-06 格式:DOC 页数:180 大小:4.51MB
收藏 版权申诉 举报 下载
基于51单片机的波形发生器设计本科毕业设计(论文)_第1页
第1页 / 共180页
基于51单片机的波形发生器设计本科毕业设计(论文)_第2页
第2页 / 共180页
基于51单片机的波形发生器设计本科毕业设计(论文)_第3页
第3页 / 共180页
资源描述:

《基于51单片机的波形发生器设计本科毕业设计(论文)》由会员分享,可在线阅读,更多相关《基于51单片机的波形发生器设计本科毕业设计(论文)(180页珍藏版)》请在装配图网上搜索。

1、河南科技大学本科毕业设计(论文)本科毕业设计论文基于51单片机的波形发生器设计摘 要波形发生器作为信号源广泛应用于电子工业、自动控制和科学试验等领域。目前国内市场上波形发生器种类匮乏,价格昂贵。为了实验、研究以及工业需要,研制一种功能齐全、使用方便的波形发生器十分重要。本文介绍了两种基于89C51单片机和数模转换器DAC0832产生所需波形的波形发生器设计方案,两种方案各有特色,可以满足不同领域对波形发生器的需求。其中,程控波形发生器设计方案运用单片机执行程序产生波形数据,再由单片机通过定时器定时控制将波形数据送给DAC转换输出波形,本方案扩展有LED显示模块和键盘模块,具有良好的人机交互性。

2、硬件波形发生器设计中,单片机执行程序产生波形数据或从上位机接受波形数据写入外部RAM中,然后由外部电路控制从RAM中取出波形数据送于DAC转换输出波形,本方案可以产生高频波,且具有良好的可升级性。本次设计的两种方案均能产生频率、幅值可调的正弦波、三角波、锯齿波和方波四种波形。本次设计运用Keil c软件采用C语言进行软件设计,使用仿真软件Proteus进行系统功能校验,并使用Protel软件制作印刷电路板(PCB)。本次设计的两种波形发生器具有精度高、误差小、功耗低、数据传输速度快、可靠性高等特点,且具有良好的经济性,具有一定的开发价值。关键词:波形发生器,单片机,DAC0832,程控波形发生

3、器设计,硬件波形发生器设计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 development of a waveform ge

4、nerator 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 different areas ne

5、ed. 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, which has a good hum

6、an-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, and it also has

7、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 simulation software

8、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 certain extent, it is

9、 worthy of being further developed.KEY WORDS:waveform generators, MCU, DAC0832, programmable WG design, hardware WG design4目录 前言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 按键方案设计102.2.5 显示模块

10、方案设计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软件Protel28第4章 硬件实现及模块

11、设计电路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 显示子程序415.2.4 波形子程序425

12、.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赫兹(Hz)MHz兆赫,1兆赫(M

13、Hz)= 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 memory,随机存储器SR

14、AMStatic 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。现今市场上技术比较成熟的波形发生器产品有:安捷伦公司生产的33250A函数任意波形发生器,其输

21、出频率宽度范围为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 章节安排本文对基于单片机的波形发生器设计进行了详细的说明,共分六章。第一章主要介绍了课题的研究背景、发展、意义,设计的整体内容以及任务安排。第二章对设计前的系统方案以及各模块的实现方案进行比对和选择,从而确定出最终的两种设计方案,即程控波形发生器设计方案和硬件波形发生器设计方案。第三章对本次设计所使用的主要芯片如89C51单片机、8255A3、DAC

24、0832等进行了介绍,并且对这些芯片在系统设计运用的功能给予简要说明,在本章最后对系统设计所使用的开发软件予以介绍。第四章对系统两种设计方案的硬件电路各模块的设计及工作方法分别进行详细介绍。第五章对两种设计方案的各程序模块的设计及流程图分别予以详细的说明。第六章主要分为4个部分,首先对PCB设计进行了简要说明,然后对系统仿真结果及误差进行分析,接着对系统实现的功能及不足进行综合说明,组后对系统的可行性进行分析说明。在文章的最后还附录了软件程序、硬件电路图和PCB图。第2章 波形发生器系统方案设计及选择2.1 总体方案选择波形发生器的设计可以通过多种方案来实现,在设计之前需要对各种设计方案进行比

25、较和选择:方案一:采用分立元件构成非稳态的多谐振荡器,然后根据所需波形的要求加入积分电路等构成波形发生器,如图2-1所示。U0输出为正弦波、U1输出为方波、U2输出为三角波,三种波形输出频率相同。通过调节第一级运放的RC参数,可以改变频率。图2-1 采用分立元件构成的简易波形发生器方案二:采用单片机控制的单片函数发生器(如8038芯片)来进行波形发生器的设计。8038可以同时产生方波、三角波和正弦波专用集成电路4。方案三:利用专用直接数字合成DDS芯片去实现波形发生器的设计。例如专门用于波形发生器的集成微处理器8XC196MC/MD单片机可以直接产生高频率的各种常用信号波形5。方案四:对51单

26、片机进行编程,在单片机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的设计方案和选型方法进行了具体的阐述。下面分别予以介绍。2

30、.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为: (2-7)下限频率fMIN为:

34、(2-8)对于方波本次设计是将一个周期的波形离散成2个波形数据(0和255),所以能得到的波形的上限频率fMAX为: (2-9)下限频率fMIN为: (2-10)可见方波输出的下限频率过高,所以进行方波的低频输出时需要进行特别的程序处理,具体参见第五章5.2.5节方波子程序部分。对以上方案综合比对,可以得出如下结论:方案一主要是靠硬件实现调频,无上限频率和下限频率的限制,且频率的误差度可以忽略不计,但是频率的选择只可是外部时钟源的整倍数分频(如2分频、4分频等),不可实现频率的连续可调。方案二是靠软件来实现调频,综合可以看出此种方案的有效频段为0.06Hz到1953Hz,在此范围内输出波形频率

35、连续可调。但是由于输出高频时受到软件执行(例如对定时器的重新赋值指令需要占用4个机械周期,一周期波形需要进行256次再赋值操作,所以一个周期也就引入了的误差)的影响,在高于1KHz时得到波形频率与期望频率误差较大,且得出低于0.1Hz波形的意义不大,故设定有效调频范围为0.1Hz1KHz。如2.1节所述,硬件波形发生器设计选择方案一,程控波形发生器设计选择方案二。2.2.3 调幅方案设计在此之前,首先需要说明DAC0832的输出电压的计算方法: (2-11)其中Vref为DAC0832的基准电压,N为单片机送给DAC0832的8位数字量。方案一:将DAC0832的RFB引脚接一个滑动变阻器来改

36、变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进行设计。方案一转换器的转换上限频率fMAX至少为: (2-12)方

40、案二中选用的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解决问题。由于设计时RAM的输入和输出不是同

42、步进行的,可以运用锁存器去控制不同执行阶段数据的传输方向,具体方法请参见第四章4.2.4节。2.3 系统总体框图如前文所述,本次设计采用两种设计方案以满足两种不同领域的波形发生器设计。以下分别对这两种设计的系统框图予以介绍。2.3.1 程控波形发生器系统框图本系统由单片机最小系统(由51单片机、晶振电路和复位电路组成),键盘电路,LED显示模块,两片DAC0832构成的调幅模块和电源供电模块以及用于扩展I/O口的8255A芯片组成。图2-2 程控波形发生器系统框图在使用过程中用户首先通过键盘输入波形的类型、频率和幅值,单片机通过按键输入动作计算频率和幅值,然后执行程序驱动LED显示器显示当前波

43、形的类型、频率和幅值信息,同时产生波形数据送于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、都很普及,价格低廉,容易获得,因此器件的选择经济可行。15第3章 主要芯片及设计软件介绍3.1 主要芯片介绍为了便于对下章硬件电路进行说明,本节将对设计中起主要作用的一些芯片进行介绍,如89C5111、8255A12、DAC083213、DAC908、55514、74161。3.1.1 89C51单片机STC89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用高密度非易失存储器制

46、造技术制造,与工业标准的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 片内振荡器和时钟电路2. 管脚说明图3-1 89

47、C51单片机引脚说明图(1) 电源和晶振VCC:运行和程序校验时加+5V电压。GND:接地。XTAL1:输入到振荡器的反向放大器。XTAL2:方向放大器的输出,输入到内部时钟发生器。(2) I/O口89C51单片机有4组8位的I/O口,共32根口线。P0口:8位漏级开路双向I/O口。当P0口的管脚第一次写1时,被定义为高阻输入。当使用片外存储器(RAM或RAM)时,作地址和数据总线分时复用。在程序校验期间,输出指令字节(这时需要加外部上拉电阻)。P0口(作为总线时)能驱动8个LSTTL负载。P1口:8位准双向I/O口,具有内部上拉电阻。在编程/校验期间,用作输入低位字节地址。P1口能驱动4个L

48、STTL负载。P2口:8位准双向I/O口,具有内部上拉电阻。当使用片外存储器(RAM或RAM)时,输出高位地址。在编程/校验期间,接收高位字节地址。P2口可以驱动4个LSTTL负载。P3口:8位准双向I/O口,具有内部上拉电阻。P3口可以驱动4个LSTTL负载。P3还提供了各种替代功能。在提供这些替代功能时,其输出锁存器应由程序置1。具体功能表述如下:P3.0 RXD,串行输入口,输入。P3.1 TXD,串行输出口,输出。P3.2 ,外部中断0,输入。P3.3 ,外部中断1,输入。P3.4 T0,定时/计数器0的外部输入端,输入。P3.5 T1,定时/计数器1的外部输入端,输入。P3.6 ,低

49、电平有效,输出,片外数据存储器写选通。P3.7 ,低电平有效,输出,片外数据存储器读选通。(3) 控制线RST:复位输入信号,高电平有效。在振荡器工作时,在RST上作用两个机器周期以上的高电平,将器件复位。/VPP:片外程序存储器访问允许信号,低电平有效。在编程时,其上施加12V的编程电压。ALE/:地址锁存允许信号,输出。用作片外存储器访问时,低字地址锁存。ALE以1/6的振荡频率稳定速率输出,可用作对外输出的时钟或用于定时。在编程期间,作输入。输入编程脉冲()。ALE可以驱动8个LSTTL负载。:片外程序存储器选通信号,低电平有效。从片外程序存储器取指令期间,在每个机器周期中,当有效时,程

50、序存储器的内容被送上P0口(数据总线)。可以驱动8个LSTTL负载。由于在此次设计中运用了单片机的定时中断功能,所以现在对单片机的定时器/计数器系统和中断系统进行简要说明15。3. 定时器/计数器系统89C51单片机包含有2个16位的定时器/计数器:T0和T1。定时器/计数器的核心是一个加1计数器。在单片机的T0、T1引脚施加一个1到0的跳变,计数器加1,即为计数功能;在单片机内部对机器周期或其分频进行计数,从而得到定时,这就是定时功能。定时器/计数器T0和T1由计数器TH0、TL0和TH1、TL1;特殊功能寄存器TMOD和TCON;时钟分频器;输入引脚T0、T1、和组成。(1) 方式寄存器T

51、MOD方式寄存器TMOD是一个逐位定义的8位寄存器,字节地址为89H,其格式如下:位D7D6D5D4D3D2D1D0位功能GATEC/M1M0GATEC/M1M0其中低4为定义T0,高4位定义T1,各位的意义如表3-1所示。表3-1 方式寄存器TMOD各位功能位名称功能D7GATE定时器/计数器T1门控位D6C/定时器/计数器T1功能选择位:C/=1为计数器,C/=0为定时器D5M1定时器/计数器T1方式选择位D4M0定时器/计数器T1方式选择位D3GATE定时器/计数器T0门控位D2C/定时器/计数器T0功能选择位:C/=1为计数器,C/=0为定时器D1M1定时器/计数器T1方式选择位D0M

52、0定时器/计数器T1方式选择位(2) 控制寄存器TCON控制寄存器TCON是一个逐位定义的8位寄存器,即可字节寻址也可位寻址,字节地址为88H,位寻址的地址为88H-8FH,其格式如下:位地址8FH8EH8DH8CH8BH8AH89H88H位功能TF1TR1TF0TR0IE1IT1IE0IT0各位的意义如表3-2所示。表3-2 控制寄存器TCON各位功能位名称功能D7TF1定时器/计数器T1的溢出标志D6TR1定时器/计数器T1的运行控制位D5TF0定时器/计数器T0的溢出标志D4TR0定时器/计数器T1的运行控制位D3IE1外部中断1请求标志位D2IT1外部中断1请求标志位出发类型选择D1I

53、E0外部中断0请求标志位D0IT0外部中断0请求标志位出发类型选择(3) 数据寄存器TH1、TL1和TH0、TL0T0、T1各有1个16位的数据寄存器,它们都是由高8位寄存器和低8位寄存器组成,这四个寄存器的地址如表3-3所示。表3-3定时器/计数器T0、T1的数据寄存器的字节地址寄存器名称字节地址TH1T1的高8位数据寄存器8DHTL1T1的低8位数据寄存器8BHTH0T0的高8位数据寄存器8CHTL0T0的低8位数据寄存器8AH(4) 工作方式根据对TMOD的M1和M0的设定,T0、T1可选择4种不同的工作方式。如表3-4所示。表3-4定时器/计数器T0、T1的工作方式M1M0工作方式计数

54、器配置00方式013为计数器01方式116位计数器10方式2自动再装入的8位计数器11方式3T0分为两个8位计数器,T1作为波特率发生器本次设计中只用到了定时器的方式1,在此只对方式1进行介绍,其他几种工作方式的具体介绍请参见15相应章节。方式1时的结构图如图3-2。图3-2 定时器/计数器T0、T1的结构图计数时,TLx的低8位一处后向THx进位,THx溢出后将TFx置位,并向CPU申请中断。当GATE=0时,A点为高电平,定时器/计数器的启动/停止由TRx决定。当GATE=1时,A点的电位由决定,B点的电位由TRx和决定,即定时器/计数器的启动/停止由TRx和两个条件决定。计数溢出时,TF

55、x置位。如果中断允许,CPU响应中断并转入中断服务子程序,由内部硬件清TFx。TFx也可由程序查询和清0。4. 中断系统89C51单片机有5个中断源,见表3-5所示。由于在此系统中我们只用到定时器中断,在此只对单片机中断系统的中断允许控制字IE进行说明,其他关于中断系统的相关知识请参见1相应章节。表3-5中断矢量地址中断源中断矢量地址外部中断0()0003H定时器/计数器0(T0)000BH外部中断1()0013H定时器/计数器1(T1)001BH串行口(RI、TI)0023H中断允许控制字IE的字节地址为A8H,其格式如下:位地址AFHAEHADHACHABHAAHA9HA8H符号EA-ES

56、ET1EX1ET0EX0IE寄存器中各位为0时,禁止中断;为1时,允许中断。各位定义如表3-6。表3-6中断允许控制IE各位功能位名称功能D7EACPU中断允许位D4ES串行口中断允许位D3ET1定时器/计数器T1中断允许位D2EX1外部中断1中断允许位D1ET0定时器/计数器T0中断允许位D0EX0外部中断0中断允许位3.1.2 数模转换器DAC0832DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。

57、其中,8位D/A转换电路是核心部件,它的内部采用了256级的倒R2R电阻译码网络,由电流开关电路控制基准电压VREF,提供电阻网络的电流来进行D/A转换,因此转换速度较快。两级寄存器可以进一步提高D/A转换器的速度,这是因为在8位DAC寄存器输出的同时,8位输入寄存器可以接收新的数据。DAC0832采用R-2RT型电阻译码网络,由二级缓冲寄存器(实为锁存器)和D/A转换电路及转换控制电路组成16。其主要特点归结如下:(1) 数字输入端具有双重缓冲功能,可以双缓冲、单缓冲或直通输入。(2) 与所有通用微处理器可直接连接。(3) 满足TTL电平规范的逻辑输入。(4) 分辨率为8位,满刻度误差1LS

58、B,建立时间为1,功耗20mW。(5) 电压输出型D/A转换器。芯片引脚及其功能介绍如下:图3-3 DAC0832引脚图DI0DI7:数据输入线,TLL电平。ILE:数据锁存允许控制信号输入线,高电平有效。:片选信号输入线,低电平有效。:为输入寄存器的写选通信号。:数据传送控制信号输入线,低电平有效。:为DAC寄存器写选通输入线。Iout1:电流输出线。当输入全为1时Iout1最大。Iout2: 电流输出线。其值与Iout1之和为一常数。Rfb:反馈信号输入线,芯片内部有反馈电阻。Vcc:电源输入线 (+5v+15v)Vref:基准电压输入线 (-10v+10v)AGND:模拟地,摸拟信号和基

59、准电源的参考地。DGND:数字地,两种地线在基准电源处共地比较好。本次设计只涉及到芯片的使用,至于DAC0832进行数模转化的原理与计算这里不再赘述,相关内容请读者自行查阅DAC0832芯片手册。至于本次设计所使用的DAC908芯片,其有效管脚定义、功能以及工作原理与DAC0832类似,只是其作为高速转换器转换时间比DAC0832要低,在这里不再对DAC908进行介绍。3.1.3 可编程并行接口电路8255A图3-4 8255A引脚图Intel公司开发的可编程并行接口电路8255A具有24个可编程设置的I/O口,包括3组8位的I/O为PA口、PB口、PC口,又可分为2组12位的I/O口:A组包

60、括A口及C口高4位,B组包括B口及C组的低4位。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。在本次设计中8255A主要是用于对单片机的I/O口进行扩展17。8255A的各引脚及其功能介绍如下:D0D7:数据输入线,用于和单片机交换数据。PA0PA7:A口数据线。PB0PB7:B口数据线。PC0PC7:C口数据线,也可作为和外设的联络线。:片选信号输入线,低电平有效。:为内部寄存器的写选通信号。:为内部寄存器的读选通信号。VCC:运行时加+5V电压。GND:接地。RESET:复位输入信号,高电平有效。A0-A1:内部寄存器选择引脚,区别内部4个寄存器的地址,见表3-7。表3-7 8255A内部寄存器对应口线A0A1

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