基于单片机的函数发生器论文_第1页
基于单片机的函数发生器论文_第2页
基于单片机的函数发生器论文_第3页
基于单片机的函数发生器论文_第4页
基于单片机的函数发生器论文_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

1、本科毕业设计基于单片机的函数发生器学生姓名: 班 级: 专 业: 指导教师: 2021年5月摘 要 信号发生器,它是一种用于产生标准信号的电子仪器,随着科学技术的开展,对它的要求越来越高。在工业生产和科研中利用信号发生器输出的信号,可以对元器件的性能及参数进行测量,还可以对电工和电子产品进行指数验证、参数调整及性能鉴定。常用的信号发生器绝大局部是由模拟电路构成的,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵,因此,高精度,宽调幅,低价格将成为数字量信号发生器的开

2、展趋势。本设计核心任务是:以89S52为核心,结合DAC0832实现程序控制产生正弦波、三角波、方波和锯齿波四种常用低频信号。可以通过键盘选择波型和输入任意频率值。另外,我采用KEIL,以到达验证作品功能的目的,并且做出一块测试板。关键词:信号发生器;89S52;KEILABSTRACT     Signal generator, it is a widely used source, with the scientific and technological development, increasing its demands. Industrial

3、 production and scientific research in the use of signal generator output signal, the performance of components and parameters measured, but also the electrical and electronic products for authentication, and adjust parameters of identification. The signal generator used by the vast majority of anal

4、og circuit components, such as analog signal generator for the low-frequency signals often require output value of the RC great, it will not only difficult to ensure the accuracy of parameters, but also have great size and power consumption, Digital components of low-frequency signal generator, alth

5、ough the low-frequency performance good but larger, more expensive price, therefore, high accuracy, wide-AM, will become a low-cost digital signal generator trend of development.      The graduation project core task is to design: 89S52 as the core, unifies DAC0832 to realize the

6、 programmed control to have the sine wave, the triangular wave, the square-wave and the saw-tooth wave four kind of commonly used low-frequency signals .Can choose the keyboard-type and frequency of any input, frequency of use of five digital display, two square with the duty cycle of the digital di

7、splay, with a wave of the digital display. In addition, I used KEIL joint simulation, functional works to achieve the purpose of verification, and make an evaluation board.Key words: Signal generator; 89S52; KEIL 第一章 绪论及意义信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函

8、数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波含方波、正弦波的电路被称为函数信号发生器。在通信、播送、电视系统,在工业、农业、生物医学等领域内,函数信号发生器在实验和设备检测中具有十分广泛的用途。1.1.1 本课题的研究现状信号发生器既可以构成独立的信号源,也可以是高性能网络分析仪、频谱仪及其它自动测试设备的组成局部。信号发生器的关键技术是多种高性能仪器的支撑技术,因为它能够提供高质量的精密信号源及扫频源,可使相应系统的检测过程大大简化,降低检测费用并极大地提高检测精度。美国安捷伦生产的33250A型函数/任意波形发生器可以产生稳定、精确和低失真的任意波形,其输出频率范围为1Hz8

9、0MHz,而输出幅度为10mVpp10Vpp;该公司生产的8648D射频信号发生器的频率覆盖范围更可高达9kHz4GHz。国产SG1060数字合成信号发生器能双通道同时输出高分辨率、高精度、高可靠性的各种波形,频率覆盖范围为1Hz60MHz;国产S1000型数字合成扫频信号发生器通过采用新技术、新器件实现高精度、宽频带的扫频源,同时应用DDS和锁相技术,使频率范围从1MHz1024MHz能精确地分辨到100Hz,它既是一台高精度的扫频源,同时也是一台高精度的标准信号发生器。还有很多其它类型的信号发生器,他们各有各的优点,但是信号发生器总的趋势将向着宽频率覆盖、高频率精度、多功能、多用途、自动化

10、和智能化方向开展。目前,市场上的信号发生器多种多样,一般按频带分为以下几种:超高频:频率范围1MHz以上,可达几十兆赫兹。高频:几百KHZ到几MHZ。低频:频率范围为几十HZ到几百KHZ。超低频:频率范围为零点几赫兹到几百赫兹。超高频信号发生器,产生波形一般用LC振荡电路。高频、低频和超低频信号发生器,大多使用文氏桥振荡电路,即RC振荡电路,通过改变电容和电阻值,改变频率。用以上原理设计的信号发生器,其输出波形一般只有两种,即正弦波和脉冲波,其零点不可调,而且价格也比拟贵,一般在几百元左右。在实际应用中,超低频波和高频波一般是不用的,一般用中频,即几十HZ到几十KHZ。用单片机89S52,加上

11、一片DAC0808,就可以做成一个简单的信号发生器,其频率受单片机运行的程序的控制。我们可以把产生各种波形的程序,写在ROM中,装入本机,按用户的选择,运行不同的程序,产生不同的波形。再在DAC0808输出端加上一些电压变换电路,就完成了一个频率、幅值、零点均可调的多功能信号发生器的设计。这样的机器体积小,价格廉价,耗电少,频率适中,便于携带。  选题目的及意义信号发生器是一种经常使用的设备,由纯粹物理器件构成的传统的设计方法存在许多弊端,如:体积较大、重量较沉、移动不够方便、信号失真较大、波形种类过于单一、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等的要求,研究设计出

12、一种具有频率稳定、准确、波形质量好、输出频率范围宽、便携性好等特点的波形发生器具有较好的市场前景,以满足军事和民用领域对信号源的要求。本次设计的主要目标是学习和运用单片机的C语言和汇编语言,通过现有多功能电子学习机局部已有器件,实现利用单片机AT98C52和8位D/A转换芯片DAC0832共同实现正弦波,方波,三角波,锯齿波这四种常见波形的发生,并且可以接收外接键盘输入而在一定范围内改变频率。可以在没有波形发生器的情况下仍能得到一些简单波形来进行实验。本次设计准备在本钱交低廉的前提下完成,使用的都是该学习机上器件,主要是用单片机AT89C52, DAC0832,性能指数都不是很高,所以对此信号

13、源的根本要求是能发生几种常见的波形,正弦波,方波,三角波,锯齿波,并且能够在一定的范围内改变频率。通过该课题的设计掌握以AT89S52为核心的单片机系统的软硬件开发过程和根本信号的产生原理、测量及误差分析方法,同时掌握函数发生器系统的设计流程;培养我们综合运用所学的根本知识、根本理论和根本技能的能力,学习解决一般工程技术和有关专业问题的能力,学习工程设计和科学研究的根本方法,完成对所学知识的综合训练。设计的根本要求1原始数据1正弦波的频率范围:下限频率为0.1Hz,上限频率暂时不确定,但应尽量提高,并在实验报告中分析影响上限频率的因素和已完成的最大值。2输出正弦波中不能含有尖峰干扰。3输出正弦

14、波峰峰值最大为5 V、最小幅度自定,直流偏移为±2V。4频率输入为数字量,在10 Hz范围内分辨率为0.1 Hz;10100Hz内为1Hz;1001000Hz内为10 Hz。5扩展输出波形种类,如三角波、方波等,幅度和频率范围自定。2技术要求:1波形失真度:±32六位数码管显示 3工作要求:1组建基于单片机的函数发生器的总体结构框图;2根据设计测量范围和准确度要求,通过理论分析和计算选择电路参数;3根据操作功能要求,确定键盘控制功能;4按设计要求确定显示位数、指示类型和单位;5采用C语言编写应用程序并调试通过;6对系统进行测试和结果分析; 7撰写论文。1.2.2课题具体的工

15、作内容本设计采用89S52及其外围扩展系统,软件方面主要是应用C语言设计程序。系统以89S52单片机为核心,配置相应的外设及接口电路,用C语言开发,组成一个多功能信号发生系统。该系统的软件可运行于Windows XP环境下,硬件电路设计具有典型性。同时,本系统中任何一局部电路模块均可移植于实用开发系统的设计中,电路设计具有实用性。本设计将完成以下几个方面的工作:1选芯片,尽量满足一般工业控制要求、以增强其实用性。2原理图设计在保证正确的前提下,尽量采用典型的电路设计。3印制板设计既要精巧,又要便于摆放及测试。4固化于单片机芯片中的软件采用模块设计,层次清楚,具有上电复位及初始化功能,具有很好的

16、软件开发框架。5掌握单片机仿真软件keil3的使用。本文的主要工作函数信号发生器是一种能能够产生多种波形,如三角波、锯齿波、矩形波含方波、正弦波的电路被称为函数信号发生器。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。现在我们通过对函数信号发生器的原理以及构成设计一个能变换出三角波、正弦波、方波的简易发生器。我们通过对电路的分析,参数确实定选择出一种最适合本课题的方案。在到达课题要求的前提下保证最经济、最方便、最优化的设计谋略。按照设计的方案选择具体的原件,焊接出具体的实物图,并在实验室对焊接好的实物图进行调试,观察效果并与课题要求的性能指标作比照。最后分析出现误差的原因以及影响因素

17、,因此本文将介绍波形发生器设计的方案选择与软硬件的设计、调试。全文共分为六章,本章介绍本课题的研究现状和选题目的意义等;第二章介绍函数发生器设计的总体方案与论证;第三章介绍函数发生器系统硬件电路的设计;第四章介绍函数发生器系统功能的软件设计信号产生、D/A转换等的软件设计,并给出了各个子模块的程序流程图;第五章介绍了系统的调试过程和调试结果,并对系统调试过程中出现的问题进行了分析,给出了相应的解决方案。第六章设计总结和展望。第2章 系统总体设计主要功能系统的性能指标主要功能是实现利用单片机AT89C52和8位D/A转换芯片DAC0832共同实现正弦波,方波,三角波,锯齿波这四种常见波

18、形的发生,并且可以接收外接键盘输入而在一定范围内改变频率。可以在没有波形发生器的情况下仍然可以的到简单的正弦波,方波,三角波,锯齿波这四种常用的波,并且可以通过zlg7289及键盘显示模块,键盘可以实现对几种波形的切换,改变频率,幅度,LED显示波的幅度及频率。主要性能指标正弦波的频率范围:下限频率为0.1Hz,上限频率暂时不确定,但应尽量提高,并在实验报告中分析影响上限频率的因素和已完成的最大值;输出正弦波中不能含有尖峰干扰;输出正弦波峰峰值最大为5 V、最小幅度自定,直流偏移为±2V。频率输入为数字量,在10 Hz范围内分辨率为0.1 Hz;10100Hz内为1Hz;100100

19、0Hz内为10 Hz。波形失真度:±3,六位数码管显示。2.2总体方案设计元器件的选择该函数发生器有以下几局部组成:1控制模块2按键及其显示模块3采样模块三局部组成。(1) 控制模块: 方案一:用单片AT89S52作为系统的主控核心。单片机具有体积小,使用灵活的,易于人机对话和良好的数据处理,有较强的指令寻址和运算功能等优点。且单片机功耗低,价格低廉的优点。方案二:用FPGA等可编程器件作为控制模块。FPGA可以实现各种复杂的逻辑功能,密度高,速度快,稳定性好等许多有点。FPGA在掉电后会丧失数据上电后须进行一次配置,因此FPGA在应用中需要配置电路和一定的程序。并且FPGA作为数字

20、逻辑器件,竞争、冒险是数字逻辑器件较为突出的问题,因此在使用时必须注意毛刺的产生、消除及抗干扰性。在次系统中,采用单片机作为控制比采用FPGA实现更简便。基于综合性价比,确定选择方案一.(2) 按键及其显示模块:方案一:采用传统的独立式按键;用传统的LED段选位选的方式进行波形的切换及显示。这种方式占用系统资源较多,并且效率低,程系编写大量而复杂。方案二:为了提高单片机的资源利用率和运行的效率,按键显示局部我们直接使用zlg7289扩展键盘,键盘与单片机连接。zlg7289芯片与单片机之间通信方便,而且由zlg7289对键盘进行自动扫描,可以去抖动,充分的提高了单片机的工作效率。在次系统中,我

21、们直接采用zlg7289扩展键盘实现更简便,确定选择方案一。3采样模块:采用ADC0832ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢送,其目前已经有很高的普及率。学习并使用ADC0832 可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。ADC0832 具有以下特点:· 8位分辨率;· 双通道A/D转换;· 输入输出电平与TTL/CMOS相兼容;· 5V电源供电时输入电压在05V之间;· 工作频率为250KHZ,转换时间为32S;&#

22、183; 一般功耗仅为15mW;· 8P、14PDIP双列直插、PICC 多种封装;· 商用级芯片温宽为0°C to +70°C,工业级芯片温宽为40°C to +85°C;芯片接口说明:· CS_ 片选使能,低电平芯片使能。· CH0 模拟输入通道0,或作为IN+/-使用。· CH1 模拟输入通道1,或作为IN+/-使用。· GND 芯片参考0 电位地。· DI 数据信号输入,选择通道控制。· DO 数据信号输出,转换数据输出。· CLK 芯片时钟输入。·

23、; Vcc/REF 电源输入及参考电压输入复用。ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。芯片转换时间仅为32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。ADC0832如图2-1 图2-1 ADC0832单片机对ADC0832 的控制原理:正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于D

24、O端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端那么使用DI端输入通道功能选择的数据信号。在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能 当此2 位数据为“1、“0时,只对CH0 进行单通道转换

25、。当2位数据为“1、“1时,只对CH1进行单通道转换。当2 位数据为“0、“0时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2 位数据为“0、“1时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。到第3 个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端那么开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATA0。随

26、后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。作为单通道模拟信号输入时ADC0832的输入电压是05V且8位分辨率时的电压精度为19.53mV。如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压那么转换后的数据结果始终为00H。2.2.2系统总体框图设计本系统是以单片机AT89C52和8位D/A转换芯片DAC0832以及zlg7289键盘及显示共同实现正弦波,方波,三角波,锯齿

27、波这四种常见波形的产生及显示相互切换的功能。系统原理框图2-22.3.1单片机软件开发系统Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能表达高级语言的优势。Keil C51单

28、片机软件开发系统的整体结构    C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创立生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板

29、进行调试,也可以直接写入程序存贮器如EPROM中。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保存了汇编代码高效,快速的特点。C51编译器的功能不断增强, 使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编 器,实时操作系统,工程管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。 第二局部 uVision2集成开发环境 一 工程管理 工程(project)是由源文件、开发工具选项以及编程说明三局部组成的。 一个单一的uVision2工程能够产生一个或多个目

30、标程序。产生目标程序的源文件构成“组。开发工具选项可以对应目标,组或单个文件。 uVision2包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定 微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)的特 性。uVision2可以为片外存储器产生必要的连接选项:确定起始地址和规模。第三局部编辑器和调试器 一、源代码编辑器 uVision2编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对C源代码进行和优化。

31、可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。 二、断点 uVision2允许用户在编辑时设置程序断点甚至在源代码未经编译和汇编之前。用户启动V2调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。 在属性框(attributes column)中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区分程序中已执行和未执行的局部。 三、调试函数语言 uVision2中,你可以编写或使用类似C的数语言进行调试。 1.内部函数:如printf, memset, rand及其它功能的函数。 2.

32、信号函数:模拟产生CPU的模拟信号和脉冲信号(simulate analog and digital inputs to CPU)。 3.用户函数:扩展指令范围,合并重复动作。2.3.2电路图设计软件一、protel99se概述Protel 99 SE主要由原理图设计系统、印制电路板设计系统两大局部组成。1原理图设计系统这是一个易于使用的具有大量元件库的原理图编辑器,主要用于原理图的设计。它可以为印制电路板设计提供网络表。该编辑器除了具有强大的原理图编辑功能以外,其分层组织设计功能、设计同步器、丰富的电气设计检验功能及强大而完善的打印输出功能,使用户可以轻松完成所需的设计任务。2印制电路板设计

33、系统它是一个功能强大的印制电路板设计编辑器,具有非常专业的交互式布线及元件布局的特点,用于印制电路板PCB的设计并最终产生PCB文件,直接关系到印制电路板的生产。Protel99SE的印制电路板设计系统可以进行多达32层信号层、16层内部电源/接地层的布线设计,交互式的元件布置工具极大地减少了印制板设计的时间。同时它还包含一个具有专业水准的PCB信号完整性分析工具、功能强大的打印管理系统、一个先进的PCB三维视图预览工具。此外,Protel99SE还包含一个功能强大的基于SPICE 3f5的模/数混合信号仿真器,使设计者可以方便地在设计中对一组混合信号进行仿真分析。同时,它还提供了一个高效、通

34、用的可编程逻辑器件设计工具。二、Protel99SE运行环境1运行Protel 99 SE的推荐配置 CPU:Pentium II 400及以上PC机· 内存:64M·· 显卡:支持800×600×16位色以上显示 光驱:24倍速·2运行环境Windows NT/95/98及以上版本操作系统。由于系统在运行过程中要进行大量的运算和存储,所以对机器的性能要求也比拟高,配置越高越能充分发挥它的优点。三、Protel99SE设计环境专题数据库管理环境原理图设计环境1分层次组织设计功能2强大的元件及元件库的组织、编辑功能3方便的连线工具4高效

35、、便捷的编辑功能5电气设计检测功能6与印制电路板的紧密连接7自定义原理图模块8强大而完善的输出功能印制电路板设计环境1丰富的设计规那么2易用的编辑环境3智能化的交互式手工布线4丰富的封装元件库及便简的元件库编辑和组织操作5智能化的基于形状的自动布线功能6可靠的设计校验四、电路板设计一般而言,设计电路板最根本的过程可以分为以下3大步骤。1电路原理图的设计电路原理图的设计主要是用Protel 99 SE的原理图设计系统来绘制电路原理图。2产生网络报表网络表可以从电路原理图中获得,同时Protel 99 SE也提供了从电路板中提取网络表的功能。3印制电路板的设计印制电路板的设计主要是利用Protel

36、 99 SE的PCB设计系统来完成印制电路板图的绘制第3章 系统硬件设计单片机介绍89S52单片机有44个引脚PLCC和TQFP方形封装形式,40个引脚的双列直插式封装形式,最常用的40个引脚封装形式及其配置如图3-1所示,各个引脚功能说明如下: 图3-1 单片机GND:接地P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校

37、验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O 口,P1 输出缓冲器能驱动4个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流IIL。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入P1.0/T2和时器/计数器2的触发输入P1.1/T2EX,具体如表1-1所示。在flash编程和校验时,P1口接收低8位地址字节。P2口:P2口是一个具有内部上拉电阻的8位双向I/O 口,P2 输出缓冲器能驱动4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把

38、端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流IIL。在访问外部程序存储器或用16位地址读取外部数据存储器例如执行MOVX DPTR时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址如MOVX RI访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉

39、低的引脚由于内部电阻的原因,将输出电流IIL。P3口亦作为AT89S52特殊功能第二功能使用,如表1-2所示。在flash编程和校验时,P3口也接收一些控制信号。RST:复位输入。晶振工作时,RST脚将持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊存放器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/:地址锁存控制信号ALE是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可以用来作为

40、外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE仅在执行MOVX或MOVC指令时有效。否那么,ALE 将被微弱拉高。这个ALE 使能标志位地址为8EH的SFR的第0位的设置对微控制器处于外部执行模式下无效。:外部程序存储器选通信号是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,

41、必须接GND。为了执行内部程序指令,应该接VCC。在flash编程期间,也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.1.2单片机晶振电路12MHz之间选择,这是电容C可以对应的选择10pF30pF。当使用89C55时晶振频率可以提高到24MHZ。对于本设计的电容C用30pF,晶振选用11.0592MHz。晶振电路解法图3-2,一条引脚接在XTAL1,另一条接在XTAL2。 图 3-2 晶振电路3.1.3单片机的复位电路为了防止程序执行过程中失步或运行紊乱,此处我们采用了上电复位及手动复位电路,电路图如图3-3所示:图

42、3-3 单片机复位电路辅助性电路1为了防止各种元器件之间的相互干扰,因此在设计电路时加上一组电容解法如下如3-4。 图 3-4 防干扰电路 UA741AD 图 3-12由图可知到U5的输出将作为ADC0832(2)的基准电压。假设运放U6的输入为;ADC0832(2)的内部的电阻为。设U5的输入电压为;ADC0832(2)的内部的电阻为。下面进行讨论计算:(1) U6为一个反相比例器: (2) U5也为一个反相比例器: 这是U4的输入为,记为V由于,这是U4实际上为为一个反响跟随器,即:所以:2本设计中的运放的连接的第二局部如图3-13图3-13如图3-13中的U2输入中的为图3-12中U4的

43、输出。对于本运放组成的电路分析采用叠加法:设U2的输出为。<1>当电源全部接地时,有如下:此时的运放实际为一个反相比例器:<2>当-12V和接地时:<3>当12V和接地时:所以综上所述:为,三者之和。即:下面对的结果作一些辅助说明:特例:当时以下进行代入数据的具体的分析:于是对于将图3-12与图3-13及连在一起时,这时系统的的框图如图3-14 图 3-14DAC转换局部电路图如下图当单片机分别向DAC08321和DAC08322输入数据和时 1 2 3其中,代入以上各式,得 4或着: 5由4式可知,当在 0255 之间变化时,可在 之间变化,即输出信号的峰

44、峰值可由控制。 该电路由102电位器串接2个1电阻实现调节直流偏移,电位器触头在最右端和最左端时,电位器输出的电压分别为-4v和+4v,电位器的电压与通过一个加法器后,实现直流偏移的调节。2电路性能指标分析 用于调压的DAC0832的参考电压是12V,所以,峰峰值可以调节到的最大值为12V,由于运放的电源均为12V,故均未到达饱和。 通过1电位器与两个1的电阻进行直流偏移的调节。当电位器的滑动触头分别位于最右端与最左端时,输出电压分别为-4v和+4v,电位器的电压与输出的电压通过一个加法器实现直流偏移的调节。 由于DAC0832存在的非线性,输出信号的幅值存在一定的误差。由上述计算可知,该电路

45、产生波形的峰峰值和直流偏移调节的范围到达并超过了题目要求的范围。一般波形模块的设计方案可以有以下几种。方案一:用差分放大电路实现三角波到正弦波以及集成运放组成的电路实现函数发生器见图3-15 图 3-15方案二:用二极管折线近似电路以及集成运放组成的电路实现函数发生器根据二极管折线近似电路实现三角波fF然后再计算R的大小。手控与压控局部线路要求更换方便。为满足对方波前后沿时间的要求,以及正弦波最高工作频率10kHz的要求,在积分器、比拟器、正弦波转换器和输出级中应选用Sr值较大的运放如LF353。为保证正弦波有较小的失真度,应正确计算二极管网络的电阻参数,并注意调节输出三角波的幅度和对称度。输

46、入波形中不能含有直流成分。图3-16是由A741和5G8038组成的精密压控震荡器,当8脚与一连续可调的直流电压相连时,输出频率亦连续可调。当此电压为最小值近似为0时。输出频率最低,当电压为最大值时,输出频率最高;5G8038控制电压有效作用范围是03V。由于5G8038本身的线性度仅在扫描频率范围10:1时为0.2%,更大范围如1000:1时线性度随之变坏,所以控制电压经A741后再送入5G8038的8脚,这样会有效地改善压控线性度优于1%。假设4、5脚的外接电阻相等且为R,此时输出频率可由下式决定: 设函数发生器最高工作频率为2kHz,定时电容C4可由上式求得。 电路中RP3是用来调整高频

47、端波形的对称性,而RP2是用来调整低频端波形的对称性,调整RP3和RP2可以改善正弦波的失真。稳压管VDz是为了防止8脚上的负压过大而使5G8038工作失常设置的。 图 3-16方案三 由软件产生。将各种波形的数据固定在单片机的程序存储器里,通过改变这些数据的输出速度来改变信号的频率,然后通过改变D/A转换器的参考点要来改变信号的峰峰值,电路较为简单,本钱较低,但输出波形会有一定的阶梯状,而且难以产生高频信号。方案一与方案二中三角波正弦波局部原理虽然不一样,但是他们有共通的地方就是都要认为地搭建波形变换的电路图,不太方便也不容易实现。而方案三由软件产生。将各种波形的数据固定在单片机的程序存储器

48、里,通过改变这些数据的输出速度来改变信号的频率,然后通过改变D/A转换器的参考点要来改变信号的峰峰值,电路较为简单,本钱较低。当然还有一种方案:使用专用函数发生电路,如ICL8038 或MAX038,通过D/A转换调整函数发生器控制电压实现频率的控制,这种方案可以使频率连续可调,省却了波形转换电路,但控制电压与频率的变化不是严格的线性关系,如果不加频率负反应那么频率无法稳定准确,加上频率负反应将使电路大大复杂,稳定度也会下降,而且如果要实现比拟大的带宽,就需要不断更换振荡电容,电路复杂程度进一步增加。为防止调试困难,没有采用这种方案综上所述选择第三种设计方案。3.2 AT89S51单片机系统模

49、块设计3.接口电路方案一:采用传统的独立式按键;用传统的LED段选位选的方式进行波形的切换及显示。这种方式占用系统资源较多,并且效率低,程系编写大量而复杂。方案二:为了提高单片机的资源利用率和运行的效率,按键显示局部我们直接使用zlg7289扩展键盘,键盘与单片机连接。zlg7289芯片与单片机之间通信方便,而且由zlg7289对键盘进行自动扫描,可以去抖动,充分的提高了单片机的工作效率。在次系统中,我们直接采用zlg7289扩展键盘实现更简便,确定选择方案一。zlg7289A 是一片具有串行接口的可同时驱动8 位共阴式数码管或64 只独立LED的智能显示驱动芯片该芯片同时还可连接多达64 键

50、的键盘矩阵单片即可完成LED 显示键盘接口的全部功能zlg7289A 内部含有译码器可直接接受BCD 码或16 进制码并同时具有2 种译码方式参看后文此外还具有多种控制指令如消隐闪烁左移右移段寻址等zlg7289A 具有片选信号可方便地实现多于8 位的显示或多于64 键的键盘接口。zlg7289A特点1串行接口无需外围元件可直接驱动LED2各位独立控制译码/不译码及消隐和闪烁属性3循环左移/ 循环右移指令4具有段寻址指令方便控制独立LED564 键键盘控制器内含去抖动电路1引脚名称呼明如图3-51 2 VDD 正电源3 5 NC 悬空4 VSS 接地6 /CS 片选输入端此引脚为低电平时可向芯

51、片发送指令及读取键盘数据7 CLK 同步时钟输入端向芯片发送数据及读取键盘数据时此引脚电平上升沿表示数据有效 图 3-5 zlg72898 DATA 串行数据输入/输出端当芯片接收指令时此引脚为输入端当读取键盘数据时此引脚在读指令最后一个时钟的下降沿变为输出端9 /KEY 按键有效输出端平时为高电平当检测到有效按键时此引脚变为低电平10-16 SG-SA 段g段a 驱动输出17 DP 小数点驱动输出18-25 DIG0-DIG7数字0 数字7 驱动输出26 OSC2 振荡器输出端27 OSC1 振荡器输入端28 /RESET2控制指令7289A的控制指令分为两类:8位宽度的单字节指令控制指令和

52、16位宽度的双字节指令。1单字节指令见表-1表-1 单字节指令名称代码注释复位指令A4H将所有的显示包括所有设置的字符消隐闪烁等一起去除测试指令BFH使所有的LED全部点亮并处于闪烁状态,判断LED是否正常工作左移指令A1H显示向左移动1位包括消隐状态的显示位,但对各位所设置的消隐及闪烁属性不变。移动一次后最右边1位为空无显示右移指令A0H与左移类似,但所做移动为自左向右,移动一次后最左边1位为空循环左移A3H与左移指令不同之处在于移动后原最左边1位的内容显示于最右边循环右移A2H与循环左移指令类似,移动方向相反2双字节指令写数据且按方式0 :高字节操作码为“10000a2a1a0”,其中a2

53、、a1、a0为位地址;低字节格式为“DP×××d3d2d1d0”,其中d3、d2、d1、d0为段码,译码方式见表-2.表-2写数据按方式0译码 1000 0a2a1a0显示位DP××× d3d0LED7段显示1000 000000××× 0H9H091000 000110××× AH1000 001020××× BHE1000 001130××× CHH1000 010040××× DH

54、L1000 010150××× EHP1000 011060××× FH无显示1000 01117写数据且按方式1,高字节操作码为“11001 a2a1a0”,其中a2、a1、a0为位地址;低字节译码,显示字符与十六进制相对应,见表-3。表-3 写数据按方式1译码 1100 1a2a1a0显示位DP××× d3d0LED7段显示1100 100000××× 0H9H091100 100110××× AHA1100 101020×

55、5;× BHB1100 101130××× CHC1100 110040××× DHD1100 110150××× EHE1100 111060××× FHF1100 111173其他指令l 闪烁控制双字节指令,控制各个数码管的闪烁属性。高字节操作码为“88H,低字节为数据位“d7d0”分别控制第8个到第1个数码管的是否闪烁,0为闪烁,1为不闪烁,开机后默认不闪烁;l 消隐控制双字节指令,控制各个数码管的消隐属性。高字节操作码为“98H,低字节与段闪烁的低字节相同,1为显示,0为消隐。(4) 读键盘指令双字节指令。高字节操作码为“15H,低字节操作数为“d7d0”,表示7289A返回的按键代码,其范围是03FH无键按下时为0Xff。串行接口zlg7289A 采用串行方式与微处理器通讯串行数据从DATA 引脚送

温馨提示

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

评论

0/150

提交评论