当前位置:   article > 正文

一起玩儿Proteus仿真(C51)——02. C51最小系统和第一个仿真程序_c51仿真

c51仿真

摘要:本文介绍C51最小系统和第一个仿真程序

C51最小系统就是以C51为核心,辅以最少的外围器件,能让C51正常工作时的组成就是C51的最小系统。这个最小系统通常包括3部分,单片机芯片,晶振电路和复位电路。下面就来使用Proteus软件,建立一个C51的最小系统。

运行Proteus软件,然后打开“新建工程”功能,会弹出新建工程向导对话框,如下图所示:

在这个窗口中,需要输入工程的名称和工程文件的保存路径。输入完成后,单击“Next”进入到“选择模板创建原理图”界面,如下图所示:

在这个窗口中,我们选择默认的模板,然后单击“Next”,进入到PCB布板设计选择窗口,如下图所示:

在这里选择不创建PCB布板设计,再单击“Next”,进入固件项目选择界面。如下图所示。

因为我们采用的是Keil C51作为开发工具,因此,在这里选择“没有固件项目”,然后单击“Next”,进入到创建工程汇总界面,如下所示:

然后,单击“Finish”就结束了新建项目向导,进入到了Proteus主界面。如下图所示:

在上面的原理图绘制主界面可以看到,上面为菜单和工具栏,左侧也是工具栏,右侧的大部分是原理图绘制功能区,接下来最小系统的原理图就要在这里绘画完成了。

下面先来了解一下如何增加一个89C51单片机到工作区,首先单击左侧的“P”按钮,或者,在主界面直接按下键盘上的p字符,这时就会弹出“Pick Devices”对话框,如下图所示。

然后,在Keywords文本框中输入“89C51”就可以找到名称为“AT89C51”的设备了,选中后,单击确定,AT89C51就出现在了界面最左侧的设备列表中了。在列表中,点中“AT89C51”后,在主工作区单击左键,就可以将设备“AT89C51”增加到工作区了。

下表列举了C51单片机最小系统所需要的所有器件,依次把这些器件增加到左侧的设备列表中,其中每一个器件都附注的英文名称,如果左侧设备列表没有这个器件,通过英文名字去“Pick Devices”窗口查找就可以了。

单片机ATC89C51

晶振CRYSTAL

电容CAP

电解电容CAP-ELEC

电阻RES

按钮开关BUTTON

将这些设备添加到工作区后,再连接相应的导线,就完成AT89C51最小系统的创建工作了,如下图所示:

接下来通过一个LED跑马灯的功能来了解一下整个仿真实验的过程。跑马灯就是放置一系列的发光二极管,然后让这些二极管依次逐个点亮然后在熄灭。这里一共设置8个LED二极管,完成后的原理图如下图所示:

接下来就来创建第一个C51程序,打开“Keil uVision5”开发工具,首先建一个新的工程,单击“项目”菜单中的“新uVision项目”,打开“选择设备”对话框,选择ATC89C51单片机,如下图所示:

然后单击“OK”按钮,会弹出一个拷贝文件到项目的确认对话框,选择“确定”就可以了。

然后,打开“文件”菜单中的“新建”功能,创建一个main.c的源文件,如下所示:

main.c文件创建成功以后,就可以录入程序的源代码了,具体代码如下:

#include "reg51.h"

#define uint unsigned int

#define uchar unsigned char

void delay(void)

{

uint i,j;

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

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

;

}

void main(void)

{

uchar i,j;

P2 = 0xFF;

while(1)

{

j = 0x01;

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

{

P2 = ~j;

delay();

j=j<<1;

}

}

}

在这个程序中,需要注意的是,使用前面原理图的接法时,当引脚输出为低电平的时候,LED才会亮,引脚为高电平时,LED熄灭。程序中先定义变量j为0x01,然后将其按位取反后输出到串口P2,这样只有P2.0的LED是量的,然后j向前按位移动一位之后,倒数第二位是1,其他位都是0,这样,将j按位取反赋值给P2后,只有P2.1的LED是量的,依次类推,就实现了流水灯的功能。具体的变化过程如下表所示:

循环变量i

变量j(二进制)

P2(十六进制)

LED状态

0

0000 0001

0xFE

D1亮,其余灭

1

0000 0010

0xFD

D2亮,其余灭

2

0000 0100

0xFB

D3亮,其余灭

3

0000 1000

0xF7

D4亮,其余灭

4

0001 0000

0xEF

D5亮,其余灭

5

0010 0000

0xDF

D6亮,其余灭

6

0100 0000

0xBF

D7亮,其余灭

7

1000 0000

0x7F

D8亮,其余灭

接下来就是编译程序,在编译的时候,要注意,因为一会儿仿真的时候,要使用到HEX文件,因此,需要在“项目”菜单下的“目标选项”对话框中的“Output”选项卡,勾选“Create HEX File”,如下图所示:

编译完成之后,回到Proteus中,双击原理图中的ATC89C51器件,打开“编辑元件”对话框,将“Program File”选中刚才编译生成的HEX文件,如下图所示:

最后,就可以单击Proteus主界面左下角的“运行仿真”功能的蓝色三角按钮,开始仿真了,这时,应该在主工作区,看到8个LED被依次点亮。如下图所示:

好了,第一个C51仿真程序就介绍到这里了,你是不是可以自己写个程序仿真一下了呢?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/754905
推荐阅读
相关标签
  

闽ICP备14008679号