china_54@tom.com第4章函数发生器的设计及Proteus仿真china_54@tom.com本章导读本章将介绍一种基于单片机和Proteus的函数发生器设计的方法,其中包括了系统方案的设计和各模块芯片的选型、硬件电路的设计、软件程序的编写及系统的仿真等完整的系统设计步骤。china_54@tom.com4.1设计任务书在系统开始设计之前,设计者必须要了解本设计的目的、意义,有关的要求以及整个设计的时间安排,这样才能做到有目的有计划的完成系统设计。4.1.1设计的目的与意义设计的目的:在了解单片机与函数发生器原理的基础上,利用单片机与相关芯片完成一款函数发生器的设计,并利用Proteus对系统进行仿真,验证设计的正确性与可行性。设计的意义:函数发生器是测试领域使用极其广泛的工具,它可以为测试提供各种信号源,如正弦波、方波、锯齿波等,随着数字技术与计算机技术的高速发展,有些高档的函数发生器是可编程的,即产生任意的波形。在经过本科或专科的学习后,利用单片机技术设计一款较为简单的函数发生器,将书本上的知识加以利用,不仅可以很好地巩固所学的知识,而且可以培养动手能力,为即将到来的工作生涯做准备。china_54@tom.com4.1设计任务书4.1.2设计的要求1.完成系统的架构设计,在Proteus上搭建硬件平台。2.编写相关的软件程序。3.完成系统调试,使系统能正常工作。4.1.3设计及论文的时间安排第一部分阅读相关资料(2周)。第二部分设计系统的总体方案并完成芯片的选型工作(3周)。第三部分在Proteus下完成硬件平台的搭建(3周)。第四部分编制相应的软件程序(3周)。第五部分系统各部分分开调试以及系统总体联调(3周)。第六部分完成论文写作准备答辩(2周)。china_54@tom.com4.1设计任务书4.1.4摘要本设计是利用AT89C52单片机与DAC0832设计一款可产生多种波形的函数发生器,并利用Proteus仿真软件对设计方案进行仿真,验证方案的可行性与正确性。整个设计中涉及到单片机定时/计数器、中断、按键扫描、液晶显示等知识,能有效地巩固所学知识。论文首先给出了函数发生器的不同设计方法,分析了它们的优缺点,接着给出了本文的设计方法,详细介绍了硬件电路各部分的原理、软件的代码分析及Proteus仿真软件的使用方法。在各个模块的介绍中,都给出了详尽的流程图。关键词:函数发生器,AT89C52,DAC0832,Proteuschina_54@tom.com4.2引言本课题研究来源于实践经验。本节将介绍研究背景以及本文的主要内容安排。4.2.1研究背景函数发生器是电子信息领域中必不可少的调试设备,为待调试的系统提供精确的信号,如正弦波、三角波、锯齿波、方波等等,有的函数发生器还具有调制的功能,可以进行调幅、调频、调相、脉宽调制和VCO控制。虚拟仿真软件是电子测量领域的一个大变革,它通过软件实现对数据的显示、处理与分析,大大缩小了设计的成本。Proteus就是一款功能强大,使用简便的电子仿真软件,也是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。本设计利用Proteus这款EDA软件仿真、验证基于单片机与DAC0832的函数发生器。china_54@tom.com4.2引言4.2.2本文研究的主要内容本课题利用单片机AT89C52、数模转换芯片DAC0832以及运算放大器设计了一个具有产生多种波形的函数发生器,其主要功能有:可以产生正弦波、锯齿波、方波、三角波。频率可以调节。可以显示函数发生器运行的状态。主要工作有:设计系统方案。在Proteus中搭建硬件平台。编写相关软件程序。调试运行,验证方案的正确性与可行性。china_54@tom.com4.3函数发生器方案的分析与设计函数发生器的方案设计涉及到系统的正确性与可行性,是整个设计中最为重要的环节,为了能在已有的条件下完成设计,必须要研究各个设计方法的优缺点,并对它们进行权衡与综合,既要能满足设计要求,又能在已有条件下顺利完成。本章首先介绍了几种函数发生器的设计方法,并对它们的特点进行分析,然后提出一种成本低、性价比高、容易实施的方案。4.3.1函数发生器的设计方法函数发生器的设计一般有以下几种:第一种:采用分立原件或运算放大器和选频网络组成振荡器,这种方法的优点是成本低,电路简单,但是波形的精度不高、稳定性较差、不容易与数字化设备连接。第二种:运用专门的函数信号发生IC,如美国马克西姆公司的高频精密函数发生器MAX038,如图4-1所示。此类IC具备精度好、频率高等特点,能够精密的产生正弦波、方波、三角波等信号。一般专用的信号发生器芯片价格较为昂贵,这种方案适合高精度的电子测量与控制场合。第三种:采用微控制器与DA转换芯片产生所需的信号,这种方法的最大特点是系统容易与数字化设备相连,如计算机等,产生的波形精度高、稳定性好。第四种:上世纪70年代发展起了一种DDS技术,它是一种频率合成技术,采用数字信号处理模块,参照一个频率固定且精确的时钟源,产生频率、相位均可调的信号。DDS技术具有转换速度快、精度高等优点,基于此种技术的函数发生器有逐步取代传统的函数发生器之势。china_54@tom.com4.3函数发生器方案的分析与设计4.3.2总体方案设计系统的架构可以分为两部分:第一、硬件系统;第二、软件系统。硬件系统由微控制器及其外围电路、键盘输入接口、液晶显示接口等组成。软件系统包括键盘识别程序、液晶显示程序、波形形成程序等。系统架构图如下图所示。波形发生电路微控制器软件系统键盘输入模块液晶显示模块china_54@tom.com4.4系统硬件各模块设计硬件平台由单片机最小系统、键盘输入电路、液晶显示电路、D/A转换电路等部分组成,本节将对各个模块作详细的介绍。4.4.1单片机最小系统单片机、时钟电路、电源电路、复位电路构成了单片机最小系统。4.4.2键盘输入电路在一个需要人机交互的电子系统中,键盘是必不可少的输入装置。键盘是有许多按键开关组成的,一旦按键按下,单片机I/O口的电平会发生变化,单片机通过判断I/O口电平的变化来识别按键。在单片机的接口应用中,键盘接口一般分为两种:一种是独立式键盘,一种是矩阵式键盘。4.4.3液晶显示电路1.液晶显示原理简介2.通用1602字符液晶3.通用1602液晶与单片机的连接4.4.4D/A转换电路1.DAC0832数模转换芯片简介2.单片机与DAC0832的连接china_54@tom.com4.4系统硬件各模块设计4.4.5Proteus仿真平台的建立1.Proteus简介Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件,它不仅具有其他EDA工具软件的仿真功能,还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具之一。Proteus是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086和MSP430等,2010年增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。china_54@tom.com4.4系统硬件各模块设计课程设计、毕业设计是学生走向就业的重要实践环节。由于Proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台,所以如果掌握Proteus的使用方法,对于设计将会有极大的帮助。这里简要的介绍Proteus在单片机仿真中的使用方法。2.Proteus下系统平台的建立(1)器件的选择(2)器件的放置(3)器件的连接china_54@tom.com4.5系统软件各模块设计本节详细介绍了系统软件设计的详细过程,包括软件设计流程图、各模块程序的设计等。4.5.1软件设计流程图软件设计流程图如图所示。有按键?开始键值判断设置频率正弦波锯齿波三角波方波输出波形显示波形类型与频率是否china_54@tom.com4.5系统软件各模块设计4.5.2键值判断程序在键值判断的程序中有两个函数,分别是keydown()与keyscan(),keydown()的功能是判断是否有按键按下,keyscan()的功能是通过扫描键盘来得出键值。4.5.3波形产生与转换程序前面介绍了DAC0832的工作原理,单片机应从P2口发送数据,这里将数据传输指令放在定时器0的中断函数中,通过定时器的定时时间来控制周期。4.5.4液晶显示程序sbitlcden=P3^5;sbitlcdrw=P3^6;sbitlcdrs=P3^7;4.5.5频率设置函数频率设置函数的功能是通过改变定时计数器的定时时间来改变输出函数的周期,从而改变频率。write_Fre()函数的功能是在液晶上显示当前频率的值。函数的周期约等于256个定时时间,所以可以算出TH0,TL0的值。4.5.6主函数程序china_54@tom.com4.6系统调试方法及性能测试掌握调试系统的方法对于设计的效率至关重要,本节详细介绍了基于Proteus仿真平台的系统调试方法,并对性能进行了测试。4.6.1系统调试方法在keil中将代码编译,产生hex文件。打开Proteus文件,双击单片机,在ProgramFiles中选择对应的hex文件加载到单片机中,为了能看到输出的波形,需要添加虚拟示波器,选择“VirtualInstrumentsMode”中的“OSCILLOSCOPE”,Proteus中的模拟示波器是4通道的,使用方法与实际的示波器基本相似,点击仿真工具栏的按钮“play”,即可开始仿真。4.6.2系统性能测试系统运行后,单击相应的按键,系统即可输出正弦波、锯齿波、三角波、方波。china_54@tom.com4.7本章小结本章介绍了一种基于单片机的函数发生器的设计,并利用Proteus仿真平台对设计进行了仿真,在设计过程中包括了器件的选择、硬件设计、软件设计、和系统的仿真调试等完整的开发设计的过程,希望对读者的毕业设计有所帮助。china_54@tom.com