第6章单片机C语言.ppt
《第6章单片机C语言.ppt》由会员分享,可在线阅读,更多相关《第6章单片机C语言.ppt(40页珍藏版)》请在三一办公上搜索。
1、第6章 单片机C语言程序设计基础,前面一章介绍了汇编语言的单片机程序。在单片机的开发与应用中,除了汇编语言,也可以采用其他高级语言,如C语言。单片机C语言既有汇编语言的操作底层硬件的能力,又具有高级语言的许多优点。因此,在现代的单片机程序设计中广泛采用单片机C语言。本章主要介绍了单片机C语言程序设计的基础知识,包括标识符、关键字、数据类型、表达式和运算符等。熟练掌握这些知识,将为下面学习C51的函数和语句打好基础。,6.1 单片机C语言概述,对比现有的程序设计语言,C语言以其功能强大、结构清晰等优点获得广泛应用。对于学过C语言的读者来说,再学其他语言就显得轻而易举了。而在单片机程序设计中,同样
2、有应用于单片机的C语言,有时简称为C51语言。C51语言继承了C语言的结构上的优点,便于学习,又有汇编语言操作硬件的能力,因此被广泛使用于单片机程序设计中。,6.1.1 单片机C语言和汇编语言对比,汇编语言是一种面向机器的程序语言,其可以直接控制硬件,指令执行速度快,且指令的执行时间固定,因此汇编语言的执行效率很高。但其语言格式比较晦涩、可读性差、难于编写和调试,也不便于移植,影响了程序代码的共享。与汇编语言相比,单片机C语言在结构上更易理解、可读性强,且开发速度快、可靠性好、便于移植。因此,使用单片机C语言进行单片机系统的开发,可以缩短开发周期、降低开发成本。随着单片机硬件系统的发展和产品更
3、新速度的提升,单片机的开发越来越着重于程序本身的开发效率,以便快速占领市场。因此,单片机C语言已成为目前最流行的单片机开发语言。,6.1.2 C51语言的主要特点,单片机的C51语言特点很多,总结起来主要的有以下几点:单片机C51语言兼备高级语言与低级语言的优点,语法结构和标准C语言基本一致。其规模适中,语言简洁,便于学习。同C语言一样,单片机C51语言提供了完备的数据类型、运算符以及函数供使用。C51语言借鉴了ALGOL的分程序结构,是一种结构化程序设计语言。其使用一对花括号“”将一系列语句组合成一个复合语句,程序结构简单明了。C51语言的可移植性好。对于兼容的8051系列单片机,只要将一个
4、硬件型号下的程序稍加修改,甚至不加改变,就可移植到另一个不同的硬件型号开发环境中使用。C51语言生成的代码执行效率高,且比汇编语言的程序易于理解和共享使用。,6.2 单片机C语言在Keil Vison3中应用实例,单片机C语言(即C51语言)是运行在单片机上的程序语言,和C语言的语法结构是基本一致的。这里通过一个实例,来讲解如何在Keil Vison3集成开发环境下进行单片机C语言的程序设计。,6.2.1 创建项目,双击启动Keil Vison3集成开发环境,首先开始创建项目,操作步骤如下。,6.2.2 创建源文件,当一个单片机项目建立完毕后,现在开始进行核心的源文件的设计。具体的操作步骤如下
5、。,6.2.3 编译项目,项目及源文件建立完毕后便可以编译项目了。选择“Project”“Build target”命令,即可编译,如果程序无误,则在输出窗口中显示编译结果,如图所示。,6.2.4 仿真调试,当一个单片机项目建立并编译通过后,在下载到单片机硬件中之前,为了确保程序的执行完全符合要求,一般需要进行仿真调试。Vison3的集成开发环境提供了完善的项目仿真和调试工具,下面就介绍如何使用Vison3来进行单片机C语言程序的仿真调试。项目仿真调试之前需要确保该项目完全通过编译。仿真调试的步骤如下:,6.3 C51的标识符与关键字,同标准的C语言一样,单片机的C51程序语言也包含特定的标识
6、符和关键字。因此,在进行C51程序设计时必须符合其使用的规则。,6.3.1 标识符,标识符是用来标识源程序中某个对象名称的符号。其中的对象可以是常量、变量、语句标号、数据类型、自定义函数名以及数组名等。C51的标识符的定义不是随意的,需要符合以下定义规则。C51的标识符可以由字母、数字(09)和下划线“_”组成。C51的标识符区分大小写,例如“num5”和“NUM5”代表两个不同的标识符。C51的标识符第一个字符必须是小写字母(az)、大写字母(AZ)或者下划线“_”。例如“count1”、“C_1”等,都是正确的。而“5num”则是错误的标识符,在编译时系统会出现错误提示。另外,有些编译系统
7、专用的标识符是以下划线开头,为了程序的兼容性和可移植性,所以建议一般不要以下划线开头来命名标识符。C51的标识符定义不能使用C51的关键字,也不能和用户已使用的函数名或C51库函数同名。例如“int”是不正确的标识符,“int”是关键字,所以它不能作为标识符。C51的标识符最多可支持32个字符,不过,为了使用和理解方便,尽量不要使用过长的标识符。,6.3.2 关键字,关键字是被C51编译器已定义保留的专用特殊标识符。关键字是C51语言的一部分,如if、for、do、case等。这些关键字有固定的名称和含义,用户在C51源程序中自定义的标识符不允许与关键字相同,否则程序将无法编译运行。单片机C5
8、1程序语言采用了ANSI C标准定义的32个关键字。(详细内容请参照本书),6.4 C51的数据类型,C51的数据类型是C51语言中变量以及常量的类型。每个变量在使用之前必须定义其数据类型。C51除了继承了标准C语言中基本的数据类型int、char、short、long、float和double等外,又有自己的特点。例如在C51语言中int和short、float和double具有相同的取值范围和含义。在C51中有以下几种基本数据类型:整型(int)、浮点型(float)、字符型(char)、无值型(void)。此外,C51语言还提供了几种聚合类型(aggregate types),包括数组、
9、指针、结构、联合(共用体)、枚举和位域。关于几种聚合类型将在下一章中进行详细介绍。本章主要介绍几种基本类型。C51语言中基本数据类型的字长和取值范围,如表所示。,6.4.1 常量与变量,常量就是在程序执行过程中不改变值的数据量,变量就是在程序运行过程中可以改变值的数据量。常量和变量是计算机程序处理的数据对象。1常量常量在程序中是不接受程序修改的固定值,C51中的常量可为任意数据类型。2变量变量在程序中是可以被程序修改的数据量。一个完整的变量应该有类型说明符以及变量标识符。C51编译器在单片机内存中单独划分一定的存储单元,用来存放该变量的值。,6.4.2 整型数据,整型数据是整数类型的数据。整型
10、数据是最常用的数据类型,下面就介绍整型数据的说明、整型变量的定义以及整型常量的表示。1整型数据说明2整型变量定义定义整型变量的一般格式是“类型说明符 变量标识符,变量标识符”。示例如下。inta,b;/定义a、b为有符号短整型变量unsigned longc,d;/定义c、d为无符号长整型变量3整型常量表示整型常量及整型常数可以表示十进制、八进制、十六进制的整数值。按不同的进制区分,整型常数有三种表示方法。,6.4.3 浮点型数据,浮点型数据是用于表示包含小数点的数据类型。下面分别介绍在C51语言中浮点型数据的说明、浮点型数据的定义以及浮点型常量的表示。1浮点型数据说明:C51中支持如下三种类
11、型的浮点数,即float类型、double类型和long double类型。只不过,在C51语言中不具体区分这三种类型,都被当作float类型对待。因此,这三种浮点类型有相同的精度和取值范围。浮点类型的变量字长为4个字节共32位二进制数,取值范围为3.4x10-383.4x10+38。另外,在C51语言中,浮点型数据均为有符号浮点数,而没有无符号浮点数。2浮点型变量定义:浮点型变量的一般定义格式是“类型说明符 变量标识符,变量标识符”。同整型数据一样,浮点型变量也可以同时定义多个。3浮点型常量表示:浮点型常量通常称为实型常量,其值可以表示为十进制。浮点型常量的值由整数部分、尾数部分和指数部分组
12、成。一般情况下,在不加说明的情况下,浮点型常量为正值。如果表示负值,需要在常量前使用负号。例如28.57、-57.63、-7.2e-16、8.265。,6.4.4 字符型数据,字符型变量是用来存放字符的变量类型。字符型变量只能存放一个字符。在信息的传递中,字符、文字等是经常用到的。下面介绍C51中的字符型数据的定义和使用等。1字符型变量定义:在C51语言中,可以定义两种类型的字符型变量:有符号字符变量和无符号字符变量。字符型变量的定义格式示例如下:char a:/定义a为有符号字符变量unsigned char b;/定义b为无符号字符变量2字符常量表示:字符常量是指用一对单引号括起来的一个字
13、符。其中单引号只起定界作用,并不表示字符本身,例如F,7,!等。在C51语言中,字符常量单引号中的字符不能是单引号()和反斜杠()。如果需要使用这两个字符,则需要采用转义字符来表示,这将在后面介绍。3转义字符:转义字符用于表示ASCII码字符集中不可打印的控制字符和特定功能的字符。转义字符是C51语言中表示字符的一种特殊形式。,6.4.5 指针型数据,指针型数据是指向变量所存放地址的数据类型。指针型数据是一种特殊的数据类型,根据所指的变量类型不同,可以分为整型指针、浮点型指针、字符型指针、结构型指针和联合指针。在C51语言中,指针型变量的定义格式如下:int*i;/定义整型指针变量float*
14、f;/定义浮点型指针变量char*c;/定义字符型指针变量struct*stu;/定义结构型指针变量union*uni;/定义联合指针变量,6.4.6 无值型数据,无值型数据是一个特殊的类型,其字节长度为0。在C51语言中,无值型主要有两个用途:定义一个同一类型指针,该指针可根据需要动态分配内存。在定义和使用函数时,明确地表示这个函数不返回任何值。无值型数据的声明示例如下:void*buf;/buf被定义为无值型指针,6.5 C51的变量作用域,变量作用域是在程序中变量起作用的范围。C51语言中,使用变量前需要首先声明该变量。由于C51程序中可以包含多个函数和程序文件,因此使用变量时,需要注意
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 语言
链接地址:https://www.31ppt.com/p-4878454.html