基于Proteus的波形发生器仿真设计.doc_第1页
基于Proteus的波形发生器仿真设计.doc_第2页
基于Proteus的波形发生器仿真设计.doc_第3页
基于Proteus的波形发生器仿真设计.doc_第4页
基于Proteus的波形发生器仿真设计.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

基于 Proteus 的波形发生器仿真设计 作者姓名 孙亚飞 专业班级 2006060101 指导教师 吴建 平 摘 要 本文实现了多功能波形发生器的设计 系统采用 AT89C51 单片机控制 DAC0832 完成模数转换 键盘控制波形的频率 幅度 发生器产生三角波 方波 正弦波等波形 波形的频率可通过键盘控制 波形清晰 频率调整十分方便 稳 定性好 产生合成波形只需修改源程序 不需改装电路 单片机的输出数字信号 通过 DAC0832 转换成模拟信号 接入示波器就可以清晰的显示出系统产生的波形 该系统由仿真软件产生波形 具有线路简单 结构紧凑 价格低廉 性能优越等 特点 关键词关键词 波形发生器 AT89S52 单片机 D A 转换 Based on the simulation design Proteus waveform generator ABSTRACT In this paper implementing the design of multi waveform generator The system make use of AT89S52 micro controller and DAC0832 complete conversion keyboard control waveform frequency and amplitude System produce triangle wave square wave sine wave and other wave wave frequency can be controlled through the keyboard a clear waveform adjust conveniently The system stability and produce more complex waveforms simply through modify the source without conversion circuit The output of the microcontroller s digital signal convert to analog signals through the DAC0832 accessing to the oscilloscope can display a clear waveform what the system produce The system is simple compact low cost superior performance and so on Key words Waveform Generator MCU ADC 目录目录 基于基于 PROTEUSPROTEUS 波形发生器的仿真设计波形发生器的仿真设计 I 摘摘 要要 I 第第 1 1 章章 前前 言言 4 1 1 波形发生器的概述 4 1 2 国内外波形发生器的发展状况 5 1 3 研制波形发生器的目的及意义 7 第第 2 2 章章 PROTEUSPROTEUS 的简介与使用的简介与使用 8 2 1 PROTEUS的简介 8 2 2 PROTEUS界面 9 2 3 基本操作 10 2 3 1 图形编辑窗口 10 2 3 2 预览窗口 12 2 3 3 图形编辑的基本操作 12 2 3 4 原理图的绘制 15 第第 3 3 章章 基于基于 PROTEUSPROTEUS 波形发生器仿真设计波形发生器仿真设计 17 3 1 单片机 AT89C51 概述 17 3 1 1 AT89C51 单片机的功能参数 17 3 1 2 单片机管脚功能说明 18 3 2 总体设计 20 3 2 1 单片机电路 20 3 2 2 D A 电路 21 3 3 系统软件设计 22 3 3 1 程序流程图 22 3 3 2 系统主程序 23 第第 4 4 章章 系统调试与结果分析系统调试与结果分析 29 4 1 系统模拟调试 29 4 2 仿真结果 错误 未定义书签 错误 未定义书签 结论结论 33 致谢致谢 34 参考文献参考文献 35 附录附录 1 1 系统电路原理图系统电路原理图 36 附录附录 2 2 系统仿真原理图系统仿真原理图 36 第 1 章 前 言 1 1 波形发生器的概述 信号源有很多种 包括正弦波信号源 函数发生器 脉冲发生器 扫描发 生器 任意波形发生器 合成信号源等 一般来讲任意波形发生器是一种特殊 的信号源 综合具有其它信号源生成能力 因而适合各种仿真实验的需要 在基础实验中设计一种电路 需要验证其性能 可靠性与稳定性 就需要 给它施加理想的波形以辨别真伪 如可使用信号源的 DC 补偿功能对固态电路 控制 DC 偏压电平 可对一个怀疑有故障的数字电路 利用信号源的方波输出 作为数字电路的时钟 同时使用方波加 DC 补偿产生有效的逻辑电平模式输出 观察该电路的运行状况 而证实故障缺陷的地方 总之 利用任意波形发生器 这方面的基础功能能仿真基础实验室所必须的信号 1 在实际的电子环境所设计的电路在运行中 由于各种干扰和响应的存在 实际电路往往存在各种信号缺陷和瞬变信号 例如过脉冲 尖峰 阻尼瞬变等 见图 1 1 图 1 2 这些情况的发生 如在设计之初没有考虑进去 有的将会 产生灾难性的后果 例如图 1 1 中 a 处过剑峰脉冲 如果给一个抗过冲能力差 的电路 将可能会导致整个设备 烧坏 图 1 1 尖峰干扰脉冲 图 1 2 阻尼瞬变 由于任意波形发生器特殊的功能 为了增强任意波形生成能力 它往往依 赖计算机通讯输出波形数据 在计算机传输中 通过波形编辑软件生成波形 有利于扩充仪器的能力 更进一步仿真模拟实验 同时由于编辑一个任意波形 有时需要花费很长的时间和精力 并且每次编辑的波形可能有所差异 一般会 在任意波形发生器内配置一定数量的非易失性存储器 可以把所需要的波形从 计算机接口下载到任意波形发生器的存储器中 综上所述 不论是在生产还是在科研与教学上 任意波形发生器是电子工 程师信号仿真实验的最佳工具 随着我国经济和科技的发展 对相应的测试仪 器和测试手段也提出了更高的要求 而任意波形发生器己成为测试仪器中至关 主要的一类 因此开发任意波形发生器具有重大意义 1 2 国内外波形发生器的发展状况 运用 DDS 技术是设计任意波形信号发生器的一种通用手段 DDS 不仅可 以产生正弦波同时也可以产生任意波 这是其他频率合成方式所没有 任意波 在各个领域有着广泛的应用 通过 DDS 这种方法产生任意波是一种简单 低成 本的方法 通过增加波形点数可以使输出达到很高的精度 这都是其他方法所 无法比拟的 自 80 年代以来各国都在研制 DDS 产品 并广泛的应用于各个领域 其中 以 AD 公司的产品比较有代表性 如 AD7008 AD9850 AD985l AD9852 AD9858 等 其系统时钟频率从 30MHz 到 300MHz 不等 其中的 AD9858 系统时钟更是达到了 lGHz 这些芯片还具有 调制功能 如 AD7008 可以产生正交调制信号 而 AD9852 也可以产生 FSK PSK 线性调频以及幅度调制的信号 这些芯片集成度高 内部都集成 了 D A 转换器 精度最高可达 12bit 同时都采用了一些优化设计来提高性能 如这些芯片中大多采用了流水技术 通过流水技术的使用 提高了相位累加器 的工作频率 从而使得 DDS 芯片的输出频率可以进一步提高 通过运用流水技 术在保证相位累加器工作频率的前提下 相位累加器的字长可以设计得更长 如 AD9852 的相位累加器达到了 48 位 而不是之前型号的 32 位 这样输出信 号的频率分辨率大大提高了 同时为了抑止杂散 这些芯片大多采用了随机抖 动法提高无杂散动态范围 这是由于 DDS 的周期性 输出杂散频谱往往表现为 离散谱线 随机抖动技术使离散谱线均匀化 从而提高输出频谱的无杂散动态 范围 运用 DDS 技术生产的 DDS 任意波型信号发生器是较新的一类信号源 并 且已经广泛投入使用 它不仅能产生传统函数信号发生器能产生的正弦波 方 波 三角波 锯齿波 还可以产生任意编辑的波形 由于 DDS 的自身特点 还 可以很容易的产生一些数字调制信号 如 FSK PSK 等 一些高端的信号发生 器甚至可以产生通讯信号 同时输出波形的频率分辨率 频率精度等指标也有 很大的提高 如 HP 公司的 HP33120 可以产生 l0mHz 15MHz 的正弦波和方波 同时还可以产生 l0mHz 5MHz 的任意波形 还具备调制功能 可以产生 AM FM FSK 猝发 扫频等信号 HP 公司的 HP33250 可以产生 1uHz 80MHz 的正弦波和方波 产生 1uHz 到 25MHz 的任意波形 BK PRECISION 公司的 4070A 型函数级任意波形发生器产生的正弦波和方波输出 频率 DC 21 5MHz 频率分辨率 10mHZ 同时还具有 AM FM PM SSB BPSK FSK 猝发 DTMFGeneration 和 DTMFDetection 的功能 并且具有了和 PC 机良好的接口 可以通过 WINDOWS 界面的程序进行任意波形的编辑 2 除了在仪器中的应用外 DDS 在通信系统和雷达系统中也有很重要的用途 通过 DDS 可以比较容易的产生一些通信中常用的调制信号如 频移键控 FSK 二进制相移键控 BPSK 和正交相移键控 QPSK 等 DDS 可以产生两路相位严 格正交的信号 在正交调制和解调中的到广泛应用 是一种很好的本振源 为了进一步提高 DDS 的输出频率 产生了很多 DDS 与其他技术结合的频 率合成方法 如当输出信号是高频窄带信号的时候可以用混频滤波的方法扩展 DDS 的输出 也可以利用 DDS 的频谱特性来产生高频信号 如利用较高的镜 像频率输出 DDS 和 PLL 相结合的方法也是一种有效的方法 这种方法兼顾了两者的优 点 既有较高的频率分辨率 又有较高的频谱纯度 DDS 和 PLL 相结合一般有 两种实现方法 DDS 激励 PLL 的锁相倍频方式和 PLL 内插 DDS 方式 在雷达 中通过 DDS 和 PLL 相结合可以产生毫米波线性调频信号 DDS 移相精度高 频率捷变快和发射波形可捷变等优点在雷达系统中也可以得到很好的发挥 4 可见 基于 DDS 技术的任意波形发生器的是能实现高稳定度 高精度 高 分辨率的要求 频率切换速度快 体积小 价格便宜的特点 是一种很有发展前途 的信号源 所以本设计采用此方案 近些年来 随着可编程逻辑器件 FPGA CPLD 等 的广泛应用 功能的 不断强大 以及快速算法的不断出现 任意波形发生器也向自动化 数字化 高精度化方向发展 早期的 DDS 系统使用分离的数字器件搭接 随着整个电路 系统运行频率的升高 采用分离器件构建的 DDS 电路有其自身无法克服的缺点 主要表现在电磁兼容和系统工作频率上 后来出现的专用 DDS 芯片极大的推动 了 DDS 技术的发展 但专用 DDS 芯片价格昂贵 且无法实现任意波形输出 近来 CPLD 及 FPGA 的发展为实现 DDS 提供了更好的技术手段 FPGA Field Programmable Gate Array 是目前广泛采用的一种可编程器件 它的应用不仅使得数字电路系统的设计非常方便 并且还大大缩短了系统研制的 周期 缩小了数字电路系统的体积和所用芯片的品种 而且它的时钟频率可达到 几百兆赫兹 加上它的灵活性和高可靠性 非常适合用于实现波形发生器的数字电 路部分 1 3 研制波形发生器的目的及意义 任意波形发生器是信号源的一种 它是具有信号源所具有的特点 更因它 高的性能优势而倍受人们青睐 信号源主要给被测电路提供所需要的己知信号 各种波形 然后用其它仪表测量感兴趣的参数 可见信号源在各种实验应用 和试验测试处理中 它不是测量仪器 而是根据使用者的要求 作为激励源 仿真各种测试信号 提供给被测电路 以满足测量或各种实际需要 目前我国己经开始研制任意波形发生器 并取得了可喜的成果 但总的来 说 我国任意波形发生器还没有形成真正的产业 就目前国内的成熟产品来看 多为一些 PC 仪器插口 独立的仪器和 VX 工系统的模块很少 并且我国目前 在任意波形发生器的种类和性能都与国外同类产品存在较大的差距 因此加紧 对这类产品的研制显得迫在眉睫 见于这种情况下 本文实现了多功能波形发生器的设计 系统采用 AT89C51 单片机 DAC0832 完成模数转换 键盘控制波形的频率 幅度 系统产 生三角波 方波 正弦波等波形 波形的频率可通过键盘控制 波形清晰 频 率调整十分方便 稳定性好 产生较复杂的波形只需修改源程序 不需改装电 路 将单片机的输出数字信号通过 DAC0832 转换成模拟信号 接入示波器就可 以清晰的显示出系统产生的波形 本系统具有线路简单 结构紧凑 价格低廉 性能优越等特点 第 2 章 Proteus 的简介与使用 2 1 Proteus 的简介 Proteus 软件是来自英国 Labcenter electronics 公司的 EDA 工具软件 Proteus 软件有近 20 年的历史 在全球广泛使用 除了其具有和其它 EDA 工具 一样的原理布图 PCB 自动或人工布线及电路仿真的功能外 其革命性的功能 是 他的电路仿真是互动的 针对微处理器的应用 还可以直接在基于原理图 的虚拟原型上编程 并实现软件源码级的实时调试 如有显示及输出 还能看 到运行后输入输出的效果 配合系统配置的虚拟仪器如示波器 逻辑分析仪等 Proteus 能够很容易的为用户建立了完备的电子设计开发环境 Proteus 产品 系列也包含了革命性的 VSM 技术 用户可以对基于微控制器的设计连同所有的 周围电子器件一起仿真 不愧为一款非常优秀的单片机仿真软件 Proteus 组合了高级原理布图 混合模式 SPICE 仿真 PCB 设计以及自动布 线来实现一个完整的电子设计系统 此系统受益于 15 年来的持续开发 被 电 子世界 在其对 PCB 设计系统的比较文章中评为最好产品 The Route to PCB CAD Proteus 产品系列也包含了我们革命性的 VSM 技术 用户可以对基 于微控制器的设计连同所有的周围电子器件一起仿真 用户甚至可以实时采用 诸如 LED LCD 键盘 RS232 终端等动态外设模型来对设计进行交互仿真 其功能模块 易用而又功能强大的 ISIS 原理布图工具 PROSPICE 混合模型 SPICE 仿真 ARES PCB 设计 PROSPICE 仿真器的一个扩展 PROTEUS VSM 便于 包括所有相关的器件的基于微处理器设计的协同仿真 此外 还可以结合微控 制器软件使用动态的键盘 开关 按钮 LED 甚至 LCD 显示 CPU 模型 支持许多通用的微控制器 如 PIC R HC11 以及 8051 交互的装置模型包括 LED 和 LCD 显示 RS232 终端 通用键盘 强大的调试工具 包括寄存器和存储器 断点和单步模式 IAR C SPY 和 Keil uVision2 等开发工具的源层调试 应用特殊模型的 DLL 界面 提供有关元件库的全部文件 Proteus 与其它单片机仿真软件不同的是 它不仅能仿真单片机 CPU 的工 作情况 也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况 因此在仿真和程序调试时 关心的不再是某些语句执行时单片机寄存器和存储 器内容的改变 而是从工程的角度直接看程序运行和电路工作的过程和结果 对于这样的仿真实验 从某种意义上讲 是弥补了实验和工程应用间脱节的矛 盾和现象 2 2 Proteus 界面 进入 Proteus ISIS 双击桌面上的 ISIS 6 Professional 图标或者单击屏幕左 下方的 开始 程序 Proteus 6 Professional ISIS 6 Professional 出现如图 2 1 所示屏幕 表明进入 Proteus ISIS 集成环境 图 2 1 启动时屏幕 Proteus ISIS 的工作界面是一种标准的 Windows 界面 如图 2 2 所示 包括 标题栏 主菜单 标准工具栏 绘图工具栏 状态栏 对象选择按钮 预览对象方位控制按钮 仿真进程控制按钮 预览窗口 对象选择器窗口 图 形编辑窗口 图 2 2 Proteus 工作界面 2 3 基本操作 2 3 1 图形编辑窗口 在图形编辑窗口内完成电路原理图的编辑和绘制 为了方便作图坐标系统 CO ORDINATE SYSTEM ISIS 中坐标系统的基本单位是 10nm 主要是为了和 Proteus ARES 保持一致 但坐标系统的识别 read out 单位被限制在 1th 坐标原点默认在图形编辑区的中间 图形的坐标值能够显示在屏幕的右下角的 状态栏中 点状栅格 The Dot Grid 与捕捉到栅格 Snapping to a Grid 编辑窗口内有点状的栅格 可以通过 View 菜单的 Grid 命令在打开和关闭间切 换 点与点之间的间距由当前捕捉的设置决定 捕捉的尺度可以由 View 菜单的 Snap 命令设置 或者直接使用快捷键 F4 F3 F2 和 CTRL F1 如图 2 3 所示 若键入 F3 或者通过 View 菜单的选中 Snap 100th 图 2 3 View 菜单选项 鼠标在图形编辑窗口内移动时 坐标值是以固定的步长 100th变化 这称 为捕捉 如果要确切地看到捕捉位置 可以使用 View 菜单的 X Cursor 命令 选中后将会在捕捉点显示一个小的或大的交叉十字 实时捕捉 Real Time Snap 当鼠标指针指向管脚末端或者导线时 鼠标指针将会被捕捉到这些物体 这种功能被称为实时捕捉 该功能可以使你方便的实现导线和管脚的连接 可 以通过 Tools 菜单的 Real Time Snap 命令或者是 CTRL S 切换该功能 可以通 过 View 菜单的 Redraw 命令来刷新显示内容 同时预览窗口中的内容也将被刷 新 当执行其它命令导致显示错乱时可以使用该特性恢复显示 视图的缩放与 移动可以通过如下几种方式 用鼠标左键点击预览窗口中想要显示的位置 这将使编辑窗口显示以鼠 标点击处为中心的内容 在编辑窗口内移动鼠标 按下 SHIFT 键 用鼠标 撞击 边框 这会使 显示平移 我们把这称为 Shift Pan 用鼠标指向编辑窗口并按 缩放键或者操作鼠标的滚动键 会以鼠标指 针位置为中心重新显示 2 3 2 预览窗口 该窗口通常显示整个电路图的缩略图 在预览窗口上点击鼠标左键 将会 有一个矩形蓝绿框标示出在编辑窗口的中显示的区域 其他情况下 预览窗口 显示将要放置的对象的预览 这种 Place Preview 特性在下列情况下被激活 当一个对象在选择器中被选中 当使用旋转或镜像按钮时 当为一个可以设定朝向的对象选择类型图标时 例如 Component icon Device Pin icon 等等 当放置对象或者执行其他非以上操作时 place preview 会自动消除 对象选择器 Object Selector 根据由图标决定的当前状态显示不同的 内容 显示对象的类型包括 设备 终端 管脚 图形符号 标注和图 形 在某些状态下 对象选择器有一个 Pick 切换按钮 点击该按钮可以弹出 库元件选取窗体 通过该窗体可以选择元件并置入对象选择器 在今后 绘图时使用 2 3 3 图形编辑的基本操作 1 对象放置 Object Placement 放置对象的步骤如下 To place an object 根据对象的类别在工具箱选择相应模式的图标 mode icon 根据对象的具体类型选择子模式图标 sub mode icon 如果对象类型是元件 端点 管脚 图形 符号或标记 从选择器里 selector 选择你想要的对象的名字 对于元件 端点 管脚和符号 可能首先需要从库中调出 如果对象是有方向的 将会在预览窗口显示出来 你可以通过预览对象 方位按钮对对象进行调整 最后 指向编辑窗口并点击鼠标左键放置对象 2 选中对象 Tagging an Object 用鼠标指向对象并点击右键可以选中该对象 该操作选中对象并使其高亮 显示 然后可以进行编辑 选中对象时该对象上的所有连线同时被选中 要选 中一组对象 可以通过依次在每个对象右击选中每个对象的方式 也可以通过 右键拖出一个选择框的方式 但只有完全位于选择框内的对象才可以被选中 在空白处点击鼠标右键可以取消所有对象的选择 3 删除对象 Deleting an Object 用鼠标指向选中的对象并点击右键可以删除该对象 同时删除该对象的所 有连线 4 拖动对象 Dragging an Object 用鼠标指向选中的对象并用左键拖曳可以拖动该对象 该方式不仅对整个 对象有效 而且对对象中单独的 labels 也有效 如果 Wire Auto Router 功能 被使能的话 被拖动对象上所有的连线将会重新排布或者 fixed up 这将花 费一定的时间 10 秒左右 尤其在对象有很多连线的情况下 这时鼠标指针 将显示为一个沙漏 如果你误拖动一个对象 所有的连线都变成了一团糟 你 可以使用 Undo 命令撤消操作恢复原来的状态 5 拖动对象标签 Dragging an Object Label 许多类型的对象有一个或多个属性标签附着 例如 每个元件有一个 reference 标签和一个 value 标签 可以很容易地移动这些标签使你的 电路图看起来更美观 移动标签的步骤如下 To move a label 选中对象 用鼠标指向标签 按下鼠标左键 拖动标签到你需要的位置 如果想要定位的更精确的话 可以在拖动是 改变捕捉的精度 使用 F4 F3 F2 CTRL F1 键 释放鼠标 6 调整对象大小 Resizing an Object 子电路 Sub circuits 图表 线 框和圆可以调整大小 当选中这些对 象时 对象周围会出现黑色小方块叫做 手柄 可以通过拖动这些 手柄 来 调整对象的大小 调整对象大小的步骤如下 To resize an object 选中对象 如果对象可以调整大小 对象周围会出现黑色小方块 叫做 手柄 用鼠标左键拖动这些 手柄 到新的位置 可以改变对象的大小 在拖 动的过程中手柄会消失以便不和对象的显示混叠 7 调整对象的朝向 Reorienting an Object 许多类型的对象可以调整朝向为 0 90 270 360 或通过 x 轴 y 轴镜象 当该类型对象被选中后 Rotation and Mirror 图标会从兰色 变为红色 然后就可以来改变对象的朝向 调整对象朝向的步骤如下 To reorient an object 选中对象 用鼠标左键点击 Rotation 图标可以使对象逆时针旋转 用鼠标右键点 击 Rotation 图标可以使对象顺时针旋转 用鼠标左键点击 Mirror 图标可以使对象按 x 轴镜象 用鼠标右键点击 Mirror 图标可以使对象按 y 轴镜象 毫无疑问当 Rotation and Mirror 图标是红色时 操作他们将回改变某个对象 即便你当前没有 看到它 实际上 这中颜色的指示在你想对将要放置的新对象操作时 是格外有用的 当图标是红色时 首先取消对象的选择 此时图标会 变成兰色 说明现在可以 安全 调整新对象了 8 拷贝所有选中的对象 Copying all Tagged Objects 拷贝一整块电路的方式 To copy a section of circuitry 选中需要的对象 具体的方式参照上文的 Tagging an Object 部分 用鼠标左键点击 Copy 图标 把拷贝的轮廓拖到需要的位置 点击鼠标左键放置拷贝 重复步骤 3 放置多个拷贝 点击鼠标右键结束 当一组元件被拷贝后 他们的标注自动重置为随机态 用来为下一步的自 动标注做准备 防止出现重复的元件标注 9 移动所有选中的对象 Moving all Tagged Objects 移动一组对象的步骤是 To move a set of objects 选中需要的对象 具体的方式参照上文的 Tagging an Object 部分 把轮廓拖到需要的位置 点击鼠标左键放置 你可以使用块移动的 方式来移动一组导线 而不移动任何对象 10 删除所有选中的对象 Deleting all Tagged Objects 删除一组对象的步骤是 To delete a group of objects 选中需要的对象 具体的方式参照上文的 Tagging an Object 部分 用鼠标左键点击 Delete 图标 如果错误删除了对象 可以使用 Undo 命令来恢复原状 2 3 4 原理图的绘制 1 画导线 Proteus 的智能化可以在你想要画线的时候进行自动检测 当鼠标的指针 靠近一个对象的连接点时 跟着鼠标的指针就会出现一个 号 鼠标左键 点击元器件的连接点 移动鼠标 不用一直按着左键 就 出现了粉红色的连接 线变成了深绿色 如果你想让软件自动定出线路径 只需左击另一个连接点即可 这就是 Proteus 的线路自动路径功能 简称 WAR 如果你只是在两个连接点用 鼠标左击 WAR 将选择一个合适的线径 WAR 可通过使用工具栏里的 WAR 命 令按钮来关闭或打开 也可以在菜单栏的 Tools 下找到这个图标 如果你想 自己决定走线路径 只需在想要拐点处点击鼠标左键即可 在此过程的任何时 刻 你都可以按 ESC 或者点击鼠标的右键来放弃画线 2 画总线 为了简化原理图 我们可以用一条导线代表数条并行的导线 这就是所谓 的总线 点击工具箱的总线按钮 即可在编辑窗口画总线 3 画总线分支线 点击工具的按钮 画总线分支线 它是用来连接总线和元器件管脚的 画 总线的时候为了和一般的导线区分 我们一般喜欢画斜线来表示分支线 但是 这时如果 WAR 功能打开是不行的 需要把 WAR 功能关闭 画好分支线我们还需 要给分支线起个名字 右键点击分支线选中它 接着左键点击选中的分支线就 会出现分支线编辑对话框同端是连接在一起的 放置方法是用鼠标单击连线工 具条中图标或者执行 Place Net Label 菜单命令 这时光标变成十字形并且将 有一虚线框在工作区内移动 再按一下键盘上的 Tab 键 系统弹出网络标号属 性对话框 在 Net 项定义网络标号比如 PB0 单击 OK 将设置好的网络标号 放在第 1 步放置的短导线上 注意一定是上面 单击鼠标左键即可将之定位 4 放置总线将各总线分支连接起来 方法是单击放置工具条中图标或执行 Place Bus 菜单命令 这时工作平面 上将出现十字形光标 将十字光标移至要连接的总线分支处单击鼠标左键 系 统弹出十字形光标并拖着一条较粗的线 然后将十字光标移至另一个总线分支 处 单击鼠标的左键 一条总线就画好了 5 跳线 跳线在电路板设计中经常使用 但在一般的教科书中往往没有谈及这个问 题 只有靠设计者在设计中自己去摸索 跳线 简单地说就是在电路板中用一 根将两焊盘连接的导线 也有人把它称为跨接线 多使用于单面板 双面板设 计中 特别是单面板设计中使用得更多 在单面板的设计中 当有些铜膜线无 法连接 即使 Prote199SE 给连通了 进行电气检查也是错的 系统会显示错误 标志 通常解决的办法是使用跳线 跳线的长度应该选择如下几种 6mm 8mm 和 10mm 放置跳线的方法是在布线层 底层布线 用人工布线的方式放置 当遇 到相交线的时候就用过孔走到背面 顶层 进行布线 跳过相交线然后回到原来 层面 底层 布线 值得说明的是为了便于识别 最好在顶层的印丝层 Top Overlay 做上标志 在图 3 中有两根跳线 在 PCB 板安装元件的时候 跳线就 用短的导线或者就用剪下元件引脚上多余的部分安装 6 放置线路节点 如果在交叉点有电路节点 则认为两条导线在电气上是相连的 否则就认 为它们在电气上是不相连的 我们发现 ISIS 在画导线时能够智能地判断是否要 放置节点 但在两条导线交叉时是不放置节点的 这时要想两个导线电气相连 只有手工放置节点了 点击工具箱的节点放置按钮 当把鼠标指针移到编辑窗 口 指向一条导线的时候 会出现一个 号 点击左键就能放置一个节点 第 3 章 基于 Proteus 波形发生器仿真设计 3 1 单片机 AT89C51 概述 单片机广泛应用于商业 诸如调制解调器 电动机控制系统 空调控制系 统 汽车发动机和其他一些领域 这些单片机的高速处理速度和增强型外围设 备集合使得它们适合于这种高速事件应用场合 然而 这些关键应用领域也要 求这些单片机高度可靠 健壮的测试环境和用于验证这些无论在元部件层次还 是系统级别的单片机的合适的工具环境保证了高可靠性和低市场风险 Intel 平 台工程部门开发了一种面向对象的用于验证它的AT89C51 汽车单片机多线性测 试环境 这种环境的目标不仅是为AT89C51 汽车单片机提供一种健壮测试环境 而且开发一种能够容易扩展并重复用来验证其他几种将来的单片机 开发环境连接了AT89C51 本文讨论了这种测试环境的设计和原理 它的 和各种硬件 软件环境部件的交互性 以及如何使用AT89C51 3 1 1 AT89C51 单片机的功能参数 8031 CPU 与 MCS 51 兼容 4K 字节可编程 FLASH 存储器 全静态工作 0Hz 24KHz 三级程序存储器保密锁定 128 8 位内部 RAM 32 条可编程 I O 线 两个 16 位定时器 计数器 6 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 图 3 1 AT89C51 芯片图 3 1 2 单片机管脚功能说明 Vcc 电源电压 GND 地 P0 口 P0 口是一组8 位漏极开路型双向I O 口 也即地址 数据总线复用 作为输出口用时 每位能吸收电流的方式驱动8 个TTL 逻辑门电路 对端 口写 1 可作为高阻抗输入端用 在访问外部数据存储器或程序存储器时 这组口线分时转换地址 低8 位 和数据总线复用 在访问期间激活内部 上拉电阻 在Flash 编程时 P0 口接受指令字节 而在程序校验时 输出 指令字节 校验时 要求外接上拉电阻 P1 口 P1 是一个带内部上拉电阻的8 位双向I O 口 P1 的输出缓冲级可 驱动 吸收或输出电流 4 个TTL 逻辑门电路 对端口写 1 通过内部 的上拉电阻把端口拉到高电平 此时可作输入口 作为输入口使用时 因 为内部存在上拉电阻 某个引脚被外部信号拉低时会输出一个电流 IIL Flash 编程和程序校验期间 P1 接受低8 位地址 P2 口 P2 是一个带有内部上拉电阻的8 位双向I O 口 P2 的输出缓冲级 可驱动 吸收或输出电流 4 个TTL 逻辑门电路 对端口写 1 通过内 部的上拉电阻把端口拉到高电平 此时可作输入口 作为输入口使用时 因为内部存在上拉电阻 某个引脚被外部信号拉低时会输出一个电流 IIL 在访问外部程序存储器或16 位四肢的外部数据存储器 例如执行 MOVX DPTR指令 时 P2 口送出高8 位地址数据 在访问8 位地址的 外部数据存储器 例如执行MOVX RI 指令 时 P2 口线上的内容 也 即特殊功能寄存器 SFR 区中R2 寄存器的内容 在整个访问期间不改 变 Flash 编程和程序校验时 P2 也接收高位地址和其他控制信号 P3 口 P3 是一个带有内部上拉电阻的8 位双向I O 口 P3 的输出缓冲级 可驱动 吸收或输出电流 4 个TTL 逻辑门电路 对端口写 1 通过内 部的上拉电阻把端口拉到高电平 此时可作输入口 作为输入口使用时 因为内部存在上拉电阻 某个引脚被外部信号拉低时会输出一个电流 IIL P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信 号 RST 复位输入 当振荡器工作时 RST 引脚出现两个机器周期以上高电 平将使单片机复位 ALE PROG 当访问外部程序存储器或数据存储器时 ALE 地址锁存允许 输出脉冲用于锁存地址的低8 位字节 即使不访问外部存储器 ALE 仍以 时钟振荡频率的1 6 输出固定的正脉冲信号 因此它可对外输出时钟或用 于定时目的 要注意的是 每当访问外部数据存储器时将跳过一个ALE 脉 冲 对Flash 存储器编程期间 该引脚还用于输入编程脉冲 PROG 如有必要 可通过对特殊功能寄存器 SFR 区中的8EH 单元D0 位置位 可禁止ALE 操作 该位置位后 只有一条MOVX 和MOVC 指令ALE 才会 被激活 此外 该引脚会被微弱拉高 单片机执行外部程序时 应设置 ALE 无效 PSEN 程序存储允许输出是外部程序存储器的读选通型号 当89C51 由外 部存储器取指令 或数据 时 每个机器周期两次PSEN 有效 即输出两 个脉冲 在此期间 当访问外部数据存储器 这两次有效的PSEN 信号不 出现 EA VPP 外部访问允许 欲使CPU 仅访问外部程序存储器 地址为 0000H FFFFH EA 端必须保持低电平 接地 需注意的是 如果 加密位LB1 被编程 复位时内部会锁存EA 端状态 如EA 端为高电平 接Vcc 端 CPU 则执行内部程序存储器中的指令 Flash 存储器编程 时 该引脚加上 12v 的编程允许电源Vpp 当然这必须是该器件使用12v 编程电压Vpp XTAL1 振荡器反相放大器及内部时钟发生器的输入端 XTAL2 振荡器反相放大器的输出端 89C51 中有一个用于构成内部振荡 器的高增益反相放大器 引脚XTAL1 和XTAL2分别是该放大器的输入端和 输出端 这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构 成自激振荡器 振荡电路参见图5 外接石英晶体或陶瓷谐振器及电容 C1 C2 接在放大器的反馈回路中构成并联振荡电路 对电容C1 C2 虽 没有十分严格的要求 但电容容量的大小会轻微影响振荡频率的高低 振 荡器工作的稳定性 起振的难易程度及温度稳定性 如果使用石英晶体 我们推荐电容使用30Pf 10 Pf 而如使用陶瓷谐振器建议选择 40Pf 10Pf 用户也可以采用外部时钟 这种情况下 外部时钟脉冲接到 XTAL1 端 即内部时钟发生器的输入端XTAL2 则悬空 3 2 总体设计 波形发生器原理框图如下所示 波形的产生是通过 AT89C51 执行某一波 形发生程序 向 D A 转换器的输入端按一定的规律发生数据 从而在 D A 转换 电路的输出端得到相应的电压波形 在 AT89C51 的 P1 口接 3 个按扭 通过软 件编程来选择各种波形和频率 此方案的有点是电路原理比较简单 实现起来 比较容易 缺点是 采样频率由单片机内部产生故使整个系统的频率降低 电 路原理框图如 3 2 所示 MCU 键盘DAC0832信号放大 信号显示 图 3 2 系统原理框图 3 2 1 单片机电路 AT89C51 功能 形成扫描码 键值识别 键处理 参数设置 形成显示段 码 产生定时中断 形成波形的数字编码 并输出到 D A 接口电路和显示驱动 电路 AT89C51 外接 12M 晶振作为时钟频率 并采用电源复位设计 复位电路 采用上电复位 它的工作原理是 通电时 电容两端相当于短路 于是 RST 引 脚上为高电平 然后电源通过对电容充电 RST 端电压慢慢下降 降到一定程 序 即为低电平 单片机开始工作 AT89C51 的 P0 口做为 D A 转换芯片 0832 的接口 用定时 计数器作为中 断源 不同的频率值对应不同的定时初值 允许定时器溢出中断 定时器中断 的特殊功能寄存器设置如下 定时控制寄存器 TCON 20H 工作方式选择寄存器 TMOD 01H 中断允许控制寄存器 IE 82H AT89C51 单片机原理接口如图 3 3 图 3 3 单片机电路图 3 2 2 D A 电路及接口 功能 将波形样值的编码转换成模拟值 完成双极性的波形输出 DAC0832 是一个具有两个输入数据寄存器的 8 位 DAC 目前生产的 DAC 芯 片分为两类 一类芯片内部设置有数据寄存器 不需要外加电路就可以直接与 微型计算机接口 另一类芯片内部没有数据寄存器 输出信号随数据输入线的 状态变化而变化 因此不能直接与微型计算机接口 必须通过并行接口与微型 计算机接口 DAC0832 是具有 20 条引线的双列直插式 CMOS 器件 它内部 具有两级数据寄存器 完成 8 位电流 D A 转换 故不需要外加电路 单片机向 0832 发送数字编码 产生不同的输出 先利用采样定理对各波 形进行抽样 然后把各采样值进行编码 的到的数字量存入各个波形表 执行 程序时通过查表方法依次取出 经过 D A 转换后输出就可以得到波形 假如 N 个点构成波形的一个周期 则 0832 输出 N 个样值点后 样值点形成运动轨迹 即一个周期 重复输出 N 个点 成为第二个周期 利用单片机的晶振控制输出 周期的速度 也就是控制了输出的波形的频率 这样就控制了输出的波形及其 幅值和频率 D A 转换电路原理如图 3 4 图 3 4 D A 电路图 3 3 系统软件设计 3 3 1 程序流程图 软件系统由按键 单片机 D A 转换 放大电路等模块组成 波形的产生 是通过 AT89C51 执行某一波形发生程序 向 D A 转换器的输入端按一定的规律 发生数据 从而在 D A 转换电路的输出端得到相应的电压波形 再通过放大器 放大即可得到相应的波形 程序流程框图如图 3 5 开始 定时器初始化 设置键盘中断级别高 中断初始化 While 1 开始 结束 判断波形 定 时 器 赋 初 值 定 时 器 赋 初 值 定 时 器 赋 初 值 输 出 正 弦 波 输 出 方 波 输 出 三 角 波 主程序定时器中断服 务程序 结束 图 3 5 程序流程图 3 3 2 系统主程序 include unsigned char TIME0 H 0 xec TIME0 L 0 x78 定时器 0 的初值设置 全局变量 include include void main TMOD 0X01 TH0 0 xff TL0 0 xd9 IT0 1 设置中断触发方式 下降沿 EA 1 EX0 1 ET0 1 IP 0X01 键盘中断级别高 TR0 1 while 1 square ifndef 0832 h define 0832 h unsigned char i sqar num 128 最大值 100 默认值 50 unsigned char cho 0 0 正弦波 1 方波 2 三角波 unsigned char num 0 unsigned char TIME0 H 0 xff TIME0 L 0 xd9 定时器 0 的初值设置 全局变量 对应正弦波 50HZ sbit chg P1 0 三角波 100Hz sbit freq u P1 1 sbit freq d P1 2 sbit cs P3 7 bit flag 0 unsigned int FREQ 50 初始化频率 50HZ 调节部分 频率 void freq ud void unsigned int temp if freq d 0 FREQ FREQ 5 if FREQ 0 FREQ 100 else if freq u 0 FREQ FREQ 5 if FREQ 100 FREQ 5 if cho 1 temp 0 xffff 3906 FREQ 方波默认为 100hz 切换后频率也为 50HZ 65336 10 6 256 FREQ TIME0 H temp 256 TIME0 L temp 256 else if cho 0 cho 2 正弦波 三角波默认周期 50hz 65536 10 6 512 FREQ temp 0 xffff 1953 FREQ TIME0 H temp 256 TIME0 L temp 256 波形发生函数 void sint void if flag cs 0 P2 sin num num cs 1 if num 0 num 255 flag 1 else if flag cs 0 P2 sin num num cs 1 if num 255 num 0 flag 0 void square void if i sqar num cs 0 P2 0XFF cs 1 else cs 0 P2 0X00 cs 1 void stw void if flag cs 0 P2 num cs 1 if num 0 num 255 flag 1 else if flag cs 0 P2 num cs 1 if num 255 num 1 flag 0 按键中断处理程序 void it0 interrupt 0 if chg 0 if cho 3 cho 0 num 0 num 0 所有数据从新开始 保证 波形的完整性 else if freq u 0 freq d 0 freq ud else 定时器中断处理程序 void intt0 interrupt 1 switch cho case 0 TH0 TIME0 H TL0 TIME0 L sint break 正弦波 每半周期 256 取 样 case 1 TH0 TIME0 H TL0 TIME0 L square break 方波 为了提高方波 的最高频率 只有牺牲占空比的最小可调值 分 100 份 每次 1 case 2 TH0 TIME0 H TL0 TIME0 L stw break 三角波 default endif 正弦表 每半个周期 256 个取值 最大限度保证波形不失真 各个值通过 MATLAB 算出 并四设五如取整 具体程序如下 ifndef sinx h define sinx h unsigned char code sin num 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 3 3 4 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 12 12 13 14 15 15 16 17 18 18 19 20 21 22 23 24 25 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 44 45 46 47 49 50 51 52 54 55 56 57 59 60 61 63 64 66 67 68 70 71 73 74 75 77 78 80 81 83 84 86 87 89 90 92 93 95 96 98 99 101 102 104 106 107 109 110 112 113 115 116 118 120 121 123 124 126 128 129 131 132 134 135 137 139 140 142 143 145 146 148 149 151 153 154 156 157 159 160 162 163 165

温馨提示

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

评论

0/150

提交评论