下载

2下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 单片机的Proteus仿真

单片机的Proteus仿真.doc

单片机的Proteus仿真

深圳市川惠通科技有限公司
2011-10-21 0人阅读 举报 0 0 暂无简介

简介:本文档为《单片机的Proteus仿真doc》,可适用于IT/计算机领域

很早就看到有proteus这个软件可以仿真单片机,一直没有用过,今天闲着没事下了一个试试,果然很不错,是一个好东西,呵呵软件的下载地址不记得了,如果有需要可以和我联系我传给你我用的是keiluv和proteussp下面是从网上搜到的联调的方法       keil与proteus联调、把proteus安装目录下VDMdll文件复制到Keil安装目录的CBIN目录中。、修改keil安装目录下Toolsini文件在C字段加入TDRV=BINVDMDLL("ProteusVSMMonitorDriver"),保存注意:不一定要用TDRV根据原来字段选用一个不重复的数值就可以了。引号内的名字随意、打开proteus画出相应电路。在proteus的tools菜单中选中useremotedebugmonitor、进入KEIL的project菜单optionfortarget'工程名'。在DEBUG选项中右栏上部的下拉菜选中ProteusVSMMonitorDriver。在进入seting如果同一台机IP名为,如不是同一台机则填另一台的IP地址。端口号一定为注意:可以在一台机器上运行keil另一台中运行proteus进行远程仿真、在keil中进行debug吧同时在proteus中查看直观的结果(如LCD显示…) 按照上面的教程,装完之后发现proteus目录下面没有vdmdll,只好在网上搜,找了半天,找到之后发现我的keil目录下面已经有这个文件了,同样要修改的部分也已经修改好了,走了一圈弯路,呵呵 proteus设置截图 keil设置截图  看来uv里面装了不少的仿真端口,呵呵按照上面的,步骤分别将proteus和keil设置好就可以进行连接测试了      下面就要就行实际的仿真试验了      proteus是英文界面,对于英文不好的人来说不是好消息,我就属于那种人,还好有很多热心认识提供了教程      参考一下教程在proteus里将硬件电路搭起来       一个led的仿真教程:http:groupednchinacomaspx       不过在后面仿真的时候有点区别,原为是利用hex文件来仿真的,不能进行调试我们直接将后面的部分跳过,在keil里面输入源程序       下面是我写的c源程序       #include<atxh>voiddelay()voidmain(){ while() {  P=x  delay()  P=x  delay() }}voiddelay(){ unsignedinti for(i=i<=i)}    写好程序之后,进行创见目标,就可以进行仿真了   看图中画圈的部分可以看出已经和proteus连上了下面的一到五步骤是别人写忘记来源了在此引用先感谢原作者。接下来的内容是在实际联调中我又发现一些注意点不知是否是必然的规律大家一块探讨恳请指正!!  首先你要下载安装这两个软件了。Proteus可以到官方网站(http:wwwlabcentercouk)下载试用板(试用版无存盘功能)最新版本是。Keil也可以到它的官方网站(http:wwwkeilcom)去下载它的demo板(有K代码限制),最新的版本是。下载后就可以安装了。  第二步安装完毕把C:ProgramFilesLabcenterElectronicsProteusProfessionalMODELS目录下的VDMdll文件复制到C:KeilCBIN文件夹下。(目录名都是默认的你可以根据你实际安装的目录进行复制。)  第三步,用记事本(其它的编辑软件也可以,如UltraEdit)打开Keil根目录下的TOOLSINI文件在C栏目下加入TDRV=BINVDMDLL("ProteusVSMMonitorDriver")其中“TDRV”中的“”要根据实际情况写不要和原来的重复。(我的这个文件中已经有了从TDRV到TDRV,所以我用的是TDRV)  第四步keil的设置。为了让读者更好的了解这个过程笔者以Proteus自带的例子来说明。把"C:ProgramFilesLabcenterElectronicsProteusProfessionalSAMPLES"的"LCDDriver”文件夹复制到新建的Proteus文件夹下。运行keil程序在"LCDDriver"文件夹下建立一个新的名为LCDDriver工程。单片机的型号选择ATC就可以把LCDDEMO文件加到"SourceGroup"组里。点击工具栏的"optionfortarget"按钮在出现的对话框里点击"Debug"在右栏上部的下拉菜单里选中"ProteusVSMMonitorDriver"还要点击一下Use前面的小圆点。  再点击"Setting"设置通信接口在Host后面添上""如果你是用的不是同一台电脑在这里添上另一台电脑的IP地址(另一台电脑安装Proteus)。  在Port后面添上""。点击"OK"按钮即可。最后把工程编译一下。  第五步Proteus的设置。运行Proteus的ISIS鼠标左键点击菜单"DEBUG"选中"useromotedebugermonitor"。下面我们用鼠标左键点击菜单"File"再点击"LoadDesign"导入"LCDDriver"文件夹下的LCDDEMOdesign文件。本人在参照以上调试时有发现的几点注意:一定要把keil的工程和Proteus的文件放到同一个目录下(这里所说的Keil的工程指工程的目录,即Proteus的工程Design文件(后缀名。DSN)要和包含了Keil工程文件的那个文件夹在同一层目录下)。(经过操作发现:Keil的工程目录文件夹一定要命名为keil(可能与路径设置有关目前还不清楚且Keil工程名与Proteus工程名相同)否则proteus报错:UnabletoopenHEXfile'KeilDShex'  keil报错:targetdllhasbeencancelled  debuggeraborted!)以上版本需要添加与Keil联调补丁Vdmagdiexe其作用就是添加在程序目录keilcbin目录下添加Vdmdll,(注意:与其他版本不同以上版本ProteusProfessionalMODELS目录下没有VDMdll)并且修改keil目录下tools配置文件添加两行文本:TDRV=BINVDMDLL("ProteusVSMSimulator")BOOK=HLPVDMAGDIHLP("ProteusVSMAGDIDriver")经过实际操作证明手动操作也可成功实现联调功能其中第二行非必需所以不一定要安装补丁Vdmagdiexe至于ProteusProfessionalBIN目录下Prospicedll的作用有网友说与授权有关确有可能。默认安装的版本是本人用版本代替后联调才成功但是用更新的替换时联调又会失败。必须生成烧写文件  proteus的debug菜单下选定"useromotedebugermonitorteus是目前最好的模拟单片机外围器件的工具非常不错。可以仿眿系列、AVRPIC等常用的MCU及其外围电路(如LCDRAMROM键盘马达LEDADDA部分SPI器件部分IIC器件等等)虽然有那么多优点和长处但还是与实际情况有不少的差别。如果条件允许还是买一块单片机开发板或自己做一个单片机应用系统实实在在的学习和体会一下仿真毕竟还是仿真不能代替实际操作许多实际问题是在仿真中碰不到的。当然条件不允许我们可以采用仿真达到学习的目的p>如果学习和使用单片机除了灵活应用Protel等绘制原理图和PCB图以外那么KeilC软件应该要掌握我们要通过它来编写和调试单片机程序。KeilC软件是众多单片机应用开发的优秀软件之一它集编辑编译仿真于一体支持汇编,PLM语言咿C语言的程序设计界面友好易学易用。下面就三个问题分别进行介绍p>一proteus的使甿p>软件打开双击桌面上的ISISProfessional图标或者单击屏幕左下方的“开始”→“程序”→“ProteusProfessional→“ISISProfessional”出现如图所示界面随后就进入了ProteusISIS集成环境p>囿启动时的界面工作界面ProteusISIS的工作界面是一种标准的Windows界面如囿所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口p>囿 ProteusISIS的工作界靿p>关于该软件的使用与学习其他软件的方法没有多大区别当然我们也不是每个功能都使用没必要逐一介绍再说下面有例子呵呵相信自己的能力吧p>      跑马灯实例设访p>囿 跑马灯实便p>①将所需元器件加入到对象选择器窗口。PickingComponentsintotheSchematic单击对象选择器按钿如囿所礿p>囿添加元器仿p>弹出“PickDevices”页面在“Keywords”输入ATC系统在对象库中进行搜索查找并将搜索结果显示在“Results”中如囿所示p>囿 搜索查找元器仿p>在“Results”栏中的列表项中双击“ATC”则可将“ATC”添加至对象选择器窗口   接着在“Keywords”栏中重新输入LED如图所示。双击“LEDBLUE”则可将“LEDBLUELED数码箿添加至对象选择器窗口使用同样的方法抿WATTR电阻添加至对象选择器窗口p>经过以上操作在对象选择器窗口中已有了ATC、LEDBLUEWATTR三个元器件对象若单击ATC在预览窗口中见到ATC的实物图单击其他两个器件都能浏览到实物图。此时我们已注意到在绘图工具栏中的元器件按钿处于选中状态p>②放置元器件至图形编辑窗口PlacingComponentsontotheSchematic在对象选择器窗口中选中ATC将鼠标置于图形编辑窗口该对象的欲放位置、单击鼠标左键该对象被完成放置如囿所示。。同理将LEDBLUE咿WATTR放置到图形编辑窗口中p>若对象位置需要移动将鼠标移到该对象上单击鼠标右键此时我们已经注意到该对象的颜色已变至红色表明该对象已被选中按下鼠标左键拖动鼠标将对象移至新位置后松开鼠标完成移动操作p>囿 放置到图形编辑窗叿p>③放置总线至图形编辑窗叿p>单击绘图工具栏中的总线按钮使之处于选中状态。将鼠标置于图形编辑窗口单击鼠标左键确定总线的起始位置移动鼠标屏幕出现粉红色细直线找到总线的终了位置单击鼠标左键再单击鼠标右键以表示确认并结束画总线操作。此后粉红色细直线被蓝色的粗直线所替代如囿蓝色线所示p>④元器件之间的连线WiringUpComponentsontheSchematicProteus的智能化可以在你想要画线的时候进行自动检测。下面我们来操作将电阻R的上端连接到D数码管下端。当鼠标的指针靠近R上端的连接点时跟着鼠标的指针就会出现一个“×”号表明找到了R的连接点单击鼠标左键移动鼠标(不用拖动鼠标)将鼠标的指针靠近D的下端的连接点时跟着鼠标的指针就会出现一个“×”号表明找到了D的连接点同时屏幕上出现了粉红色的连接单击鼠标左键粉红色的连接线变成了深绿色那么就完成了本次连线p>Proteus具有线路自动路径功能(简称WAR)当选中两个连接点后WAR将选择一个合适的路径连线。WAR可通过使用标准工具栏里的“WAR”命令按钿来关闭或打开也可以在菜单栏的“Tools”下找到这个图标p>同理我们可以完成其它连线。在此过程的任何时刻都可以按ESC键或者单击鼠标的右键来放弃画线p>⑤元器件与总线连接单击绘图工具栏中的导线标签按钿使之处于选中状态。将鼠标置于图形编辑窗口的元件的一端移动鼠标然后连接到总线上在接着移动鼠标到元件与总线连接线上的某一点将会出现一个“×”号如图所示p>囿 元器件与总线的连掿p>表明找到了可以标注的导线单击鼠标左键弹出编辑导线标签窗口如囿所示在“string”栏中输入标签名称(如P)单击“OK”按钮结束对该导线的标签标定。同理可以标注其它导线的标签完成连线之后如图所示。注意在标定导线标签的过程中相互接通的导线必须标注相同的标签名。我们知道具有相同的标号电气是连接的这一点在protel绘制原理图时体现得尤为明显p>囿 导线标签窗口至此我们便完成了整个电路图的绘制p> 二.KeilC的使甿p>软件的打开双击桌面上的KeiluVision图标或者单击屏幕左下方的“开始”→“程序”→“KeiluVision”出现如图所示界面随后就进入了KeiluVision集成环境p> 囿启动KeiluVision时的界面工作界面KeiluVision的工作界面是一种标准的Windows界面如囿所示包括:标题栏、主菜单、标准工具栏、代码窗口等如囿所示p>囿 工作界面关于该软件的使用与学习其他软件的方法没有多大区别当然我们也不是每个功能都使用没必要逐一介绍下面举一个例子说明使用就行了如果想详细了解请搜索其详细使用资料p>跑马灯实例程序设访p>①建立一个新工程单击Project菜单在弹出的下拉菜单中选中NewProject选项如囿所示p>囿 选择建立工程菜单②确定之后选择你要保存的路徿输入工程文件的名孿比如保存到“跑马灯”目录里,工程文件的名字为“跑马灯”如下图所示然后点击保存p>囿 创建工程③随后会弹出一个对话框要求你选择单片机的型号你可以根据你使用的单片机来选择KeilC几乎支持所有的核的单片机由于Proteus选用ATC原理图那么选择ATC之后右边栏是对这个单片机的基本的说昿然后点击确定即可如囿所示p>囿 选择单片机的型号⑿完成上一步骤后工程到此就已经创建起来了其屏幕如下囿所示p>囿 已创建好的工稿p>⑤工程虽然已经创建好即已经建立好了一个工程来管理跑马灯这样一个项目但我们还没写一行程序因此还需要建立相应的C文件或汇编文件。下面我们就来新建一个C文件新建之后并保存如囿所示p>囿 新建C文件并保孿p>⑥添加文件到工程把刚才新建的ledc添加到工程来其方法如图所示添加后的界面如图所礿p>囿 添加文件到工程菜卿p>囿 添加完成后的界面⑦打开ledc文件输入C代码完成之后如囿所礿p>囿 输入源代砿p>⑧单击“Project”菜单再在下拉菜单中单击在下图中单击“Output”中单击“CreateHEXFile选项使程序编译后产生HEX代码以便在Proteus里加载可执行代码并单击“Target”选项更改晶振频率(本例使用M晶振)其如囿所示p>囿 修改晶振频率到此设置工作已完成下面我们将编译、链接、转换成可执行文件(HEX的文件)p>   ⑨编译、链接、生成可执行文件囿 编译、链接、生成可执行文件图标依次单击上述囿所示图标如果没有语法错误将会生成可执行文件即本例可执行文件为“跑马灯hex”p> 三.Proteus和Keil的联谿p>假若KeilC与Proteus均已正确安装在D:ProgramFiles的目录里把D:ProgramFilesLabcenterElectronicsProteusProfessionalMODELSVDMdll复制到D:ProgramFileskeilCCBIN目录中如果没有“VDMdll”文件那么去网上下载一个p>用记事本打开D:ProgramFileskeilCCTOOLSINI文件在C栏目下加入:TDRV=BINVDMDLL("ProteusVSMMonitorDriver")其中“TDRV”中的”要根据实际情况写不要和原来的重复即可p>(步骿咿只需在初次使用设置。)需要设置KeilC的选项单击“Project菜单OptionsforTarget”选项或者点击工具栏的“optionfortarget”按钿弹出窗口点击“Debug”按钮出现如图所示页面p>囿 KeiluVision选项设置在出现的对话框里在右栏上部的下拉菜单里选中“ProteusVSMMonitor一Driver”。并且还要点击一下“Use”前面表明选中的小圆点p>再点击“Setting”按钮设置通信接口在“Host”后面添上”如果使用的不是同一台电脑则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。在“Port”后面添加”。设置好的情形如图所示然后点击“OK”按钮。最后将工程编译进入调试状态并运行。设置完之后请重新编译、链接、生成可执行文件p>.Proteus的设罿p>进入Proteus的ISIS鼠标左键点击菜单“Debug”选中“useromotedebugermonitor”如图所示。此后便可实现KeilC与Proteus连接调试p>   囿 选项设置.Proteus里加载可执行文件      左键双击ATC原理图将弹出如下图点击加载可执行文件“跑马灯HEXp>囿 选择加载可执行文仿p>、KeilC与Proteus连接仿真调试    单击仿真运行开始按钿我们能清楚地观察到每一个引脚的电频变化红色代表高电频蓝色代表低电频。其运行情况如图所示p>囿 仿真运行效果 附跑马灯源代码: #include"regh"intLed={xfe,xfd,xfb,xf,xef,xdf,xbf,xf} ,                                                             ,, int  i,jcharDisplay={x,x,xc,xe,xff,xe,xc,x} , ,                                                , ,  ,      voidLedDisplay(void)voiddelayms(void){ unsignedchari,j for(i=i>i) for(j=j>j)}voiddelays(void){ unsignedchari for(i=i>i)   {delayms()   }}voidmain(){ P=xff while() {  for(j=j<j)  {  for(i=i<i)  {   P=Displayi   delays()    }     }     for(j=j<j)  {  for(i=i<i)  {   P=Ledi   delays()     }    for(i=i<i)  {           P=Ledi   delays()   }    }   }        }(转自:http:suxyblogcomblogstatic)

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/25

单片机的Proteus仿真

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利