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

下载本文档

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

文档简介

1、编号: 桂林电子科技大学信息科技学院毕业设计(论文)说明书题 目:基于单片机的波形发生器的设计 系 别: 信息工程系 专 业: 通信工程 学生姓名: 李润杰 学 号: 0951100210 指导教师: 梁红玉 职 称: 讲师 题目类型:¨理论研究 þ实验研究 ¨工程设计 ¨工程技术研究 ¨软件开发 ¨应用研究2013年5月24日摘 要本论文主要介绍基于单片机的波形发生器,该系统是基于AT89S52单片机的低频信号发生器。主要采用AT89S52单片机作为控制核心,外围电路包括数字/模拟转换电路(DAC0832)、运放电路(TL082CP

2、)、按键和液晶等。同时用液晶显示其对应的波的名称及频率。可产生方波、三角波、正弦波、等多种波形,波形的频率以可以通过编程,利用按键控制,可以根据需要,选择不同类型的波形输出,并且可以通过电位器调节输出波形峰峰值。单片机控制信号输出,通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产1Hz3kHz的波形。通过按键来控制三种波形的类型选择、频率变化,并通过1602液晶屏显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分。本系统具有线路简单、结构紧凑、性能优越等特点。文章给出了源代码,通过仿真测试,其性能指标达到了设计要

3、求,可用于多种需要低频信号的场所,具有一定的实用性。关键词:单片机;波形;信号发生器;DAC0832AbstractThis paper describes the waveform generator consisting of, the system was using AT89S52 microcontroller digital low-frequency signal generator. Control using AT89S52 microcontroller as the core, peripheral circuits including digital analogue

4、conversion circuit (DAC0832), and discharge (TL082CP), the keypad and LCD. Both LCD displays the name of the corresponding wave and frequency. To produce square wave, triangle wave, sine wave, such as a variety of waveforms. Waveform frequency can also be controlled through programming and keys, and

5、 you can adjust the waveform peaks peaks. Can select different types of waveform output.Single chip microcomputer control signal output through DAC0832 DA converter to convert the digital signal into an analog signal, filter amplifier, and ultimately by the oscilloscope display, 1Hz-3kHz waveform. T

6、o control three wave types by pressing select, change, and by 1602 LCD display their types and values. Systems generally include mode conversion and the signal generator parts, and liquid crystal display parts in three parts.The system has simple lines, compact, excellent performance characteristics

7、. Article gives a source, through simulation tests, their performance meets the design requirements, places of low-frequency signals can be used for a variety of needs, has a certain relevance.Key words: SCM; waveform;signal generator;DAC0832目 录引言11 设计课题概况21.1 课题背景及重要意义21.1.1课题的背景21.1.2课题的意义21.2 课题设

8、计的目的31.3 本论文所做的工作32 设计的主要内容及性能要求42.1设计主要内容42.2 基本内容和性能要求42.3 创新部分43 方案论证与比较43.1 参考方案及分析43.2 方案选择及理由54 整体设计思路及原理54.1 方案介绍54.1.1毕业设计题目要求54.1.2方案介绍54.2 设计原理64.2.1系统设计原理64.2.2系统设计框图64.2.3硬件原理64.2.4软件原理65 硬件设计部分75.1主要器件介绍75.1.1AT89S52单片机75.1.2数模转换芯片DAC083285.1.3液晶显示屏LCD160285.1.4双运算放大器TL082CP95.2 单元电路设计1

9、05.2.1供电电路的设计105.2.2单片机最小系统电路的设计105.2.3主控电路设计115.2.4数/模转换电路设计125.2.5运算放大电路及波形输出电路125.2.6按键接口电路135.2.7时钟电路135.2.8 LCD1602液晶显示屏电路146 软件设计部分146.1 软件部分设计方案146.2 单片机开发所使用的软件156.2.1Keil C51软件介绍156.2.2uVision4集成开发环境介绍166.2.3编辑器和调试器166.2.4仿真软件Proteus介绍166.3 系统程序流程图176.4 软件部分主要模块设计186.4.1三种波形产生程序186.4.2主程序19

10、7 系统测试与误差分析207.1 测量仪器及测试说明207.2 仿真测试207.2.1仿真电路设计207.2.2仿真测试207.2.3仿真结果总结257.3 实物测试267.3.1测试连接框图267.3.2测试数据267.3.3测试结果总结287.4误差分析298 问题及解决方法299 总结32谢 辞34参考文献35附 录36附录1 基于单片机的波形发生器原理图36附录2 基于单片机的波形发生器PCB图36 桂林电子科技大学信息科技学院毕业设计(论文)说明书 第36页 共36页引言随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速发展,促使信号发生器中了增多,性能提高。尤其随着7

11、0年代微处理器的出现,更促使信号发生器向着自动化、智能化方向发展。函数信号发生器就是一种经常使用的信号设备,由纯粹物理器件构成的传统的设计方法存在许多弊端,如:体积较大、重量较沉、移动不够方便、信号失真较大、波形种类过于单一、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等的要求。本次设计的主要目标是学习和运用单片机的C语言和汇编语言,利用单片机AT89S52和8位D/A转换芯片DAC0832共同实现正弦波、方波、三角波,这三种常见波形的发生,并且可以通过按键在一定范围内改变频率。在无标准函数发生仪器时,本设计可以作为简单的函数发生器使用。本次设计准备在成本较低廉的前提下完成,主要是

12、用AT89S52单片机和DAC0832,性能指数都不是很高,所以对此信号源的基本要求是能发生几种常见的波形:正弦波、方波、三角波,并且能够在一定的范围内改变频率。通过该课题的设计掌握以AT89S52为核心的单片机系统的软硬件开发过程和基本信号的产生原理、测量及误差分析方法同时掌握函数发生器系统的设计流程,培养我们综合运用所学的基本知识、基本理论和基本技能的能力。学习解决一般工程技术和有关专业问题的能力,学习工程设计和科学研究的基本方法,完成对所学知识的综合训练。1 设计课题概况1.1 课题背景及重要意义1.1.1 课题的背景在电子测量仪器家族中,波形发生器即函数信号发生器是一种非常重要的仪器,

13、因此它是电子系统中十分重要部件,是一种能够决定电子测试系统性能的重要关键设备。在七十年代前,波形发生器主要有两大种类:正弦信号发生器和脉冲信号发生器。正弦信号发生器只是提供正弦波信号,通常用的技术是一自由振荡器,工作频率就是输出频率,频率的范围有限,大多从几Hz到约1MHz。脉冲波发生器可产生高质量的方波和脉冲串,其频率范围一般低至1Hz,高至1GHz,它被用在数字系统中模拟或取代数字信号,如时钟,数据等。在七十年代后,微处理器的出现,运用信号处理器,A/D、D/A和软件让函数产生器的功能扩大,能产生更复杂的波形。例如衰减震荡波,随机脉冲波,指数形脉冲等等。那时的信号处理器都是专门用于信号处理

14、的微处理器,不过时钟频率只有12MHZ,A/D和D/A一般在8位左右,内部存储器大约2K,所以能够产生的正弦波的等效频宽一般不会超过1MHZ,想要获得比较平滑和失真度低的波形,其重复频率不能超过10KHZ,当时用模拟的方式产生特殊波形,重复频率可以达到110MHZ,且波形完整性好,用数字电路的函数发生器尚且处于并发阶段,正式产品还不多。八十年代情况有很大变化,伴随着现代信息事业的飞速发展,测试对象开始不断丰富,现代通信系统以及电子系统对测试系统提出了更高的要求,进而对信号发生器也提出了越来越高的要求,需要通过模拟工作现场的情况来对产品进行测试。然而工作现场的信号通常是多种多样的,传统模拟信号的

15、发生器很显然是不能满足需要的,这时就非常需要一种能够产生用户自定义的波形的仪器。近年来,一种较新的电子测量仪器任意的波形发生器出现了,它可以视为函数发生器的一款换代产品。任意波形发生器功能远比函数发生器强,在前文讨论的难于产生的或不能产生的波形,都可以用任意波形发生器。自然它也可以用来产生前面讨论的波形,但实际应用中还利用发生器来模拟更加复杂的信号,甚至信号中的缺陷,都可利用控制来模拟,此外,任意波形发生器还可产生瞬变的信号如阻尼正弦波等,它对存在的公众的波形都可以模拟,只要可以用数字形式存储,并送进波形存储器的波形都能把他们模拟出来。1.1.2 课题的意义波形发生器是一种比较常用的信号源,在

16、自动控制的系统设计、调试以及电子实验过程中,常常会遇到需要不同频率的正弦波、方波、三角波等信号作为信号源。目前我国生产的波形发生器大多是利用分立元件组成的,再根据具体的需要加入积分电路等构成正弦、矩形波、三角等波形发生器。这种波形发生器输出频率范围较窄且电路设计参数设定相对繁琐,其频率的大小测量往往需要利用硬件电路的切换来实现不同频率范围值的测量,电路设计复杂、操作不便,而体积大,可靠性、准确性都相对较差,不能满足科研、生产的要求。伴随大规模集成电路及弹片机的迅速发展,提供了仪器的更新换代可能性。目前利用单片机组成的信号发生器进行一系列实地测试和调试,结果表明,完全可以代替以往的模拟电路。在以

17、上的基础上,怎样利用单片机进行控制,那么仪器的准确度和功能将有一个飞跃,就成为多功能智能波形发生器,此仪器电路结构简单,虽然性能指标及功能赶不上标准信号发生器,但满足通常的实验要求是没有问题的,并且它的成本低、体积小,更加容易被大家接受,而且还可作为电子产品维修员的重要随身设备之一。利用单片机的运算和存储功能,可以编制一些以提高准确度,增强功能的软件,对波形发生器的准确度提高、体积的缩小以及功能的加强有着重大的影响。1.2 课题设计的目的(1)利用所学单片机机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、提高我们的综合应用能力。(2)我们这次的课程设计是以单片机为基础,设计并开发能输出多

18、种波形(正弦波、三角波、锯齿波、方波、梯形波等)且频率、幅度可变的波形发生器。(3)掌握各个接口芯片(如0832等)的功能特性及接口方法,并能运用其实现一个简单的单片机应用系统功能器件。(4)在平时的学习中,我们所学的知识大都是课本上的,在机房的练习大家也都是分散的对各个章节的内容进行练习。因此,缺乏一种系统的设计锻炼。在课程所学结束以后,这样的课程设计十分有助于学生的知识系统的总结到一起。(5)通过这几个波形进行组合形成了一个波形发生器,使得我对系统的整个框架的设计有了一个很好的锻炼。这不仅有助于大家找到自己感兴趣的题目,更可以锻炼大家单片机知识的应用。1.3 本论文所做的工作本论文主要进行

19、了以下工作:(1)通过查阅相关资料,学习信号发生器的工作原理及了解其应用场合。(2)复习单片机原理及其系统设计,掌握其接口扩展包括:显示键盘等(3)掌握单片机仿真软件keil4和Proteus的使用(4)组建基于单片机的信号发生器系统,画出总体结构框图(5)采用C语言编写应用程序,输出不同波形,幅度可以调节并且在示波器上显示(6)最后完成对系统测试结果的统计和分析(7)撰写论文。2 设计的主要内容及性能要求2.1设计主要内容该设计电路适用于通信工程专业所涉及到的有关实验,还可用于科研、技术开发等工作。在整个系统设计中,电流到电压的转化是系统需要解决的核心问题,因为DAC0832输出的是2路电流

20、信号,而对应的单片机输入信号是电压信号。波形发生器电路包含3个部分的设计:(1)是如何通过单片机和外围信号发生芯片的组合完成波形发生功能的。(2)是如何设计外围电路和单片机的接口电路的。(3)是如何编写控制单片机进行波形发生的单片机程序。因此,系统可分为3个功能模块:(1)单片机系统:控制外围的AT89S52器件,完成功能函数信号的输出。(2)外围电路:实现外围的芯片和单片机之间的接口电路。(3)C52程序:编写单片机控制的接口程序,实现单片机的函数信号输出功能。2.2 基本内容和性能要求(1)设计一款能够产生3种波形的波形发生器;(2)设计波形选择按钮;(3)通过显示屏显示波形的类型;(4)

21、频率范围在1Hz到3000Hz;(4)其他功能(创新部分)。2.3 创新部分(1)波形频率调节增减调节(通过按键);(2)波形幅值调节(通过精密可调电位器);(3)停止按键的。3 方案论证与比较3.1 参考方案及分析方案1:用纯硬件方法设计波形发生器,波形发生器的设计主要采用运算放大器及分立元件来实现。实现的波形相对比较单一,主要为正弦波、方波和三角波。其工作原理也相对简单:首先是产生正弦波,接着通过波形变换(正弦波经比较器产生方波,方波通过积分器变为三角波)实现方波及三角波。在各种波形后增加一级放大电路,可以使输出的波形幅度达到要求,通过开关电路来实现不同的输出波形之间的切换,改变电路的详细

22、参数就可以实现频率、幅度及占空比的改变。通过对电路结构的优化和所用器件的严格选择就可以提高电路频率的稳定性及准确度。其优点是:电路简单,利用模电知识,不需要编程,缺点是频率不高,频率的调节不方便,波形不稳定,不易调试。方案2:利用专用直接数字合成DDS芯片的波形发生器:能产生任意波形并达到很高的频率。就合成信号的质量而言,专用DDS集成芯片由于采用了特定的集成工艺,内部数字信号消抖很小,输出信号的指标较高。专用DDS集成芯片通常设有与单片机连接的并行接口或串行接口,编程简单方便。但缺点是:设计成本较高,电路设计相对复杂。方案3:采用AT89S52单片机和DAC0832芯片,直接连接独立按键和1

23、602液晶显示屏。该种方案优点是:能充分利用AT89S52单片机的各个I/O口,而不在多用其它芯片,从而减小了系统的成本。也对按照系统便携式低频信号发生器的要求所完成。占用空间小,使用芯片少,低功耗。通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过编程,利用按键来实现频率的变换。3.2 方案选择及理由综合考虑,方案3各项性能和指标都优于其他几种方案,能使输出频率有较好的稳定性,充分体现了模块化设计的要求,而且这些芯片及器件均为通用器件,在市场上较常见,价格也低廉,样品制作成功的可能性比较大,所以本设计采用方案3。4 整体设计思路及原理4.1 方案介绍4.1.1毕业设计

24、题目要求单片机AT89S52采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产1Hz3kHz的波形。通过键盘来控制三种波形的类型选择、频率变化,并通过液晶屏1602显示其各自的类型以及数值。4.1.2方案介绍采用软硬件结合的方法,利用AT89S52单片机和DAC0832芯片,直接连接独立按键和1602液晶显示屏。通过单片机控制该系统的外围电路,构成函数信号发生器,波形的产生是通过单片机执行波形发生程序,向D/A转换器的输入端按一定规律发送数据,从而在D/A转换电路的输出端得到相应的波形,波形的频率可

25、以用程序改变,加上按键控制和液晶显示,可以通过键盘设定所需要的波形频率及波形类型,并在液晶上显示。该种方案优点是:能充分利用AT89S52单片机的各个I/O口,而不在多用其它芯片,从而减小了系统的成本。也对按照系统便携式低频信号发生器的要求所完成。占用空间小,使用芯片少,低功耗。通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过编程,利用按键来实现频率的变换。4.2 设计原理4.2.1系统设计原理数字信号能通过数模转换器再转换成模拟信号,因此就可以通过产生数字信号然后再转换成模拟信号的方法来实现,AT89S52单片机原本就是一个较为完整的微型计算机,且具有组成微型计算机

26、各部分的部件:随机存储器RAM、中央处理器CPU、I/O接口电路、只读存储器ROM、定时器/计数器和串行通讯接口等,只要将单片机再配置按键、接口和液晶显示屏、数模转换和放大输出电路等,便可以构成基于单片机的函数信号发生器。AT89S52是整个函数信号发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从按键接收数据,进行各种功能的转换和信号幅度调节。当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。单片机键盘电路显示电路复位电路数/模转换电路放大电路波形输出4.2.2系统设计框图图4-1总体框图4.2.3硬件原理将AT89S52单片机的8位P0口与D/A0

27、832 8位数模转换芯片相连,将单片机产生的数字信号转换成模拟信号,模拟信号经运算放大器放大后可由示波器观测到波形。显示部分用1602液晶显示屏显示,1602液晶显示屏数据端与P1口相连,位选端与P2口相连。此函数发生器主要由一片AT89S52单片机、一片DAC0832数/模转换器、一片运算放大器TL082CP、1602液晶显示屏以及5个独立按键构成。4.2.4软件原理软件部分:主要是波形数据的存储、波形数据的选择、波形周期大小的调整,通过程序得到各种波形。波形参数存入sine_tab(正弦波)、triangle_tab (三角波)和square _tab(方波)三个数组中,波形的选择通过独立

28、按键,每按一次按键切换一个波形,周期的改变采用调整定时计数初值来实现,由独立按键来调整周期。单片机顺序读取存储在各波形数组中的波形数据,将波形数据经P0口送到D/A数模转换芯片得到模拟信号。5 硬件设计部分5.1主要器件介绍图5-1 芯片管脚5.1.1AT89S52单片机(1)芯片介绍基本组成部分: 一个8位的CPU 128B或256B单元内数据存储器(RAM) 4KB或8KB片内程序存储器(ROM或EPROM) 4个8位并行I/O接口P0P3。 两个定时/计数器。 5个中断源的中断管理控制系统。 一个全双工串行I/O口UART(通用异步接收、发送器)。 一个振荡器和时钟产生电路。(2)AT8

29、9S52单片机的管脚功能如下(如图5-1所示)VCC:供电电压, GND:接地。 P0口:P0口为一个8位开路双向I/O口。当P1口的管脚第一次写1时,被定义为高阻输入。P0用于外部程序数据存储器,它能被定义成数据/地址的第八位。当FIASH编程时,P0端口作为原码输入口,在FIASH进行校验时,P0端口输出原码,这时P0外部必须被拉高。 P1口:P1端口是在单片机内部提供一个上拉电阻的8位双向I/O口,P1端口缓冲器可以接收输出4TTL门电流。P1端口管脚写入1后,就被内部上拉为高,可以用作输入,P1端口被外部下拉成低电平时,将会输出电流,这是因为内部上拉的缘故。当FLASH编程和校验时,P

30、1端口作为第8位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电

31、流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。5.1.2数模转换芯片DAC0832(1)芯片介绍DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器。DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。DAC0832的数字量是用二进制代码按数位组合起来的,每一位代码都有一定的权。为了将数字量转换成为模拟量,必须将每一位的代码按其权的大小转换成相应的模拟量,然后将这些模拟量相加,即得到与数字量成正的总模拟量,从而实现数字/模拟转换。本次课题

32、设计所使用的D/A转换芯片为DAC0832。DAC0832是使用非常普遍的8位D/A转换器。(2)DAC0832的管脚功能如下(如图5-2所示): 图5-2数模转换芯片DAC0832管脚图D0D7:数字信号输入端。ILE:输入寄存器允许,高电平有效。CS:片选信号,低电平有效。WR1:写信号1,低电平有效。XFER:传送控制信号,低电平有效。WR2:写信号2,低电平有效。IOUT1、IOUT2:DAC电流输出端。RfB:是集成在片内的外接运放的反馈电阻。 VREF:基准电压(-1010V)。VCC:是源电压(+5+15V)。GND:地。5.1.3液晶显示屏LCD1602(1)器件介绍LCD16

33、02液晶显示屏也叫1602字符型液晶,这是一种专门用于显示数字、字母、符号等的点阵型液晶显示模块。由若干个5X7或5X11等点阵字符位组成,每一个点阵字符位都能够显示一个字符,每位之间都有一个点距的间隔,并且每行之间也都有间隔,起到了字符间距以及行间距的作用。工作电压为3.3V或5V,对比度可以调节,内含复位电路。提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能。有80个字节显示数据存储器DDRAM,内建有192个5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器CGRAM。其优点是:微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗

34、应用系统中。(2)LCD1602的管脚功能如下(如图5-3所示):图5-3 LCD1602的管脚图第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0是液晶显示器对比度调整端,在接正电源时对比度最弱,接地电源时对比度是最高(对比度过高时就会 产生“鬼影”,使用时可以通过一个10K的电位器来调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平1时进行读操作,低电平0时进行写操作。第6脚:E(或EN)端是使能(enable)端,高电平1时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:

35、空脚或背灯电源。15脚为背光正极,16脚为背光负极。5.1.4双运算放大器TL082CP(1)芯片介绍运算放大器,英文描述 Operation Amplifier(OA),是应用非常广泛的一类线性集成电路,其种类繁多。在运用方面,不仅仅可以把微弱信号放大,还可以作为反相器、电压比较器、电压跟随器、加法器、积分器、微分器等等,所以他被称为运算放大器。(2)双运算放大器TL082CP管脚功能如下:第1脚:运放A输出端;第2脚:运放A负输入端;第3脚:运放A正输入端;第4脚:负电源电压;第5脚:运放B正输入端;第6脚:运放B负输入端;第7脚:运放B输入端;第8脚:正电源电压。5.2 单元电路设计5.

36、2.1供电电路的设计作为函数信号发生器,需要电源输入,大多情况下,没有+/-12V的直流电源,本课题,又没有要求需要制作电源模块。因此设计两种供电方式:(1)通过单片机的下载口进行供电。单片机下载口要求输入+/-5V的电源,给单片机供电,此供电,能够满足运行单片机,下载程序,驱动LCD1602液晶显示屏,但是无法使TL082CP运算放大芯片工作。(2)通过外部供电(如图5-4所示)。设计了+/-12V直流电源输入端口,使TL082CP运算放大芯片能够正常工作,然后通过L7805CV稳压芯片,输出+/-5V的电压供AT89S52单片机使用。这样设计的好处是:降低制作成本、电路复杂程度,提高制作效

37、率,更为便携图5-4 外部供电电路原理图5.2.2单片机最小系统电路的设计(1)单片机晶振电路单片机外围的晶振电路是通过单片机的第18(XTAL1),19(XTAL2)引脚接入,XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。对于AT89S52一般的晶振频率可以在12MHz35MHz之间选择,这时电容C可以对应的选择10pF30pF。对于本设计的电容C用30pF,晶振选用12MHz。晶振电路解法图3-1,一条引脚接在XTAL1,另一条接在XTAL2。(2)单片机的复位电路RST:复位输入。晶振工作时,RST脚将持续2个机器周期高电平将使单片机复位。

38、计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。为了防止程序执行过程中失步或运行紊乱,此处我们采用了上电复位及手动复位电路,(3)/VPP:为访问外部程序存储器控制信号。要使外部程序存储器能从0000H到FFFFH读取指令,必须接GND。接VCC,才能执行内部程序指令。在flash编程的同时,也接收5伏的VPP电压。(4)ALE/:地址锁存控制信号ALE访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚()也用作于编程输入脉冲。在一般情况下,ALE 以晶振六分之一

39、的固定的频率来输出脉冲,可以用作外部定时器或时钟使用。但是,特别强调,每次访问外部数据存储器时,ALE脉冲都将会跳过。如果有需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE仅在执行MOVX或MOVC指令时才有效。否则,ALE 将被微弱的拉高。这个ALE 使标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。图5-5 单片机最小系统电路设计原理图5.2.3主控电路设计AT89S52单处机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式的两种工作方式以及4种工作模式。在波形发生器中,将其作为定

40、时器来使用,用它来准确地确定波形的两个采样点输出之间的延迟时间。模式1采用的是16位计数器,当T0或T1被允许计数后,便从初值开始加计数,当最高位产生溢出时,便向CPU请求中断。中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。在波形发生器中,只用到片内定时器计数器溢出时产生的中断请求,即在AT89S52输出一个波形采样点信号后,接着便启动定时器,在定时器未产生中断之前,AT89S52等待,直到定时器计时结束,此时产生中断请求,AT89S52响应中断,接着输出下一个采样点信号,如此

41、循环产生所需要的信号波形6。AT89S52从P3口接收来自键盘的信号,并通过P0口输出一些控制信号,将其输入到DAC0832数模转换,滤波经TL082CP运算放大后输出,并在LCD1602液晶屏上显示相应的波形及频率值。5.2.4数/模转换电路设计由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,

42、是准模拟量的输出。DAC0832是电流型输出,在应用时外接运放使之成为电压型输出。由图5-6可知,当P13有效时,若P0口向其送的数据为00H, 则U1 的输出电压为0V;若P0口向其送的数据为0FFH时, 则U1的输出电压为-5V. 故当U1 输出电压为0V时,由公式 得:Vout = - 5V.当输出电压为- 5V时,可得:Vout = +5V,所以输出波形的电压变化范围为- 5V+ 5V. 故可推得,当P0所送数据为80H时,Vout为0V。图5-6 DAC0832数模转换电路5.2.5运算放大电路及波形输出电路DAC0832是电流型输出,在应用时外接运放使之成为电压型输出。以便于示波器

43、显示其波形及调节其幅度。所以又用到了运放,我们用到的是TL082CP,此运放采用±12V电源供电,其内部集成有2个放大器,全部用上,如果只用其中一个,那么没有用到的运算放大器接地。在运放电路中,加入一个1K的电位器,用来控制输出波形的峰峰值。图5-7运算放大电路及波形输出电路原理图5.2.6按键接口电路图5-8为按键接口电路的原理图,图中按键和AT89S52的P3口相连,通过单片机槛车,看是否有键按下,如有,则根据相应按键作出反应。其中“K2”号键作用是选择输出的函数信号即波的类型(方波、正弦波、三角波)。“K3”号键作用是增加输出信号的频率。“K4”号键作用是减小输出信号的频率。“

44、K5”号键作用是停止输出信号。图5-8 按键接口电路原理图5.2.7时钟电路AT89S52单片机有两个引脚(XTAL1,XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路,其电路图如图3.5所示。电容C1、C2对振荡频率有稳定作用,其容量的选择为30pf,振荡器选择频率为12MHz的石英晶体。由于频率较大时,三角波、正弦波、锯齿波中每一点的延时时间为几微秒,故延时时间还要加上指令时间才能获得较大的频率波形。图5-9 时钟电路原理图5.2.8 LCD1602液晶显示屏电路通过液晶1602显示输出的波形类型、频率,其电路图如下:如上图所示,1602的八位数据端接单片机的P2口,其三个使能端R

45、S、RW、E分别接单片机的P1.0P1.2。通过软件控制液晶屏可以显示波形的种类以及波形的频率。图5-10 LCD1602液晶显示屏电路原理图6 软件设计部分6.1 软件部分设计方案AT89S52单片机系列的编程语言常用的有两种,一种是汇编语言,一种是C语言。汇编语言,是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言直接同计算机的底层软件甚至硬件进行交互,它具有如下一些优点:(1)能够直接地访问与硬件相关的存储器或I/O端口;(2)能够不受编译器的限制,而对生成的二进制代码进行完全的控制;(3)能够对一些关键的代码进行更准确的控制,及时避免因线程共同访问

46、或者硬件设备共享引起的死锁;(4)能够根据特定的应用对代码做出最佳的优化,从而提高运行速度;(5)能够最大限度地发挥硬件的功能。同时,汇编语言也是一种层次非常低的语言。它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在着缺点:(1)编写的代码不易于理解,不便于维护;(2)容易产生bug,难于调试;(3)只能针对特定的体系结构和处理器来进行优化;(4)开发效率低,所用时间长且过程单调。C语言,是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。所以,它既可以作为工作系统设计语言来编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的

47、应用范围很是广泛,不仅是在软件开发上,而且各类科研工作都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。它具有如下优点:(1)语言简洁紧凑、运用灵活方便;(2)所含运算符丰富;(3)数据结构丰富;(4)为结构式语言;(5)语法限制不太严格,程序设计自由度大;(6)允许直接访问物理地址,也可以直接对硬件进行操作;(7)生成目标代码的质量高,程序执行的效率高;(8)适用范围广,可移植性好。汇编语言的机器代码生成效率很高,但可读性却并不是很强,复杂一点的程序就更不容易读懂了,而对于C语言,在大多数情况下其机器代码生成效率和汇编语言相当,其可读性和可移植性却远远超过汇编语言,并且C语言还可以嵌入

48、汇编来解决高时效性的代码编写。对于开发周期来说,中大型的软件编写用C语言的开发周期通常要远远小于汇编语言。综合以上C语言的优点,函数发生器系统的软件部分由C语言设计编程实现。6.2 单片机开发所使用的软件6.2.1 Keil C51软件介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。与汇编相比,C语言在功能、结构性、可读性、可维护性上有着明显的优势,易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体

49、会到Keil C51生成的目标代码效率非常的高,多数语句生成的汇编代码形式紧凑,容易理解。在开发大型软件时更能体现其高级语言的优势。Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,uVision和Ishell分别是C51 for Windows与for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用(IDE)本身或其它编辑器编辑C或汇编源文件。6.2.2uVision4集成开发环境介绍一个工程(project)是由源文件、开发工具选项以及编程说明三个部分组成的。 一个单一的uVision4工程能够产生一个或多个目标程序。产生

50、目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。 uVision4可以为片外存储器产生必要的连接选项:确定起始地址和规模。6.2.3编辑器和调试器 (1)源代码编辑器 uVision4编辑器包含了所有用户熟悉的基本特性。彩色语法显像和文件辩识都对C源代码进行了优化。用户可以在编辑器内调试程序,它能提供一种自然的调试环境,使用户更快速地检查和修改程序。 (2)调试函数语言 在uVision4中,用户可以编写或使用类似C的数语言进行调试。 内部函数:如printf, memset, rand及其它功能的函数。 信号函数:模拟产生CPU的模拟信号和脉冲信号(simulate an

51、alog and digital inputs to CPU)。 用户函数:扩展指令范围,合并重复动作。6.2.4仿真软件Proteus介绍(1)软件介绍Proteus是目前世界上非常著名的EDA工具,从原理图、代码调试、单片机与外围电路协同仿真,一键切换PCB的设计,真正的实现了从概念到产品完整的设计。是世界上唯一将电路的仿真软件、PCB的设计软件及虚拟模型的仿真软件三者合一的设计平台。(2)仿真功能介绍在Proteus中绘制好原理图以后,便可调入已编译好的目标代码文件:*.HEX,可在Proteus的原理图上,看到模拟的实物运行过程和状态。Proteus是单片机课堂教学的先进助手。毕业设计

52、是大学生成功的走向就业的非常重要的实践环节。因此Proteus提供了实验室中无法比拟的大量的元器件库,也提供了电路修改设计的灵活性、还有提供了实验室在数量和质量上难以比拟的虚拟仪器、仪表,同时也提供了培养学生实践精神、创造精神的平台。伴随着目前科技的发展与进步,“计算机仿真技术”已经成为许多设计部门非常重要的前期设计手段。它拥有设计灵活,过程、结果统一的特点。使设计时间大大缩短、耗资也大大的减少,降低了工程制造中的风险。由此看来在单片机开发应用中,PROTEUS也可以茯得愈来愈广泛的应用。用Proteus 软件进行单片机系统的仿真设计,是计算机多媒体技术和虚拟仿真技术相结合的综合运用,比较有利

53、于培养大学生的仿真软件的操作能力和电路设计能力;在全国大学生电子设计竞赛和单片机课程设计中,我们大多都使用 Proteus 开发环境,进行培训,在不需要较多硬件投入的条件下,大家普遍反映,对单片机的学习相比单纯学习书本知识更加容易接受、容易提高。实践证明,当使用 Proteus 进行系统仿真的开发成功之后再开始实际制作,能极大程度提高单片机系统设计的效率。因此,Proteus 有较高的利用推广价值。6.3 系统程序流程图本系统采用AT89S52单片机,用编程的方法来产生三种波形,并通过编程来切换三种波形以及波形频率的改变。具体功能有:三种波形(方波、正弦波、三角波)的输出切换;输出信号的频率调

54、节;停止输出信号等功能。软件调通后,通过编程器下载到AT89S52芯片中,然后插到系统中即可独立完成所有的控制。开始初始化有按键按下?K2按下K3按下K4按下waveform+waveform=1waveform=2waveform=3输出三角波液晶显示Triangle wave输出方波液晶显示Square wave输出正弦波液晶显示Sine wave增加输出信号频率减小输出信号频率液晶屏f增加液晶屏f减小K5按下停止输出信号NOYES软件的流程图如下:图6-1系统程序流程图6.4 软件部分主要模块设计6.4.1三种波形产生程序void triangle_out()/三角波输出 DAdata=

55、triangle_tabwavecount+;if(wavecount>64) wavecount=0;DA_S1=0; /打开8位输入寄存器_nop_(); _nop_();/给个空语句,让数据有时间输入到寄存器去,如果不给,会直接到DA_S1=1; 数据也就没有输入到寄存器DA_S1=1; /关闭8位输入寄存器void sine_out() /正弦波输出 if (wavecount > 31)wavecount = 0;elsewavecount+;DAdata=sine_tabwavecount;DA_S1=0; /打开8位输入寄存器_nop_(); _nop_();DA_S1=1; /关闭8位输入寄存器void square_out() /方波输出 judge=judge; if(judge=1) DAdata=0xff;else DAdata=0x00;DA_S1=0; /打开8位输入寄存器_nop_(); _nop_();DA_S1=1; /关闭8位输入寄存器6.4.2主程序v

温馨提示

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

评论

0/150

提交评论