Proteus仿真软件在单片机设计中的应用

kelly的头像
kelly 发布于:周四, 08/11/2016 - 15:28 ,关键词:

摘要:单片机应用技术所涉及到的实验实践环节比较多,而且硬件投入比较大。在具体的工程实践中,如果因为方案有误而进行相应的开发设计,会浪费较多的时间和经费。Proteus仿真软件很好的解决了这些问题,它可以象Protel一样画好硬件原理图与KEIL编程软件结合进行编程仿真调试。

1、引言 
 
单片机在很多产品中得到广泛的应用,无论是51系列、AVR、还是PIC系列,他们各有各的特点,学习者也是逐年增加,但是在学习开发过程中,我们往往在确定方案后做试验的开支比较大,尤其是对于一些学生或者初学者这就可能成为他们学习的障碍。在我们使用Proteus软件以来大大节省了时间和开发费。尤其将此软件用在单片机开发中是一个不错的选择。我们这里主要讲述的是Proteus软件与Keil软件的结合与应用。  

2、Protues软件介绍与应用  

2.1 Protues软件介绍  
    
Proteus是目前最好的模拟单片机外围器件的工具,它可以仿真51系列、AVR,PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件...)。本文基于ProteusPRO6.7SP3和KEIL uVision3 软件。 
    
当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可是对于单片机爱好者,或者简单的开发应该是比较好的选择。 

Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。 

2.2 Protues软件与Keil uVision的结合 
   
对于初次使用Protues软件的人可能还不知道如何设置,

现在把设置步骤简介如下,仅供参考(本文只讨论在单机上结合,在两个联网机器使用由于篇幅限制不在此讨论): 

设置步骤: 

(1)把proteus安装目录下 VDM51.dll(C:\Program Files\LabcenterElectronics\Proteus6\Professional\MODELS)文件复制到Keil安装目录的 \C51\BIN 目录中;

(2)编辑C51 里tools.ini文件,加入:TDRV1=BIN\VDM51.DLL("PROTEUS VSM MONITOR-51 DRIVER");

(3) Keil uVision里设置:project-->options for project-->debug tab; 

(4)选中use proteus VSM monitor 51( 如果想用两台电脑仿真,双击setting,输入IP地址 或者DNS name);

(5)载入proteus文件;

(6) proteus 里选择DEBUG-->use remote debug monitor;进入KEIL的project菜单option for target '工程名'。在DEBUG选项中右栏上部的下拉菜选中 Proteus VSM Monitor-51 Driver。 在进入seting,如果同一台机IP 名为127.0.0.1,如不是同一台机则填另一 台的IP地址。端口号一定为8000 注意:可以在一台机器上运行keil,另一台中运行proteus进行远程仿真。

(7)打开KEIL uVision,按F5 开始仿真。  

2.3 proteus的工作过程 
 
运行proteus的ISIS程序后,进入该仿真软件的主界面。在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。通过工具栏中的p(从库中选择元件命令)命令,在pick devices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Define code generation tools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/remove source files命令下,加入单片机硬件电路的对应程序;通过debug菜单的相应命令仿真程序和电路的运行情况。 
    
Proteus 软件所提供了30多个元件库,数千种元件。元件涉及到数字和模拟、交流和直流等。  

2.4 Proteus软件所提供的调试手段  

Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。 
  
对于单片机硬件电路和软件的调试,Proteus 提供了两种方法:一种是系统总体执行效果,一种是对软件的分步调试以看具体的执行情况。 
  
对于总体执行效果的调试方法,只需要执行debug菜单下的execute菜单项或F12快捷键启动执行,用debug菜单下的pause animation菜单项或pause键暂停系统的运行;或用debug菜单下的stop animation 菜单项或shift-break组合键停止系统的运行。其运行方式也可以选择工具栏中的相应工具进行。 

对于软件的分步调试,应先执行debug菜单下的start/restart debugging 菜单项命令,此时可以选择step over 、step into 和 step out命令执行程序(可以用快捷键F10、F11和ctrl+F11),执行的效果是单句执行、进入子程序执行和跳出子程序执行。在执行了start / restart debuging命令后,在debug菜单的下面要出现仿真中所涉及到的软件列表和单片机的系统资源等,可供调试时分析和查看。
  
2.5 Proteus和KEIL uVision3 软件结合实例 

本节将通过一个流水灯试验具体介绍Proteus与Keil uVision的结合与应用。 

(1)通过Proteus画原理图:

图1

在Keil uVision软件别写程序: 

#include 

#include 

void delayms(unsigned char ms)  

// 延时子程序

 {  
 
   unsigned char i; 

 while(ms--)  { 
   
for(i = 0; i < 120; i++); 
 } 

}

main()

{  

unsigned char LED; 

 LED = 0xfe;  

P0 = LED;  

while(1)  

{   

delayms(250);  
 
    LED = _crol_(LED,1);   

//循环右移1位,点亮下一个LED   

P0 = LED; 
   
 } 

}

(2)对Proteus和 Keil uVision软件进行设置

(3)运行程序,运行结果如下:实现流水灯功能 

图2

3、总结 
 
Proteus 不仅可以作为单片机(电子等)实验的模拟仿真,也可以作为个人工作室的仿真实验。作为电子技术或控制类相关专业的学生和工程技术人员,在学习了该软件后,可以充分地利用它所提供的资源,帮助自己提高工程应用能力。  

围观 390