




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录 i 本本 科科 毕毕 业业 设设 计计 论论 文文 题 目 简易波形发生器设计 系 别 电气与信息工程 专 业 测控技术与仪器 班 级 学 号 学生姓名 指导老师 2011 年 6 月 摘摘 要要 基于单片机的简易波形发生器是一种常用的信号源,它广泛地应用在电子技 术实验、自动控制系统和其他科研领域。 本课题硬件设计是采用 89s52 单片机作为控制核心,外围采用数字/模拟转 换电路(dac0832) 、运放电路(lm324) 、和独立联接式按键。通过 keil51 软件 进行程序的编写。以实现波形和幅值的选择。 先将设计方案采用 proteus 仿真,仿真通过以后再进行硬件的安装和调试, 结果表明:本设计基本完成任务,能够产生正弦波、三角波、方波和锯齿波四 种波形,并可以通过键盘选择波型和五个幅值的调整。 关键词: 波形发生器,单片机 89s52,dac0832 目录 iii abstractabstract a simple microcontroller-based waveform generator is a common source, which is widely used in electronic technology experiment, automatic control systems and other scientific fields. this topic is the use of 89c51 microcontroller hardware design as the control core, external digital / analog converter (dac0832), operational amplifiers (lm324), and independent connection type button. then keil51 software prepared program, selecting the wave according to waveform and amplitude first using proteus to emulate system design , when it finished start the hardware installation and commissioning, results showed that: the basic design complete the task, capable of generating sine wave, triangle wave, square wave, and saw-tooth waveforms, and you can select the wave through the keyboard type and adjust five amplitudes. key words: waveform generator, microcontroller 89s52, dac0832 目录 摘 要.ii abstractiii 第一章 绪论.1 1.1 选题背景及意义 1 1.2 国内外发展现状 1 1.3 本论文所做的工作2 1.4 本论文的结构安排2 第 2 章 系统总体设计.3 2.1 系统总体框图设计 3 2.2 系统的主要性能指标 3 2.3 元器件的选择 3 第 3 章 系统硬件设计.9 3.1 资源分配 9 3.2 单片机最小系统 9 3.3 各模块电路的设计 9 3.3.1 单片机与 d/a 连接图 .10 3.3.2 按键电路.10 3.3.3 电流电压转换电路 .11 第 4 章 系统软件设计13 4.1 单片机软件开发系统 .13 4.2 主程序模块 .17 4.3 锯齿波程序模块 .19 4.4 三角波程序模块 .20 4.5 正弦波程序模块 .21 4.6 方波程序模块 .22 第 5 章 波形发生器的调试及结果.25 5.1 软件仿真 .25 5.2 硬件电路测试 .30 5.3 结果分析 .31 目录 v 5.4 调试小结 .31 第六章 结论与展望.33 6.1 结论.33 6.2 展望.33 致 谢.35 参考文献.37 附录 1 proteus 原理图.39 附录 2 源程序 41 绪论 1 第一章第一章 绪论绪论 1.11.1 选题背景及意义选题背景及意义 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据 处理能力的中央处理器 cpu 随机存储器 ram、只读存储器 rom、多种 i/o 口和中 断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模 拟多路转换器、a/d 转换器等电路)集成到一块硅片上构成的一个小而完善的 计算机系统。 波形发生器是一种数据信号发生器,在调试硬件时,常常需要加入一些信 号,以观察电路工作是否正常。用一般的信号发生器,不但笨重,而且只发一 些简单的波形,不能满足需要。例如用户要调试串口通信程序时,就要在计算 机上写好一段程序,再用线连接计算机和用户实验板,如果不正常,不知道是 通讯线有问题还是程序有问题。用 e2000/l 的波形发生器功能,就可以定义串 口数据。通过逻辑探勾输出,调试起来简单快捷。 基于单片机的简易波形发生器是一种常用的信号源,它广泛地应用在电子技 术实验、自动控制系统和其他科研领域。 目前, 简易波形发生器的构成方法有很多,例如采用dds(direct2digital synthesis)型的任意波发生器、采用专用的信号发生芯片max038以及传统的awg 。本设计通过分析比较后采用传统的方法来实现多功能波形发生器。借助高性 能单片机运算速度高,系统集成度强的优势,设计的这种信号发生器,比以前的数 字式信号发生器具有硬件简单,理解及实现起来较容易,该方案的设计思路较为 清晰,且容易对频率和幅值进行控制等优点。 1.21.2 国内外发展现状国内外发展现状 任意波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精 度、高稳定性、可重复性和易操作性的电子仪器。任意波形发生器具有连续的 相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、 幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成 自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领 域。 近几年来,国际上任意波形发生器技术发展主要体现在以下几个方面: (1)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得 任意波形发生器能应用于越来越广的领域。任意波形发生器软件的开发正使任 意波形的输入变得更加方便和容易。任意波形发生器通常允许用一系列的点、 直线和固定的函数段把波形数据存入存储器。同时可以利用一种非常强有力的 数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成 vf(t)形 式的波形方程的数学表达式产生。各种计算机语言的飞速发展也推动了任意波 形发生器软件技术 的发展。目前可以利用可视化编程语言(如 visual basic visual c 等等)编写 任意波形发生器的软面板,这样允许徒手从计算机显示屏上输入任意波形,来 实现波形的输入。 (2)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,有在繁荣 起来。不过现在的新的台式仪器的形态,和几年前的已有很大的不同。这些新 一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比 过去的类似产品减少了一半。 1.31.3 本论文所做的工作本论文所做的工作 本论文主要进行了以下工作: (1)通过查阅相关资料,学习信号发生器的工作原理及了解其应用场合。 (2)复习“mcs-51 单片机原理及其系统设计” ,掌握其接口扩展包括:显示 键盘等 (3)掌握单片机仿真软件 keil 和 proteus 的使用 (4)组建基于单片机的信号发生器系统,画出总体结构框图 (5)采用汇编语言编写应用程序,输出不同波形,幅度可以调节并且在示波 器上显示 (6)最后完成对系统测试结果的统计和分析 (7)撰写论文。 1.41.4 本论文的结构安排本论文的结构安排 全文共分为六章,本章介绍本课题的研究现状和选题目的意义等;第二章 介绍波形发生器设计的总体方案与论证;第三章介绍波形发生器系统硬件电路 的设计;第四章介绍波形发生器系统功能的软件设计(信号产生、d/a 转换等 的软件设计) ,并给出了各个子模块的程序流程图;第五章介绍了系统的调试过 程和调试结果,并对系统调试过程中出现的问题进行了分析;第六章结论和展望。 系统总体设计 3 第第 2 2 章章 系统总体设计系统总体设计 2.12.1 系统总体框图设计系统总体框图设计 通过查阅相关的资料,本设计采用单片机(at89s52)和数模转换芯片 (dac0832)实现波形的产生,波形的产生由程序控制,向 d/a 的输入端按一 定的规律发送数据,经过 d/a 和 lm324 输出,通过两个中断控制不同波形的产 生。总体框图如图 2-1 所示,此方案通过编程简化了外部电路,原理简单,容 易实现。使用 8 个按键共同实现正弦波,方波,三角波,锯齿波这四种常见波 形的产生及幅值调节的功能。 按 钮 开 关 单 片 机 控 制 单 元 d/a 示 波 器 图 2-1 系统原理框图 2.2.2 2 系统的主要性能指标系统的主要性能指标 主要功能是实现利用单片机 at89s52 和 8 位 d/a 转换芯片 dac0832 共同实 现正弦波,方波,三角波,锯齿波这四种常见波形的发生,并且通过按键利用 dac 接口实现波形发生器可以产生锯齿波、三角波、方波和正弦波等常用标准 波形。将 p1.0,p1.1,p1.2 和 p1.3 分别作为这四种波的控制位,当相应的控制键 按下后,出现相应的波形 主要性能指标正弦波的频率范围:下限频率为 0.1hz,上限频率暂时不确 定,但应尽量提高,对于四种波形它们的幅值都有五种即 1v、2v、3v、4v 和 5v。 2.2.3 3 元器件的选择元器件的选择 该波形发生器有以下几部分组成:(1)控制模块(2)按键(3)采样模块 三部分组成。 (1)控制模块: 方案:用单片 at89s52 作为系统的主控核心。单片机具有体积小,使用灵 活的,易于人机对话和良好的数据处理,有较强的指令寻址和运算功能等优点。 且单片机功耗低,价格低廉的优点。 89s52单片机有44个引脚plcc和tqfp方形封装形式,40个引脚的双列直插式 封装形式,最常用的40个引脚封装形式及其配置如图3-1所示,各个引脚功能说 明如图2-2: 图 2-2 单片机 89s52 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 系统总体设计 5 口使用很强的内部上拉发送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)是访问外部程序存储器时,锁存prog 低8位地址的输出脉冲。在flash编程时,此引脚()也用作编程输入脉prog 冲。在一般情况下,ale 以晶振六分之一的固定频率输出脉冲,可以用来作为 外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ale 脉冲将会跳过。如果需要,通过将地址为8eh的sfr的第0位置 “1” ,ale操作将 无效。这一位置 “1” ,ale仅在执行movx或movc指令时有效。否则,ale 将被 微弱拉高。这个ale 使能标志位(地址为8eh的sfr的第0位)的设置对微控制器 处于外部执行模式下无效。 :外部程序存储器选通信号()是外部程序存储器选通信号。psenpsen 当at89s52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而 在访问外部数据存储器时,将不被激活。 /vpp:访问外部程序存储器控制信号。为使能从0000h 到ffffh的eaea 外部程序存储器读取指令,必须接gnd。为了执行内部程序指令,应该接vcc。 在flash编程期间,也接收12伏vpp电压。 xtal1:振荡器反相放大器和内部时钟发生电路的输入端。 xtal2:振荡器反相放大器的输出端。 (2)按键 方案:采用传统的独立式按键;用传统的 led 段选位选的方式进行波形的 切换及显示。这种方式占用系统资源较多,并且效率低,程系编写大量而复杂。 (3)采样模块:采用 adc0832 dac0832 基本介绍 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 常数。 系统总体设计 7 (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。 系统硬件设计 9 第第 3 3 章章 系系统硬件设计统硬件设计 3.13.1 资源分配资源分配 1.晶振采用 11.0592mhz 2.i/o 分配:p0 口与 dac0832 的 di0-di7 数据输入;p1 口的 p1.0p1.3 分 别与四个按键相连,分别控制相应波形的输出;p1 口的 p1.4p1.7 分别与四个 按键相连,控制相应的幅值输出;p2.6 和 p2.7 口与两片 dac0832 的输入寄存 器选择信号 cs,输入寄存器写选通信号 wr1 及 dac 寄存器写选通 wr2 和数据 传送信号 xfer 3.中断的分配:中断 int0 控制幅值 int1 控制波形 3.3.2 2 单片机最小系统单片机最小系统 单片机晶振电路:对于 msc-52 一般的晶振频率可以在 1.2mhz12mhz 之间 选择,这是电容 c 可以对应的选择 10pf30pf。当使用 89c55 时晶振频率可以 提高到 24mhz。对于本设计的电容 c 用 30pf,晶振选用 11.0592mhz。晶振电路 如下图 3-1 所示,一条引脚接在 xtal1,另一条接在 xtal2。 单片机的复位电路:为了防止程序执行过程中失步或运行紊乱,此处采用 了上电复位及手动复位电路,电路图如下图 3-1 所示: 图 3-1 最小单片机系统 3.3.3 3 各模块电路的设计各模块电路的设计 3.3.3 3. .1 1 单片机与单片机与 d/ad/a 连接图连接图 说明:图 3-2 所示,单片机与 d/a 连接是,第一片 d/a 的片选与 p2.6 口相 连,则其选口地址为#0bfffh, 第二片 d/a 的片选与 p2.7 口相连,则其选口地 址为#7fffh。 图 3-2d/a 与单片机连接 3.3.3 3.2.2 按键电路按键电路 说明:(1)按键原理图如 3-3 所示,对于中断方式对波形的切换,因为 int0 优先于 int1,当按键按下时,首先判断是否有幅值输出然后判断出现相 应波形,当无中断 0 时,即默认第二个 d/a 转换器的参考电压为 5v,在执行中 断 1 判断出相应的波形。 系统硬件设计 11 图 3-3 按键电路图 3.3.3 3.3.3 电流电压转换电路电流电压转换电路 (1) d/a 转换幅值调整原理如图 3-4 所示: 图 3-4 d/a 转换原理图 说明:实现 i/v 转换最简单的方法就是直接在 1out1 和 iout2 之间跨界一电 阻,这样就很容易的实现了 i/v 转换,但是这种方法忽略了一个阻抗问题。对 于 dac0832 来说,r 的取值应尽可能大,能够保证获得更多的电压,对于与输 出电压相连的后续电路来说,r 的取值应尽可能的小,以降低输出阻抗,这两 方面是矛盾的,所以这种方式欠合理。而合理的方式是应用运算放大器实现 i/v 转换,也解决了阻抗的问题。第一个 d/a 的输出电压作为第二个 d/a 的参考电 压 系统软件设计 13 第第 4 4 章章 系系统软件设计统软件设计 4 4. .1 1 单片机软件开发系统单片机软件开发系统 keilc51 是美国 keil software 公司出品的 51 系列兼容单片机 c 语言软件 开发系统,与汇编相比,c 语言在功能上、结构性、可读性、可维护性上有明 显的优势,因而易学易用。用过汇编语言后再使用 c 来开发,体会更加深刻。 keilc51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 keilc51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容 易理解。在开发大型软件时更能体现高级语言的优势。 第一部分 keilc51 单片机软件开发系统的整体结构 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)中可以快速浏览断点设置情况和源程序行的位置。 代码覆盖率信息可以让你区分程序中已执行和未执行的部分。 四.调试函数语言 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 软件具有以下功能: (1)原理布图 (2)pcb 自动或人工布线 (3)spice 电路仿真 革命性的特点 (1)互动的电路仿真 系统软件设计 15 用户甚至可以实时采用诸如 ram,rom,键盘,马达,led,lcd,ad/da,部分 spi 器件,部分 i2c 器件。 (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、bas icstamp、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 提供了比较丰富的测试信号用于电路的测试。这些 测试信号包括模拟信号和数字信号。 系统软件设计 17 四编辑本段电路仿真 在 proteus 绘制好原理图后,调入已编译好的目标代码文件:*.hex,可以 在 proteus 的原理图中看到模拟的实物运行状态和过程。 proteus 不仅可将许多单片机实例功能形象化,也可将许多单片机实例运 行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物 演示实验难以达到的效果。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当 程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电 路检测、电路修改、软件调试、运行结果等。 课程设计、毕业设计是学生走向就业的重要实践环节。由于 proteus 提供 了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了 实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实 践精神、创造精神的平台 随着科技的发展, “计算机仿真技术”已成为许多设计部门重要的前期设计 手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、 耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中 proteus 也能茯得愈来愈广泛的应用。 使用 protues 软件进行单片机系统仿真设计, 是虚拟仿真技术和计算机 多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的 操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们使用 proteus 开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍 反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证 明,在使用 proteus 进行系统仿真开发成功之后再进行实际制作,能极大提 高单片机系统设计效率。因此,proteus 有较高的推广利用价值。 4.4.2 2 主程序模块主程序模块 根据功能,系统软件设计分成几个模块编程:主程序模块,锯齿波程序模 块,三角波程序模块,正弦波程序模块,方波程序模块,延时程序模块。 (1)主程序流程图 说明:通过中断 0 首先判断是否要调整幅值,然后在看中断 0 判断输出哪 种波形 判断是否有中断0 输出各种波形 先调整一下幅值 开始 是 否 是 判断是否有中断1 图 4-1 主程序流程图 (2)波形流程图 说明:下面要实现的各种波形通过开关的切换过程的流程图,按下一个开 关通过 p1.0 为 0 则输出三角波,p1.1 为 0 输出方波,p1.2 为 0 输出梯形波,p1.3 为 0 输出锯齿波,p3.4 为 0 输出正弦波。 系统软件设计 19 开始 p1.0按下了? p1.1按下了? p1.2按下了? p1.3按下了? 输出三角波 输出方波 输出锯齿波 输出正弦波 是 是 是 是 否 否 否 4-2 波形选择流程图 4.4.3 3 锯齿波程序模块锯齿波程序模块 (1)程序流程图 说明:锯齿波产生首先将 dac0832 口地址至为#7fffh,然后将 00h 送入寄 存器 a 中,dac0832 输出 a 中的内容,当 a 中的内容等于 ffh 返回开始,当 a 中的内容不为 ffh 时,a 中的内容累加,从而输出波形。 开始 设置初值a为00h mov dptr,#7fffh movx dptr,a inc a 判断a是否已满 重新设置初值a为00h 是 否 图 4-3 锯齿波程序流程图 4.4.4 4 三角波程序模块三角波程序模块 (1)程序流程图 说明:三角波产生首先将 dac0832 口地址至为#7fffh,通过 a 中数值的 加一递升,当 a 中的内容为 0 时,与 0ffh 相比,相等时 a 中的内容减 1 递减, 从而循环产生三角波。 系统软件设计 21 开始 给a设置初值00h mov dptr.#7fffh movx dptr,a inc a 判断a是否已满 dec a 判断是否等于初值 是否 否 是 图 4-4 三角波程序流程图 4.4.5 5 正弦波程序模块正弦波程序模块 (1)程序流程图 说明:计算 0pi/2 区间 n/4 个离散的正弦值,根据对称关系,复制 pi/2 pi 区间的值,将 0pi 区间各点根据求补即得 pi2pi 区间各值,将得到的这些数据 根据所用 dac 的位数进行量化,得到相应的数字值,正弦波波形通过查表指 令得出 开始 mov r0,#6dh mov dptr,#sin movc a,a+dptr movx dptr,a inc r0 mov a,#r0 mov dptr,#7fffh 判断是否等于7fh 图 4-5 正弦波程序流程图 4.4.6 6 方波程序模块方波程序模块 (1)程序流程图 说明:方波产生首先将 dac0832 口地址至为#7fffh,当 a 中的内容为 0 时, 输出对应模拟量,然后延时,当 a 中的内容为 0ffh 时,同样输出对应模拟量, 再延时相同时间,从而得到方波。 系统软件设计 23 开始 给a设置初值ffh movx dptr,a 调用延时子程序 调用延时子程序 movx dptr,a 再给a设置00h 图 4-6 方波程序流程图 波形发生器的调试 25 第第 5 5 章章 波形发生器的调试及结果波形发生器的调试及结果 简单系统硬件的调试通常采用载入简单的测试程序并运行,使用数字表或 示波器观察;对有些硬件例如键盘可直接编入程序观察程序执行状态。 5.15.1 软件仿真软件仿真 对于键盘是,我们应当首先确定每个按键的作用,只有当我们确定键之后, 才可以对我们所要设置的按键的功能通过真正做到使软硬件相结合在一起,实 现我们的目标功能。 对于设计的八个按键及功能见表 5-1 表 5-1 按键功能表 key 作用 k0 三角波 k1 方波 k2 锯齿波 k3 正弦波 k4 幅值 1v k5 幅值 2v k6 幅值 3v k7 幅值 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)三角波仿真图 波形发生器的调试 27 如图 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)所示 输出幅值为 1v 输出幅值为 2v 周期为 0.5ms 周期为 0.5ms 时间档为 0.2ms 时间档为 0.2ms 幅值档为 1v 幅值档为 1v 图 5-3(a)正弦波 图 5-3(b) 正弦波 如图 5-3(c)所示 如图 5-3(d)所示 输出幅值为 3v 输出幅值为 4v 周期为 0.5ms 周期为 0.5ms 时间档为 0.2ms 时间档为 0.2ms 幅值档为 1v 幅值档为 1v 图 5-3(c) 正弦波 图 5-3(d) 正弦波 波形发生器的调试 29 如图 5-3(e)所示 输出幅值为 5v ,周期为 0.5ms
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建船政交通职业学院《建筑工程测量实训》2023-2024学年第二学期期末试卷
- 湖北警官学院《药品生产质量管理工程》2023-2024学年第一学期期末试卷
- 安徽工业经济职业技术学院《制冷与热泵》2023-2024学年第二学期期末试卷
- 玉溪师范学院《中级法语》2023-2024学年第二学期期末试卷
- 宁夏体育职业学院《采矿CAD(井工)》2023-2024学年第二学期期末试卷
- 2025《建筑工程施工监理合同示范文本》(GF)
- 重庆工贸职业技术学院《单片机原理及接口技术实验》2023-2024学年第二学期期末试卷
- 2024-2025学年陕西省西安三中高考临考冲刺历史试题试卷含解析
- 江苏联合职业技术学院《电路分析理论》2023-2024学年第二学期期末试卷
- 湖南邮电职业技术学院《金融与保险》2023-2024学年第二学期期末试卷
- 2025年全球及中国双金属氰化物(DMC)催化剂行业头部企业市场占有率及排名调研报告
- Unit5Amazing nature 说课稿(6课时) -2024-2025学年外研版(2024)英语七年级下册
- 2025年国家林业和草原局直属事业单位招聘应届毕业生231人历年高频重点提升(共500题)附带答案详解
- 跨栏跑技术教学课件
- 产业链韧性理论研究新进展与提升路径
- 2025年重庆出版集团招聘笔试参考题库含答案解析
- 2024年度部队食堂蔬菜粮油供应合同规范范本3篇
- (T8联考)2025届高三部分重点中学12月第一次联考评物理试卷(含答案详解)
- 【MOOC】化工安全(下)-华东理工大学 中国大学慕课MOOC答案
- 2024年10月广东高等教育自学考试5743基础营养学试题及答案
- 《连续性肾替代治疗容量评估与管理专家共识》解读课件
评论
0/150
提交评论