目录

  • 一、流水灯仿真图
  • 二、程序编写
  • 三、仿真结果
  • 四、小结


一、流水灯仿真图

1、打开Proteus软件,然后点击左上角蓝色标志“isis”;

protues流水灯灯全亮 proteus流水灯元件_protues流水灯灯全亮

2、然后在左侧工具栏中点击“P”键选择元器件,在关键字中输入98c51,然后在“结果”栏中点击第一个,并点击确认。

protues流水灯灯全亮 proteus流水灯元件_单片机_02


在仿真界面上单击,就会把元器件放在界面上。

protues流水灯灯全亮 proteus流水灯元件_#include_03


然后在最左侧工具栏中找到“总线模式”,在单片机的右侧画一条总线。

protues流水灯灯全亮 proteus流水灯元件_单片机_04


然后在总线和单片机之间用线依次连接(本次只用到单片机的P0口);

注意:在连接总线的时候要注意总线的每条线要一一对应。

protues流水灯灯全亮 proteus流水灯元件_工具栏_05


然后在总线右侧接入不同颜色的LED灯,并接入保护电阻和电源。

总的仿真图如下:

protues流水灯灯全亮 proteus流水灯元件_单片机_06

二、程序编写

通过上篇文章安装的Keli软件进行程序的编写,把编译好的程序生成HEX文件下载到单片机中。

1、打开Keli软件,点击“Project”中的“New μVision Project”;

protues流水灯灯全亮 proteus流水灯元件_单片机_07


然后命名为“LED流水灯”,点击“保存”;

protues流水灯灯全亮 proteus流水灯元件_工具栏_08


然后在“Data base”中选择“AT89C51”,点击“OK”;

protues流水灯灯全亮 proteus流水灯元件_#include_09

然后会弹出对话框,点击“是”;

protues流水灯灯全亮 proteus流水灯元件_#include_10


在左上角点击“File ”中选择“New”,建立新文件,会出现‘Text1;

protues流水灯灯全亮 proteus流水灯元件_protues流水灯灯全亮_11


然后把以下代码复制到文本中;

//51单片机编程常用的头文件
	#include <reg51.h>
	#include <intrins.h>
	//延迟函数
	void delay_ms(int a)
	{
		int i,j;
		for(i=0;i<a;i++)
		{
			for(j=0;j<1000;j++) _nop_();
	
		}
	}
	
	void main(void)
	{
		while(1)
		{
			P0=0xfe;
			delay_ms(50);
			P0=0xfd;
			delay_ms(50);
			P0=0xfb;
			delay_ms(50);
			P0=0xf7;
			delay_ms(50);
			P0=0xef;
			delay_ms(50);
			P0=0xdf;
			delay_ms(50);
			P0=0xbf;
			delay_ms(50);
			P0=0x7f;
			delay_ms(50);
		}
	}

因为要把程序下载到单片机中需要生成HEX文件,下面就先修改一下设置;
在Keil uVision的“Project”中点击Options for Target进入一个新的界面,首先点击Output,然后勾选Create Hex File,最后点击OK。

protues流水灯灯全亮 proteus流水灯元件_单片机_12


然后点击保存并命名为“LED流水灯.c”(需要有.c)

protues流水灯灯全亮 proteus流水灯元件_单片机_13


然后点击编译。结果显示没有错误,但是有两个警告,也显示了生成了HEX文件。

protues流水灯灯全亮 proteus流水灯元件_#include_14


至此,编译生成的HEX文件就准备好了。

三、仿真结果

在Proteus中仿真图中双击单片机,在显示的界面中在“Program File”中选择刚刚生成的HEX 文件,点击确定。

protues流水灯灯全亮 proteus流水灯元件_protues流水灯灯全亮_15


然后点击左下角的仿真开关,结果如图:

protues流水灯灯全亮 proteus流水灯元件_单片机_16


至此,LED流水灯的仿真就结束了。

四、小结

1、本次内容在完成整个仿真实验的同时,还熟练的练习了Proteus软件仿真图的设计和Keli中程序的编译、HEX文件生成。
2、本篇内容没有很详细的介绍仿真图的连接原理,只是按照原理图进行了连接。流水灯的程序也没有进行原理解释,本次作业的重点是输入Proteus软件和Keil软件的操作和联系。
3、本次实验作业的内容主要是参考以下同学的博客才完成的,感谢。