51单片机C语言开发详解第4章 Keil C51单片机开发环境.ppt
《51单片机C语言开发详解第4章 Keil C51单片机开发环境.ppt》由会员分享,可在线阅读,更多相关《51单片机C语言开发详解第4章 Keil C51单片机开发环境.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境l通过前面章节的讲解,读者对于AT89S51单片机的硬件结构和汇编语言编程都有了一个详细的了解。随着单片机开发工具的不断发展,目前,利用C语言开发单片机程序,具有效率高、可读性强、可移植性强等特点,已经成为单片机程序开发中的主要方式。lKeil C51是一款十分流行的MCS-51内核单片机C语言开发环境,在本章中详细向读者介绍Keil C51的开发方法,使读者能够具备利用C语言开发AT89S51单片机程序的能力。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第
2、4章 Keil C51单片机开发环境lKeil C51的开发方法其实和大家学习的C语言基本相同,本节介绍C51的开发,内容和C语言的基础知识差不多,由于篇幅有限,如需要深入了解的读者可以参考一些C语言的教程。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境lC51 源程序结构与一般C 语言基本一致,C51 源程序文件的扩展名为.c,如Add.c、Max.c 等。一个C51 源程序大体上是一个函数定义的集合,在这个集合中有且仅有一个名为main()的函数,也称为该程序的主函数。l主函数是程序的入口,它是一个特殊的函数,程序的执行都是从
3、main()函数开始的。主函数中的所有语句执行完毕,则程序执行结束。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境l标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、数组等等。C语言是区分大小写的一种高级语言,如果要定义一个定时器1,可以写做“Timer1”,如果程序中有TIMER1,那么这两个是完全不同定义的标识符。l标识符由字符串、数字和下划线等组成,需要注意的是,第一个字符必须是字母或下划线,类似“1Timer”的定义是错误的,编译时便会有错误提示。有些编译系统专用的标识符以下划线开头,所以
4、除了在定义专业标识符以外,一般不要以下划线开头命名标识符。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境l数据在计算机内存中的存放情况由数据结构决定。C 语言的数据结构是以数据类型决定的,数据类型可分为基本数据类型和复杂数据类型,复杂数据类型是由基本数据类型构造而成的。l在标准C语言中基本的数据类型为char、int、short、long、float和double,而在C51编译器中int和short相同,float和double相同。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51
5、单片机开发环境l在程序运行过程中不能改变值的量称为常量,在程序运行过程中不断变化的量称为变量。可以使用所有C51编译器支持的数据类型定义一个变量,而常量的数据类型只限于整型、浮点型、字符型、字符串型和位标量。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境l一个好的C语言程序应该把一个大问题划分成若干子问题,解决一个子问题对应编制一个函数,C程序一般是由大量的小函数而不是由少量大函数构成的。使用函数带来的好处是程序各部分相互充分独立,任务单一。函数提供了编制程序的手段,使之容易读、写、理解、排除错误、修改和维护。l这些独立的小模块也
6、可以作为一种固定规格的程序,用来组成新的大程序,使得程序的可移植性和可重用性能大大提高。l一些较常用的函数时,只要将其保存在函数库里,在以后的编程中可被方便地调用而不需要再去编译它们,连接时将会自动从相应的库中装配成所需程序。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境l数组是指具有相同数据类型的变量集合,拥有共同的名字。数组中的每个特定元素都使用下标来访问。数组存放在一段连续的存储地址中,第一个数组元素存放于最低的地址,最高的地址对应最后一个数组元素。数组有一维的和多维的,下面分别介绍。l(1)一维数组l一维数组的声明格式是:
7、l 类型 变量名长度l类型是指数据类型,即每一个数组元素的数据类型,包括整数型、浮点型、字符型、指针型以及结构和联合。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境l结构体是一种由基本数据类型构成、并用一个标识符来命名的各种变量的组合。结构体中可以使用不同的数据类型。l在Keil C51中,结构体也是一种数据类型,可以使用结构体变量,因此,与其他类型的变量一样,在使用结构体变量时要先对其定义。l定义结构体变量的一般格式如下:lstruct 结构体名ll类型 变量名;l类型 变量名;ll 结构体变量;技术凝聚实力技术凝聚实力专业创新
8、出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境l与C语言编程一样,Keil C51允许由用户自己定义类型说明符,也就是说允许由用户为数据类型使用自定义的名字,该功能可以使用类型定义符typedef完成。例如,有整型量a、b,其说明如下:lint a,b;l其中int是整型变量的类型说明符,int的长度为16位,为了增加程序的可读性,可把整型说明符用typedef定义为“typedef int INT16”,这以后就可用INT16来代替int作整型变量的类型说明了,例如:lINT16 a,b;/等效于 int a,b技术凝聚实力技术凝聚实力专业创新出版专业创新出版
9、51单片机C语言开发详解第4章 Keil C51单片机开发环境l在编写程序时,使用的是用户能够看懂的ASCII码。但是计算机必须将这些ASCII码经过翻译后变成机器语言。这个翻译过程分两步,叫做编译、链接过程。l第一步的编译过程是将源程序中除了函数调用以外的语句翻译成机器语言,此时要生成一个中间目标文件,后缀名为obj。链接过程是将库函数的执行代码加入到刚才生成的obj文件中,生成可执行文件。l用户编写的源程序只能控制程序执行的流程。但有些时候,需要对编译程序的工作进行一些干预,这时就要用到编译预处理命令。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil
10、 C51单片机开发环境lMCS-51内核系列单片机作为工业使用的微处理器,从1985年开始,就有对应的C语言编译器,简称C51。并非所有的C51编译器都产生和发挥MCS-51单片机特点的有效代码,下面就各公司的编译器做简要介绍。l(1)AMERICAN AUTOMATIONl该编译器通过#asm和endasm预处理选择支持汇编语言。此编译器编译速度慢,要求汇编的中间环节支持。l(2)ARCHIMEDESl它的鼻祖是瑞典的JAR,是支持分组开关(Bank)的编译器。它和ANSI C兼容,只是需要一个较复杂的连接程序控制文件支持,程序才能运行。l(3)AVOCETl该软件包包括编译器、汇编器、连接
11、器、库MAKE工具和编辑器,集成环境类似Borland C和Turbo CO C编译器产生一个汇编语言文件,然后再用汇编器,其编译速度较快。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境l(4)DUNFIELD SHAREWAREl它是非专业的软件包,不支持float、long或结构等数据结构。它不生成重定位代码。l(5)FRANKLINl它的鼻祖是Keil,在代码生成方面领先,可产生最少的代码。它支持浮点和长整数、重入和递归,不提供库源代码,不能生成能汇编的汇编代码,仅产生混合代码,只能修改后汇编。若使用汇编语言,必须分开汇编程
12、序,然后手工连接。l若使用单片模式,它是最好的选择。l(6)Keil C51lKeil C51的V8.xx是目前世界上最好的51单片机的汇编和C语言的开发工具。它支持汇编、C语言以及混合编程,同时具备强大的软件仿真和硬件仿真功能。l在本节中主要介绍采用Keil C51的开发方法。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境l当使用Keil C51的开发工具进行项目开发时,项目的开发流程和其他软件开发项目的流程极其相似,一般遵循下面几步:l创建一个项目,从器件库中选择目标器件,配置工具设置;l用C语言或汇编语言创建源程序;l用项目
13、管理器生成应用;l修改源程序中的错误;l测试、连接应用。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境lC 语言是一种通用编程语言,它提供高效的代码、结构化的编程元素及丰富的运算符。C语言不是一个大型的语言,不是为特定领域内的应用而设计的。其普遍性使其可以为各种不同的软件任务提供便利有效的编程方案。许多应用设计使用C 语言比其他专门语言更有效。lKeil 的C51优化交叉编译器是完全符合ANSI美国国家标准协会标准的针对8051系列MCU的C编译器,生成的可执行代码快速、紧凑,在运行效率和速度上可以和汇编程序得到的代码相媲美。技术
14、凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境lA51是一个8051系列MCU的宏汇编器,它把汇编语言翻译成机器代码。A51汇编器允许定义程序中的每一个指令,在需要极快的运行速度、很小的代码空间和精确的硬件控制时使用。其宏特性让公共代码只需要开发一次,从而节约了开发和维护的时间。lA51汇编器宏处理的另一个有用的特性是根据命令行参数或汇编符号进行条件汇编。代码段的条件汇编能帮助用户实现最紧凑的代码,也可以从一个汇编源代码文件产生不同的应用:技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51
15、单片机开发环境lA51汇编器产生一个列表文件,包括行号、汇编时的时间和日期。关于汇编器运行和目标文件产生的信息被记录下来。l通常情况下,程序从EXTERN、PUBLIC和SEGMENT指示器开始。列表文件包含了每个源代码的行号及每行产生的代码。l列表文件包含了错误和告警信息,错误和告警的位置被明显地标识出来。l存储器组的占用信息和程序中的错误和告警总数包括在文件的结尾处。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境lBL51是具有代码分段功能的连接器/重定位器,它组合一个或多个目标模块成一个8051的执行程序。此连接器处理外部和
16、全局数据,并将可重定位的段分配到固定的地址上。BL51连接器处理由Keil C51编译器、A51汇编器和Intel PL/M-51编译器、ASM-51汇编器产生的目标模块。连接器自动选择适当的运行库并连接用到的模块。BL51主要有以下的功能:l(1)数据地址管理lBL51连接器通过覆盖那些不会同时使用的函数变量的技术来管理8051有限的内部存储器资源,这极大地降低了大多数应用对存储器的需求。BL51连接器分析函数间的引用以决定存储的覆盖策略。可以用OVERLAY指示器来人为控制函数间的引用,这些引用被连接器用来确定哪些存储器单元是独占的。NOOVERLAY指示器让BL51不进行覆盖连接,这在使
17、用间接调用的函数或为了调试而禁止覆盖时比较有用。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境l(2)代码段lBL51连接器支持创建程序空间大于64KB的应用。8051不能直接操作大于64KB的代码地址空间,必须由外部硬件来交换代码段。完成此功能的硬件必须要8051中运行的程序的控制中,这就是段(块)切换。BL51连接器管理一个公共的区域和32个最大64KB空间的块,从而达到总共2MB的分段程序空间。支持外部硬件块切换的软件包括的一个可编辑的汇编程序,以适应应用中的特定硬件平台。lBL51连接器可以定义哪个段装载哪个特定的程序模块
18、。通过仔细考虑,把各个函数分配到不同的段中来创建一个非常大而有效的应用。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境l(3)公共段l段切换程序中的公共段是一块在任何时候、在所有的段中都可以访问的存储器。此公共段在物理上就不能切换出局或变换地址空间。l在公共段中的代码可以复制到每个段中(如果切换整个程序空间)或驻留在一个独立的地址空间或器件中(公共段不用切换)。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境l(4)执行其他段中的程序l分段代码空间是通过附加的由软件控制
19、的地址线控制的,这些地址线可以由8051的I/O口或位于存储器空间的锁存器来模拟。HL51连接器为位于其他段中的函数生成一个跳转表,当用C语言调用一个位于不同段中的函数时,要先切换段,再跳到目标程序运行,完成后再回到调用的那个段中去,并继续往下执行。这种段切换处理需要附加的50个CPU指令周期和占用2字节堆栈空间。l如果把相关的函数分配在相同的段中,将显著地提高系统的性能。需要从多个段中经常调用的函数应该位于公共段中。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境lOC51目标文件转换器为在目标模块中的每个代码区创建绝对目标模块。
20、当用户创建一个存储区切换应用时,BL51产生存储目标模块。符号调试信息复制到绝对目标文件中,并供仿真器使用。用户可使用OC51目标文件转换器创建绝对目标模块,然后可使用OH51目标-hex转换器创建Intel hex文件。lOH51目标-hex转换器从绝对目标模块中创建Intel hex文件,而绝对目标模块可由BL51或OC51创建。Intel hex文件是ASCII文件包含了应用程序的十六进制表达式,将它们装人器件编程器就可写人EPROM可以在DOS命令行中,用OC51将分段目标模块中的每一个代码段创建绝对目标模块。l然后,用OH51(目标代码到hex 文件的转换器)为每一个绝对目标模块产生
21、相应的Intel hex格式的文件。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境lOH51目标hex转换器为绝对目标模块创建Intel hex格式的文件。绝对目标模块可以由BL51或OC51 产生。Intel hex文件是ASCII文件,用十六进制的数表示应用系统的目标模块。它们可以很容易的下载到编程器,以便于写入EPROMS器件。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境lLIB5l库管理器可使用户创建和保存库文件,一个库文件是一个或多个目标文件的格式化集合。
22、库文件提供简便的方法,可组合和引用大量的目标文件。BL5l可有效地使用库文件,库管理器可使用户创建一个库文件、将目标模块加入库文件、从库文件中移去目标模块和列出库文件的内容。使用库有一系列优点。安全、高速和减少磁盘空间仅是使用库的一小部分原因。另外,库提供了一个很好的分发大量函数而不用分发大量函数源代码的手段。例如,ANSI C的库是作为库文件提供的。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境lKeil 公司于1996年推出了基于Windows的C51应用程序集成开发环境,如今Keil C51的IDE(集成开发环境)的最新版本
23、已经发展到了Vision 3。lVision 3是一个集成的软件开发平台,包括全功能编辑器、项目管理器、程序生成工具和环境控制等,其仿真调试的环境又叫DScope5。lKeil公司推出的新的32位最新的编译器版本已经达到Keil C51 V8.xx,可以运行在Windows 9x、Windows NT、Windows Me、Windows 2000和Windows XP等操作系统,功能更加强大,支持的芯片更多。C51 V8.xx版本是目前最高效、灵活的8051开发平台,它可以支持所有MCS-51的兼容内核,也可以支持所有兼容的仿真器,同时支持其他第三方开发工具。技术凝聚实力技术凝聚实力专业创新
24、出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境lVision 3 IDE是一个基于Windows的开发平台,包含一个高效的编辑器、一个项目管理器和一个MAKE工具。技术凝聚实力技术凝聚实力专业创新出版专业创新出版51单片机C语言开发详解第4章 Keil C51单片机开发环境lC51 编译器在遵循ANSI标准的同时,为MCS-51兼容微控制器系列进行特别设计。语言上的扩展能让用户使用应用所有资源,有如下一些特点:l(1)存储器和特殊功能寄存器的存取C51编译器可以实现对8051系列所有资源的操作。l(2)中断功能l(3)灵活的指针技术凝聚实力技术凝聚实力专业创新出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51单片机C语言开发详解第4章 Keil C51单片机开发环境 51 单片机 语言 开发 详解 C51 环境
限制150内