当前位置:文档之家› PROTEUS入门实例

PROTEUS入门实例

用单片机控制一个LED灯闪烁发光设计要求:用P1口的第一个引脚控制一个LED灯,1秒钟闪烁一次。

1.PROTEUS电路设计
整个设计都是在ISIS编辑区中完成的。

(1)单击工具栏上的“新建”按钮,新建一个设计文档。

单击“保存”按钮,弹出如图5-2所示的“Save ISIS Designe File”对话框,在文件名框中输入“LED”(简单实例的文件名),再单击“保存”按钮,完成新建设计文件操作,其后缀名自动为.DSN。

图5-2保存ISIS设计文件
(2)选取元器件
此简单实例需要如下元器件:
单片机:AT89C51
发光二极管:LED-RED
瓷片电容:CAP*
电阻:RES*
晶振:CRYSTAL
按钮:BUTTON
单击图5-3中的“P”按钮,弹出如图5-4所示的选取元器件对话框,在此对话框左上角“keywords(关键词)”一栏中输入元器件名称,如“A T89C52”,系统在对象库中进行搜索查找,并将与关键词匹配的元器件显示在“Results”中。

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

按照此方法完成其它元器件的选取,如果忘记关键词的完整写法,可以用“*”代替,如“CRY*”可以找到晶振。

被选取的元器件都加入到ISIS 对象选择器中。

如图5-5所示。

图5-3单击“P”按钮选取元器件
图5-4选取元器件窗口
图5-5选取元器件均加入到ISIS对象选择器中
(3)放置元器件至图形编辑窗口
在对象选择器窗口中,选中AT89C51,将鼠标置于图形编辑窗口该对象的欲放置的位置、单击鼠标左键,该对象被完成放置。

同理,将BUTTON、RES 等放置到图形编辑窗口中。

如图5-6所示。

若元器件方向需要调整,先在ISIS对象选择器窗口中单击选中该元器件,
再单击工具栏上相应的转向按钮,把元器件旋转到合适的方向后再将其放置于图形编辑窗口。

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

通过一系列的移动、旋转、放置等操作,将元器件放在ISIS编辑窗口中合适的位置。

如图5-6所示。

(4)放置终端(电源、地)
放置电源操作:单击工具栏中的终端按钮,在对象选择器窗口中选择“POWER”如图5-7所示,再在编辑区中要放电源的位置单击完成。

放置地(GROUND)的操作与此类似。

图5-6各元器件放在ISIS编辑窗口中合适的位置
图5-7放置终端符号
(5)元器件之间的连线
Proteus的智能化可以在你想要画线的时候进行自动检测。

下面,我们来操作将电阻R1的右端连接到LED显示器的左端,如图5-6所示。

当鼠标的指针靠近R1右端的连接点时,跟着鼠标的指针就会出现一个“□”号,表明找到了R1的连接点,单击鼠标左键,移动鼠标(不用拖动鼠标),将鼠标的指针靠近LED 的左端的连接点时,跟着鼠标的指针就会出现一个“□”号,表明找到了LED 显示器的连接点,单击鼠标左键完成电阻R1和LED的连线。

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

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

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

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

(6)修改、设置元器件的属性
PROTEUS库中的元器件都有相应的属性,要设置修改元器件的属性,只需要双击ISIS编辑区中的该元器件。

例如,发光二极管的限流电阻R1,双击它弹出如图5-7所示的属性窗口,在窗口中已经将电阻的阻值修改为330欧姆。

图5-9是编辑完成的“简单实例”的电路。

图5-8设置限流电阻阻值为330欧姆
图5-9编辑完成的简单实例的电路图2.源程序设计与生成目标代码文件(1)程序流程图
开始
声明变量
点亮发光二极管
延时500毫秒
关闭发光二极管
延时500毫秒
主程序
图5-10 发光二极管闪烁的流程图(2)源程序设计
将放光二极管闪烁的程序保存在文件FLASH_LED.C中,#include<reg52.h> //头文件
#define uint unsigned int //宏定义
sbit D1=P1^0; //声明单片机P1口的第一位void delay(uint z); //声明子函数
void main()
{
while(1) //大循环
{
D1=0; //点亮第一个发光二极管
delay(500); //延时500毫秒
D1=1; //关闭第一个发光二极管
delay(500); //延时500毫秒
}}
void delay(uint z) //延时子程序延时约z毫秒
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
3.在keil中编译生成目标代码文件。

4.PROTEUS仿真
(1)加载目标代码文件
双击编辑窗口的AT89C52器件,在弹出如图5—11所示属性编辑对话框
Program File一栏中单击打开按钮,出现文件浏览对话框,找到FLASH_LED.HEX文件,单击“打开”按钮,完成添加文件。

在Clock frequency 栏中把频率设置为12MHZ,仿真系统则以12MHZ的时钟频率运行。

因为单片机运行的时钟频率以属性设置中的“Clock frequency”为准,所以在编辑区设计MCS-51系列单片机系统电路时,可以略去单片机振荡电路,并且复位电路也可以略去。

所以从子情境三开始就将振荡电路和复位电路省略。

(2)仿真:单击按钮,启动仿真,仿真运行片段如图5-12所示。


光二极管间隔500毫秒闪烁。

红色方块代表低电平,蓝色方块代表高电平,灰色方块代表不确定电平。

相关主题