资 源 简 介
Keil C51使用详解
Keil C51 是美国Keil Software 公司出品的51 系列兼容单片机C 语言软件开发系
统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因
而易学易用。用过汇编语言后再使用C 来开发,体会更加深刻。
Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows
界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51
生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开
发大型软件时更能体现高级语言的优势。
下面详细介绍 Keil C51 开发系统各部分功能和使用。
第二节 Keil C51 单片机软件开发系统的整体结构
C51 工具包的整体结构,如图(1)所示,其中uVision 与Ishell 分别是C51 for
Windows 和for Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真
等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件。然后
分别由C51 及A51 编译器编译生成目标文件(.OBJ)。目标文件可由LIB51 创建生成
库文件,也可以与库文件一起经L51 连接定位生成绝对目标文件(.ABS)。ABS 文件
由OH51 转换成标准的Hex 文件,以供调试器dScope51 或tScope51 使用进行源代码
级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如
EPROM 中。
图(1) C51 工具包整体结构图
第三节 Keil C51 工具包的安装
8
1. C51 for Dos
在 Windows 下直接运行软件包中DOS\C51DOS.exe 然后选择安装目录即可。完
毕后欲使系统正常工作须进行以下操作(设C:\C51 为安装目录):
修改 Autoexec.bat,加入
path=C:\C51\Bin
Set C51LIB=C:\C51\LIB
Set C51INC=C:\C51\INC
然后运行Autoexec.bat
2. C51 for Windows 的安装及注意事项:
在 Windows 下运行软件包中WIN\Setup.exe,最好选择安装目录与C51 for Dos
相同,这样设置最简单(设安装于C:\C51 目录下)。然后将软件包中crack 目录中的文
件拷入C:\C51\Bin 目录下。
第四节 Keil C51 工具包各部分功能及使用简介
1. C51 与A51
(1) C51
C51 是C 语言编译器,其使用方法为:
C51 sourcefile[编译控制指令]
或者 C51 @ commandfile
其中 sourcefile 为C 源文件(.C)。大量的编译控制指令完成C51 编译器的全部功
能。包控C51 输出文件C.LST,.OBJ,.I 和.SRC 文件的控制。源文件(.C)的控制等,
详见第五部分的具体介绍。
而 Commandfile 为一个连接控制文件其内容包括:.C 源文件及各编译控制指令,
它没有固定的名字,开发人员可根据自己的习惯指定,它适于用控制指令较多的场
合。
(2) A51
A51 是汇编语言编译器,使用方法为:
9
A51 sourcefile[编译控制指令]
或 A51 @ commandfile
其中sourcefile 为汇编源文件(.asm或.a51),而编译控制指令的使用与其它汇编如ASM
语言类似,可参考其他汇编语言材料。
Commandfile 同C51 中的Commandfile 类似,它使A51 使用和修改方便。
2. L51 和BL51
(1) L51
L51 是Keil C51 软件包提供的连接/定位器,其功能是将编译生成的OBJ 文件与
库文件连接定位生成绝对目标文件(.ABS),其使用方法为:
L51 目标文件列表[库文件列表] [to outputfile] [连接控制指令]
或 L51 @Commandfile
源程序的多个模块分别经 C51 与A51 编译后生成多个OBJ 文件,连接时,这些
文件全列于目标文件列表中,作为输入文件,如果还需与库文件(.LiB)相连接,则库
文件也必须列在其后。outputfile 为输文件名,缺少时为第一模块名,后缀为.ABS。
连接控制指令提供了连接定位时的所有控制功能。Commandfile 为连接控制文件,其
具体内容是包括了目标文件列表,库文件列表及输出文件、连接控制命令,以取代
第一种繁琐的格式,由于目标模块库文件大多不止1 个,因而第2 种方法较多见,
这个文件名字也可由使用者随意指定。
(2) Bl51
BL51 也是C51 软件包的连接/定位器,其具有L51 的所有功能,此外它还具有
以下3 点特别之处:
a. 可以连接定位大于64kBytes 的程序。
b. 具有代码域及域切换功能(CodeBanking & Bank Switching)
c. 可用于RTX51 操作系统
RTX51 是一个实时多任务操作系统,它改变了传统的编程模式,甚至不必用
main( )函数,单片机系统软件向RTOS 发展是一种趋势,这种趋势对于186 和386
10
及68K 系列CPU 更为明显和必须,对8051 因CPU 较为简单,程序结构等都不太复
杂,RTX51 作用显得不太突出,其专业版软件PK51 软件包甚至不包括RTX51Full,
而只有一个RTX51TINY 版本的RTOS。RTX51 TINY 适用于无外部RAM 的单片机
系统,因而可用面很窄,在本文中不作介绍。Bank switching 技术因使用很少也不作
介绍。
3. DScope51,Tscope51 及Monitor51
(1) dScope51
dScope51 是一个源级调试器和模拟器,它可以调试由C51 编译器、A51 汇编器、
PL/M-51 编译器及ASM-51 汇编器产生的程序。它不需目标板(for windows 也可通
过mon51 接目标板),只能进行软件模拟,但其功能强大,可模拟CPU 及其外围器
件,如内部串口,外部I/O 及定时器等,能对嵌入式软件功能进行有效测试。