dvbbs
收藏本页
联系我们
论坛帮助
dvbbs

熠耀科技电子设计论坛常州纺院机电系科技苑电子仿真 → Proteus与KeilC相结合的仿真实例


  共有4283人关注过本帖树形打印

主题:Proteus与KeilC相结合的仿真实例

美女呀,离线,留言给我吧!
admin
  1楼 个性首页 | 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 贴子:428 积分:105057 威望:100000 精华:0 注册:2003/12/30 16:34:32
Proteus与KeilC相结合的仿真实例  发贴心情 Post By:2013/7/23 21:56:08

下面以一个简单的实例来完整的展示一个KeilC与Proteus相结合的仿真过程。
  单片机电路设计
  如图所示。电路的核心是单片机AT89C51。单片机的P1口八个引脚接LED显示器的段选码(a、b、c、d、e、f、g、dp)的引脚上,单片机的P2口六个引脚接LED显示器的位选码(1、2、3、4、5、6)的引脚上,电阻起限流作用,总线使电路图变得简洁。
  程序设计
  实现LED显示器的选通并显示字符。

 电路图的绘制

      

  1、将所需元器件加入到对象选择器窗口。Picking Components into the Schematic
单击对象选择器按钮 ,如图所示。



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

  在“Results”栏中的列表项中,双击“AT89C51”,则可将“AT89C51”添加至对象选择器窗口。 
  接着在“Keywords”栏中重新输入7SEG,如图所示。双击“7SEG-MPX6-CA-BLUE”,则可将“7SEG-MPX6-CA-BLUE”(6位共阳7段LED显示器)添加至对象选择器窗口。

  最后,在“Keywords”栏中重新输入RES,选中“Match Whole Words”,如图所示。在“Results”栏中获得与RES完全匹配的搜索结果。双击“RES”,则可将“RES”(电阻)添加至对象选择器窗口。单击“OK”按钮,结束对象选择。

  经过以上操作,在对象选择器窗口中,已有了7SEG-MPX6-CA-BLUE、AT89C51、RES三个元器件对象,若单击AT89C51,在预览窗口中,见到AT89C51的实物图,如图所示;若单击RES或7SEG-MPX6-CA-BLUE,在预览窗口中,见到RES和7SEG-MPX6-CA-BLUE的实物图,如图所示。此时,我们已注意到在绘图工具栏中的元器件按钮处于选中状态。
  
  2、放置元器件至图形编辑窗口Placing Components onto the Schematic

  在对象选择器窗口中,选中7SEG-MPX6-CA-BLUE,将鼠标置于图形编辑窗口该对象的欲放位置、单击鼠标左键,该对象被完成放置。同理,将AT89C51和RES放置到图形编辑窗口中。如图所示。
  若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时我们已经注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成移动操作。

  由于电阻R1~R8的型号和电阻值均相同,因此可利用复制功能作图。将鼠标移到R1,单击鼠标右键,选中R1,在标准工具栏中,单击复制按钮 ,拖动鼠标,按下鼠标左键,将对象复制到新位置,如此反复,直到按下鼠标右键,结束复制。此时我们已经注意到,电阻名的标识,系统自动加以区分。
  3、放置总线至图形编辑窗口
  单击绘图工具栏中的总线按钮 ,使之处于选中状态。将鼠标置于图形编辑窗口,单击鼠标左键,确定总线的起始位置;移动鼠标,屏幕出现粉红色细直线,找到总线的终了位置,单击鼠标左键,再单击鼠标右键,以表示确认并结束画总线操作。此后,粉红色细直线被蓝色的粗直线所替代,如图所示。

   4、元器件之间的连线Wiring Up Components on the Schematic
  Proteus的智能化可以在你想要画线的时候进行自动检测。下面,我们来操作将电阻R1的右端连接到LED显示器的A端。当鼠标的指针靠近R1右端的连接点时,跟着鼠标的指针就会出现一个“×”号,表明找到了R1的连接点,单击鼠标左键,移动鼠标(不用拖动鼠标),将鼠标的指针靠近LED显示器的A端的连接点时,跟着鼠标的指针就会出现一个“×”号,表明找到了LED显示器的连接点,同时屏幕上出现了粉红色的连接,单击鼠标左键,粉红色的连接线变成了深绿色,同时,线形由直线自动变成了90o的折线,这是因为我们选中了线路自动路径功能。
  Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将选择一个合适的路径连线。WAR可通过使用标准工具栏里的“WAR”命令按钮 来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。
同理,我们可以完成其它连线。在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线。

  5、元器件与总线的连线
  画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可,如图所示。
  6、给与总线连接的导线贴标签PART LABELS
  单击绘图工具栏中的导线标签按钮 ,使之处于选中状态。将鼠标置于图形编辑窗口的欲标标签的导线上,跟着鼠标的指针就会出现一个“×”号,如图所示。

  表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口,如图所示。 
  在“string”栏中,输入标签名称(如a),单击“OK”按钮,结束对该导线的标签标定。同理,可以标注其它导线的标签,如图所示。注意,在标定导线标签的过程中,相互接通的导线必须标注相同的标签名。
 
  至此,我们便完成了整个电路图的绘制。

  KeilC与Proteus连接调试
  1、假若KeilC与Proteus均已正确安装在C:\Program Files的目录里,把C:\Program Files\Labcenter Electronics\Proteus 6 Professional\MODELS\VDM51.dll复制到C:\Program Files\keilC\C51\BIN目录中。
  2、用记事本打开C:\Program Files\keilC\C51\TOOLS.INI文件,在[C51]栏目下加入:
  TDRV5=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver")
  其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复。
  (步骤1和2只需在初次使用设置。)
  3、进入KeilC μVision2开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件(如:Atmel公司的AT89C51)。并为该项目加入KeilC源程序。

  源程序如下:
#define LEDS 6
#include "reg51.h"
//led灯选通信号
unsigned char code Select[]={0x01,0x02,0x04,0x08,0x10,0x20};
unsigned char code LED_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,.,- };
void main()
{
char i=0;
long int j;
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菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮 ,弹出窗口,点击“Debug”按钮,出现如图所示页面。

  在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor一51 Driver”。并且还要点击一下“Use”前面表明选中的小圆点。
  再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。在“Port”后面添加“8000”。设置好的情形如图所示,点击“OK”按钮即可。最后将工程编译,进入调试状态,并运行。
 
  5、Proteus的设置
  进入Proteus的ISIS,鼠标左键点击菜单“Debug”, 选中“use romote debuger monitor”,如图所示。此后,便可实现KeilC与Proteus连接调试。

6、KeilC与Proteus连接仿真调试
单击仿真运行开始按钮 ,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。在LED显示器上,循环显示0、1、2、3、4、5。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

Proteus与KeilC相结合的仿真实例