首页 理论教育单片机原理与应用:采用KeiluVision集成开发系统

单片机原理与应用:采用KeiluVision集成开发系统

【摘要】:Keil uVision软件是目前常用的单片机学习入门软件,要熟练掌握其主要功能。编程软件我们选用Keil uVision4的51版本,也叫作Keil C51。图2-7 安装完成最后,点击“Finish”,Keil uVision编程软件开发环境就安装好了。这里我们使用Keil uVision软件先打开一个工程,如图2-8 所示。Keil uVision软件本身都是有默认设置的,可以直接使用默认设置,也可以进行修改。图2-10 字体设置(二)现在以点亮一个LED灯为例来说明Keil uVision软件的初步使用。

Keil uVision软件是目前常用的单片机学习入门软件,要熟练掌握其主要功能。

2.1.1 学习单片机的准备工作

1.足够的信心、恒心和耐心

技术,其实就是一层窗户纸,表面看不透彻,感觉特别神秘,实际只要你稍微一努力就可以捅破它。单片机在逻辑上的关系,实际上较为简单。因此,你只要认真踏实坚持学下去,肯定能学好这门技术。

2.学习工具

计算机是学习单片机必不可少的工具,因为编写程序、查阅资料都需要用到。如果学校实验室有计算机,就必须充分利用起来。

相应的开发软件也是必不可少的,它可以帮你快速入门,同时熟练掌握软件,可以达到事半功倍的效果。

想学好单片机,必须要有一块开发板,不能总是用软件仿真,软件仿真仅仅表明你的设计正确,但是实际开发和仿真软件却差别很大。如果真心想学好单片机这门技术,需要拿起电烙铁焊接电路,动手写程序,“教、学、做”合一才能学到真正的技术。

2.1.2 单片机开发软件环境的搭建

单片机开发,首要的两个软件:一个是编程软件,一个是下载软件。编程软件我们选用Keil uVision4的51版本,也叫作Keil C51。

(1)首先准备Keil uVision4安装源文件,双击安装文件,弹出安装欢迎界面,如图2-2所示。

图2-2 Keil uVision安装欢迎界面

(2)点击“Next”按钮,弹出“License Agreement”对话框,如图2-3 所示。这里显示的是安装许可协议,需要在“I agree to all the terms of the preceding License Agreement”前面打勾。

图2-3 “License Agreement”对话框

(3)点击“Next”按钮,弹出“Folder Selection”对话框,如图2-4所示。这里可以设置安装路径,默认安装路径在“C:\Keil”文件夹下,点击“Browse...”按钮,可以修改安装路径。这里建议大家使用默认的安装路径。如果想要修改安装路径,则必须使用英文路径,不能使用包含有中文字符的路径。

图2-4 “Folder Selection”对话框

(4)点击“Next”按钮,弹出“Customer Information”对话框,如图2-5 所示。这里输入用户名、公司名称及E-mail地址即可。

图2-5 用户信息

(5)单击“Next”,便会自动安装软件,如图2-6所示。

图2-6 安装过程

(6)安装完成后,弹出安装完成对话框,如图2-7所示,并且会出现几个选项。这里把这几个选项的对号全部去掉即可,暂不关注它们有什么作用。

图2-7 安装完成

(7)最后,点击“Finish”,Keil uVision编程软件开发环境就安装好了。

2.1.3 初步认识Keil

软件安装完成后,双击桌面图标启动Keil uVision。这里我们使用Keil uVision软件先打开一个工程,如图2-8 所示。

图2-8 工程文件

从图2-8中我们可以很轻松地分辨出菜单栏工具栏、工程管理区、程序代码区和信息输出窗口。

Keil uVision软件菜单栏和工具栏的具体细化功能,都可以很方便地从网上查到,不需要记忆,随用随查即可。在这里我们只介绍一点,关于Keil软件里边的字体大小和颜色设置。在菜单“Edit”→“Configuration”→“Colors &Fonts”中可以进行字体类型、颜色、大小的设置,如图2-9所示。

图2-9 字体设置(一)

用C语言编程,在Window栏中选择“8051:Editor C Files”,然后在右侧“Element”栏目里可以选择要修改的内容,一般我们常用的只是其中几项而已,例如:Text——普通文本,Text Selection——选中的文本,Number——数字,/*Comment*/——多行注释,//Comment——单行注释,Keyword——C语言关键字,String——字符串。Keil uVision软件本身都是有默认设置的,可以直接使用默认设置,也可以进行修改。修改完后直接点击“OK”按钮便可以看到效果,如图2-10所示。

图2-10 字体设置(二)

现在以点亮一个LED灯为例来说明Keil uVision软件的初步使用。

2.1.4 新建一个工程

对于单片机程序来说,每个功能程序,都必须要有一个配套的工程(Project),即使是点亮LED这样简单的功能程序也不例外。因此,我们首先要新建一个工程,打开Keil软件,点击“Project”→“New uVision Project...”,然后会出现一个新建工程的界面,如图2-11所示。

图2-11 新建一个工程

因为现在学习到了项目2,所以在硬盘上建立了一个lesson2的目录(这个名字根据用户自己的习惯来命名,这里只是举例),然后把LED这个工程的路径指定到这里,这样方便今后管理程序,不同的功能程序放到不同的文件夹下,并且给这个工程命名为LED,软件会自动添加扩展名.uvproj,如图2-12所示。(www.chuimin.cn)

图2-12 保存工程

直接点击保存,工程会自动保存成LED.uvproj文件,下次要打开LED这个工程时,可以直接找到文件夹,双击.uvproj文件就可以直接打开。

保存之后会弹出一个对话框,在这个对话框中选择单片机型号。因为Keil软件是国外开发的,国内的STC89C52并没有上榜,但是只要选择同类型号即可。这里直接选择Atmel公司的AT89C52来代替。需要说明的是,这个选项的选择对于后面的编程不会造成任何的不良影响,如图2-13 所示。

图2-13 单片机型号选择

点击“OK”按钮之后,会弹出一个对话框,如图2-14所示。每个工程都需要一段启动代码,如果点击“否”编译器会自动处理这个问题;如果点击“是”,这部分代码会提供给用户,我们就可以按需要自己去处理这部分代码。这部分代码在我们初学51的这段时间内,一般是不需要去修改的,但是随着技术的提高和知识的扩展,我们就有可能会需要了解这部分内容。因此,这里我们选择“是”,让这段代码出现。

图2-14 启动代码选择

这样,工程就建立好了,如图2-15所示。如果我们点击Target 1左边的加号,便会出现我们刚才加入的初始化文件STARTUP.A51。

图2-15 工程文件

接下来,要建立编写代码的文件,点击“File”→“New”,如图2-16所示,新建一个文件,也就是编写程序的平台。然后点击“File”→“Save”或者直接点击“Save”的快捷键,可以保存文件,保存时把它命名为LED.c。这个地方必须加上.c,因为如果编写汇编语言,这里的扩展名是.asm,头文件就是.h等,如图2-17所示。

图2-16 新建文件

图2-17 保存文件

现在就可以在建立好的文件中输入我们的程序代码,在编写之前还有个工作要做。我们每做一个功能程序,必须要新建一个工程,即一个工程代表了单片机要实现的一个功能。但是一个工程,有时候可以把程序分多个文件写。所以每写一个文件,都要添加到我们所建立的工程中去,鼠标右键点击“Source Group 1”,选择“Add Files to Group‘Source Group 1’...”,如图2-18所示。

图2-18 添加文件(一)

在弹出的对话框中(见图2-19),单击led.c,选中它,然后点击“Add”,或者直接双击led.c都可以将文件加入到这个工程下,然后单击“Close”,关闭对话框。这时候会看到在Source Group 1下面多了一个led.c文件,如图2-20所示。

图2-19 添加文件(二)

图2-20 添加文件(三)

2.1.5 编写程序

C语言源文件建立好并添加到工程中之后,就可以开始编写程序。单片机的编程是面向硬件的编程,程序的内容需要紧密地结合硬件电路的结构。使用8051单片机驱动流水灯的电路如图2-21所示(这个电路图是用Proteus绘制的,关于Proteus的使用将在后面简单说明)。

图2-21 一个LED灯的原理图

点亮一个LED灯的参考程序:

程序编好后就可以对程序进行编译,生成需要的、可以下载到单片机里的文件,在编译之前,先要勾选一个选项,“Project”→“Options for Target „‘Target1’...”,或者直接点击图2-22中方框内的快捷图标,在弹出的对话框中,点击Output选项,勾选其中的“Create HEX File”复选框,然后点击“OK”,如图2-23所示。

图2-22 工程选项图标

图2-23 创建HEX文件

设置好以后,点击“Project”→“rebuild all target files”,或者用鼠标点击图2-24中方框内的快捷图标,就可以对程序进行编译。

图2-24 编译程序

编译完成后,在Keil下方的Output窗口会出现相应的提示,如图2-25所示。

图2-25 编译输出信息

这个窗口说明编译完成后的情况,data=9.0,指的是这个程序使用了单片机内部的256 B RAM资源中的9 B;code=19的意思是使用了8 KB代码FLASH资源中的19 B。提示“0 Error(s),0 Warning(s)”则表示程序没有错误和警告,就会出现“creating hex file from‘led’...”,意思是从当前工程生成了一个HEX文件,这个就是要下载到单片机上的HEX文件。如果出现有错误和警告提示,即Error和Warning不是 0,那么就要对该程序进行检查,找出问题,解决好之后再进行编译,直到产生HEX文件。

到此为止,程序就编译完成,下面我们就要把编译好的程序文件下载到单片机中。