proteus 和keil 联机仿真.docx

上传人:b****8 文档编号:10754728 上传时间:2023-02-22 格式:DOCX 页数:24 大小:824.89KB
下载 相关 举报
proteus 和keil 联机仿真.docx_第1页
第1页 / 共24页
proteus 和keil 联机仿真.docx_第2页
第2页 / 共24页
proteus 和keil 联机仿真.docx_第3页
第3页 / 共24页
proteus 和keil 联机仿真.docx_第4页
第4页 / 共24页
proteus 和keil 联机仿真.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

proteus 和keil 联机仿真.docx

《proteus 和keil 联机仿真.docx》由会员分享,可在线阅读,更多相关《proteus 和keil 联机仿真.docx(24页珍藏版)》请在冰豆网上搜索。

proteus 和keil 联机仿真.docx

proteus和keil联机仿真

 Proteus是Labcenter公司出品的电路分析、实物仿真系统。

它可仿真各种电路和集成IC,最让我们高兴的是它支持许多型号的单片机的仿真,另外还提供Schematic Drawing与PCB设计功能。

它的元件库齐全,使用方便,是不可多得的电子电路设计辅助软件。

keil是目前世界上最好的51单片机的汇编和C语言的开发工具。

它支持汇编,C语言以及混合编程,同时具备功能强大的软件仿真和硬件仿真(用mon51协议,需硬件支持)功能。

但是我们在利用它的仿真功能的时候都有一定的限制。

如果我们把这两个软件结合来用,调试软硬件就方便多了。

其实Proteus在设计的时候已经注意到和各种单片机编译程序的整合了。

如它可以和Keil、MPLAB IDE等编译模拟软件结合。

笔者在这里先向大家介绍Proteus怎么样和keil结合的。

1、安装keil 与 proteus 6.5 

2、把proteus安装目录下 VDM51.dll(搜一下吧)文件复制到Keil安装目录的 \C51\BIN 目录中。

 

3、修改keil安装目录下 Tools.ini文件,在C51字段加入TDRV5=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver"),保存

 注意:

不一定要用TDRV5,根据原来字段选用一个不重复的数值就可以了。

引号内的 名字随意~ 

4、打开proteus,画出相应电路。

在proteus的debug菜单中选中use remote debug monitor 

5、在keil中编写MCU的程序。

 

6、进入KEIL的project菜单option for target '工程名'。

在DEBUG选项中右栏上部的下拉菜选中 Proteus VSM Monitor-51 Driver。

 在进入seting,如果同一台机IP 名为127.0.0.1,如不是同一台机则填另一 台的IP地址。

端口号一定为8000 注意:

可以在一台机器上运行keil,

另一台中运行proteus进行远程仿真哦~ 

7、在keil中进行debug吧,同时在proteus中查看直观的结果(如LCD显示…) 

以上是KEIL与 proteus 6.9以下的版本的联调。

 

KEIL与 proteus 6.9的联调有一点不同:

 

proteus 6.9没有VDM51.dll这个文件,要到官方网站上DOWN一补丁,vdmagdi.exe。

安装后在\C51\BIN的目录下就有VDM51.dll这个文件了。

 还要DOWN一破解文件,PROSPICE.dll,替换\Proteus 6 Professional\BIN目录下的相同文件。

其它地方跟6.5版的一样。

 

 

 

 

 

 

 

Proteus和Keil的使用与联调 

Proteus7.0是目前最好的模拟单片机外围器件的工具,非常不错。

可以仿真51系列、AVR,PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件等等),虽然有那么多优点和长处,但还是与实际情况有不少的差别。

如果条件允许,还是买一块单片机开发板或自己做一个单片机应用系统,实实在在的学习和体会一下,仿真毕竟还是仿真,不能代替实际操作,许多实际问题是在仿真中碰不到的。

当然,条件不允许,我们可以采用仿真,达到学习的目的。

如果学习和使用单片机,除了灵活应用Protel等绘制原理图和PCB图以外,那么KeilC51软件应该要掌握,我们要通过它来编写和调试单片机程序。

KeilC51软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM语言和C语言的程序设计,界面友好,易学易用。

下面就三个问题分别进行介绍。

一、proteus的使用

1.软件打开

双击桌面上的ISIS7Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus7Professional”→“ISIS7Professional”,出现如图1-1所示界面,随后就进入了ProteusISIS集成环境。

图1-1启动时的界面

2.工作界面

ProteusISIS的工作界面是一种标准的Windows界面,如图1-2所示。

包括:

标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。

图1-2 ProteusISIS的工作界面

关于该软件的使用,与学习其他软件的方法没有多大区别,当然我们也不是每个功能都使用,没必要逐一介绍,再说下面有例子,呵呵,相信自己的能力吧。

      3.跑马灯实例设计

图1-3 跑马灯实例

①将所需元器件加入到对象选择器窗口。

PickingComponentsintotheSchematic单击对象选择器按钮,如图1-4所示

图1-4添加元器件

弹出“PickDevices”页面,在“Keywords”输入AT89C,系统在对象库中进行搜索查找,并将搜索结果显示在“Results”中,如图1-5所示。

图1-5 搜索查找元器件

在“Results”栏中的列表项中,双击“AT89C52”,则可将“AT89C52”添加至对象选择器窗口。

   接着在“Keywords”栏中重新输入LED,如图所示。

双击“LED-BLUE”,则可将“LED-BLUE”(LED数码管)添加至对象选择器窗口,使用同样的方法,把10WATT470R电阻添加至对象选择器窗口。

经过以上操作,在对象选择器窗口中,已有了AT89C52、LED-BLUE、10WATT470R三个元器件对象,若单击AT89C52,在预览窗口中,见到AT89C51的实物图,单击其他两个器件,都能浏览到实物图。

此时,我们已注意到在绘图工具栏中的元器件按钮处于选中状态。

②放置元器件至图形编辑窗口PlacingComponentsontotheSchematic

在对象选择器窗口中,选中AT89C52,将鼠标置于图形编辑窗口该对象的欲放位置、单击鼠标左键,该对象被完成放置,如图1-6所示。

同理,将LED-BLUE和10WATT470R放置到图形编辑窗口中。

若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时我们已经注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成移动操作。

图1-6 放置到图形编辑窗口

③放置总线至图形编辑窗口

单击绘图工具栏中的总线按钮,使之处于选中状态。

将鼠标置于图形编辑窗口,单击鼠标左键,确定总线的起始位置;移动鼠标,屏幕出现粉红色细直线,找到总线的终了位置,单击鼠标左键,再单击鼠标右键,以表示确认并结束画总线操作。

此后,粉红色细直线被蓝色的粗直线所替代,如图1-3蓝色线所示。

④元器件之间的连线WiringUpComponentsontheSchematic

Proteus的智能化可以在你想要画线的时候进行自动检测。

下面,我们来操作将电阻R1的上端连接到D1数码管下端。

当鼠标的指针靠近R1上端的连接点时,跟着鼠标的指针就会出现一个“×”号,表明找到了R1的连接点,单击鼠标左键,移动鼠标(不用拖动鼠标),将鼠标的指针靠近D1的下端的连接点时,跟着鼠标的指针就会出现一个“×”号,表明找到了D1的连接点,同时屏幕上出现了粉红色的连接,单击鼠标左键,粉红色的连接线变成了深绿色,那么,就完成了本次连线。

Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将选择一个合适的路径连线。

WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。

同理,我们可以完成其它连线。

在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线。

⑤元器件与总线连接

单击绘图工具栏中的导线标签按钮,使之处于选中状态。

将鼠标置于图形编辑窗口的元件的一端,移动鼠标,然后连接到总线上,在接着移动鼠标到元件与总线连接线上的某一点,将会出现一个“×”号,如图所示。

图1-7 元器件与总线的连接

表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口,如图1-8所示。

在“string”栏中,输入标签名称(如P2.7),单击“OK”按钮,结束对该导线的标签标定。

同理,可以标注其它导线的标签,完成连线之后如图1-3所示。

注意,在标定导线标签的过程中,相互接通的导线必须标注相同的标签名。

我们知道,具有相同的标号,电气是连接的,这一点在protel绘制原理图时,体现得尤为明显。

图1-8 导线标签窗口

至此,我们便完成了整个电路图的绘制。

 

二.KeilC51的使用

1.软件的打开

双击桌面上的KeiluVision2图标或者单击屏幕左下方的“开始”→“程序”→“KeiluVision2”,出现如图2-1所示界面,随后就进入了KeiluVision2集成环境。

 

图2-1启动KeiluVision2时的界面

2.工作界面

KeiluVision2的工作界面是一种标准的Windows界面,如图2-2所示,包括:

标题栏、主菜单、标准工具栏、代码窗口等,如图2-2所示。

图2-2 工作界面

关于该软件的使用,与学习其他软件的方法没有多大区别,当然我们也不是每个功能都使用,没必要逐一介绍,下面举一个例子说明使用就行了,如果想详细了解,请搜索其详细使用资料。

3.跑马灯实例程序设计

①建立一个新工程

单击Project菜单,在弹出的下拉菜单中选中NewProject选项,如图2-3所示。

图2-3 选择建立工程菜单

②确定之后选择你要保存的路径,输入工程文件的名字,比如保存到“跑马灯”目录里,工程文件的名字为“跑马灯”如下图2-4所示,然后点击保存。

图2-4 创建工程

③随后会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,KeilC51几乎支持所有的52核的单片机,由于Proteus选用AT89C52原理图,那么选择AT89C52之后,右边栏是对这个单片机的基本的说明,然后点击确定即可,如图2-5所示。

图2-5 选择单片机的型号

④)完成上一步骤后,工程到此就已经创建起来了,其屏幕如下图2-6所示。

图2-6 已创建好的工程

⑤工程虽然已经创建好,即已经建立好了一个工程来管理跑马灯这样一个项目,但我们还没写一行程序,因此还需要建立相应的C文件或汇编文件。

下面我们就来新建一个C文件,新建之后并保存,如图2-7所示。

图2-7 新建C文件并保存

⑥添加文件到工程

把刚才新建的led.c添加到工程来,其方法如图2-8所示,添加后的界面如图2-9所示

图2-8 添加文件到工程菜单

图2-9 添加完成后的界面

⑦打开led.c文件,输入C代码,完成之后如图2-10所示

图2-10 输入源代码

⑧单击“Project”菜单,再在下拉菜单中单击“”在下图中,单击“Output”中单击“CreateHEXFile”选项,使程序编译后产生HEX代码,以便在Proteus里加载可执行代码,并单击“Target”选项,更改晶振频率(本例使用12M晶振),其如图2-11所示。

图2-11 修改晶振频率

到此,设置工作已完成,下面我们将编译、链接、转换成可执行文件(.HEX的文件)。

   ⑨编译、链接、生成可执行文件

图2-12 编译、链接、生成可执行文件图标

依次单击上述图2-12所示图标,如果没有语法错误,将会生成可执行文件,即本例可执行文件为“跑马灯.hex”。

 

三.Proteus和Keil的联调

1.假若KeilC51与Proteus均已正确安装在D:

\ProgramFiles的目录里,把D:

\ProgramFiles\LabcenterElectronics\Proteus7Professional\MODELS\VDM51.dll复制到D:

\ProgramFiles\keilC\C51\BIN目录中,如果没有“VDM51.dll”文件,那么去网上下载一个。

2.用记事本打开D:

\ProgramFiles\keilC\C51\TOOLS.INI文件,在[C51]栏目下加入:

TDRV5=BIN\VDM51.DLL("ProteusVSMMonitor-51Driver")

其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复即可。

(步骤1和2只需在初次使用设置。

3.需要设置KeilC的选项

单击“Project菜单/OptionsforTarget”选项或者点击工具栏的“optionfortarget”按钮,弹出窗口,点击“Debug”按钮,出现如图3-1所示页面。

图3-1 KeiluVision2选项设置

在出现的对话框里在右栏上部的下拉菜单里选中“ProteusVSMMonitor一51Driver”。

并且还要点击一下“Use”前面表明选中的小圆点。

再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。

在“Port”后面添加“8000”。

设置好的情形如图所示,然后点击“OK”按钮。

最后将工程编译,进入调试状态,并运行。

设置完之后,请重新编译、链接、生成可执行文件。

4.Proteus的设置

进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“useromotedebugermonitor”,如图3-2所示。

此后,便可实现KeilC与Proteus连接调试。

   

图3-2 选项设置

5.Proteus里加载可执行文件

      左键双击AT89C52原理图,将弹出如下图3-3,点击加载可执行文件“跑马灯.HEX”

图3-3 选择加载可执行文件

6、KeilC与Proteus连接仿真调试

    单击仿真运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。

其运行情况如图3-4所示。

图3-4 仿真运行效果

 

附跑马灯源代码:

 

#include"reg51.h"

intLed[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //1111,

                                                             //11101111,11001111,1000 ------

int  i,j;

charDisplay[]={0x00,0x81,0xc3,0xe7,0xff,0xe7,0xc3,0x81}; //0000,0000 1000,

                                               //0001 1100,0011 1110,0111  1111,1111 ------     

//voidLed_Display(void);

voiddelay10ms(void)

{

 unsignedchari,j;

 for(i=20;i>0;i--)

 for(j=248;j>0;j--);

}

voiddelay02s(void)

{

 unsignedchari;

 for(i=20;i>0;i--)

   {delay10ms();

   }

}

voidmain()

{

 P2=0xff;

 while

(1)

 {

  for(j=0;j<6;j++)

  {

  for(i=0;i<8;i++)

  {

   P2=Display[i];

   delay02s();  

  }

     }

     for(j=0;j<3;j++)

  {

  for(i=0;i<8;i++)

  {

   P2=Led[i];

   delay02s();   

  }

    for(i=0;i<8;i++)

  {

           P2=Led[7-i];

   delay02s(); 

  }  

  }  

 }        

}

Proteus与keil的联机仿真设置问题

 

 

 

 

 

 

 

 

 

 

 

KeilC与Proteus连接调试

1、假若KeilC与Proteus均已正确安装在C:

\ProgramFiles的目录里,把C:

\ProgramFiles\LabcenterElectronics\Proteus6Professional\MODELS\VDM51.dll(可能没有这个文件,本压缩包里有)复制到C:

\ProgramFiles\keilC\C51\BIN目录中。

2、用记事本打开C:

\ProgramFiles\keilC\C51\TOOLS.INI文件(这里的TOOLS.INI文件可能不在c51目录下,但一定在keil的安装目录下,找一找),在[C51]栏目下加入:

TDRV5=BIN\VDM51.DLL("ProteusVSMMonitor-51Driver")

其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复。

(步骤1和2只需在初次使用设置。

3、进入KeilCμVision2开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件(如:

Atmel公司的AT89C51)。

并为该项目加入KeilC源程序。

源程序如下:

#defineLEDS6

#include"reg51.h"

//led灯选通信号

unsignedcharcodeSelect[]={0x01,0x02,0x04,0x08,0x10,0x20};

unsignedcharcodeLED_CODES[]=

{0xc0,0xF9,0xA4,0xB0,0x99,//0-4

0x92,0x82,0xF8,0x80,0x90,//5-9

0x88,0x83,0xC6,0xA1,0x86,//A,b,C,d,E

0x8E,0xFF,0x0C,0x89,0x7F,0xBF//F,空格,P,H,.,-};

voidmain()

{

chari=0;

longintj;

while

(1)

{

P2=0;

P1=LED_CODES[i];

P2=Select[i];

for(j=3000;j>0;j--);//该LED模型靠脉冲点亮,第i位靠脉冲点亮后,会自动熄来头。

//修改循环次数,改变点亮下一位之前的延时,可得到不同的显示效果。

i++;

if(i>5)i=0;

}

}

4、单击“Project菜单/OptionsforTarget”选项或者点击工具栏的“optionfortarget”按钮,弹出窗口,点击“Debug”按钮,出现如图所示页面。

在出现的对话框里在右栏上部的下拉菜单里选中“ProteusVSMMonitor一51Driver”。

并且还要点击一下“Use”前面表明选中的小圆点。

再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。

在“Port”后面添加“8000”。

设置好的情形如图所示,点击“OK”按钮即可。

最后将工程编译,进入调试状态,并运行。

5、Proteus的设置

进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“useromotedebugermonitor”,如图所示。

此后,便可实现KeilC与Proteus连接调试。

6、KeilC与Proteus连接仿真调试

单击仿真运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。

在LED显示器上,循环显示0、1、2、3、4、5。

 

不懂的再提!

qq648500361

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

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1