2单片机C51语言程序设计基础

上传人:aa****6 文档编号:48813678 上传时间:2018-07-20 格式:PPT 页数:55 大小:327KB
返回 下载 相关 举报
2单片机C51语言程序设计基础_第1页
第1页 / 共55页
2单片机C51语言程序设计基础_第2页
第2页 / 共55页
2单片机C51语言程序设计基础_第3页
第3页 / 共55页
2单片机C51语言程序设计基础_第4页
第4页 / 共55页
2单片机C51语言程序设计基础_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《2单片机C51语言程序设计基础》由会员分享,可在线阅读,更多相关《2单片机C51语言程序设计基础(55页珍藏版)》请在金锄头文库上搜索。

1、第2章 单片机C51语言程序设计基础 单片机C51语言既具有汇编语言对操作硬件的功能 ,又兼有高级编程语言的许多优点。在现代的单 片机程序设计中,单片机C51语言得到了广泛的采 用。本章主要介绍了包括C51程序的基本结构,以 及C51程序设计的基础知识,包括标识符、关键字 、数据类型、表达式和运算符等。熟练掌握这些 知识,将为下面进一步学习打好基础。2.1 C51程序的基本结构 单片机C51语言继承了C语言的特点,其程序结构 与一般C语言的程序结构没有差别。C51源程序文 件的扩展名为“.c”,如Test.c、Function.c等 。每个C51源程序中包含一个名为“main()”的主 函数,

2、C51程序的执行总是从main()函数开始的。 当主函数中所有语句执行完毕,则程序执行结束 。Keil Vision3项目结构示意图 2.2 C51编程规范及注意事项 在学习任何一种编程语言的时候,按照一定的规 范培养良好的编程习惯很重要。良好的编程规范 可以帮助开发人员理清思路、方便整理代码,同 时也便于他人阅读理解以促进代码的交流。在进 行C51语言程序设计时,应该注意一下几方面的编 程规范。2.2.1 注释 任何编程语言都支持注释语句。注释语句只对代 码起到功能描述的作用,在实际的编译链接过程 中不起作用。C51语言中可以通过两种方式来表示 注释内容: 用“/”符号开头来注释一行,如“/

3、变量声明 ”。 用“/*”符号开头,并以“*/”符号结束来对C51 源程序中的任何部分进行注释,如“/*声明整型 变量ch */”。2.2.2 命名在进行程序设计时,经常需要自定义一些函数或者变量。 一般来说,只要符合C51命名规范即可通过编译。但是,为 了便于源程序的理解和交流,在进行命名时应注意如下几 点: 自定义函数或者变量的名称最好能反映该函数或变量的功 能用途。因此,需要采用有意义的单词或者字母组合来表 示。例如,MAX表示最大值、MIN表示最小值等。 变量名通常加上表示数据类型的前缀,如“ucSendData” 的前缀“uc”表示unsigned char。 在命名时不要和系统保留

4、的标识符以及关键字产生冲突或 者歧义。2.2.3 格式为了程序阅读的方便,在进行C51程序设计时,在程序结构以及语 句书写格式方面应注意以下几点: 虽然C51语言对main()函数放置的位置没有限定,但为了程序阅读 的方便,最好将其放置在所有自定义函数的最前面,即依次是头 文件声明、自定义函数以及全局变量声明、main()函数、自定义 函数。 C51语句可以写在一行上也可以写在多行上。为了程序理解的方便 ,最好将每个语句单独写在一行,并加以注释。有时某几个相连 的语句相近或者共同执行某个功能则可以放置在一行。 对于源程序文件不同结构部分之间要留有空行。例如,头文件声 明、自定义函数声明、mai

5、n()函数以及自定义函数之间均要空一 行来明显区分不同结构。 对于if、while等块结构语句中的“”和“”要配对对齐,以便 于程序阅读时能够理解该结构的起始和结束。 源代码安排时可以通过适当的空格以及Tab键来实现代码对齐。2.3 C51的标识符与关键字 标识符和关键字是一种编程语言最基本的组成部 分,C51语言同样支持自定义的标识符以及系统保 留的关键字。在进行C51程序设计时,需要了解标 识符和关键字的使用规则。2.3.1 标识符标识符常用来声明某个对象的名称,如变量和常量的声明 、数组和结构的声明、自定义函数的声明以及数据类型的 声明等。示例如下。 int count; void Fu

6、nction1(); 在上面的例子中,count为整型变量的标识符,Function1 为自定义函数的标识符。 在C51语言中,标识符可以由字母、数字(09)和下划线 “_”组成,最多可支持32个字符。并且,C51标识符第一 个字符必须是字母或者下划线“_”。例如“ut1”、 “ch_1”等,都是正确的。而“5count”则是错误的标识 符。另外,C51的标识符区分大小写,例如“count1”和 “COUNT1”代表两个不同的标识符。2.3.2 关键字 关键字是C51语言重要的组成部分,是C51编译器 已定义保留的专用特殊标识符,有时也称为保留 字。这些关键字通常有固定的名称和功能,如int

7、、float、if、for、do、while、case等。2.4 C51的变量类型 数据类型是C51语言最基本的组成部分。在C51中 ,每个变量在使用之前必须定义其数据类型。C51 语言中的数据类型分为基本数据类型和聚合数据 类型,这里首先介绍基本数据类型。2.4.1 C51的数据类型C51的基本数据类型有整型(int)、浮点型(float)、字符型(char) 、无值型(void)。在基本数据类型中,除void类型外,其前面均可以有 各种修饰符。修饰符用来改变基本类型的意义,以便更准确地适应各种情 况的需求。 常用的修饰符有signed(有符号)、unsigned(无符号)、long(长型符

8、 )、short(短型符)。在C51语言中的所有数据类型的字长和取值范围, 如表所示。表3.2 C51语言的数据类型2.4.2 整型变量整型变量是整数类型的数据。整型变量是最常用的数据类型。整型变量的 定义格式是“类型说明符 变量标识符,变量标识符”。示例如下: inta, b; /定义a、b为短整型变量 longc, d; /定义c、d为长整型变量 其中,类型说明符与变量标识符之间至少有一个空格。最后一个变量标识 符必须以“;”结尾。整型变量的前面可以加上不同的修饰符,整型变量 的类型如表所示。 表 整型变量的类型类型简写形式字长(bit )取值范围unsigned short int(无符

9、号 短整型)unsigned int8065535signed short int(有符号短整 型)short或int8-3276832767signed long int(有符号长整 型)unsigned long32- 214748364821474836 49 unsigned long int(无符号长 整型)long32042949672962.4.3 浮点型变量浮点型变量是用于表示包含小数点的数据类型。浮点型变 量的一般定义格式是“类型说明符 变量标识符,变量标识 符”。示例如下: float a, b; /定义a、b为单精度浮点型变量 double c, d; /定义c、d为双精

10、度浮点型变量 同整型变量一样,浮点型变量也可以同时定义多个。C51支 持三种浮点型变量类型,即float类型、double类型和long double类型。但是在C51中不具体区分这三种类型,它们都 被当作float类型对待。因此,这三种浮点类型的精度和取 值范围相同。浮点类型变量的字长为4个字节,共32位二进 制数,取值范围为3.4x10-383.4x10+38。浮点型变量的示例 程序如下:#include /头 文件 void main( ) /主函数 floata; /定义a为单精度浮点型变量 double b;/定 义b为双精度浮点型变量 a=8976.1538;/赋 值 b=6950

11、.2692; printf(“a=%fnb=%fn“,a,b);/打印输出 结果 2.4.4 字符型变量在信息的表示和传递中,经常用到字符以及文字的表示。 字符型变量就是用来存放单个字符的变量类型。字符型变 量的定义格式是“类型说明符 变量标识符,变量标识符 ”。示例如下: char a:/定义a为有 符号字符变量 unsigned char b;/定义b为无 符号字符变量 在C51中,可以定义两种类型的字符型变量:有符号字符变 量char和无符号字符变量unsigned char。在C51中,字符 型变量在操作时将按整型变量处理。字符是以ASCII码方式 表示的,其字长为1个字节,所以有符号

12、字符型变量的取值 范围为-128127,无符号字符型变量的取值范围是0255。 如果某个变量被定义成char,则表明该变量是有符号的, 即它将转换成有符号的整型变量。2.4.5 指针型变量指针型变量是指向变量所存放地址的数据类型。在C51中, 指针型变量的定义格式是“类型说明符 变量标识符,变量 标识符”。示例如下: int *i;/定 义整型指针变量 float *f;/定 义浮点型指针变量 char *c;/定 义字符型指针变量 struct*stu;/定义结构 型指针变量 union *uni;/定义联合 指针变量2.4.6 无值型变量 无值型变量是一个特殊的类型,其字节长度为0。 无值

13、型变量的定义格式是“类型说明符 变量标识 符,变量标识符”。示例如下: void *buf; /buf被定义为无值型指针 在C51中,无值型变量主要用于以下两个方面: 定义一个同一类型的指针,该指针可根据需要动 态分配内存。 在自定义函数时,明确地表示这个函数不返回任 何值。程序示例如下:#include /头文件 void Fun1(int a)/定 义一个无返回值的函数 printf(“the number is %d“,a);/输出 void main() /主函数 int i;/定 义变量 i=12;/赋 值 Fun1(i);/调用函数 2.5 C51的常量类型 常量也C51中常用的数

14、据形式。与变量的表示相比 ,常量的表示要相对简单,但是同样要注意表示 的规范,否则会导致程序出错。C51中的常量有整 型常量、浮点型常量、字符型常量和转义字符四 种类型。下面分别对其进行介绍。2.5.1 整型常量 整型数据包括整型变量和整型常量两种,整型变 量的定义前面已经详细介绍。整型常量及整型常 数可以表示十进制、八进制、十六进制的整数值 。根据表示的数的进制不同进行区分,整型常量 的表示如表所示。整型常量的表示整型常量类型表示形式示例十进制数以非0开始的数来表 示220,-560,45900八进制数以0开始的数来表示06,0106,0578十六进制数以0X或0x开始的数来 表示0X0D,

15、0XFF,0x4e2.5.2 浮点型常量浮点型常量也称为实型常量,只可以以十进制来表示。一 般来说,浮点型常量的值由整数部分、尾数部分和指数部 分组成。在不加说明的情况下,浮点型常量通常为正值。 如果需要表示负值,则在常量前使用负号,如18.47,- 45.63,-4.2e-16,8.165。 在C51中,所有浮点常量都被默认为float型。对于绝对值 小于1的浮点型常量,其小数点前面的零可以省略。例如, 0.68可写为.68,-0.0314E-4可写为-.0314E-4。 在编译环境中,默认的输出格式为浮点数时,最多只保留 小数点后六位,不够的后面补零。在浮点型常量中不得出 现任何空白符号。

16、字母E或e之前必须有数字,其表示形式 为“数字e数字”,且浮点型常量中E或e后面的指数必须 是整数,例如“e2.3”、“e -2.5”等都是不合法的指数 形式。2.5.3 字符型常量字符型常量用来表示单个字符,其用一对单引号括起来。 其中单引号只起定界作用,并不表示字符本身,例如F ,5,?。在C51中,字符常量的单引号中的字符 不能是单引号()或反斜杠()。如果需要使用这两个 字符,则需要采用转义字符来表示,这将在后面介绍。 在C51中,字符是按其所对应的ASCII码值来存储的,一个 字符占一个字节。因此也可用该字符的ASCII码值来表示该 字符,例如,十进制数65表示大写字母A,十六进制数 0x5d表示符号,八进制数0110表示

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

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

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