李建:基于单片机的云台控制系统设计
第5章 软件基础
5.1 C语言简介
用于单片机设计开发的常用编程语言是汇编语言和C语言,在本设计中使用C语言编程。
C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,能产生高效率的紧凑代码。C语言含有许多本应由汇编语言实现的机器级函数,同时与汇编语言相比,它又具有如下优点:
2不需要了解单片机的指令系统,仅仅要求对存储器结构有初步的了解; 2寄存器分配、存储器寻址以及数据类型等细节可由编译器管理; 2程序有规范的结构,可分为不同的函数,使得程序结构化; 2程序更具可读性;
2高的编程及程序调试效率;
2提供的库包含许多标准子程序,具有较强的数据处理能力; 2程序易于做到模块化,便于移植。
5.2 Keil 编译器
单片机的开发除了需要硬件的支持以外,同样离不开软件。CPU真正可执行的是机器码,用汇编语言或C语言等高级语言编写的源程序必须转换为机器码才能被执行。转换的方法有手工汇编和机器汇编两种,前者目前已经极少使用。机器汇编是指通过汇编软件将源程序变为机器码的编译方法。这种汇编软件称为编译器。下面将介绍目前十分流行的Keil 8051 C编译器。
5.2.1 Keil 8051 C编译器简介
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生
25
四川理工学院本科毕业(设计)论文
成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。
Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,如下图5-1所示,其中uVision与Ishell分别是C51 for Windows和for DOS的集成
u Vision/Ishell集成开发环境C51编译器A51编译器C库文件LIB51库管理RTX51实时操作系统BL51连接OH51转换器图5-1 C51工具包整体机构图
开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM 中。
5.2.2 如何使用Keil软件开发
1.建立工程
打开Keil软件后,出现图5-2所示界面。当然,如果Keil在上次关闭时有打开的工程,再一次打开时它会自动加载上一次的工程文件。
26
李建:基于单片机的云台控制系统设计
图5-2 Keil软件主界面
首先选择“Project/New Project...”菜单,出现一个对话框,如下图5-3所示。
图5-3 “创建新工程”对话框
点击后,在出现的对话框中选择工程存在路径,单击“保存”后,出现如下图5-4所示界面。在此界面上选择系统所用的单片机型号,例如:Atmel AT89C52,单击“确定”。
27
四川理工学院本科毕业(设计)论文
图5-4 “选择目标器件”对话框
设置完成后,软件会提示“是否将8051上电初始化程序添加入工程?”如下图5-5所示,这个一般选择“否”。
图5-5 “是否将8051上电初始化程序添加入工程”对话框
这样,就建立了一个空的51工程。
接下来的事,就是在这个工程里面加入自己的程序代码。点击
,或者
“File”->“New”,便建立了一个空的文本框。现在,就可以开始在里面输入源程序代码了。
保存时注意:如果是用C语言写的程序,则将文本保存成*.c,如果是用汇编写的程序,则将文本存成*.asm ,本系统使用的是C语言,所以保存为lijian.C。到目前为步,我们已经建立了一个工程,也写了一个程序代码。但现在还不能开始编译。因为还没有将程序代码添加到工程里面去。
下一步就是将写完的程序添加到工程里面,如下图5-6所示,在左边“Project Workspace”工程窗口里的“Source Group1”上右击,选择“Add Files
28
李建:基于单片机的云台控制系统设计
to Group”‘Source Group1’。在打开的对话框中,选择刚存的文件路径和对应的扩展名。这样,程序就添加进了这个工程。
图5-6 工程中添加文件页面
下一步,就开始编译刚输入进去的代码。点击工具栏中的Keil会打出下面的提示:
创建目标 '目标 1' assembling led.asm... linking...
Program Size: data=8.0 xdata=0 code=100 \
按钮。接着,
其中“\”说明现在的工程编译通过,0个错误和0个警告。建立工程的时候,默认是不生成HEX文件的,得在编译做如下设置:单击
,出现如下图4-7所示对话框,选择“Output”所指的多选
框勾上,点“确定”。
现在再点击
重新编译,系统提示:“creating hex file from \”。
便会在工程所在文件夹里生成HEX文件。
29