Proteus7的入门使用Word下载.docx
《Proteus7的入门使用Word下载.docx》由会员分享,可在线阅读,更多相关《Proteus7的入门使用Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
![Proteus7的入门使用Word下载.docx](https://file1.bdocx.com/fileroot1/2022-10/26/92a23c0d-ff34-4ee5-b0cd-528e5e5562b5/92a23c0d-ff34-4ee5-b0cd-528e5e5562b51.gif)
所示
囿-4添加元器仿/p>
11
弹出“PickDevices〞页面,在“Keywords〞输入AT89C,系统在对象库中进展搜索查找,并将搜索结果显示
在“Results〞中,如囿-5所示?
/p>
囿-5搜索查找元器仿
在“Results〞栏中的列表项中,双击“AT89C52”,那么可将“AT89C52”添加至对象选择器窗口?
接着在“Keywords〞栏中重新输入LED,如下图。
双击“LED-BLUE〞,那么可将“LED-BLUE?
LED数码箿添加至
对象选择器窗口,使用同样的方法,抿0WATT470R电阻添加至对象选择器窗口?
经过以上操作,在对象选择器窗口中,已有了AT89C52、LED-BLUE?
0WATT470R三个元器件对象,假设单击AT89C52,
在预览窗口中,见到AT89C51的实物图,单击其他两个器件,都能阅读到实物图。
此时,我们已注意到在绘图工具栏
中的元器件按钿处于选中状态?
②放置元器件至图形编辑窗口PlacingComponentsontotheSchematic
在对象选择器窗口中,选中AT89C52,将鼠标置于图形编辑窗口该对象的欲放位置、单击鼠标左键,该对象被完成
放置,如囿-6所示。
。
同理,将LED-BLUE咿0WATT470R放置到图形编辑窗口中?
假设对象位置需要挪动,将鼠标移到该对象上,单击鼠标右键,此时我们已经注意到,该对象的颜色已变至红色,
说明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成挪动操作?
囿-6放置到图形编辑窗口
③放置总线至图形编辑窗
单击绘图工具栏中的总线按钮,使之处于选中状态。
将鼠标置于图形编辑窗口,单击鼠标左键,确定总线的起始
位置;
挪动鼠标,屏幕出现粉红色细直线,找到总线的终了位置,单击鼠标左键,再单击鼠标右键,以表示确认并完毕画总线
操作。
此后,粉红色细直线被蓝色的粗直线所替代,如囿-3蓝色线所示?
④元器件之间的连线WiringUpComponentsontheSchematic
Proteus的智能化可以在你想要画线的时候进展自动检测。
下面,我们来操作将电阻R1的上端连接到D1数码管下端。
当鼠标的指针靠近R1上端的连接点时,跟着鼠标的指针就会出现一个“×
〞号,说明找到了R1的连接点,单击鼠标左键,
挪动鼠标(不用拖动鼠标),将鼠标的指针靠近D1的下端的连接点时,跟着鼠标的指针就会出现一个“×
〞号,说明找到了
D1的连接点,同时屏幕上出现了粉红色的连接,单击鼠标左键,粉红色的连接线变成了深绿色,那么,就完成了本次连线?
Proteus具有线路自动途径功能(简称WAR),中选中两个连接点后,WAR将选择一个适宜的途径连线。
WAR可通过使用标准
工具栏里的“WAR〞命令按钿来关闭或翻开,也可以在菜单栏的“Tools〞下找到这个图标?
同理,我们可以完成其它连线。
在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线?
⑤元器件与总线连接
单击绘图工具栏中的导线标签按钿,使之处于选中状态。
将鼠标置于图形编辑窗口的元件的一端,挪动鼠标,然后连接到
总线上,在接着挪动鼠标到元件与总线连接线上的某一点,将会出现一个“×
〞号,如下图?
囿-7元器件与总线的连掿/p>
说明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口,如囿-8所示?
在“string〞栏中,输入标签名称(如P2.7),单击“OK〞按钮,完毕对该导线的标签标定。
同理,可以标注其它导线的标签,
完成连线之后如图1-3所示。
注意,在标定导线标签的过程中,互相接通的导线必须标注一样的标签名。
我们知道,具有一样
的标号,电气是连接的,这一点在protel绘制原理图时,表达得尤为明显?
囿-8导线标签窗口
至此,我们便完成了整个电路图的绘制?
二.KeilC51的使甿/p>
1.软件的翻开
双击桌面上的KeiluVision2图标或者单击屏幕左下方的“开场〞→“程序〞→“KeiluVision2”,出现如图2-1所
示界面,随后就进入了KeiluVision2集成环境?
囿-1启动KeiluVision2时的界面
KeiluVision2的工作界面是一种标准的Windows界面,如囿-2所示,包括:
标题栏、主菜单、标准工具栏、代码窗口等,如囿-2所示?
囿-2工作界面
关于该软件的使用,与学习其他软件的方法没有多大区别,当然我们也不是每个功能都使用,没必要逐一介绍,下面举
一个例子说明使用就行了,假如想详细理解,请搜索其详细使用资料?
3.跑马灯实例程序设访/p>
①建立一个新工程
单击Project菜单,在弹出的下拉菜单中选中NewProject选项,如囿-3所示?
囿-3选择建立工程菜单
②确定之后选择你要保存的路徿输入工程文件的名孿比方保存到“跑马灯〞目录里,工程文件的名字为“跑马灯〞如下列图
2-4所示,然后点击保存?
囿-4创立工程
③随后会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,KeilC51几乎支持所有的52核
的单片机,由于Proteus选用AT89C52原理图,那么选择AT89C52之后,右边栏是对这个单片机的根本的说昿然后点击
确定即可,如囿-5所示?
囿-5选择单片机的型号
⑿完成上一步骤后,工程到此就已经创立起来了,其屏幕如下囿-6所示?
囿-6已创立好的工稿/p>
⑤工程虽然已经创立好,即已经建立好了一个工程来管理跑马灯这样一个工程,但我们还没写一行程序,因此还需要建立
相应的C文件或汇编文件。
下面我们就来新建一个C文件,新建之后并保存,如囿-7所示?
囿-7新建C文件并保孿/p>
⑥添加文件到工程
把刚刚新建的led.c添加到工程来,其方法如图2-8所示,添加后的界面如图2-9所礿/p>
囿-8添加文件到工程菜卿/p>
囿-9添加完成后的界面
⑦翻开led.c文件,输入C代码,完成之后如囿-10所礿/p>
囿-10输入源代砿/p>
⑧单击“Project〞菜单,再在下拉菜单中单击?
?
在下列图中,单击“Output〞中单击“CreateHEXFile?
选项,使程序编译
后产生HEX代码,以便在Proteus里加载可执行代码,并单击“Target〞选项,更改晶振频率〔本例使用12M晶振〕,
其如囿-11所示?
囿-11修改晶振频率
到此,设置工作已完成,下面我们将编译、链接、转换成可执行文件〔.HEX的文件〕?
⑨编译、链接、生成可执行文件
囿-12编译、链接、生成可执行文件图标
依次单击上述囿-12所示图标,假如没有语法错误,将会生成可执行文件,即本例可执行文件为“跑马灯.hex〞?
三.Proteus和Keil的联谿/p>
1.假假设KeilC51与Proteus均已正确安装在D:
\ProgramFiles的目录里,
复制到D:
\ProgramFiles\keilC\C51\BIN目录中,假如没有“VDM51.dll〞文件,那么去网上下载一个?
2.用记事本翻开D:
\ProgramFiles\keilC\C51\TOOLS.INI文件,在[C51]栏目下参加:
TDRV5=BIN\VDM51.DLL("
ProteusVSMMonitor-51Driver"
)
其中“TDRV5〞中的?
〞要根据实际情况写,不要和原来的重复即可?
〔步骿咿只需在初次使用设置。
〕
3.需要设置KeilC的选项
单击“Project菜单/OptionsforTarget〞选项或者点击工具栏的“optionfortarget〞按钿,弹出窗口,点击“Debug〞按钮,出现如图3-1所示页面?
囿-1KeiluVision2选项设置
在出现的对话框里在右栏上部的下拉菜单里选中“ProteusVSMMonitor一51Driver〞。
并且还要点击一下“Use〞前面说明选中的小圆点?
再点击“Setting〞按钮,设置通信接口,在“Host〞后面添上?
27.0.0.1”,假如使用的不是同一台电脑,
那么需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。
在“Port〞后面添加?
000”。
设置好的情形如下图,然后点击“OK〞按钮。
最后将工程编译,进入调试状态,并运行。
设置完之后,请重新编译、链接、生成可执行文件?
4.Proteus的设罿/p>
进入Proteus的ISIS,鼠标左键点击菜单“Debug〞,选中“useromotedebugermonitor〞,如图3-2所示。
此后,便可实现KeilC与Proteus连接调试?
囿-2选项设置
5.Proteus里加载可执行文件
左键双击AT89C52原理图,将弹出如下列图3-3,点击加载可执行文件“跑马灯.HEX?
囿-3选择加载可执行文仿/p>
6、KeilC与Proteus连接仿真调试
单击仿真运行开场按钿,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。
其运行情况如图3-4所示?
囿-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,00001000,
//00011100,00111110,0111
1111,1111------
//voidLed_Display(void);
voiddelay10ms(void)
{
unsignedchari,j;
for(i=20;
i>
0;
i--)
for(j=248;
j>
j--);
}
voiddelay02s(void)
unsigne