基于89C52单片机的波形发生器.doc_第1页
基于89C52单片机的波形发生器.doc_第2页
基于89C52单片机的波形发生器.doc_第3页
基于89C52单片机的波形发生器.doc_第4页
基于89C52单片机的波形发生器.doc_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

摘要摘 要基于89C52单片机的波形发生器。其设计简单、性能优好,可用于多种需要低频信号的场所,具有一定的实用性,在现实生活中已经得到广泛的运用硬件设计是采用89C51单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(LM324)、和独立联接式按键。软件设计是通过两个中断分别控制波形的选择和幅值的选择,其中INT1比INT0的优先级要高,因此幅值的程序就放在INT1的子程序中,这样就能先判断是否要调幅值再判断输出哪种波形。设计基本完成任务,产生正弦波、三角波、方波和锯齿波四种波形。可以通过键盘选择波型和五个幅值的调整。另外,我采用KEIL和PROTEUS去仿真,以达到验证作品功能的目的。关键词: 波形发生器,单片机89C52,DAC0832IIIABSTRACTABSTRACTBased on the 89C52 microcontroller waveform generator. Its simple design, excellent performance, and can be used for a variety of low-frequency signals need a place, has a certain practical, in real life has been widely used89C51 microcontroller hardware design is used as the control core, external digital / analog converter (DAC0832), operational amplifiers (LM324), and independent connection type button.Software design is interrupted by two separate control waveform selection and the choice of amplitude, which INT1 INT0 priority than the higher, the amplitude of the procedures to a subroutine on the INT1, so you can first determine whether AM and then determine what the value of the output waveform.Basic design is completed the task, resulting in sine wave, triangle wave, square wave, and saw-tooth waveforms of four. You can choose the keyboard and five-wave amplitude adjustment. Also, I used to go KEIL and PROTEUS simulation capabilities in order to achieve the purpose of verification work.KEY WORDS: Waveform generator, Microcontroller 89C52, DAC0832目录目录摘 要IABSTRACTIII第一章 绪论11.1选题背景及意义11.2国内外发展现状11.3 本论文所做的工作21.4 本论文的结构安排2第2章系统总体设计32.1系统总体框图设计32.2系统的主要性能指标32.3总体方案设计32.4元器件的选择3第3章系统硬件设计93.1资源分配93.2最小单片机系统93.3各模块电路的设计103.3.1单片机与D/A连接图103.3.2 按键电路103.3.3电流电压转换电路(MC1458)11第4章系统软件设计134.1单片机软件开发系统134.2主程序模块174.3锯齿波程序模块194.4三角波程序模块204.5正弦波程序模块214.6方波程序模块22第5章 波形发生器的调试255.1软件仿真255.2硬件电路测试305.3结果分析315.4调试小结31第六章 结论与展望336.1 结论336.2 展望33致 谢35参考文献37附录1 Proteus原理图39附录2 源程序41附录3 外文翻译4561绪论第一章 绪论1.1选题背景及意义单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。波形发生器是一种数据信号发生器,在调试硬件时,常常需要加入一些信号,以观察电路工作是否正常。用一般的信号发生器,不但笨重,而且只发一些简单的波形,不能满足需要。例如用户要调试串口通信程序时,就要在计算机上写好一段程序,再用线连接计算机和用户实验板,如果不正常,不知道是通讯线有问题还是程序有问题。用E2000/L的波形发生器功能,就可以定义串口数据。通过逻辑探勾输出,调试起来简单快捷。基于单片机的简易波形发生器是一种常用的信号源,它广泛地应用在电子技术实验、自动控制系统和其他科研领域。目前, 简易波形发生器的构成方法有很多,例如采用DDS(Direct2Digital Synthesis)型的任意波发生器、采用专用的信号发生芯片MAX038以及传统的AWG 。本设计通过分析比较后采用传统的方法来实现多功能波形发生器。借助高性能单片机运算速度高,系统集成度强的优势,设计的这种信号发生器,比以前的数字式信号发生器具有硬件简单,理解及实现起来较容易,该方案的设计思路较为清晰,且容易对频率和幅值进行控制等优点。1.2国内外发展现状任意波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。任意波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。 近几年来,国际上任意波形发生器技术发展主要体现在以下几个方面:(1)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得任意波形发生器能应用于越来越广的领域。任意波形发生器软件的开发正使任意波形的输入变得更加方便和容易。任意波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同时可以利用一种非常强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成vf(t)形式的波形方程的数学表达式产生。各种计算机语言的飞速发展也推动了任意波形发生器软件技术的发展。目前可以利用可视化编程语言(如Visual Basic Visual C等等)编写任意波形发生器的软面板,这样允许徒手从计算机显示屏上输入任意波形,来实现波形的输入。(2)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,有在繁荣起来。不过现在的新的台式仪器的形态,和几年前的已有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。1.3 本论文所做的工作本论文主要进行了以下工作:(1)通过查阅相关资料,学习信号发生器的工作原理及了解其应用场合。(2)复习“MCS-51单片机原理及其系统设计”,掌握其接口扩展包括:显示键盘等(3)掌握单片机仿真软件keil3和Proteus的使用(4)组建基于单片机的信号发生器系统,画出总体结构框图(5)采用汇编语言编写应用程序,输出不同波形,幅度可以调节并且在示波器上显示(6)最后完成对系统测试结果的统计和分析(7)撰写论文。1.4 本论文的结构安排全文共分为六章,本章介绍本课题的研究现状和选题目的意义等;第二章介绍波形发生器设计的总体方案与论证;第三章介绍波形发生器系统硬件电路的设计;第四章介绍波形发生器系统功能的软件设计(信号产生、D/A转换等的软件设计),并给出了各个子模块的程序流程图;第五章介绍了系统的调试过程和调试结果,并对系统调试过程中出现的问题进行了分析,给出了相应的解决方案。第六章结论和展望。系统总体设计第2章系统总体设计2.1系统总体框图设计本系统是以单片机AT89C51和8位D/A转换芯片DAC0832以及8个按键盘共同实现正弦波,方波,三角波,锯齿波这四种常见波形的产生及幅值调节的功能。按钮开关单片机控制单元D/A示波器图2-1系统原理框2.2系统的主要性能指标主要功能是实现利用单片机AT89C51和8位D/A转换芯片DAC0832共同实现正弦波,方波,三角波,锯齿波这四种常见波形的发生,并且通过按键利用DAC接口实现波形发生器可以产生锯齿波、三角波、方波和正弦波等常用标准波形。将P1.0,P1.1,P1.2和P1.3分别作为这四种波的控制位,当相应的控制键按下后,出现相应的波形主要性能指标正弦波的频率范围:下限频率为0.1Hz,上限频率暂时不确定,但应尽量提高,对于四种波形它们的幅值都有五种即1V、2V、3V、4V和5V。 2.3总体方案设计方案:采用单片机(AT89S51)和数模转换芯片(DAC0832)实现波形的产生,波形的产生由程序控制,向D/A的输入端按一定的规律发送数据,经过D/A和LM324输出,通过两个中断控制不同波形的产生。此方案通过编程简化了外部电路,原理简单,容易实现。2.4元器件的选择该波形发生器有以下几部分组成:(1)控制模块(2)按键(3)采样模块三部分组成。(1)控制模块:方案:用单片AT89C51作为系统的主控核心。单片机具有体积小,使用灵活的,易于人机对话和良好的数据处理,有较强的指令寻址和运算功能等优点。且单片机功耗低,价格低廉的优点。 89S52单片机有44个引脚PLCC和TQFP方形封装形式,40个引脚的双列直插式封装形式,最常用的40个引脚封装形式及其配置如图3-1所示,各个引脚功能说明如图2-2: 图2-2 单片机GND:接地P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。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”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(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”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如表1-2所示。在flash编程和校验时,P3口也接收一些控制信号。RST:复位输入。晶振工作时,RST脚将持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚()也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可以用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。:外部程序存储器选通信号()是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,必须接GND。为了执行内部程序指令,应该接VCC。在flash编程期间,也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。(2)按键方案:采用传统的独立式按键;用传统的LED段选位选的方式进行波形的切换及显示。这种方式占用系统资源较多,并且效率低,程系编写大量而复杂。(3)采样模块:采用ADC0832DAC0832基本介绍DAC0832是双列直插式8位D/A转换器。能完成数字量输入到模拟量(电流)输出的转换。图2-3为DAC0832的引脚图。其主要参数如下:分辨率为8位,转换时间为1s,满量程误差为1LSB,参考电压(+10/span-10)V,供电电源为(+5+15)V,逻辑电平输入与TTL兼容。从图3-1中可见,在DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号 /XFER。图2-3DAC0832的引脚图图2-3中,当ILE为高电平,片选信号 /CS 和写信号 /WR1为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。此后,当 /WR1由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据DB的变化而变化。对第二级锁存来说,传送控制信号 /XFER 和写信号 /WR2同时为低电平时,二级锁存控制信号为高电平,8位的DAC寄存器的输出随输入而变化,此后,当 /WR2由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到DAC寄存器中。图2-3中其余各引脚的功能定义如下:(1) DI7DI0 :8位的数据输入端,DI7为最高位。(2) IOUT1 :模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当 DAC寄存器中数据全为0时,输出电流为0。(3) IOUT2 :模拟电流输出端2, IOUT2与IOUT1的和为一个常数,即IOUT1IOUT2常数。(4) RFB :反馈电阻引出端,DAC0832内部已经有反馈电阻,所以 RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。(5) VREF :参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10-10)V。VREF端与D/A内部T形电阻网络相连。(6) VCC :芯片供电电压,范围为(+5 15)V。(7) AGND :模拟量地,即模拟电路接地端。(8) DGND :数字量地。P3口:8位准双向I/O口,双功能复用口。ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。学习并使用ADC0832 可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。单片机对ADC0832 的控制原理:正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与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 进行单通道转换。当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。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。作为单通道模拟信号输入时ADC0832的输入电压是05V且8位分辨率时的电压精度为19.53mV。如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。系统硬件设计第3章系统硬件设计3.1资源分配软硬件设计是设计中比不可少的,为了满足功能和指标要求,现分配资源如下:1.晶振采用12MHZ2.内存分配:P0口与DAC0832的DI0-DI7数据输入;P1口的P1.0P1.3分别与四个按键相连,分别控制相应波形的输出;P1口的P1.4P1.7分别与四个按键相连,控制相应的幅值输出;P2.6和P2.7口与两片DAC0832的输入寄存器选择信号CS,输入寄存器写选通信号WR1及DAC寄存器写选通WR2和数据传送信号XFER3.中断的分配:中断INT0控制幅值 INT1控制波形3.2最小单片机系统单片机晶振电路:对于MSC-51一般的晶振频率可以在1.2MHz12MHz之间选择,这是电容C可以对应的选择10pF30pF。当使用89C55时晶振频率可以提高到24MHZ。对于本设计的电容C用30pF,晶振选用11.0592MHz。晶振电路如下图3-1所示,一条引脚接在XTAL1,另一条接在XTAL2。单片机的复位电路:为了防止程序执行过程中失步或运行紊乱,此处我们采用了上电复位及手动复位电路,电路图如下图3-1所示:图3-1最小单片机系统3.3各模块电路的设计3.3.1单片机与D/A连接图说明:图3-2所示,单片机与D/A连接是,第一片D/A的片选与P2.6口相连,则其选口地址为#0BFFFH, 第二片D/A的片选与P2.7口相连,则其选口地址为#7FFFH。图3-2D/A与单片机连接3.3.2 按键电路说明:(1)按键原理图如3-3所示,对于中断方式对波形的切换,因为INT0 优先于INT1,当按键按下时,首先判断是否有幅值输出然后判断出现相应波形,当无中断0时,即默认第二个DA转换器的参考电压为5V,在执行中断1 判断出相应的波形。图3-3按键电路图3.3.3电流电压转换电路(MC1458)(1)DA转换幅值调整原理如图3-4所示:图3-4DA转换原理图说明:实现I/V转换最简单的方法就是直接在1out1和Iout2之间跨界一电阻,这样就很容易的实现了I/V转换,但是这种方法忽略了一个阻抗问题。对于DAC0832来说,R的取值应尽可能大,能够保证获得更多的电压,对于与输出电压相连的后续电路来说,R的取值应尽可能的小,以降低输出阻抗,这两方面是矛盾的,所以这种方式欠合理。而合理的方式是应用运算放大器实现I/V转换,也解决了阻抗的问题。第一个DA的输出电压作为第二个DA的参考电压系统软件设计第4章系统软件设计4.1单片机软件开发系统Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强, 使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编 器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。 第二部分 uVision2集成开发环境 一项目管理 工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。 一个单一的uVision2工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。 uVision2包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定 微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)的特 性。uVision2可以为片外存储器产生必要的连接选项:确定起始地址和规模。二源代码编辑器 uVision2编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对C源代码进行和优化。可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。 三、断点 uVision2允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。用户启动V2调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。 在属性框(attributes column)中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区分程序中已执行和未执行的部分。 四、调试函数语言 uVision2中,你可以编写或使用类似C的数语言进行调试。 1.内部函数:如printf, memset, rand及其它功能的函数。 2.信号函数:模拟产生CPU的模拟信号和脉冲信号(simulate analog and digital inputs to CPU)。 3.用户函数:扩展指令范围,合并重复动作。Proteus软件说明proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。 编辑本段功能特点Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是: (1)原理布图 (2)PCB自动或人工布线 (3)SPICE电路仿真 革命性的特点 (1)互动的电路仿真 用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 (2)仿真处理器及其外围电路 可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型 上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。 编辑本段功能模块(1)智能原理图设计(ISIS)丰富的器件库:超过27000种元器件,可方便地创建新元件; 智能的器件搜索:通过模糊搜索可以快速定位所需要的器件; 智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间; 支持总线结构:使用总线器件和总线布线使电路设计简明清晰; 可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。 (2)完善的电路仿真功能(Prospice)ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真; 超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件; 多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入; 丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等; 生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动; 高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析; (3)独特的单片机协同仿真功能(VSM)支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器; 支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信; 实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真; 编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试; (4)实用的PCB设计平台原理图到PCB的快速通道: 原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计; 先进的自动布局/布线功能:支持器件的自动/人工布局;支持无自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理; 完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览; 多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。 编辑本段资源丰富(1)Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。 (2)Proteus可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。(3)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。 (4)Proteus可提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。 编辑本段电路仿真在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。 PROTEUS 是单片机课堂教学的先进助手。 PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。 课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台 随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。 使用Proteus 软件进行单片机系统仿真设计, 是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们使用 Proteus 开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,Proteus 有较高的推广利用价值。根据功能,系统软件设计分成几个模块编程:主程序模块,锯齿波程序模块,三角波程序模块,正弦波程序模块,方波程序模块,延时程序模块。4.2主程序模块(1)主程序流程图说明:通过中断0首先判断是否要调整幅值,然后在看中断0 判断输出哪种波形开 始判断是否有中断1否是输出各种波形先调整一下幅值判断是否有中断0否是图4-1主程序流程图(2)波形流程图说明:下面要实现的各种波形通过开关的切换过程的流程图,按下一个开关通过P1.0为0则输出三角波,P1.1为0输出方波,P1.2为0输出梯形波,P1.3为0输出锯齿波,P3.4为1输出正弦波。 开始P1.0按下了? 输出三角波P1.2按下了?P1.1按下了?P1.3按下了? N N N中断断 NYYYY 输出方波 输出锯齿波 输出正弦波 图4-2锯齿波形选择流程图4.3锯齿波程序模块(1)程序流程图说明:锯齿波产生首先将DAC0832口地址至为7FFFH,然后将00H送入寄存器A中,DAC0832输出A中的内容,当A中的内容等于FFH返回开始,当A中的内容不为FFH时,A中的内容累加,从而输出波形。设置初值A为00HMOV DPTR,#7FFFHMOVX DPTR,A INC A判断A是否已满了?否重新设置初值A为00H是开 始图4-3锯齿波程序流程图4.4三角波程序模块(1)程序流程图说明:三角波产生首先将DAC0832口地址至为7FFFH,通过A中数值的加一递升,当A中的内容为0时,与0FFH相比,相等时A中的内容减一递减,从而循环产生三角波。给A设置初值00HMOV DPTR,#7FFFHMOVX DPTR,AINC A判断A是否满?否是DEC A判断是否等于初值?是开 始否图4-4 三角波程序流程图4.5正弦波程序模块(1)程序流程图说明:计算0Pi/2区间N/4个离散的正弦值,根据对称关系,复制Pi/2 Pi区间的值,将0Pi区间各点根据求补即得Pi2Pi区间各值,将得到的这些数据根据所用DAC的位数进行量化,得到相应的数字值,正弦波波形通过查表指令得出图4-5锯齿波程序流程图4.6方波程序模块(1)程序流程图说明:方波产生首先将DAC0832口地址至为7FFFH,当A中的内容为0时,输出对应模拟量,然后延时,当A中的内容为0FFH时,同样输出对应模拟量,再延时相同时间,从而得到方波。开 始给A设置初值FFHMOV DPTR,#7FFFH MOVX DPTR,A调用延时子程序再给A设置00HMOVX DPTR,A调用延时子程序图4-6方波程序流程图波形发生器的调试第5章 波形发生器的调试简单系统硬件的调试通常采用载入简单的测试程序并运行,使用数字表或示波器观察;对有些硬件例如键盘可直接编入程序观察程序执行状态。 5.1软件仿真对于键盘是,我们应当首先确定每个按键的作用,只有当我们确定键之后,才可以对我们所要设置的按键的功能通过真正做到使软硬件相结合在一起,实现我们的目标功能。 对于设计的八个按键及功能见表5-1表 5-1KEY作用K0三角波K1方波K2锯齿波K3正弦波K4幅值1VK5幅值2VK6幅值3VK7幅值4V对整个系统用proteus仿真后得到的结果如下(1)方波仿真图如图5-1(a)所示 如图5-1(b) 所示输出幅值为1V 输出幅值为2V周期为250ms 周期为250ms时间档为 100ms 时间档为 100ms幅值档为 1V 幅值档为 1V 图5-1(a) 图5-1(b)如图5-1(c)所示 如图5-1(d)所示输出幅值为3V 输出幅值为4V周期为250ms 周期为250ms时间档为 100ms 时间档为 100ms幅值档为 1V 幅值档为 1V 图5-1(c) 图5-1(d)如图5-1(e)所示输出幅值为5V周期为250ms时间档为 100ms幅值档为 1V图5-1(e)(2)三角波仿真图如图5-2(a)所示 如图5-2(b)所示输出幅值为1V 输出幅值为2V周期为2.5ms 周期为2.5ms时间档为 1ms 时间档为 1ms 幅值档为1V 幅值档为 1V 图5-2(a) 图5-2(b) 如图5-2(c)所示 如图5-2(d)所示输出幅值为3V 输出幅值为4V周期为2.5ms 周期为2.5ms时间档为 1ms 时间档为 1ms幅值档为 1V/格 幅值档为 1V 图5-2(c) 图5-2(d)如图5-2(e)所示输出幅值为5V周期为2.5ms时间档为 1ms幅值档为 1V图5-2(e)(3)正弦波仿真图如图5-3(a)所示 如图5-3(b)

温馨提示

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

评论

0/150

提交评论