单片机程序设计实践教程_第05章_Keil_C51程序设计基础

上传人:飞*** 文档编号:48598606 上传时间:2018-07-17 格式:PPT 页数:88 大小:224.50KB
返回 下载 相关 举报
单片机程序设计实践教程_第05章_Keil_C51程序设计基础_第1页
第1页 / 共88页
单片机程序设计实践教程_第05章_Keil_C51程序设计基础_第2页
第2页 / 共88页
单片机程序设计实践教程_第05章_Keil_C51程序设计基础_第3页
第3页 / 共88页
单片机程序设计实践教程_第05章_Keil_C51程序设计基础_第4页
第4页 / 共88页
单片机程序设计实践教程_第05章_Keil_C51程序设计基础_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《单片机程序设计实践教程_第05章_Keil_C51程序设计基础》由会员分享,可在线阅读,更多相关《单片机程序设计实践教程_第05章_Keil_C51程序设计基础(88页珍藏版)》请在金锄头文库上搜索。

1、第五讲Keil C51程 序设计基础1Keil C51程序设计基础单片机程序既可以用汇编语言也可以用单片机程序既可以用汇编语言也可以用C C语言进行语言进行 编写,两者都可以在编写,两者都可以在C51C51的环境下进行开发,这两者之间的环境下进行开发,这两者之间 既有区别也有联系。既有区别也有联系。C51C51是一种特殊的是一种特殊的C C编译器,它扬弃了编译器,它扬弃了C C语言的一些语言的一些 不适合不适合MCS-51MCS-51单片机的特性,针对单片机的特性,针对MCS-51MCS-51单片机的特单片机的特 性做了适应性保留,使其更适合对单片机底层硬件进行直性做了适应性保留,使其更适合对

2、单片机底层硬件进行直 接控制。接控制。汇编语言则是一种用文字助记符来表示机器指令的汇编语言则是一种用文字助记符来表示机器指令的 符号语言,是最接近机器码的一种语言。其主要优点是占符号语言,是最接近机器码的一种语言。其主要优点是占 用资源少、程序执行效率高。但是,不同的用资源少、程序执行效率高。但是,不同的CPUCPU其汇编语其汇编语 言可能有所差异,所以不易相互之间进行移植。言可能有所差异,所以不易相互之间进行移植。 2用这两种语言进行单片机系统开发,存在各自的优用这两种语言进行单片机系统开发,存在各自的优缺点,主要体现在以下几点。缺点,主要体现在以下几点。 (1 1)、汇编语言可以更好地针对

3、硬件进行控制)、汇编语言可以更好地针对硬件进行控制汇编语言的一条指令就对应一个机器码,每一步执汇编语言的一条指令就对应一个机器码,每一步执 行什么动作都很清楚,并且程序大小和堆栈调用情况都容行什么动作都很清楚,并且程序大小和堆栈调用情况都容 易控制,调试起来也比较方便。而用易控制,调试起来也比较方便。而用C C语言进行编写,一语言进行编写,一 条条C C语言指令编译后,会变成很多条机器码,很容易出现语言指令编译后,会变成很多条机器码,很容易出现 ROMROM空间不够、堆栈溢出等问题。空间不够、堆栈溢出等问题。3(2 2)、)、C C语言可以提供良好的人机开发接口语言可以提供良好的人机开发接口C

4、 C语言是一种编译型程序设计语言,它兼顾了多种高级语言语言是一种编译型程序设计语言,它兼顾了多种高级语言 的特点,并具备汇编语言的功能,可以实现结构更为复杂的单片机的特点,并具备汇编语言的功能,可以实现结构更为复杂的单片机 系统功能。系统功能。C C语言有功能丰富的库函数,运算速度快、编译效率高语言有功能丰富的库函数,运算速度快、编译效率高 、有良好的可移植性,而且可以直接实现对系统硬件的控制。、有良好的可移植性,而且可以直接实现对系统硬件的控制。C C语言是一种结构化程序设计语言,它支持当前程序设计中语言是一种结构化程序设计语言,它支持当前程序设计中 广泛采用的由顶向下结构化程序设计技术。此

5、外,广泛采用的由顶向下结构化程序设计技术。此外,C C语言程序还具语言程序还具 有完善的模块程序结构,从而为软件开发中采用模块化程序设计方有完善的模块程序结构,从而为软件开发中采用模块化程序设计方 法提供了有力的保障。法提供了有力的保障。因此,使用因此,使用C C语言进行程序设计已成为软件开发的一个主流语言进行程序设计已成为软件开发的一个主流 。用。用C C语言来编写目标系统软件,会大大缩短开发周期,并且明显语言来编写目标系统软件,会大大缩短开发周期,并且明显 地增加软件的可读性,便于对已编制好的程序进行改进和扩充,从地增加软件的可读性,便于对已编制好的程序进行改进和扩充,从 而研制出规模更大

6、、性能更完备的系统。而研制出规模更大、性能更完备的系统。4针对汇编语言可以更好的针对硬件进行控制的特点,很多单针对汇编语言可以更好的针对硬件进行控制的特点,很多单 片机设计和生产公司开发了片机设计和生产公司开发了MCS-51MCS-51单片机的增强型衍生产品,这单片机的增强型衍生产品,这 些产品在内部的主要功能部件上未作出任何变化,只是增加了程序些产品在内部的主要功能部件上未作出任何变化,只是增加了程序 存储器存储器FlashFlash和数据存储器和数据存储器RAMRAM的容量,使其更适合运用的容量,使其更适合运用C C语言开语言开 发代码更长的复杂程序。如,表发代码更长的复杂程序。如,表4-

7、14-1给出的给出的STCSTC单片机单片机RC/RDRC/RD( 5V5V)系列选型一览表中,就是根据这两个因素进行型号区分的。)系列选型一览表中,就是根据这两个因素进行型号区分的。因此,用因此,用C C语言进行单片机程序设计是单片机开发与应用的语言进行单片机程序设计是单片机开发与应用的 必然趋势。所以,作为一个致力于单片机系统开发的开发人员来说必然趋势。所以,作为一个致力于单片机系统开发的开发人员来说 ,最好能够掌握基本的,最好能够掌握基本的C C语言编程。语言编程。基于以上原因,本书的所有项目都是采用基于以上原因,本书的所有项目都是采用KeilKeil C51 C51下的下的C C语语

8、言进行开发的,本章就对言进行开发的,本章就对C51C51的一些基本知识进行简要介绍,读者的一些基本知识进行简要介绍,读者 可以结合后面的具体项目,加深对这部分知识的理解和掌握。关于可以结合后面的具体项目,加深对这部分知识的理解和掌握。关于 MCS-51MCS-51单片机利用汇编进行编程方面的知识,有兴趣的读者也可单片机利用汇编进行编程方面的知识,有兴趣的读者也可 以查阅相关的资料自行学习。以查阅相关的资料自行学习。55.1 标识符和关键字C C语言中的标识符是设计人员在程序中自己定义的一种字符语言中的标识符是设计人员在程序中自己定义的一种字符 序列,用来命名程序中需要辨认的对象,包括符号常量、

9、变量、数序列,用来命名程序中需要辨认的对象,包括符号常量、变量、数 组及函数等对象。标识符具有以下一些特征:组及函数等对象。标识符具有以下一些特征: (1)(1)、由字母、数字、下划线构成。、由字母、数字、下划线构成。 (2)(2)、开头必须是字母或下划线。、开头必须是字母或下划线。 (3)(3)、长度不得大于、长度不得大于3232个字符,而通常是前个字符,而通常是前8 8个字符有效。个字符有效。 (4)(4)、区分大、小写字母。、区分大、小写字母。 例如,以下标识符是合法的:例如,以下标识符是合法的: A A,x x,x_3x_3,BOOK 1BOOK 1,sum5sum5 以下标识符是非法

10、的:以下标识符是非法的: 3s3s(以数字开头),(以数字开头),s*Ts*T(出现非法字符(出现非法字符* *),),3x3x(以减号开头(以减号开头 ),),bowybowy1 1(出现非法字符(出现非法字符( (减号减号) ))6在使用标识符时还必须注意以下几点:在使用标识符时还必须注意以下几点: (1)(1)、标准、标准C C语言不限制标识符的长度,但它受各种版本的语言不限制标识符的长度,但它受各种版本的C C语言语言 编译系统的限制,同时也受到具体机器的限制。例如,在某版本编译系统的限制,同时也受到具体机器的限制。例如,在某版本C C 语言中规定标识符前八位有效,当两个标识符前八位相

11、同时,则被语言中规定标识符前八位有效,当两个标识符前八位相同时,则被 认为是同一个标识符。认为是同一个标识符。 (2)(2)、在标识符中,大小写是有区别的。例如,、在标识符中,大小写是有区别的。例如,SEASEA和和seasea是两个是两个 不同的标识符。不同的标识符。 (3)(3)、标识符虽然可由程序员随意定义,但标识符是用于标识某个、标识符虽然可由程序员随意定义,但标识符是用于标识某个 量的符号。因此,命名应尽量有相应的意义,以便于理解。量的符号。因此,命名应尽量有相应的意义,以便于理解。 (4)(4)、不应该使用、不应该使用C C语言中的保留标识符来做自定义的变量或者函语言中的保留标识符

12、来做自定义的变量或者函 数等的标识符。使用保留标识符来做自定义变量或者函数等的标识数等的标识符。使用保留标识符来做自定义变量或者函数等的标识 符不是语法错误,可以通过编译,因为保留标识符是合法的标识符符不是语法错误,可以通过编译,因为保留标识符是合法的标识符 ,符合标识符命名法则。但是,因为这些标识符已经被,符合标识符命名法则。但是,因为这些标识符已经被C C语言使用语言使用 或者保留了,所以使用保留标识符来做自定义变量或者函数等的标或者保留了,所以使用保留标识符来做自定义变量或者函数等的标 识符可能会引起意想不到的问题。识符可能会引起意想不到的问题。7例如,例如,C C语言语句语言语句int

13、int double; double; 是错误的,因为是错误的,因为 double double 是关键字,不能做变量名。下面列出了是关键字,不能做变量名。下面列出了C C语言的语言的 所有关键字,读者在使用中应慎用这些关键字,不要将其所有关键字,读者在使用中应慎用这些关键字,不要将其 作为标识符来使用。作为标识符来使用。AutoAuto、enumenum、restrictrestrict、unsigned unsigned 、breakbreak、 externextern、returnreturn、voidvoid、casecase、floatfloat、short short volat

14、ilevolatile、charchar、forfor、signedsigned、whilewhile、constconst、gotogoto、 sizeofsizeof、BoolBool、continuecontinue、if if、 staticstatic、defaultdefault、inlineinline 、structstruct、_Imaginary_Imaginary、dodo、intint、switchswitch、doubledouble、 longlong、typedeftypedef、elseelse、registerregister和和unionunion等。等。8

15、5.2 C51的数据类型在在C C语言中,每个变量在使用之前必须先定义其数据语言中,每个变量在使用之前必须先定义其数据类型。类型。C C语言中有以下几种数据类型:整型语言中有以下几种数据类型:整型( (intint) )、浮点型、浮点型 (float)(float)、字符型、字符型(char)(char)、指针型、指针型(*)(*)、无值型、无值型 (void)(void)以及结以及结 构构( (structstruct) )和联合和联合(union)(union)。为了充分利用。为了充分利用MCS-51MCS-51单片机单片机 的资源特点,的资源特点,C51 C51 在在C C语言的数据类型

16、基础上增设了位型语言的数据类型基础上增设了位型 变量变量sbitsbit,取消了布尔变量,其实两者的使用方法基本类,取消了布尔变量,其实两者的使用方法基本类 似。表似。表5-15-1列出了列出了C51 C51 的基本数据类型。的基本数据类型。9表5-1 C51 的基本数据类型 类型说明符位数字节数数的范围signed int1623276832767 即215(215-1)unsigned int162065535 即0(216-1)signed long32421474836482147483647即231(231 -1)unsigned long32404294967295 即0(232-1)float32410-371038double64810-30710308long double1281610-4931104932signed

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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