1 引言
单片机是电子类等相关专业的一门重要课程,在实际工程中有着广泛应用。全国各大中专院校开设了不同类型的单片机课程及相关的实验和综合设计。在这些专业的课程设计、毕业设计及大学生电子竞赛中,单片机也是一种非常重要的开发工具。
随着计算机技术的迅速发展,使用EDA软件进行电路仿真与设计已经成为一种趋势。众多院校在电路实践教学改革中引入了EDA技术,并建立了EDA实验室。配备了EWB、Pspice、Multisim、Protel、MaxPlus II、SystemView等相关软件及配套硬件。但这些设备对仿真单片机却无能为力。本文介绍的一款EDA软件——Proteus,则有很大的不同,它的最大特点就是能仿真单片机。
目前Proteus已在全球广泛使用。国外有包括斯坦福、剑桥等在内的几千所高校将Proteus作为电子工程学科的教学和实验平台;近几年,国内也开始流传,有一些大学正在体验Proteus所带来的独一无二的功能并申报大学计划[1]。
2 Proteus简介
Proteus软件是由英国Labcenter Electronics公司开发的EDA工具软件,已有近20年的历史。该软件集成了高级原理布图、混合模式SPICE电路仿真、PCB设计以及自动布线来实现一个完整的电子设计系统。它是一种混合电路仿真工具,包括模拟电路仿真、数字电路仿真、单片机及其外围电路组成的仿真等。
Proteus软件由ISIS和ARES两个软件构成,其中ISIS是一款便捷的电子系统仿真平台软件,ARES是一款高级的布线编辑软件[2]。ISIS是一个操作简便且功能强大的原理绘图工具,它整合了SPICE的仿真模型,拥有超过8000个元件的庞大库结构。ARES则可将ISIS的仿真原理图生成PCB版图。
Proteus支持许多通用的微控制器,如PIC系列、AVR系列、8051系列等;同时它还支持ARM、PLD及各种外围芯片的仿真,如基于 HD44780芯片的字符LCD、RAM等;具有单步运行、断点设置等调试功能;能与常用编译器如Keil、IAR、Proton等协同调试;有直流电流表/电压表、交流电压表/电流表、示波器逻辑分析仪、频率计等虚拟仪器,为仿真中的测量记录提供了方便;支持图形化分析功能,具有频率特性、傅里叶分析等图形方式,可将仿真曲线精美地绘制出来。
3 Proteus应用举例
下面以基于51单片机的“数字电压表”为例,说明使用Proteus和Keil软件进行单片机系统设计和仿真的过程。
首先,用Proteus ISIS画好电路图(注意MCU的最小系统的外围电路在仿真时可以省略)。并用Keil C51编写相应程序,编译无误后生成.hex文件。其次,将生成的.hex文件“下载”到51芯片中,步骤如下:鼠标右击AT89C51,然后左击,出现相应元件的属性对话框。如图1所示,在该对话框的“Program File”一项中选择要加入的.hex文件。最后,点击Play键可看到电路仿真结果(如图2所示):调节滑动变阻器的大小,对应电压值随之而呈现线性变化。仿真结果完全正确。
图1 AT89C51元件属性框
图2 Proteus电路仿真效果图
此外,Proteus还可以和Keil进行联调。联调设置步骤如下:
(1)把安装目录ProteusMODELS下的VDM51.dll文件复制到Keil安装目录的C51BIN目录中。
(2)修改Keil安装目录下Tools.ini文件,在C51字段加入TDRV5=BINVDM51.DLL(“PROTEUS 6 EMULATOR”)并保存。注意:不一定要用TDRV5,根据原来字段选用一个不重复的数值就可以了。引号内的名字随意。
(3)打开Proteus,画出相应电路,在Proteus的“Debug”菜单中选中“Use Remote Debug Monitor”。
(4)进入Keil的Project菜单Option for Target‘工程名’。在Debug选项中右栏上部的下拉菜单选中Proteus Driver。再进入Settings,机子IP设为127.0.0.1,端口号为8000。
(5)在Keil中进行debug,同时在Proteus中查看直观的结果。这样就可以像使用仿真器一样调试程序了。
由上述例子可以看出,Proteus可以很方便地与Keil C51集成开发环境连接,程序编译好之后,立即可以进行软、硬件结合的系统仿真。利用Proteus仿真只需很少设备,就可以完成小到走马灯、电子钟,大到电机控制系统等单片机系统设计,具有明显的经济优势。对于学生来说,由于使用方便,可以提高学习兴趣。当然,它有一些不足。比如仿真模型器件库中没有一些元器件模型,或有的模型由于缺少仿真文件,不能进行仿真等[3]。
4 结语
使用Proteus进行单片机系统设计利大于弊,可以解决单片机实验室硬件投入不足和设备维护困难等问题,克服实验箱硬件电路固定、实验内容难于改动等局限,有利于促成课程和教学改革,更有利于人才的培养。
在单片机课程设计和全国大学生电子设计竞赛中,我们使用Proteus开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证明,在使用Proteus进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,Proteus有较高的推广利用价值。
参考文献
[1] 汪宁. Proteus软件的单片机仿真方法[J]. 山东轻工业学院学报,2007,21(1):24-27.
[2] 林志琦,郎建军等. 基于Proteus的单片机可视化软硬件仿真[M]. 北京:北京航空航天大学出版社,2006年.
[3] 李海鲲. Proteus在单片机课程设计中的应用[J]. 电脑知识与技术,2006,12:208.
收稿日期:11月14日 修改日期:11月25日
作者简介:宗静静(1981-),女,助教,硕士研究生,研究方向:单片机及信号处理。
关键字:关键词 Proteus 单片机仿真 Keil
引用地址:
Proteus在单片机系统设计中的应用
推荐阅读最新更新时间:2024-03-16 12:50
Keil C51安装
Keil uVision2是目前使用广泛的单片机开发软件,它集成了源程序编辑和程序调试于一体,支持汇编、C、PL/M语言。 这里我们仅仅介绍 Keil uVision 的简单使用,更详细的使用方法见光盘。 keil C51 v6.12 的安装: 先运行光盘中 单片机软件setupsetup.exe 安装程序,选择安装 Eval Version 版进行安装。一直点击 Yes 或 Next ,直到 Finish 完成。 之后运行同目录中的 Keil uv2 汉化安装.exe 安装汉化程序。 安装好后,在桌面上会产生快捷图标, keil C51 v6.12 的使用: 点击桌面快捷图标,可以直接进入主画面:
[单片机]
KEIL5中的options for Target
1.Target 主要介绍工程目标的调试晶振频率、选择的编译器、RAM和ROM分配的地址空间等! 1.晶振频率: 这个晶振主要是用于仿真调试 2.Use Cross-Module Optimization(一般我们不打勾): 作用一:不针对库目标执行跨模块优化。 作用二:跨模块优化将增加构建项目所需的时间,因为会自动执行多个编译和链接步骤。 Use MicroLIB(打勾): 使用微库它是ISO标准C运行时库的子集(其中一部分),提供了性能和代码大小之间的权衡。 微库并不完全兼容ANSI,但对于大多数小型嵌入式应用程序来说已经足够了。微库这个功能常用与printf函数 3.ROM存储地址 : Flash(ROM)=
[单片机]
点阵式LED滚动汉字显示屏的Proteus仿真设计
1.引言 点阵式LED组成的汉字显示屏在公共场所应用非常广泛。例如,车站发车时间提示、股票大厅中的股票价格显示板、商场的活动广告栏、候机厅的起飞时间表。点阵显示器的特点是可以按照需要的大小、形状和颜色进行组合,用单片机控制实行各种文字或图型的变化,达到广告宣传和提示的目的。 Proteus是一款新颖的嵌入式系统软硬件设计仿真平台,特别适用于单片机仿真,能够在线、实时仿真多种类型的单片机,诸如MCS-51系列单片机、PIC单片机、AVR单片机等,能够像硬件仿真器一样进行软硬件调试,而没必要花钱去购买和维护价格不菲的仿真器,对于初学单片机的人来说,既减少了学习成本,又达到了良好的学习效果。 2.硬件电路设计
[电源管理]
Keil MDK STM32系列(九) 基于HAL和FatFs的FAT格式SD卡TF卡读写
前言 功能: 通过SPI读写SD卡/TF卡上的文件系统 支持FAT16, FAT32, exFAT, 即FatFs所支持的文件格式. 支持存储卡容量512MB至64GB, 更高容量未测试 实现基于 STM32CubeMX, STM32F4 v1.26.2 FatFs, R0.12C(STM32CubeMX内建版本) 大部分参考自STM32Cube配置SPI读sd卡 https://controllerstech.com/sd-card-using-spi-in-stm32/ 视频 https://www.youtube.com/watch?v=spVIZO-jbxE 项目代码 https://github.co
[单片机]
Keil 程序调试窗口
上一讲中我们学习了几种常用的程序调试方法,这一讲中将介绍Keil提供各种窗口如输出窗口、观察窗口、存储器窗口、反汇编窗口、串行窗口等的用途,以及这些窗口的使用方法,并通过实例介绍这些窗口在调试中的使用。 一、程序调试时的常用窗口 Keil软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Windows)、观察窗口(Watch&Call Statck Windows)、存储器窗口(Memory Window)、反汇编窗口(Dissambly Window)串行窗口(Serial Window)等。进入调试模式后,可以通过菜单View下的相应命令打开或关闭这些窗口。 iframe id="iframe_0.
[单片机]
单片机C语言软件开发系统Keil C51的使用教程
KEIL C51标准C编译器为8051微控制器的软件开发提供了C语言环境,但是界面是英文的好多初学者看很多教程都是一头雾水,本站特地制作了一个相对简单的教程。他能能嵌入汇编语言保留了汇编代码高效,快速的特点。KEIL C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品,其效率已经达到了相当搞的程度。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。 Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序
[单片机]
Keil C51必须注意的一些有趣特性
Keil c51号称作为51系列单片机最好的开发环境,大家一定都很熟悉。它的一些普通的特性大家也都了解,(书上也都说有)如:因为51内的RAM很小,C51的函数并不通过堆栈传递参数(重入函数除外),局部变量也不存储在堆栈中,而是存在于固定的RAM中及寄存器中。那么看一下下面的程序。 void fun1(unsigned char i) { … } 正常情况参数i通过R7传入函数,那么它的实际地址在什么地方呢?就是R7吗?回答这个问题之前我们先来了解keil c51的几个有趣的特性(不考虑重入函数)。 一、函数在调用前定义与在调用后定义产生的代码是有很大差别的(特别是在优化级别大于3级时)。(本人也不太清楚为什么,大概因
[单片机]
单片机电子时钟和led流水灯的结合(仿真+程序)
这是一个基于定时器的电子时钟,以前总是觉得数码管和LED挺简单的,谁知道组合起来还是有些困难的,但还是一一的解决了程序中的bug,新手也可以借鉴一下,感觉还挺有趣的。如果发现程序中有什么bug可以回帖相互探讨一下。 单片机源程序如下: #include reg52.H #include intrins.H #define uchar unsigned char #define uint unsigned int uchar code huayang1 ={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};
[单片机]