单片机应用技术 教学课件 ppt 作者 谢敏 第9章 51系列单片机C程序设计

上传人:E**** 文档编号:89155713 上传时间:2019-05-19 格式:PPT 页数:72 大小:256.51KB
返回 下载 相关 举报
单片机应用技术 教学课件 ppt 作者 谢敏 第9章 51系列单片机C程序设计_第1页
第1页 / 共72页
单片机应用技术 教学课件 ppt 作者 谢敏 第9章 51系列单片机C程序设计_第2页
第2页 / 共72页
单片机应用技术 教学课件 ppt 作者 谢敏 第9章 51系列单片机C程序设计_第3页
第3页 / 共72页
单片机应用技术 教学课件 ppt 作者 谢敏 第9章 51系列单片机C程序设计_第4页
第4页 / 共72页
单片机应用技术 教学课件 ppt 作者 谢敏 第9章 51系列单片机C程序设计_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《单片机应用技术 教学课件 ppt 作者 谢敏 第9章 51系列单片机C程序设计》由会员分享,可在线阅读,更多相关《单片机应用技术 教学课件 ppt 作者 谢敏 第9章 51系列单片机C程序设计(72页珍藏版)》请在金锄头文库上搜索。

1、9.1 概述 9.2 数据类型、运算符及表达式 9.3 C51的数据类型 9.4 C语言程序设计 9.5 数 组 9.6 函 数,9.7 变量的作用域 9.8 指针 9.9 结构体与联合体 9.10 枚举和位运算 9.11 自定义符号 9.12 预处理,9.1 概述 1C语言的产生与发展 2C语言的特点 (1)C语言允许直接访问物理地址 (2)C是结构式语言 (3)C语言功能齐全 (4)C语言适用范围大,9.2 数据类型、运算符及表达式 9.2.1 基本数据类型 9.2.2 基本运算符及表达式,9.2.1 基本数据类型 在标准C语言中数据类型可以分为两类:基本数据类型和派生类型。基本数据类型为

2、整型、实型、字符型和枚举类型。基本类型数据在内存中的长度和数值范围见表9-1。,9.2.2 基本运算符及表达式 1.赋值运算符及其表达式 (1)概念 赋值符号为“=”,赋值语句的功能是把某个常量、变量或表达式的值赋值给另一个变量。 (2)赋值表达式 变量表达式 (3)复合赋值运算符,2.算术运算符及其表达式 算术表达式: 用算术运算符将操作数连接起来就构成了算术表达式。 如:a+b-4*5、100%5,3.逻辑运算符及其表达式 (1)概念 逻辑运算符根据表达式的值来返回真值或是假值 (2)表达式 由逻辑运算符及操作数构成的表达式称为逻辑表达式。,4.关系运算符及其表达式 (1)概念 关系运算符

3、的功能是判断两个表达式之间的关系,在程序中主要用来表示条件。它的运算级别比算术运算符低,并且是双目运算符。 (2)表达式 用关系运算符将两个表达式连接起来,就构成了关系表达式,5自增、自减运算符及其表达式 (1)概念 这是一类特殊的运算符,自增和自减运算符对变量的操作结果分别是增加1和减少1。 (2)表达式 操作数; 操作数; +操作数; 操作数+;,6.条件运算符及其表达式 (1)概念 条件运算符(? :)是C语言特有的运算符,也是唯一的一个三目运算符,它是对第一个表达式作真/假检测,然后根据结果返回另外两个表达式中的一个。 (2)表达式 ?:,7.逗号运算符及其表达式 (1)概念 逗号运算

4、符的功能是将两个以上的表达式连接起来,从左向右求解各个表达式,而整个表达式的值为最后一个表达式的值。 (2)表达式 表达式1,表达式2,表达式3,9.3 C51的数据类型 KEIL uVision2 C51支持C语言的所有标准数据类型,除此之外,为了更好地利用8051的结构,还加入了一些特殊的数据类型。,1.char:字符类型 char类型的长度是一个字节,通常用于定义处理字符数据的变量或常量。 2.int:整型 int整型长度为两个字节,用于存放一个双字节数据。 3.long:长整型 long长整型长度为四个字节,用于存放一个四字节数据。,4.float:浮点型 float浮点型在十进制中具

5、有7位有效数字,是符合IEEE754标准的单精度浮点型数据,占用四个字节。 5.*:指针型 指针型本身就是一个变量,在这个变量中存放着指向另一个数据的地址。 6.bit:位类型 bit位类型是C51编译器的一种扩充数据类型,利用它可定义一个位变量,但不能定义位指针,也不能定义位数组。,7.sfr:特殊功能寄存器 str也是一种扩充数据类型,占用一个内存单元,取值范围为0255。利用它可以定义51单片机内部的所有8位特殊功能寄存器。 8.sfr16:16位特殊功能寄存器 str16占用两个内存单元,取值范围为065535。 9.sbit:可寻址位 sbit位是C51中的一种扩充数据类型,利用它可

6、以定义8051单片机内部RAM中的可寻址位或特殊功能寄存器中的可寻址位。,9.4 C语言程序设计 9.4.1 分支程序 9.4.2 循环语句 9.4.3 循环控制,9.4.1 分支程序 1.if语句 if 语句通常有3种形式 (1) if (表达式) 语句1; (2) if-else语句 (3) if语句的嵌套形式,【例9-4】输入x,输出y,x和y满足如下关系: x=4 y=3*x-2; 程序如下: main() float x,y; scanf(“%f“, ,注意: (1) y=2*x+5不能写成y=2x+5;y=3*x-2也不能写成y=3x-2。 (2) -5=x 1=x&x4也不能写成

7、1=x4;在C语言中,不能识别连续不等式。,2. switch语句 (1)开关分支语句格式: switch(表达式) case 常量表达式1:语句1; break; case 常量表达式2:语句2; break; case 常量表达式n:语句n或空; break; default:语句n+1; break; ,(2)注意事项: switch中变量可以是数值,也可以是字符,但必须是整数。 可以省略一些case和default。 每个case或default后的语句可以是语句体,但不需要使用“和“括起来。,9.4.2 循环语句 C语言提供三种基本的循环语句: for语句、while语句和do-wh

8、ile语句,1.for循环 一般形式为: for(;) 语句; 注意: (1)for循环中语句可以为语句体,但要用“和“将参加循环的语句括起来。 (2)for循环中的“初始化”、“条件表达式”和“增量”都是选择项,即可以缺省,但“;”不能缺省。 (3)for循环可以有多层嵌套。,2.while循环 一般形式为:while(条件) 语句; 注意: (1)在while循环体内允许存在空语句。 如: while (c=getche()!=n); 这个循环直到键入回车为止。 (2) while循环可以有多层循环嵌套。 (3) while循环中语句可以是语句体, 此时必须用“和“括起来。,3.do-wh

9、ile循环 一般形式为:do 语句块; while(条件);,9.4.3 循环控制 1.break语句 break语句通常用在循环语句和开关语句中。 注意: (1)break语句对if-else的条件语句不起作用。 (2) 在多层循环中,一个break语句只向外跳一层。,2.continue语句 continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环,continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用,用来加速循环。,3.goto语句 goto语句是一种无条件转移语句,与BASIC中的goto语句相似。 goto语句的使用格式为

10、: goto 标号;,9.5 数 组 9.5.1 数组元素的表示方法 9.5.2 数组的赋初值 9.5.3 二维数组 9.5.4 字符数组,9.5.1 数组元素的表示方法 表示方法: 表明数组的方法为在数组名后加上用方括号括起来的维数说明。数组中的不同元素主要由数组名和下标号来确定。,9.5.2 数组的赋初值 1为全部数组元素赋初值 int a10=1,2,3,4,5,6,7,8,9,10; 2如果是对数组的全部元素赋初值,可以不指定数组长度 int a =1,2,3,4,5,6,7,8,9,10; 3对部分数组元素赋初值 int b10=1,2,3,4,5; 注意,此时方括号内的数组长度不可

11、省略,否则数组长度自动被定为5。,9.5.3 二维数组 1.定义: 可由两个下标确定元素的数组称为二维数组。其定义的一般形式为 类型说明符 数组名常量表达式1常量表达式2 2.二维数组的初始化: 二维数组的初始化同一维数组类似,有以下几种形式,(1)int a35= 0,1,2,3,4, 1,2,3,4,5, 2,3,4,5,6; (2)int a35= 0,1,2,3,4, 1,2,3,4,5, 2,3,4,5,6; (3)int a45= 1,3, 2, 0,2,4; (4)当对全都元素初始化时,第一维的长度可以不指定,但第二维的长度不能省。 如: int a4=1,2,3,4,5,6,7

12、,8,9.5.4 字符数组 1.字符数组定义 字符数组就是元素类型为字符型的数组。在字符数组中可以存放多个字符,但一般存放字符串。 如:char array5=H,E,L,L,O; 2字符数组的使用 字符型数组和整型数组在使用时有不同的地方。,9.6 函 数 9.6.1 函数的分类 9.6.2 函数的定义 9.6.3 函数的调用,9.6.1 函数的分类 C语言包含两类函数,一类是标准函数,即库函数,另一类是用户自定义函数,9.6.2 函数的定义 一个函数包括函数头和语句体两部分,函数头由下列三部分组成: 函数返回值类型、函数名、参数表。函数定义的一般形式为: 函数返回值类型 函数名 (参数表)

13、 语句体; ,9.6.3 函数的调用 1函数是通过函数调用来执行的,调用的一般形式为 函数名 (实参表列) 2函数的递归调用 (1)递归调用定义 在调用函数的过程中直接或间接的调用函数本身称为函数的递归调用。,9.7 变量的作用域 9.7.1 局部变量 9.7.2 全局变量 9.7.3 变量的存储方式,9.7.1 局部变量 在函数内部定义的变量是局部变量,它只在本函数范围内有效,即局部变量的作用域是在变量定义的函数内。 局部变量也称为内部变量。,9.7.2 全局变量 在函数外部定义的变量称为全局变量或外部变量,全局变量可以为多个函数所共用,其作用域是变量的定义点到程序文件结束。 对于具有全局作

14、用域的变量,我们可以在程序的任何位置访问它们。,9.7.3 变量的存储方式 变量存储类型有四种: 自动(auto)、静态(static)、外部 (extern)、寄存器(register)。 1.自动存储类型(auto) 自动存储类型是最常用的一种存储类型,属于动态存储类别,指定一个局部变量为自动的,意味着每次执行到定义该变量的语句块时,都将会为该变量在内存中产生一个新的拷贝,并对其进行初始化。,2.静态存储类型(static) 静态存储变量属于静态存储,又可分为静态局部变量和静态全局变量。 3.外部存储类型(extern) 外部存储类型可以说明外部变量,即全局变量。全局变量仅能定义一次,即分

15、配存储空间一处,否则C编译程序将会报错,重复定义变量。对于全局变量来讲,其作用域为定义处开始到程序的末尾。,4.寄存器存储类型(register) 寄存器register只能用于整型变量。寄存器变量存储在CPU中的寄存器中,而不象普通变量那样存储在内存中,使用寄存器变量比使用内存变量速度快的多,寄存器变量说明符只适用于局部变量和函数的形式参数。,9.8 指针 9.8.1 指针变量的类型说明 9.8.2 指针变量的引用 9.8.3 指针运算 9.8.4 数组指针变量的使用,9.8.1 指针变量的类型说明 1指针基本概念 “指针”是个地址概念,是指为内存储器中存储单元的地址,一个变量在内存中占用内

16、存储单元的地址,称为该变量的指针。 2.指针变量的定义 指针变量的一般定义为: 类型标识符 *标识符;,9.8.2 指针变量的引用 指针变量的引用与两个运算符密切相关,这两个运算符是: (1)&:取地址运算符,得到变量在存储器中得首地址,运算对象是变量。 (2)*:指针运算符,引用指针变量指向的变量,运算对象是指针。,9.8.3 指针运算 指针运算比较简单,除专门的指针运算和*外,还有赋值运算、算术运算。 1.指针的赋值运算 C语言允许指针变量存储任一变量的地址,但要注意变量的类型,不能用一个常量(除0外)或一个非地址表达式来给指针变量赋值。 2.指针的算术运算 (1)(自增), (自减)。 (2) 加、减整型数据。,3.指针变量比较运算 指向同一个数组的两个指针变量,可以进行关系运算。

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

当前位置:首页 > 高等教育 > 大学课件

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