资源描述:
《keil软件的使用方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Keil软件的使用随着单片机开发技术的不断发展,目前已有越来越多的人从普遍使用汇编语言到逐渐使用高级语言开发,其中主要是以C语言为主,市场上几种常见的单片机均有其C语言开发环境。这里以最为流行的80C51单片机为例来学习单片机的C语言编程技术。大家都有C语言基础,但是编单片机程序,大家还得找专门的书来学习一下。这里我们只介绍Keil这种工具软件的用法。学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。Keil软件是目最流行开发80C51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整
2、开发方案,通过一个集成开发环境(µVision)将这些部份组合在一起。下面我以一个实验举一个例子,一步一步学习Keil软件的使用。首先我们看硬件原理图:很明显,要点亮使发光二极管,必须使单片机的I/O口P1.0输出低电平。于是我们的任务就是编程序使P1.0输出地电平。1.使用Keil前必须先安装。安装过程简单,这里不在叙述。2.安装好了Keil软件以后,我们打开它。打开以后界面如下:3.我们先新建一个工程文件,点击“Project->New Project…”菜单,如下图,:1.选择工程文件要存放的路径,输入工程文件名LED,最后单击保存.2.在弹出的对
3、话框中选择CPU厂商及型号5.选择好Atmel公司的AT89S52后,单击确定1.在接着出现的对话框中选择“是”。1.新建一个C51文件,单击左上角的NewFile如下图所示:1.保存新建的文件,单击SAVE如下图:1.在出现的对话框中输入保存文件名MAIN.C(注意后缀名必须为.C),再单击“保存”,如下图;2.保存好后把此文件加入到工程中方法如下:用鼠标在SourceGroup1上单击右键,然后再单击AddFilestoGroup‘SourceGroup1'如下图:1.选择要加入的文件,找到MAIN.C后,单击Add,然后单击Close1.在编辑框里
4、输入如下代码:2.到此我们完成了工程项目的建立以及文件加入工程,现在我们开始编译工程如下图所示:我们先单击编译,如果在错误与警告处看到0Error(s)表示编译通过;3.生成.hex烧写文件,先单击OptionsforTarget,如图;1.在下图中,我们单击Output,选中CreateHEXF。再单击“确定”。2.打开文件夹‘实验1’,查看是否生成了HEX文件。如果没有生成,在执行一遍步骤10到步骤12,直到生成。以上是Keil软件的基本应用,更多的高级应用请大家去查找资料.以下将介绍的是如何将HEX文件下载到单片机里面。我们用的下载软件是Easy5
5、1ProEasy51Prov2.0软件的使用Easy51Prov2.0是单片机下载工具:在我们的QQ群里有这个软件,大家可以下载来直接用,而不用安装。下面我给大家简单的说一下用法:1.硬件连接;必须满足下面的每一个条件才能下载。如图2.打开软件;3.检测器件,注意右边的信息提示。如果没有检测到器件,检查硬件连接。3.打开HEX文件。先单击“(自动)打开文件”。在“实验1”的文件夹里找到文件LED.hex文件.4.最后单击“自动完成”,OK大功告成。5.大功既然告成,就要看到效果。现在我们在实验板的左下角找到JK7,用导线连到P1.0上,LED2被点亮了把
6、。是不是很有成就感。如果以上的实验你觉得是小儿科,太简单了。那么请关注以下的内容。一.闪烁灯[实验任务]在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。[硬件电路]与上面点亮小灯的连接完全相同。[C语言源程序]#include/************************************************************************************* 第一行是一个"文件包含"处理。 所谓"文件包含"是指一个文件将另外一个文件的内容全部包含进来
7、,所以这里的程序虽然只有4行,但C编译器在处理的时候却要处理几十或几百行。这里程序中包含REG51.h文件的目的是为了要使用P1这个符号,即通知C编译器,程序中所写的P1是指80C51单片机的P1端口而不是其它变量。*****************************************************************************/voiddelay02s(void)//延时0.2秒子程序{unsignedchari,j,k;//定义3个无符号字符型数据。for(i=20;i>0;i--)//作循环延时for(j=2
8、0;j>0;j--)for(k=248;k>0;k--);}voidmain(v