收藏 分享(赏)

与单片机实时动态仿真.doc

上传人:buyk185 文档编号:7209672 上传时间:2019-05-10 格式:DOC 页数:7 大小:311KB
下载 相关 举报
与单片机实时动态仿真.doc_第1页
第1页 / 共7页
与单片机实时动态仿真.doc_第2页
第2页 / 共7页
与单片机实时动态仿真.doc_第3页
第3页 / 共7页
与单片机实时动态仿真.doc_第4页
第4页 / 共7页
与单片机实时动态仿真.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、Proteus 与单片机实时动态仿真 字体大小: 小 中 大 作者:施柏鑫 来源: 日期:2007-06-01 点击:772 0.引言Proteus 是由英国 Labcenter electronics 公司开发的 EDA 工具软件。它从 1989 年出现到现在已经有十多年的历史,在全球广泛使用。Proteus 安装以后,主要由两个程序组成:Ares 和 Isis。前者主要用于PCB 自动或人工布线及其电路仿真,后者主要采用原理布图的方法绘制电路并进行相应的仿真。除了上述基本应用之外,Proteus 革命性的功能在于它的电路仿真是互动的,针对微处理器的应用,可以直接在基于原理图的虚拟原型上编程

2、,并实现软件代码级的调试,还可以直接实时动态地模拟按钮、键盘的输入,LED、液晶显示的输出,同时配合虚拟工具如示波器、逻辑分析仪等进行相应的测量和观测。Proteus 软件的应用范围十分广泛,涉及 PCB 制版、spice 电路仿真、单片机仿真,在最新的 6.9 版本中又加入了对 ARM7/LPC2000 的仿真。本文主要以单片机的仿真为例,使大家初步了解该软件的强大功能及其在工程实践和实验教学中的重要作用。1.Proteus 仿真功能简介作为一款 EDA 仿真软件,Proteus 与同类软件有着很多的相似之处。相比之下,其主要的特点有两个:一是对动态元件的实时仿真,它对“人机对话” 的模拟增

3、强了系统的真实性;二是虚拟工具箱的功能,它能与仿真同时进行,测量方便而准确。下面着重介绍一下该软件的这两个突出特点。1.1.实时动态仿真与多数仿真软件相似,Proteus 有着数量庞大的元件库。Labcenter 公司与相关的第三方软件阵容共同开发了 6000 多个模拟和数字电路中常用的 spice 模型以及各种动态元件,基本元件如电阻、电容、各种二极管、三极管、MOS 管、555 定时器等;74 系列 TTL 元件和 4000 系列 CMOS 元件;存储芯片包括各种常用的 ROM, RAM,EEPROM, 还有常见 I2C 器件等。在丰富的库元件的支持下,原理布图时只要进行相应的调用和连线,

4、通过对每个元件的属性设置完成绘图,然后即可进行仿真和虚拟测量。关于原理图的具体绘制方法不是本文讨论的重点,请参考软件提供的帮助教程。与 Multisim 等仿真软件的一大不同,在于 Proteus 支持微处理器的仿真。这些仿真的实现是基于Labcenter 公司提出的 VSM 的概念。VSM,Virtual System Modelling,直接译作“虚拟系统模型” ,官方的定义是:将 spice 电路模型、动态外设以及微处理器的仿真结合起来,在物理原型调试之前用于仿真整个单片机系统的一种设计方法1。对动态外设的支持是 Proteus 在区别于其他等仿真软件最直接的地方。VSM 为用户提供了一

5、个实时交互的环境,在仿真的过程中,你可以用鼠标去点击开关和按钮,微处理器根据输入的信号做出相应的中断响应,同时输出运算的结果到显示终端。整个过程与真实的硬件调是极其相似的,在动态外设支持下的实时输入和输出为实验者呈现了一个最接近现实的调试环境。官方资料显示,一个 300 MHz Pentium II CPU 可以以 12MHz 的时钟频率仿真一个基本的 8051 系统。1.2 虚拟工具箱Proteus 的虚拟工具箱提供了电路测试中的常用工具和仪器,主要用于在实时仿真同时的电路参数观测,测量结果随仿真动态变化并显示,可以满足精度要求不是很高的测量分析,对于电路特性的定性分析可以起到事半功倍的效果

6、,大大节约了测试时间和开发成本。软件提供的虚拟工具和仪器如图 1.1 所示。图 1.1 虚拟工具箱下面我们以示波器为例来说明虚拟工具箱的应用。图 1.2 虚拟示波器图中的电路非常简单,单片机 EXAMPLE01 中写入的是一个输出驱动直流电机的 PWM 方波的程序。我们把输出管脚连接到示波器的 CH1 通道,运行仿真,用鼠标调节虚拟示波器的 Y 轴幅度和 X 轴扫描频率,整个调节步骤同真实的示波器完全一样。当波形稳定时可以观测到一个占空比可调的 PWM 方波,如图所示。2.Proteus 在单片机仿真中的应用基于 VSM 的理论,Proteus 可以仿真很多常用的微处理器。具体来讲,它支持 P

7、IC, 8051,AVR, HC11, ARM7/LPC2000 等系列多种型号的微处理器、微控制器,仿真时只需在设定元件属性时指定下载程序的路径即可进行实时动态仿真。2.1.Proteus 对 AVR 单片机的仿真就 Atmel 公司的 AVR 系列单片机而言, Proteus 支持的型号非常全面,从低端 ATtiny10 到高端的ATmega128 均有可以直接调用的库元件。下面以 ATmega16 为例介绍 Proteus 支持的仿真功能。图 2.1 ATmega16图 2.1 是 Proteus 中的 ATmega16 库元件,其管脚上的标识与该芯片的 Datasheet 是基本一致的

8、,唯一的不同是隐去了 GND 和 VCC 管脚,在绘制原理图的时候可以不用对其进行连接,系统默认的设置就是将它们分别连到地和 5V 电源上。具体可以仿真的功能有:支持所有的 I/O 操作,内部的定时器、计数器的模拟(包括输入捕获、输出比较、PWM 模式),看门狗定时器,串行 UART 接口,主、从模式串行 SPI 接口,支持内置数模转换 ADC,支持 Atmel 的 TWI ( Two Wire Interface)通信方式,存贮器方面支持外部 SRAM 扩展以及内置 EEPROM 的模拟,支持多个微控制器的协同工作仿真等等。仿真时,首先绘制原理图,然后将任何 AVR 源程序编译器(WinAV

9、R 等)生成的下载文件(*.hex 格式)路径指定给原理图中的芯片,就可以观察程序的运行。另外值得一提的是,实时仿真运行的过程中,每个管脚的旁边会出现一个小正方形的指示,红色代表高电平,蓝色带表低电平,从这个小正方形我们可以不用虚拟工具的测量很直观的看到每个管脚的电平变化,对程序的运行做出最基本的判断,对于简单的分析可以节省很多的时间。在本文图 1.2 和图 2.2 的例子中,ATmega16 的 19 管脚输出的是方波,所以旁边可以看到一个红蓝交替、以一定频率闪烁的小正方形。2.2.Proteus 与其他单片机仿真软件的比较AVR 系列单片机可以可用很多的软件进行仿真。常用的有 AVR St

10、udio 和 Vmlab。AVR Studio、 Vmlab 和 Proteus 都属于代码级的仿真软件,与芯片级仿真不同,代码级仿真完全在计算机上完成,不需要硬件的参与,主要用于查看代码的执行过程和参数变化。在具体功能上,这三款软件各有千秋。AVR Studio 是一款完全免费的 AVR 单片机集成开发环境,包括 AVR Assembler 编译器和 AVR Studio 调试功能,AVR Prog 串行、并行下载功能和 Jtag ICE 仿真功能。它最主要的功能是观察代码执行过程中单片机内部各个寄存器值的变化,尤其是一些寄存器关键位的置位、复位操作与代码的关系。利用单步调试功能可以更细致的

11、检查代码的执行过程。对于内部的定时中断也可以较好的仿真,使实验者清楚了解中断对于整个程序流程的影响。但是对于外部中断和输入捕获等需要动态外设配合的功能,AVR Studio 就显得无能为力了。同时该软件使用黑色、白色的方块来表示 1 和 0,用以反映寄存器值的变化,当需要观察某些波形时,这样的仿真结果显得很不直观。Vmlab 在这方面要做得好一些。VMLAB 的全称为:Visual Micro Lab。它针对于 AVR 以及 ST62 系列单片机设计,是一个单片机的虚拟原型框架。它具有强大的多窗口、多文件的编辑器,微控制器的集成开发环境,拥有一系列的集成开发工具,图形界面调试器,混合模式的模拟

12、-数字电路仿真器,代码质量检查器等等。硬件和应用软件能进行并发仿真。与 Proteus 最为相似的一点是它可以以单片机为核心仿真出包括模拟元器件在内的一些动态外设(按键,LED ,液晶显示器等),具有图形显示和波形显示的功能。如果就单片机及一些简单的动态外设而言,Vmlab 和 Proteus 有着很大的相似,最多只是软件本身的操作方法有着很大的不同。但是 Proteus 不仅仅是一个 AVR 单片机的仿真软件,它所支持的大量常用芯片模型为单片机和其他芯片协同仿真复杂的完整系统提供了极大的方便。请看下面的例子,如图 2.2 所示。图 2.2 步进电机驱动这是一个完整的步进电机驱动电路,L297

13、 和 L298 是常用的步进电机驱动芯片,前者用于产生符合电机各个相位正确时序的方波,后者主要用于电流放大,为电机产生合适的驱动电流。单片机 EXAMPLE02 在本例中只相当于一个信号源,提供 L297 的时钟信号。这样完整的系统仿真是其他单片机仿真软件所不能独立完成的。这时,Proteus 为我们提供的不仅仅是一个单片机的仿真环境,称其为一个虚拟的单片机实验室是完全合适的,只要我们能充分的利用 Proteus 提供的实验器件就可以完成一个比较完整的单片机系统。3.Proteus 仿真实例分析单片机、矩阵键盘和字符型液晶的组合是单片机实验中最常用的简单系统之一,是很多最小系统板的核心部分。在

14、开发实际的单片机系统时,“人机对话” 部分主要靠这个系统来实现。在编写这部分程序时要进行频繁的测试从而更改一些参数使系统达到良好的工作状态,常见的问题有:显示界面的布局、菜单层次的设置、按键灵敏度和防抖的参数等。有了下面介绍的 Proteus 仿真,这些测试和一些经验值的调整就可以不需要进行频繁的硬件测试了,而只需要改动源程序中的一些函数调用。这个系统可以稍加改动轻松应用于其他各类系统的输入和输出部分,具有普遍意义。3.1.1602 字符型液晶简介该显示模块由字符型液晶显示屏(LCD),控制驱动主电路 HD44780 及其扩展驱动电路 HD44100,少量阻、容元件,结构件等装配在 PCB 板

15、上而成。液晶显示屏是以若干个 58 或 511 点阵块组成的显示字符群。每个点阵块为一个字符位,字符间距和行距都为一个点的宽度。该字符型 LCD 具有字符发生器 ROM 可显示 192 种字符(160 个 57 点阵字符和 32 个 510 点阵字符)具有 64 个字节的自定义字符 RAM,可自定义 8 个 58 点阵字符或四个 511 点阵字符。且具有80 个字节的 RAM。可以分两行、每一行显示 16 个 ASCII 字符,足以应付简单用户界面(主要由数字和英文字母组成)的开发和系统参数的显示。3.2.4*4 矩阵键盘4*4 矩阵键盘有 4 行 4 列,键盘上有 4*4=16 个按键,而它

16、只需要占用 4+4=8 个 I/O 口,这样的设计大大节省了单片机宝贵的 I/O 口资源2。单片机提供一定频率的扫描信号并对用户的按键值进行分析和处理,达到正确判断 16 个按键的目的。对于一般的单片机系统,16 个按键足以满足多数应用的需求。因此,它可以作为很多系统的按键输入工具。3.3.系统综合分析根据以上的分析,以及各器件的工作原理,绘制系统原理图 3.1。图 3.1 液晶和键盘综合应用单片机 EXAMPLE03 是这个系统的核心,下载的程序是液晶和键盘的驱动。其中 PC0-PC2 分别连接液晶的三个控制使能端,通过它们的译码组合来实现液晶读写指令和数据的控制。PB0-PB7 连接液晶的

17、八位数据端,负责控制命令和读写字符的数据传输。PA0-PA3 是输出端,连接键盘的 4 列,输出列扫描信号;PA4-PA7 是输入端,连接键盘的 4 行,捕捉用户的按键作为行信号,通过行列信号的组合可以唯一确定 16 个按键之一,从而供单片机处理。图中模拟的情况是,液晶的第一行显示预置的字符串信息“BUPT_Information”,第二行第一列显示当前的按键值,此时鼠标按下了数字健“6”。当鼠标按下其他的健时,液晶的显示会同步更新,这就是Proteus 实时动态仿真的神奇之所在!4.结语本文所介绍的只是 Proteus 强大功能中很初步的一部分。Proteus 还具有环境模拟、图表分析、噪声分析等高级应用。Proteus 软件的安装目录中有很多经典的范例,读者通过自学可以进一步了解该软件在EDA 设计的各个领域的综合应用。同时,Proteus 的出现也为单片机教学工作和单片机虚拟实验室的建设提供了一条方便、快捷、节约成本的新思路。相信随着越来越多的人对 Proteus 的了解和使用,它会对我们的学习、科研和工作带来越来越多的便利。参考文献1 http:/www.labcenters.co.uk2 黄任,AVR 单片机与 CPLD/FPGA 综合应用入门,.北京:北京航空航天大学出版社 2004

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报