3.2 程序的编写与编译
3.2.1 启动Keil C51软件并新建工程文件
扫一扫看视频
1. Keil C51软件的启动
Keil C51软件安装完成后,双击计算机屏幕桌面上的“Keil μVision2”图标,或单击计算机屏幕桌面左下角的“开始”按钮,在弹出的菜单中执行“程序”→“Keil μVision2”,就可以启动Keil μVision2,启动后的Keil μVision2软件窗口如图3-1所示。
2.新建工程文件
在用Keil μVision2软件进行单片机程序开发时,为了便于管理,需要先建立一个项目文件,用于管理本项目中的所有文件。在Keil μVision2软件新建工程文件的操作过程见表3-1。
图3-1 启动后的Keil μ Vision2软件窗口
表3-1 在Keil μ Vision2软件新建工程文件的操作说明
(续)
3.2.2 新建源程序文件并与工程进行关联
新建工程完成后,还要在工程中建立程序文件,并将程序文件保存后再与工程关联到一起,然后就可以在程序文件中用C语言或汇编语言编写程序。
新建源程序文件并与工程关联起来的操作过程如下:
1)新建源程序文件。在Keil μVision2软件窗口中执行菜单命令“File”→“New”,即新建了一个默认名称为“Text 1”的空白文件,同时该文件在软件窗口中打开,如图3-2所示。
图3-2 新建源程序文件
2)保存源程序文件。单击工具栏上的工具图标,或执行菜单命令“File”→“Save As”,弹出图3-3所示“Save As”对话框。在对话框中打开之前建立的工程文件所在的文件夹,再将文件命名为“一个按键控制一只LED亮灭.c”(扩展名.c表示为C语言程序,不能省略),单击“保存”按钮即将该文件保存下来。
3)将源程序文件与工程关联起来。新建的源程序文件与新建的项目没有什么关联,需要将它加入到工程中。展开工程管理器的“Target 1”文件夹,在其中的“Source Group 1”文件夹上单击鼠标右键,在弹出的快捷菜单中选择“Add Files to Group’Source Group 1’”项,会出现图3-4所示的加载文件对话框,在该对话框中选文件类型为“C Source file(*.c)”,找到刚新建的“一个按键控制一只LED亮灭.c”文件,再单击“Add”按钮,该文件即被加入到项目中,此时对话框并不会消失,可以继续加载其他文件,单击“Close”按钮关闭对话框。在Keil软件工程管理器的“Source Group1”文件夹中可以看到新加载的“一个按键控制一只LED亮灭.c”文件,如图3-5所示。
图3-3 保存源程序文件
图3-4 在对话框中选择要加载的文件
3.2.3 编写程序
编写程序有两种方式:一是直接在Keil软件的源程序文件中编写;二是用其他软件(如Windows操作系统自带的记事本程序)编写,再加载到Keil软件中。
图3-5 程序文件被加载到工程中
1.在Keil软件的源程序文件中编写
在Keil软件窗口左边的工程管理器中选择源程序文件并双击,源程序文件被Keil软件自带的程序编辑器(文本编辑器)打开,此时便可在程序编辑器中用C语言编写单片机控制程序,如图3-6所示。
图3-6 在Keil软件自带的程序编辑器中用C语言编写程序
2.用其他文本工具编写程序
Keil软件的程序编辑器实际上是一种文本编辑器,在输入中文时,有时会出现文字残缺现象。编程时也可以使用其他文本编辑器(如Windows操作系统自带的记事本)编写程序,再将程序加载到Keil软件中进行编译、仿真和调试。
用其他文本工具编写并加载程序的操作如下:
1)用文本编辑器编写程序。打开Windows自带的记事本,在其中用C语言(或汇编语言)编写程序,如图3-7所示。编写完后将该文件保存下来,文件的扩展名为.c(或.asm),这里将文件保存为“1KEY_1LED.c”。
图3-7 用Windows自带的记事本编写单片机控制程序
2)将程序文件载入Keil软件与工程关联。打开Keil软件并新建一个工程(如已建工程,本步骤忽略),再将“1KEY_1LED.c”文件加载进Keil软件与工程关联起来。程序载入完成后,在Keil软件的工程管理器的Source Group 1文件夹中可看到加载进来的“1KEY_1LED.c”文件,双击可以打开该文件。
3.2.4 编译程序
用C语言(或汇编语言)编写好程序后,程序还不能直接写入单片机,因为单片机只接受二进制数,所以要将C语言程序转换成二进制或十六进制代码。将C语言程序(或汇编语言程序)转换成二进制或十六进制代码的过程称为编译(或汇编)。
C语言程序的编译要用到编译器,汇编语言程序要用到汇编器,51系列单片机对C语言程序编译时采用C51编译器,对汇编语言程序汇编时采用A51汇编器。Keil软件本身带有编译器和汇编器,在对程序进行编译或汇编时,会自动调用相应的编译器或汇编器。
1.编译或汇编前的设置
在Keil软件中编译或汇编程序前需要先进行一些设置。设置时,执行菜单命令“Project”→“Options for Target′Target 1′”,如图3-8a所示,弹出图3-8b所示的对话框,该对话框中有10个选项卡,每个选项卡中都有一些设置内容,其中“Target”和“Output”选项卡较为常用,默认打开“Target”选项卡,这里保持默认值。单击“Output”选项卡,切换到该选项卡,如图3-8c所示,选中“Create HEX Fi”项并确定关闭对话框。设置时选中“Create HEX Fi”项的目的是让编译或汇编时生成扩展名为.hex的十六进制文件,再用烧录软件将该文件烧录到单片机中。
2.编译或汇编程序
编译设置结束后,在Keil软件窗口执行菜单命令“Project”→“Rebuild all target files(重新编译所有的目标文件)”,也可以直接单击工具栏上的图标,Keil软件自动调用C51编译器将“一个按键控制一只LED亮灭.c”文件中的程序进行编译。编译完成后,在软件窗口下方的输出窗口中可看到有关的编译信息,如果出现“0 Error(s),0 Warning(s)”,表示程序编译没有问题(至少在语法上不存在问题);如果存在错误或警告,要认真检查程序,修改后再编译,直到通过为止。
程序编译完成后,打开工程文件所在的文件夹,会发现生成了一个“一个按键控制一只LED亮灭.hex”文件。该文件是由编译器将C语言程序“一个按键控制一只LED亮灭.c”编译成的十六进制代码文件,双击该文件系统会调用记事本程序打开它,可以看到该文件的具体内容,如图3-9所示。在单片机烧录程序时,用烧录软件载入该文件并转换成二进制代码写入单片机。
图3-8 编译或汇编程序前进行的设置
图3-9 “一个按键控制一只LED亮灭.hex”文件的内容