单片机C语言开发详解第章KeilC51单片机开发环境课件

上传人:新** 文档编号:569838511 上传时间:2024-07-31 格式:PPT 页数:61 大小:478.50KB
返回 下载 相关 举报
单片机C语言开发详解第章KeilC51单片机开发环境课件_第1页
第1页 / 共61页
单片机C语言开发详解第章KeilC51单片机开发环境课件_第2页
第2页 / 共61页
单片机C语言开发详解第章KeilC51单片机开发环境课件_第3页
第3页 / 共61页
单片机C语言开发详解第章KeilC51单片机开发环境课件_第4页
第4页 / 共61页
单片机C语言开发详解第章KeilC51单片机开发环境课件_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《单片机C语言开发详解第章KeilC51单片机开发环境课件》由会员分享,可在线阅读,更多相关《单片机C语言开发详解第章KeilC51单片机开发环境课件(61页珍藏版)》请在金锄头文库上搜索。

1、第4章 Keil C51单片机开发环境通过前面章节的讲解,读者对于AT89S51单片机的硬件结构和汇编语言编程都有了一个详细的了解。随着单片机开发工具的不断发展,目前,利用C语言开发单片机程序,具有效率高、可读性强、可移植性强等特点,已经成为单片机程序开发中的主要方式。Keil C51是一款十分流行的MCS-51内核单片机C语言开发环境,在本章中详细向读者介绍Keil C51的开发方法,使读者能够具备利用C语言开发AT89S51单片机程序的能力。单片机C语言开发详解第章KeilC51单片机开发环境4.1 C语言编程基础Keil C51的开发方法其实和大家学习的C语言基本相同,本节介绍C51的开

2、发,内容和C语言的基础知识差不多,由于篇幅有限,如需要深入了解的读者可以参考一些C语言的教程。单片机C语言开发详解第章KeilC51单片机开发环境4.1.1 C51程序的基本结构C51 源程序结构与一般C 语言基本一致,C51 源程序文件的扩展名为.c ,如Add. c 、Max. c 等。一个C51 源程序大体上是一个函数定义的集合,在这个集合中有且仅有一个名为main( )的函数,也称为该程序的主函数。主函数是程序的入口,它是一个特殊的函数,程序的执行都是从main( )函数开始的。主函数中的所有语句执行完毕,则程序执行结束。单片机C语言开发详解第章KeilC51单片机开发环境4.1.2

3、标识符与关键字标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、数组等等。C语言是区分大小写的一种高级语言,如果要定义一个定时器1,可以写做“Timer1”,如果程序中有TIMER1,那么这两个是完全不同定义的标识符。标识符由字符串、数字和下划线等组成,需要注意的是,第一个字符必须是字母或下划线,类似“1Timer”的定义是错误的,编译时便会有错误提示。有些编译系统专用的标识符以下划线开头,所以除了在定义专业标识符以外,一般不要以下划线开头命名标识符。单片机C语言开发详解第章KeilC51单片机开发环境4.1.3 数据类型数据在计算机内存中的存放情况由数据结构

4、决定。C 语言的数据结构是以数据类型决定的,数据类型可分为基本数据类型和复杂数据类型,复杂数据类型是由基本数据类型构造而成的。在标准C语言中基本的数据类型为char、int、short、long、float和double,而在C51编译器中int和short相同,float和double相同。单片机C语言开发详解第章KeilC51单片机开发环境4.1.4 常量与变量在程序运行过程中不能改变值的量称为常量,在程序运行过程中不断变化的量称为变量。可以使用所有C51编译器支持的数据类型定义一个变量,而常量的数据类型只限于整型、浮点型、字符型、字符串型和位标量。单片机C语言开发详解第章KeilC51单

5、片机开发环境4.1.5 函数一个好的C语言程序应该把一个大问题划分成若干子问题,解决一个子问题对应编制一个函数,C程序一般是由大量的小函数而不是由少量大函数构成的。使用函数带来的好处是程序各部分相互充分独立,任务单一。函数提供了编制程序的手段,使之容易读、写、理解、排除错误、修改和维护。这些独立的小模块也可以作为一种固定规格的程序,用来组成新的大程序,使得程序的可移植性和可重用性能大大提高。一些较常用的函数时,只要将其保存在函数库里,在以后的编程中可被方便地调用而不需要再去编译它们,连接时将会自动从相应的库中装配成所需程序。单片机C语言开发详解第章KeilC51单片机开发环境4.1.6 数组与

6、指针数组是指具有相同数据类型的变量集合,拥有共同的名字。数组中的每个特定元素都使用下标来访问。数组存放在一段连续的存储地址中,第一个数组元素存放于最低的地址,最高的地址对应最后一个数组元素。数组有一维的和多维的,下面分别介绍。(1)一维数组一维数组的声明格式是: 类型 变量名长度类型是指数据类型,即每一个数组元素的数据类型,包括整数型、浮点型、字符型、指针型以及结构和联合。单片机C语言开发详解第章KeilC51单片机开发环境4.1.6 结构体与联合体结构体是一种由基本数据类型构成、并用一个标识符来命名的各种变量的组合。结构体中可以使用不同的数据类型。在Keil C51中,结构体也是一种数据类型

7、,可以使用结构体变量,因此,与其他类型的变量一样,在使用结构体变量时要先对其定义。定义结构体变量的一般格式如下:struct 结构体名类型 变量名;类型 变量名; 结构体变量;单片机C语言开发详解第章KeilC51单片机开发环境4.1.7 类型定义与C语言编程一样,Keil C51允许由用户自己定义类型说明符,也就是说允许由用户为数据类型使用自定义的名字,该功能可以使用类型定义符typedef完成。例如,有整型量a、b,其说明如下:int a ,b;其中int是整型变量的类型说明符,int的长度为16位,为了增加程序的可读性,可把整型说明符用typedef定义为“typedef int INT

8、16”,这以后就可用INT16来代替int作整型变量的类型说明了,例如:INT16 a , b;/等效于 int a ,b单片机C语言开发详解第章KeilC51单片机开发环境4.1.8 宏定义与条件编译在编写程序时,使用的是用户能够看懂的ASCII码。但是计算机必须将这些ASCII码经过翻译后变成机器语言。这个翻译过程分两步,叫做编译、链接过程。第一步的编译过程是将源程序中除了函数调用以外的语句翻译成机器语言,此时要生成一个中间目标文件,后缀名为obj。链接过程是将库函数的执行代码加入到刚才生成的obj文件中,生成可执行文件。用户编写的源程序只能控制程序执行的流程。但有些时候,需要对编译程序的

9、工作进行一些干预,这时就要用到编译预处理命令。单片机C语言开发详解第章KeilC51单片机开发环境4.2 Keil C51开发工具MCS-51内核系列单片机作为工业使用的微处理器,从1985年开始,就有对应的C语言编译器,简称C51。并非所有的C51编译器都产生和发挥MCS-51单片机特点的有效代码,下面就各公司的编译器做简要介绍。(1)AMERICAN AUTOMATION该编译器通过#asm和endasm预处理选择支持汇编语言。此编译器编译速度慢,要求汇编的中间环节支持。(2)ARCHIMEDES它的鼻祖是瑞典的JAR,是支持分组开关(Bank)的编译器。它和ANSI C兼容,只是需要一个

10、较复杂的连接程序控制文件支持,程序才能运行。(3)AVOCET该软件包包括编译器、汇编器、连接器、库MAKE工具和编辑器,集成环境类似Borland C和Turbo CO C编译器产生一个汇编语言文件,然后再用汇编器,其编译速度较快。单片机C语言开发详解第章KeilC51单片机开发环境4.2 Keil C51开发工具(4)DUNFIELD SHAREWARE它是非专业的软件包,不支持float、long或结构等数据结构。它不生成重定位代码。(5)FRANKLIN它的鼻祖是Keil,在代码生成方面领先,可产生最少的代码。它支持浮点和长整数、重入和递归,不提供库源代码,不能生成能汇编的汇编代码,仅

11、产生混合代码,只能修改后汇编。若使用汇编语言,必须分开汇编程序,然后手工连接。若使用单片模式,它是最好的选择。(6)Keil C51Keil C51的V8. xx是目前世界上最好的51单片机的汇编和C语言的开发工具。它支持汇编、C语言以及混合编程,同时具备强大的软件仿真和硬件仿真功能。在本节中主要介绍采用Keil C51的开发方法。单片机C语言开发详解第章KeilC51单片机开发环境4.2.1 Vision 3集成开发环境结构当使用Keil C51的开发工具进行项目开发时,项目的开发流程和其他软件开发项目的流程极其相似,一般遵循下面几步:创建一个项目,从器件库中选择目标器件,配置工具设置;用C

12、语言或汇编语言创建源程序;用项目管理器生成应用;修改源程序中的错误;测试、连接应用。单片机C语言开发详解第章KeilC51单片机开发环境4.2.2 Keil C51的C编译器C 语言是一种通用编程语言,它提供高效的代码、结构化的编程元素及丰富的运算符。C语言不是一个大型的语言,不是为特定领域内的应用而设计的。其普遍性使其可以为各种不同的软件任务提供便利有效的编程方案。许多应用设计使用C 语言比其他专门语言更有效。Keil 的C51优化交叉编译器是完全符合ANSI美国国家标准协会标准的针对8051系列MCU的C编译器,生成的可执行代码快速、紧凑,在运行效率和速度上可以和汇编程序得到的代码相媲美。

13、单片机C语言开发详解第章KeilC51单片机开发环境4.2.3 Keil C51的A51宏汇编器A51是一个8051系列MCU的宏汇编器,它把汇编语言翻译成机器代码。A51汇编器允许定义程序中的每一个指令,在需要极快的运行速度、很小的代码空间和精确的硬件控制时使用。其宏特性让公共代码只需要开发一次,从而节约了开发和维护的时间。A51汇编器宏处理的另一个有用的特性是根据命令行参数或汇编符号进行条件汇编。代码段的条件汇编能帮助用户实现最紧凑的代码,也可以从一个汇编源代码文件产生不同的应用:单片机C语言开发详解第章KeilC51单片机开发环境4.2.3 Keil C51的A51宏汇编器A51汇编器产

14、生一个列表文件,包括行号、汇编时的时间和日期。关于汇编器运行和目标文件产生的信息被记录下来。通常情况下,程序从EXTERN、PUBLIC和SEGMENT指示器开始。列表文件包含了每个源代码的行号及每行产生的代码。列表文件包含了错误和告警信息,错误和告警的位置被明显地标识出来。存储器组的占用信息和程序中的错误和告警总数包括在文件的结尾处。单片机C语言开发详解第章KeilC51单片机开发环境4.2.4 Keil C51的BL51代码链接器/定位器BL51是具有代码分段功能的连接器/重定位器,它组合一个或多个目标模块成一个8051的执行程序。此连接器处理外部和全局数据,并将可重定位的段分配到固定的地

15、址上。BL51连接器处理由Keil C51编译器、A51汇编器和Intel PL/M-51编译器、ASM-51汇编器产生的目标模块。连接器自动选择适当的运行库并连接用到的模块。BL51主要有以下的功能:(1)数据地址管理BL51连接器通过覆盖那些不会同时使用的函数变量的技术来管理8051有限的内部存储器资源,这极大地降低了大多数应用对存储器的需求。BL51连接器分析函数间的引用以决定存储的覆盖策略。可以用OVERLAY指示器来人为控制函数间的引用,这些引用被连接器用来确定哪些存储器单元是独占的。NOOVERLAY指示器让BL51不进行覆盖连接,这在使用间接调用的函数或为了调试而禁止覆盖时比较有

16、用。单片机C语言开发详解第章KeilC51单片机开发环境4.2.4 Keil C51的BL51代码链接器/定位器(2)代码段BL51连接器支持创建程序空间大于64KB的应用。8051不能直接操作大于64KB的代码地址空间,必须由外部硬件来交换代码段。完成此功能的硬件必须要8051中运行的程序的控制中,这就是段(块)切换。BL51连接器管理一个公共的区域和32个最大64KB空间的块,从而达到总共2MB的分段程序空间。支持外部硬件块切换的软件包括的一个可编辑的汇编程序,以适应应用中的特定硬件平台。BL51连接器可以定义哪个段装载哪个特定的程序模块。通过仔细考虑,把各个函数分配到不同的段中来创建一个

17、非常大而有效的应用。单片机C语言开发详解第章KeilC51单片机开发环境4.2.4 Keil C51的BL51代码链接器/定位器(3)公共段段切换程序中的公共段是一块在任何时候、在所有的段中都可以访问的存储器。此公共段在物理上就不能切换出局或变换地址空间。在公共段中的代码可以复制到每个段中(如果切换整个程序空间)或驻留在一个独立的地址空间或器件中(公共段不用切换)。单片机C语言开发详解第章KeilC51单片机开发环境4.2.4 Keil C51的BL51代码链接器/定位器(4)执行其他段中的程序分段代码空间是通过附加的由软件控制的地址线控制的,这些地址线可以由8051的I/O口或位于存储器空间

18、的锁存器来模拟。HL51连接器为位于其他段中的函数生成一个跳转表,当用C语言调用一个位于不同段中的函数时,要先切换段,再跳到目标程序运行,完成后再回到调用的那个段中去,并继续往下执行。这种段切换处理需要附加的50个CPU指令周期和占用2字节堆栈空间。如果把相关的函数分配在相同的段中,将显著地提高系统的性能。需要从多个段中经常调用的函数应该位于公共段中。单片机C语言开发详解第章KeilC51单片机开发环境4.2.5 Keil C51的OC51目标文件转换器OC51目标文件转换器为在目标模块中的每个代码区创建绝对目标模块。当用户创建一个存储区切换应用时,BL51产生存储目标模块。符号调试信息复制到

19、绝对目标文件中,并供仿真器使用。用户可使用OC51目标文件转换器创建绝对目标模块,然后可使用OH51目标-hex转换器创建Intel hex文件。OH51目标-hex转换器从绝对目标模块中创建Intel hex文件,而绝对目标模块可由BL51或OC51创建。Intel hex文件是ASCII文件包含了应用程序的十六进制表达式,将它们装人器件编程器就可写人EPROM可以在DOS命令行中,用OC51将分段目标模块中的每一个代码段创建绝对目标模块。然后,用OH51(目标代码到hex 文件的转换器)为每一个绝对目标模块产生相应的Intel hex格式的文件。单片机C语言开发详解第章KeilC51单片机

20、开发环境4.2.6 Keil C51的OH目标HEX文件转换器OH51目标hex转换器为绝对目标模块创建Intel hex格式的文件。绝对目标模块可以由BL51或OC51 产生。Intel hex文件是ASCII文件,用十六进制的数表示应用系统的目标模块。它们可以很容易的下载到编程器,以便于写入EPROMS器件。单片机C语言开发详解第章KeilC51单片机开发环境4.2.7 Keil C51的LIB51库文件管理器LIB5l库管理器可使用户创建和保存库文件,一个库文件是一个或多个目标文件的格式化集合。库文件提供简便的方法,可组合和引用大量的目标文件。BL5l可有效地使用库文件,库管理器可使用户

21、创建一个库文件、将目标模块加入库文件、从库文件中移去目标模块和列出库文件的内容。使用库有一系列优点。安全、高速和减少磁盘空间仅是使用库的一小部分原因。另外,库提供了一个很好的分发大量函数而不用分发大量函数源代码的手段。例如,ANSI C的库是作为库文件提供的。单片机C语言开发详解第章KeilC51单片机开发环境4.3 Vision 3集成开发环境Keil 公司于1996年推出了基于Windows的C51应用程序集成开发环境,如今Keil C51的IDE(集成开发环境)的最新版本已经发展到了Vision 3。Vision 3是一个集成的软件开发平台,包括全功能编辑器、项目管理器、程序生成工具和环

22、境控制等,其仿真调试的环境又叫DScope5。Keil公司推出的新的32位最新的编译器版本已经达到Keil C51 V8. xx,可以运行在Windows 9x、Windows NT、Windows Me、Windows 2000和Windows XP等操作系统,功能更加强大,支持的芯片更多。C51 V8.xx版本是目前最高效、灵活的8051开发平台,它可以支持所有MCS-51的兼容内核,也可以支持所有兼容的仿真器,同时支持其他第三方开发工具。单片机C语言开发详解第章KeilC51单片机开发环境4.3.1 Vision 3 IDEVision 3 IDE是一个基于Windows的开发平台,包含

23、一个高效的编辑器、一个项目管理器和一个MAKE工具。单片机C语言开发详解第章KeilC51单片机开发环境4.3.2 Vision 3 C51编译器与测试程序C51 编译器在遵循ANSI标准的同时,为MCS-51兼容微控制器系列进行特别设计。语言上的扩展能让用户使用应用所有资源,有如下一些特点:(1)存储器和特殊功能寄存器的存取C51编译器可以实现对8051系列所有资源的操作。(2)中断功能(3)灵活的指针单片机C语言开发详解第章KeilC51单片机开发环境4.3.3 Vision 3 的安装Vision 3安装的最低的硬件和软件配置必须满足:具有Pentium、Pentium II或兼容的处理

24、器的个人计算机;操作系统为Windows98、Windos2000、WindowsXP 或更高;RAM大于128MB;60MB 的硬盘空余空间。单片机C语言开发详解第章KeilC51单片机开发环境4.4 集成开发环境的使用直接双击程序图标就可以启动Vision 3,要新建一个项目文件,Vision 3菜单中单击【Project】|【New Project】命令即可。Vision 3的整个界面如图4.15所示。单片机C语言开发详解第章KeilC51单片机开发环境4.4.1 Vision 3 的项目管理窗口在Vision 3中,可以为一个应用创建几个不同的程序。用户也许需要一个目标用来测试,另一个

25、目标作为应用系统的发行版本。在同一个项目文件中,允许每个目标进行独立的工具设置。在Build工具栏上,可以快速改变当前的目标,如图4.16所示,该项目有3个目标文件,即Simulator、Ram Debug和Flash三种模式下的目标文件,当前目标文件是Simulator。单片机C语言开发详解第章KeilC51单片机开发环境4.4.2 Vision 3的菜单栏Vision 3的菜单栏提供各种操作菜单,例如:编辑操作、项目维护、开发工具选项设置、调试程序、窗口选择和处理以及在线帮助等等,单片机C语言开发详解第章KeilC51单片机开发环境4.4.3 Vision 3 的工具栏Vision 3提供

26、了文件操作、源文件编辑、视图切换、工程项目和调试命令等工具条按钮,允许用户快速地执行命令,各种工具栏图标都对应一种Vision 3的下拉菜单命令,下面分别进行介绍。单片机C语言开发详解第章KeilC51单片机开发环境4.4.4 Vision 3 的快捷键使用Vision 3的键盘快捷键,用户可以高效地执行Vision 3 的各种命令,熟练地掌握各种快捷键的使用,将取得事半功倍的效果。(1)文件操作快捷键Ctrl + O:打开已经存在的文件;Ctrl + N:创建新文件;Ctrl + S:保存当前文件;Ctrl + P:打印当前文件;单片机C语言开发详解第章KeilC51单片机开发环境4.4.4

27、 Vision 3 的快捷键(2)源代码编辑快捷键Ctrl + Z:取消上次操作; Ctrl +Shift + Z:重复上次操作;Ctrl + X:剪切所选文本; Ctrl + Y:剪切当前行的所有文本;Ctrl + C:复制所选文本; Ctrl +V:粘贴;Ctrl + F2:设置/取消当前行的标签; F2:移动光标到下一个标签处;Shift + F2:移动光标到上一个标签处;Ctrl + F:在当前文件中查找文本;F3 :向前重复查找;Shift + F3:向后重复查找;Ctrl + F3:查找光标处的单词;Ctrl + H:替换特定的字符;单片机C语言开发详解第章KeilC51单片机开发

28、环境4.4.4 Vision 3 的快捷键(3)顶目操作快捷键Alt + F7:设置对象、组或文件的工具选项;F7:编译修改过的文件并生成应用;Ctrl + F7:编译当前文件;单片机C语言开发详解第章KeilC51单片机开发环境4.4.4 Vision 3 的快捷键(4)调试快捷键Ctrl + F5:开始/停止调试模式;F5:运行程序,直到遇到一个中断;Fll:单步执行程序,遇到子程序则进入;FlO:单步执行程序,跳过子程序;Ctrl + Fll:执行到当前函数的结束;ESC:停止程序运行;单片机C语言开发详解第章KeilC51单片机开发环境4.4.5 Vision 3 的功能窗口在介绍Vi

29、sion 3集成开发环境中的各种窗口之前,先介绍一下下窗口的属性设置,执行【Edit】菜单下的【Configuration】命令。这时将打开Configuration对话框,单击Editor标签,在这里可以设置源代码编辑窗口的各种设置,比如若选中Create Backup files(*.BAK)复选框,则在源文件编辑过程中将产生备份文件;若选中Auto Indent复选框,则在编辑源代码文件时,将自动以TAB键的距离缩进。单片机C语言开发详解第章KeilC51单片机开发环境4.4.6 源代码编辑窗口源代码编辑窗口,源代码编辑窗口提供以下功能:关键词、注释和字符串的高亮度显示;自动缩进,自定义

30、Tab键的跳格数;圆括号和花括号对C语言代码块做标记,并可方便地查到与之配对的右括号;多次Undo和Redo;随时获得相关的在线帮助;快速查找,在一个或多个文件中查找或替换。单片机C语言开发详解第章KeilC51单片机开发环境4.4.7 Watch &Call Stack 窗口该窗口用来检查和编辑C语言表达式或变量的值,可以用不同的格式显示数值,可以显示数组、结构或指针等包含多个元素的变量,也可以显示当前函数的嵌套调用情况。在程序运行或调试状态下,用户可以执行菜单【View】|【Watch &.Call Stack Window】命令来显示Watch & Call Stack窗口。Watch

31、& Call Stack窗口的内容会在程序执行过程中遇到断点或者停止运行后显示,在程序执行过程中,可以执行【View】|【Periodic Window Update】菜单命令,以使Watch & Call Stack窗口的内容随程序的执行而周期性的显示。单片机C语言开发详解第章KeilC51单片机开发环境4.4.8 Memory窗口在程序运行或调试状态下,用户可以执行菜单【View】|【Memory Window】命令来显示Memory窗口。Memory窗口能显示各种存储区域的内容,Vision 3的Memory窗口总共提供了4个不同的存储区域显示页,用户可以用不同的显示页分别显示不同的存储

32、器区域,例如一个显示页用于显示代码存储区域,一个显示页用于显示外部数据区域,一个显示页用于显示内部数据区域,根据用户的存储区域划分情况而定。单片机C语言开发详解第章KeilC51单片机开发环境4.4.9 CPU 寄存器窗口在程序运行或调试状态下,用户可以单击项目管理窗口下面的Regs标签页来显示CPU寄存器窗口。CPU寄存器窗口显示了CPU寄存器中的值,CPU寄存器窗口位于项目管理窗口的Regs标签页,该窗口可以任意移动,单片机C语言开发详解第章KeilC51单片机开发环境4.4.10 串行窗口在程序运行或调试状态下,用户可以执行【View】|【Serial Window】|【UART #1】

33、 命令来显示串行窗口1 ,执行【View】|【Serial Window】|【UART #2】命令来显示串行窗口2。Vision 3提供了3 个串行窗口,用于PC机与模拟的51单片机窗口通信。从模拟的51单片机的CPU串口输出的数据,将在这个串口窗口中显示,而在串口中输入的字符,将被输入到模拟的51单片机的CPU串口中,利用这一点,可以在没有外部硬件的情况下模拟51 CPU的UART端口,单片机C语言开发详解第章KeilC51单片机开发环境4.4.11 性能分析窗口Vision 3的性能分析窗口可以显示指定的函数或者程序段的执行情况,包括执行指定的函数或者程序段的最大时间、最小时间、平均时间、

34、总时间以及执行次数等。在程序运行或调试状态下,用户执行【View】|【Performance Analyzer Window】命令,将打开性能分析窗口,。单片机C语言开发详解第章KeilC51单片机开发环境4.4.12 代码覆盖窗口Vision 3具备代码覆盖功能,可以将已经执行的代码段用特殊的颜色标记出来,在源代码编辑窗口和反汇编窗口,已经执行过的代码段的左边,有淡绿色标记,淡绿色是Vision 3设置的默认颜色,用户可以根据需要自定义一种喜欢的颜色。单片机C语言开发详解第章KeilC51单片机开发环境4.4.13 符号观察窗口执行菜单命令【View】|【Symbol Window】将打开符

35、号显示窗口,Vision 3的符号显示窗口中,显示了所有函数和模块的公共的符号、当前模块或函数的局部符号、代码行号和当前所载入应用所定义的CPU的特定的SFR(特殊功能寄存器)。如图所示是Keil C51自带例子HELLO.c应用中的符号窗口所显示的公共符号的内容。单片机C语言开发详解第章KeilC51单片机开发环境4.5 项目的开发与管理本节描述了使用Vision 3进行项目管理,介绍了如何创建一个简单的程序以及生成和维护项目的一些选项,包括文件输出选项、C51编译器的关于代码优化的配置和Vision 3项目管理器的特性等等。单片机C语言开发详解第章KeilC51单片机开发环境4.5.1 创

36、建项目执行【Project】|【NewVision Project】菜单命令,将新创建一个项目。为项目建一个单独的文件夹,然后选择子文件夹并键入项目的名称。Vision 3将创建一个文件名为“Project l.uv3”的新项目文件,新的项目文件包含了一个以默认的文件名命名的目标和文件组,可以在项目管理窗口的Files标签页看到这些名字。在项目创建之前,需要为新建的项目选择一个CPU。在命名项目名称后,弹出的对话框,其中显示的是器件数据库,用户只要选择所需要的MCU就可以了。由于本书是以ATMEL公司生产的AT89S51单片机为实例,因此在相应的目录下选择AT89S51。Kei1 C51几乎支

37、持所有的MCS-51内核单片机,选择AT89S51之后,右边一栏是对这个单片机的基本的说明,然后单击【确定】按钮。该选择就为AT89S51器件设置了工具选项,这种方式简化了工具的配置,为用户减少了不少工作量。单片机C语言开发详解第章KeilC51单片机开发环境4.5.2 添加配置启动代码启动文件STARTUP.A51中包含了目标启动代码,可在每个project中加入这个文件,只要复位,则该文件立即执行,其包括以下一些功能。定义内部RAM大小、外部RAM大小、可重入堆栈位置;清除内部、外部或者以此页为单元的外部存储器;按存储模式初始化重入堆栈及堆栈指针;初始化硬件堆栈指针;开始执行main()函

38、数。单片机C语言开发详解第章KeilC51单片机开发环境4.5.3 项目设置Vision 3允许用户为目标硬件设置选项,可以通过工具条图标打开,也可以用鼠标右击项目窗口中的Files标签页中的Target1,在右键菜单中选择【Options for Targe1】命令, Target:定义CPU;Output:定义Keil工具的输出文件,并定义生成处理后的执行用户程序;Listing:定义Keil工具输出的所有列表文件;C51:设置C51编译器的特别工具选项;A51:设置汇编器的特殊工具选项;BL51 Locate:定义不同类型的存储器和存储器的不同段位置;BL51 Misc:其他的与连接器相

39、关的设置,如警告或存储器指示;Debug:Vision 3的Debugger设置;Utilities:文件及其Group的特别选项。单片机C语言开发详解第章KeilC51单片机开发环境4.5.4 Target标签单击Target标签,其中各参数设置如下:(1)Xtal(MHz):是设置单片机的工作的频率,默认值是24.0MHz。如果项目中所使用的单片机的晶振用的是33MHz,例如本例中的89S51单片机,那么在框里输入实际的晶振频率。(2)Use On-chip ROM(0x00x1FFF):这个选项是使用片上的Flash ROM。AT89S51有4KB的Flash ROM。是否使用片上Fla

40、sh ROM取决于应用系统,如果用户的单片机的EA引脚接高电平,则一定需要选中这个选项;如果用户的单片机的EA接低电平,表示使用外部ROM,那么不要选中该选项。(3)Memory Model:变量存储空间。用鼠标单击Memory Model的下拉箭头,会有3个选项,单片机C语言开发详解第章KeilC51单片机开发环境4.5.5 Output标签Output 标签的设置说明如下。(1)Select Folder for Objects:单击这个按钮可以选择编译之后的目标文件存储在哪个目录,如果不设置,编译之后的目标文件就存储在工程文件的目录里。(2)Name of Executable:设置生成

41、的目标文件的名字,默认是跟工程的名字一样,目标文件可以生成库或者obj和hex的格式。(3)Create Executable:生成omf以及hex文件。一般选中Debug Information和Browse Information,这样才有详细的调试所需要的信息。比如进行C语言程序的调试时,如果不选Debug Informatio和Browse Information两项,调试时将无法看到C语言的代码而只有汇编代码或者机器代码。单片机C语言开发详解第章KeilC51单片机开发环境4.5.5 Output标签(4)Create Hex File:生成hex文件。这个选项一般是要选中的,很多用

42、户发现编译之后没有生成hex文件,这是因为这个选项没有被选中的原因。要生成hex文件一定要选中该选项。(5)Create Library:生成库文件,选中该选项时将生成lib库文件,根据用户的需要是否要生成库文件,一般的应用是不生成库文件的。设置完成的Output标签如图单片机C语言开发详解第章KeilC51单片机开发环境4.5.6 Listing标签Keil C51在编译之后除了声称目标文件之外,还生成*.lst、*.m51的文件。这两种扩展名的文件对了解程序在存储空间的划分用非常重要的意义。用户可以在Listing标签中设置*.lst、*.m51文件的各种选项。如果用户不想生成某些内容,可

43、以不选。选中Assembly Code还会生成汇编的代码,Keil C51支持C语言和会变混合编程,设置完成的Listing 标签如图所示。单片机C语言开发详解第章KeilC51单片机开发环境4.5.7 C51标签用户通过C51标签来设置C51编译器的特别的工具选项,如代码优化或变量分配等,其参数介绍如下。单片机C语言开发详解第章KeilC51单片机开发环境4.5.8 A51标签A51标签用来设置汇编器的特别工具选项,如宏处理和条件汇编等,如图所示。单片机C语言开发详解第章KeilC51单片机开发环境4.5.9 BL51 Locate标签BL51是具有代码分段功能的连接器/重定位器,它组合一个

44、或多个目标模块成一个MCS-51的执行程序。此连接器处理外部和全局数据,并将可重定位的段分配到固定的地址上。BL51连接器处理由Keil C51编译器、A51汇编器和Intel PL/M-51编译器、ASM-51汇编器产生的目标模块。连接器自动选择适当的运行库并连接那些用到的模块。也可以在命令行上输入相应的目标模块的名字的组合来运行本连接器,如图所示。单片机C语言开发详解第章KeilC51单片机开发环境4.5.10 BL51 Misc标签Misc标签是对BL51 Locate标签的补充设置,如图4.69所示,其中各设置参数的意义如下:单片机C语言开发详解第章KeilC51单片机开发环境4.5.

45、11 Debug 标签该标签对Vision 3的调试器进行设置,如图所示。单片机C语言开发详解第章KeilC51单片机开发环境4.5.12 项目编译项目一旦设置完成,就可以开始编译。单击调试工具条上的图标,编译项目中所有的源文件并生成应用。当应用中有语法错误时,Vision 3将在Output Window的Build标签页显示这些错误和告警信息。双击一个信息将打开此信息对应的文件并定位到语法错误处。在编译项目时,会在输出窗口中出现错误信息,单击其中一条错误信息,将在源代码窗口中出现错误的地方出现一个小箭头,单片机C语言开发详解第章KeilC51单片机开发环境4.5.13 列表文件(C语言)如

46、果在图4.64所示的对话框中选中了C Compiler Listing选项下的各种复选框和Assembler Listing 选项下的各种复选框,Vision 3在编译时将产生C语言和汇编语言的列表文件,该文件中包含了源代码文件中的各种指示信息,这些信息对分析源代码非常重要。单片机C语言开发详解第章KeilC51单片机开发环境4.5.14 列表文件(汇编语言)在Vision 3中,集成的A51宏汇编译器是一个8051 MCU系列的宏汇编器。它把汇编语言翻译成机器代码。A51汇编器允许用户定义程序中的每一个指令,在需要极快的运行速度、很小的代码空间、精确的硬件控制时使用。因此用户可以利用Vision 3的集成开发环境进行汇编语言代码的编译和调试。在汇编语言列表文件中,宏汇编编译器报告所有必要的信息,如变量名、函数名、行数以及Vision 3调试器或其他仿真器用来详细调试和分析程序所需要的信息。单片机C语言开发详解第章KeilC51单片机开发环境

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号