资源描述
摘 要
众所周知,数字技术和计算机技术已渗透到了工业、农业、商业、教育、医疗、军事、娱乐等每一个领域及生活中的每一个角落,其应用之深之广令人咂舌!
尽管PC机的应用已经相当普遍,但是,在工业领域,在日益追求小而精,轻而薄的自动化控制器、自动化仪表、家电产品等方面,PC机仍有所不适宜。在这种情况下,单片机以它优越的控制性能、轻巧的体积、高可靠性和高性价比在智能化仪表系统、工业领域等日益显出其强大的生命力,使传统的电子技术产生了一场巨变,成为计算机发展上的一个新的里程碑。智能仪器的出现,极大的扩充了传统仪器的应用范围,智能仪器凭借其体积小、功能强、功耗低等优势、迅速的在家用电器、科研单位和工业企业中得到了广泛的应用。
该函数发生器采用AT89C52单片机作为控制核心,外围采用模拟/数字转换电路(DAC0832)、运放电路(ua741)、按键和LED显示电路等,电路采用AT89C52单片机和两片DAC0832数模转换器组成程控幅值函数发生器。其函数发生器价格低、性能好、操作方便、体积小等优点。由于采用了ua741运算放大器,使其电路更加具有较高的稳定性、性能比高。此电路清晰,出现故障容易查找错误,操作简单、方便。通过按键可以控制产生正弦波、方波、锯齿波、三角波等,同时用LED显示对应波形的频率,其频率、复制可调、波形准确且平滑。本系统设计简单,性能优良,具有一定的实用性。
本设计主要以AT89C52作为控制核心,硬件电路简单,软件功能完善,控制系统可靠,性价比较高等优点,具有一定的使用价值和参考价值。
关键字: 函数发生器 AT89C52 DAC0832 幅度控制
ABSTRACT
As we all know, digital technology and computer technology has penetrated into the industry, agriculture, commerce, education, medical, military, entertainment, and every area of life in every corner of its application is wide, deep, raspberry.
Despite the PC-application has been fairly common, but in the industry field, in pursuit of a small but growing, light and thin, automation controllers, automation instruments, home appliances and so on, PC is still the appropriate machine. In this case, the MCU control with its superior performance, compact size, high reliability and cost-effective in Intelligent Systems, and other industries increasingly showing great vitality to the traditional electronic technology had a changes, the development of a computer, a new milestone .The emergence of smart devices, greatly expanded the application of traditional instruments, intelligent instruments, with its small size, powerful functions, low power consumption advantages, rapid in household appliances, research institutes and industrial enterprises have been widely used.
The function generator using AT89C52 microcontroller as the control, external analog / digital conversion circuit (DAC0832), op-amp circuit (ua741), buttons and LED display circuit, the circuit using AT89C52 microcontroller and two composed of programmable analog converter DAC0832 amplitude function generator. The function generator low price, good performance, easy operation, small size, and so on. Thanks to ua741 operational amplifier circuits to more have higher stability, performance is high. The circuit clear, easy to find failure error, simple and convenient.Produced can be controlled by buttons sine wave, square wave, sawtooth, triangle wave, while the corresponding waveform with LED display frequency, the frequency, copy adjustable, accurate and smooth waveform. The system is simple and excellent performance, has some relevance.
The design mainly AT89C52 as the control, simple hardware circuit, software, functional, and reliable control system, high cost performance advantages, has some value and reference value.
Keywords: function generator AT89C52 DAC0832 Amplitude control
目录
摘要------------------------------------------------------------------------------------------------
ABSTRACT--------------------------------------------------------------------------------------
1. 绪论------------------------------------------------------------------------------------------
1.1 课题研究的发展与应用------------------------------------------------------------
1.1.1 函数发生器的背景及发展概况--------------------------------------------
1.2 国内外动态---------------------------------------------------------------------------
1.2.1 波形发生器的发展概况-----------------------------------------------------
1.2.2 函数发生器的应用-----------------------------------------------------------
1.3 本文的主要工作和要求------------------------------------------------------------
1.3.1 原始数据-----------------------------------------------
1.3.2 技术要求-----------------------------------------------
1.3.3 工作要求-----------------------------------------------
2. 程控幅值函数发生器的设计方案------------------------------------------------------
2.1 总体设计方案-----------------------------------------------------------------------
2.1.1 系统机构总框架-------------------------------------------------------------
2.2 电路的工作原理--------------------------------------------------------------------
3. 硬件设计-----------------------------------------------------------------------------------
3.1 AT89C52的工作原理--------------------------------------------------------------
3.1.1 概述---------------------------------------------------------------------------
3.1.2 主要功能特性---------------------------------------------------------------
3.1.3 内部结构框图---------------------------------------------------------------
3.1.4 各引脚排列------------------------------------------------------------------
3.2 D/A转换器的选择-----------------------------------------------------------------
3.2.1 DAC0832芯片--------------------------------------------------------------
3.2.2 DAC0832主要特征参数--------------------------------------------------
3.2.3 DAC0832的结构与工作方式--------------------------------------------
3.2.4 DAC0832与AT89C52的接口设计-------------------------------------
3.3 显示与键盘控制器7289A的芯片介绍-----------------------------------------
3.3.1 7289A芯片介绍------------------------------------------------------------
3.3.2 7289A与AT89C52接口电路--------------------------------------------
3.4 功率放大器的设计-----------------------------------------------------------------
3.5 硬件原理图--------------------------------------------------------------------------
3.6 本章小结-----------------------------------------------------------------------------
4. 软件设计----------------------------------------------------------------------------------
4.1 主程序设计--------------------------------------------------------------------------
4.1.1 主程序流程图---------------------------------------------------------------
4.2 初始化程序--------------------------------------------------------------------------
4.3 外部中断流程图--------------------------------------------------------------------
4.4 延时程序-----------------------------------------------------------------------------
4.5 源程序--------------------------------------------------------------------------------
4.6 本章小结-----------------------------------------------------------------------------
5. 调试分析-----------------------------------------------------------------------------------
5.1 KELL 51 软件简介-----------------------------------------------------------------
5.1.1 系统概述---------------------------------------------------------------------
5.1.2 Keil C51单片机软件开发系统的整体结构---------------------------
5.2 调试步骤-------------------------------------------------------------------------------
5.2.1 逻辑的调试------------------------------------------------------------------
5.2.2 模拟电路板的调试---------------------------------------------------------
5.3 调试中的问题及解决方法--------------------------------------------------------
5.4 本章小结-----------------------------------------------------------------------------
6. 结论与展望-------------------------------------------------------------------------------
6.1 结论-----------------------------------------------------------------------------------
6.2 展望-----------------------------------------------------------------------------------
致谢----------------------------------------------------------------------------------------------
参考文献----------------------------------------------------------------------------------------
外文翻译----------------------------------------------------------------------------------------
1 绪论
1.1 函数发生器的发展与应用
1.1.1函数发生器的背景
函数发生器是一种在科研和生产中经常用到的基本波形产生器,波形发生器[1]即通常所说的信号发生器,是一种常用的信号源,广泛应用于通信[2],雷达[3][4],测控[5],电子对抗[6][7]以及现代化仪器仪表[8]等领域,是一种为电子测量工作提供符合严格技术要求的电信号设备,和示波器、电压表、频率计等仪器一样是最普通、最基本也是应用最广泛的电子仪器之一,几乎所有电参量的测量都要用到波形发生器。随着现代电子技术的飞速发展,现代电子测量工作对波形发生器的性能提出了更高的要求,不仅要求能产生正弦波、方波等标准波形,还能根据需要产生任意波形,且操作方便,输出波形质量好,输出频率范围宽,输出频率稳定度、准确度及分辨率高,频率转换速度快且频率转换时输出波形相位连续等。可见,为适应现代电子技术的不断发展和市场需求,研究制作高性能的任意波形发生器(Arbitrary Waveform Generator,简称AWG)十分有必要,而且意义重大。
1.2国内外动态
1.2.1 波形发生器的发展概况
波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。函数波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、振动激励、通讯和仪器仪表领域。
在70年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。同时,主要表现为两个突出问题,一是通过电位器的凋节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。
在70年代后,微处理器的出现,可以利用处理器、A/D和D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用微处理器对DAC的程序控制,就可以得到各种简单的波形。
90年代木,出现几种真正高性能、高价格的函数发生器心⋯、但是HP公司推出了型号为HP770S的信号模拟装置系统,它由HP8770A任意波形数字化和HPl776A波形发生软件组成。HP8770A实际上也只能产生8中波形,而且价格昂贵。不久以后,Analogic公司推出了型号为Data.2020的多波形合成器,Lecroy公司生产的型号为9100的任意波形发生器等。
到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过GHz的DDS芯片[38][39],同时也推动了函数波形发生器的发展,2003年,Agilent的产品33220A能够产生17种波形,最高频率可达到20M,2005年的产品N6030A能够产生高达500MHz的频率,采样的频率可达1.25GHz。由上面的产品可以看出,函数波形发生器发展很快近几年来,国际上波形发生器技术发展主要体现在以下几个方面:
1.过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成V:f(t)形式的波形方程的数学表达式产生。从而促进了函数波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如Visual Basic,Visual C等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。
2.与VXI资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方面,VXI模块远远不如台式仪器更为方便瞄圳。
3.随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪器的形态,和几年前的己有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。
1.3 本文的主要工作内容
1.3.1 原始数据
1.正弦波的频率范围:下限频率为0.1Hz,上限频率暂时不确定,但应尽量提高,并在实验报告中分析影响上限频率的因素和已完成的最大值。
2.输出正弦波中不能含有尖峰干扰。
3.输出正弦波峰峰值最大为5 V、最小幅度自定,幅度调节0.5V。
4.频率输入为数字量,在10 Hz范围内分辨率为0.1 Hz;10~100Hz内为1Hz;100~1000Hz内为10 Hz。
5.扩展输出波形种类,如三角波、方波等,频率范围自定。
1.3.2 技术要求
1.波形失真度:±3%
2.八位数码管显示
1.3.3工作要求
1.组建基于单片机的程控幅值函数发生器的总体结构框图;
2.根据设计测量范围和准确度要求,通过理论分析和计算选择电路参数;
3.根据操作功能要求,确定键盘控制功能;
4.按设计要求确定显示位数、指示类型和单位;
5.采用C语言编写应用程序并调试通过;
6.对系统进行测试和结果分析;
7.撰写论文。
2 程控幅值函数发生器的设计方案
2.1总体方案设计
2.1.1 方案选择
本设计主要用单片机AT89C52实现程控幅值函数发生器,而在此有两种方案可供选择:
l 直接利用单片机编程产生三角波、方波、锯齿波、正弦波、其优点是简化了用于产生波形的硬件和软件,特别适用于交流感应电动机和无刷直流电动机的速度控制及变频电源的SPWM控制,但其编程复杂、波形失真较大并且不能达到要求输出的高频率信号。
l 利用单片机控制波形信号产生芯片,通过单片机、键盘、LCD显示实现波形的数字控制。其硬件电路稍有些复杂,但控制简单、波形效果好、频率到款
为了满足设计要求,取得较好的效果,用方案二比较理想。
2.1.2 系统机构总框架
本设计的主导思想是软硬件结合,力求性能可靠,电路简单,选择通用件,程序运行可靠逻辑合理。基本要求时产生出符合要求的函数波形,一个函数波形是符合格主要有三个指标来衡量:波形、幅值、频率。即产生符合要求的函数波形也就是产生出波形、幅值、频率符合目标要求的波形。
根据题意,可采用单片机程序产生以上四种波形(正弦波、方波,锯齿波、三角波),并通过一片D/A转换器输出。另外,采用一片D/A转换器来控制前一片D/A转换器的参考电压,从而可以改变输出波形幅值。见图2.1.1(a)所示。通过外接键盘来设定外接波形的类型、幅值和频率,并在扩展的七段LED显示器上显示响应的波形的类型、幅值和频率。
键盘
显示
单
片
机
D/A转换器
D/A转换器
运算放大器
运算放大器
滤波电路
图2.1.1(a)系统结构总框架
2.2电路的总体硬件
要设计合适的电路,应遵循下列原则[12]:
(1)尽可能选择标准化、模块化的典型电路,提高设计的成功率和结构的灵活性。
(2)系统的扩展与外围设备的水平应充分满足应用系统的功能要求。
(3)硬件结构应结合应用软件方案一并考虑,硬件结果和软件方案会产生相互影响,考虑的原则是:软件能实现的功能尽可能由软件来实现,以简化硬件结构。但必须注意的是,由软件实现的硬件功能,其响应时间要比直接用硬件来的长,而且占用CPU时间。所以选用软件时,要考虑到这些因素[12]。
(4)可靠性及抗干扰性设计是硬件系统设计不可缺少的部分,它包括芯片、器件选择、去耦滤波等等。
(5)系统的扩展及各功能模块的设计在满足系统功能要求的基础上,应当留有余地,以备将来修改、扩展之需。
(6)在考虑硬件总体结构的同时要注意通用性的问题。
根据以上原则,进行硬件设计。系统采用较为普及的AT89C52单片机作为系统的核心。它不但容易实现设计指标,而且还有较好的性价比。
l 程序存储器——AT89C52内部自带8K的ROM,512B的RAM,所以不需要对其扩展存储器。
l 键盘——矩阵式键盘适用于按键数量较多的场合,系统采用了7289A键盘控制器驱动8位数码管连接16个键盘矩阵。
l 数码管——本设计实现了89C52的I/O口通过了7289A对2*8键盘和8位数码管显示的控制。
l D/A转换——本设计D/A转换部分采用DAC0832芯片。
l 信号转换部分——对信号的变化部分采用四运放芯片ua741。
l 复位电路设计——单片机的复位是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,通常是RST引脚保持10ms以上的高电平。复位电路连接如图2.2(a)所示。此电路仅用一个电容及一个电阻。系统上电时,在RC电路充电过程中,由于电容量端电压不能跳变,故使复位端电平呈高电位,系统复位。经过一段时间,电容充电,使复位端呈低电位,复位结束。
图2.2(a)复位电路连接图
l 可靠性方面——在使用应用系统时可能会受到多种干扰的侵袭,直接影响到系统的可靠性,因此,本系统适当加入去耦电容,加入低通滤波器以减少干扰,确保精度。
3 硬件设计
3.1 AT89C52的工作原理
3.1.1 概述
单片机控制系统的核心器件是单片机芯片,它提供的功能和资源对整个应用系统所需要的支持电路、接口硬件设计以及软件程序设计起着关键作用。就本系统而言,可供选择的单片机较多,但从满足系统要求、性价比、简化硬件电路设计等方面考虑,选择ATMEL公司生产的AT89C52即可。
AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求
3.1.2 主要功能特性
· 兼容MCS51指令系统 · 8k可反复擦写(>1000次)Flash ROM
· 32个双向I/O口 · 256x8bit内部RAM
· 3个16位可编程定时/计数器中断· 2个串行中断
· 时钟频率0-24MHz · 共6个中断源
· 可编程UART串行通道· 3级加密位
· 2个外部中断源· 低功耗空闲和掉电模式
· 2个读写中断口线· 软件设置睡眠和唤醒功能
3.1.3 AT89C52的内部结构框图
图3.1.3(a) 内部结构框图 图3.1.3(b)实物图
3.1.4 AT89C52各引脚功能及管脚电压
概述:AT89C52为40 脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。图3.1.4(a)为PDIP封装的AT89C52引脚排列图。
图3.1.4(a) AT89C52引脚排列图
1)I/O口线
l P0口:是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
l P1口: P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。Flash 编程和程序校验期间,P1 接收低8 位地址。
l P2口: P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX @RI 指令)时,P2 口输出P2 锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。
l P3口:P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能。见表3.1.1(a)。P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。
表3.1.1(a) P3口的第二功能
端口位
第二功能
注释
P3.0
RXD
串行输入口
P3.1
TXD
串行输出口
P3.2
/INT0
外部中断0
P3.3
/INT1
外部中断1
P3.4
T0
计数器0计数输入
P3.5
T1
计数器1计数输入
P3.6
/WR
外部数据RAM写入选通信号
P3.7
/RD
外部数据RAM读出选通信号
2)控制信号线
l RST/VPD
复位输入。接通电源后,在该引脚十佳大于两个机器周期(24个振荡周期)的高电平,就可是单片机完成内部的复位工作。第二功能是Vpd,及备用电源输入端。当主电源Vcc发生故障,降低到低电平规定值时,Vpd将为RAM提供备用电源,以保证存储在RAM中的信号不丢失。
l ALE/PROG
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。
l PSEN
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳
展开阅读全文