赞
踩
摘要:本文介绍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仿真程序就介绍到这里了,你是不是可以自己写个程序仿真一下了呢?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。