第1章 单片机开发软件Keil C51的使用
1.1 Keil C51简介
常用的单片机及嵌入式系统编程语言有两种,即汇编语言和C语言。汇编语言的机器代码生成效率很高,但其可读性却并不强,复杂一点的程序就更是很难读懂。C语言在大多数情况下,其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C语言还可以嵌入汇编语言来解决高时效性的代码编写问题。就开发周期来说,用C语言编写中大型软件的开发周期通常要比用汇编语言编写的短很多。与汇编语言相比, C语言在功能性、结构性、可读性、可维护性上有明显的优势,因而易学易用。由此可见,使用C语言编写程序是一种非常好的选择。
使用C语言肯定要用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。用过汇编语言后再使用C语言来开发,体会更加深刻。Keil μVision3是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑、编译、仿真等功能于一体,同时还支持PLM、汇编和C语言的程序设计,它的界面与常用的微软VC++的界面相似,界面友好,易学易用。
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。Keil C51软件提供了丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成目标代码的效率非常高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时,更能体现采用高级语言的优势。
Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效、快速的特点。C51编译器的功能不断增强,使用户可以更加“贴近”CPU本身及其他的衍生产品。C51已被完全集成到μVision3的集成开发环境中,这个集成开发环境包括编译器、汇编器、实时操作系统、项目管理器和调试器,μVision3 IDE可以为它们提供单一而灵活的开发环境。C51V808A版本是目前版本较高的8051开发平台,它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时也支持其他第三方开发工具。
C51是一种专门为8051单片机设计的高级语言C编译器,支持符合ANSI标准的C语言程序设计,同时针对8051单片机的自身特点做了一些特殊扩展。
C51默认值不支持函数递归调用,需要进行递归调用的函数必须声明为再入函数。再入函数的局部数据和参数被放入再入栈中,从而允许进行递归调用。
μVision3支持所有的Keil 80C51的工具软件,包括C51编译器、宏汇编器、链接器/定位器和目标文件至Hex格式转换器,μVision3可以自动完成编译、汇编、链接程序等操作。μVision3的特点如下。
1)C51编译器和A51汇编器 由 μVision3 IDE创建的源文件可以被C51编译器或A51汇编器处理,生成可重定位的object文件。Keil C51编译器支持ANSIC语言标准,也支持C语言的所有标准特性。另外,还增加了几个可以直接支持80C51结构的特性。Keil A51宏汇编器支持80C51及其派生系列的所有指令集。
2)LIB51库管理器 LIB51库管理器可以把由汇编器和编译器创建的目标文件建立目标库。这些库是按规定格式排列的目标模块,可被链接器使用。当链接器处理一个库时,仅使用库中程序使用的目标模块,而不是全部加以引用。
3)BL51链接器/定位器 BL51链接器/定位器使用从库中提取出来的目标模块,以及由编译器、汇编器生成的目标模块,创建一个绝对地址目标模块。绝对地址目标文件或模块包括不可重定位的代码和数据。所有的代码和数据都被固定在具体的存储器单元中。
4)μVision3软件调试器 μVision3软件调试器能十分理想地进行快速、可靠的程序调试。调试器包括一个高速模拟器,用户可以使用它来模拟整个80C51系统,包括片上外围器件和外部硬件。当用户从器件数据库选择器件时,这个器件的属性会被自动配置。
5)μVision3硬件调试器 μVision3硬件调试器向用户提供了几种在实际目标硬件上测试程序的方法。
6)RTX51实时操作系统 RTX51实时操作系统是针对80C51微控制器系列的一个多任务内核。RTX51实时内核简化了需要对实时事件进行反应的复杂应用的系统设计、编程和调试。这个内核完全集成在C51编译器中,使用非常简单。任务描述表和操作系统的一致性由BL51链接器/定位器自动进行控制。
此外,μVision3还具有极其强大的软件环境、友好的操作界面和简单快捷的操作方法,主要表现在以下几点:
丰富的菜单栏。
可以快速选择命令按钮的工具条。
一些源代码文件窗口。
对话框窗口。
直观明了的信息显示窗口。