(6.1)--3.1 C51的基本执行语句.ppt
-
资源ID:96428699
资源大小:562.96KB
全文页数:30页
- 资源格式: PPT
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
(6.1)--3.1 C51的基本执行语句.ppt
单片机单片机的的C51C51基础知识基础知识第三章第三章第第 节节3.1 C513.1 C51的基本执行语句的基本执行语句1 1C51的基本执行语句 C51的基本执行语句是由表达式语句、选择语句和循环语句3类基本语句组成,C51编译器可将它们转换为单片机硬件可以执行的机器码指令。学习表达式语句要首先正确理解表达式的概念。1.表达式表达式语句语句表达式表达式:由运算对象(常量常量或变量变量)与运算符运算符组成的关系式。“常量”是指程序运行中其值不能改变的量“变量”是指程序运行中其值可以改变的量“运算符”是能告诉编译器执行特定数学操作的符号。C51表达式的形式灵活多样,甚至其中的运算符也是可以缺省的,一个常量或一个变量也可以作为一个表达式 例如例如,c+5*dat1,20/350-stat或temp1=80等都可以是C51的合法表达式。表达式语句C51中有6类类运运算算符符:算术运算符,关系运算符,逻辑运算符,位运算符,复合赋值运算符和杂项运算符。6类类表表达达式式:有算术表达式,关系表达式,逻辑表达式,位表达式,复合赋值表达式和杂项表达式。这些运算符在C语言已经熟悉,在此只针对一些注意事项进行说明表达式语句算术运算符及算术表达式算术运算符及算术表达式要求两个运算对象的称为双目运算符双目运算符表达式语句关系关系运算符及运算符及关系关系表达式表达式“=”与与“=”的区别的区别:“=”是赋值运算符,而“=”是测试相等运算符。后者只是对该符号两边的表达式进行测试和比较,不进行赋值,因而两者不能混淆。表达式语句逻辑逻辑运算符及运算符及逻辑逻辑表达式表达式表达式语句位位运算符及运算符及位位表达式表达式注注意意:位表达式c1的值是111100B,而c的值并未改变,仍是10011110B。以上类似的概念均需这样理解。表达式语句复合赋值运算符与复合赋值表达式复合赋值运算符与复合赋值表达式复合赋值运算符复合赋值运算符是在赋值运算符赋值运算符“=”之前加上算术运算符或逻辑运算符形成的。表达式语句多运算符的优先级一览表多运算符的优先级一览表优先级是从上向下降低的,同一行中则是从左到右降低的,即所谓左结合优先原则。为了避免不必要的错误,建议多使用圆括号()来避免出现优先级错误表达式语句表达式语句表表达达式式语语句句:由表达式加分号构成的完整语句,任何表达式都可以加上分号而成为表达式语句。例如,a=3;i+;x+y;都是合法的表达式语句。多个表达式语句用花括号括起来后形成语句组(或称为复合语句、语句块)。注意:语句组中的各条语句都必须以分号结尾,但结尾“”后不能加分号。在程序中应把语句组看成是单条语句,而不是多条语句。选择语句有if和switch两种语句类型,而if语句类型又有3种不同语句形式,即基本if语句、if-else语句和if-else-if语句。2.选择选择语句语句2.1、基本、基本if语句语句 基本if语句的格式如下:if(表达式表达式)语句组语句组;如果语句组中只有一条语句,则语句组前后的 都可省略(下同),并简化为:if(表达式表达式)语句语句;选择语句if语句中的表达式可以是关系表达式、逻辑表达式,甚至是数值表达式 if语句的执行过程是:当“表达式”的结果为真时,执行语句组,否则跳过语句组继续执行下面的语句,执行过程如图所示。注意:如果语句组中只有一条语句,则语句组前后的都可省略,并简化为:if(表达式)语句;选择语句2.2、if-else语句语句if-else语句的格式如下:if(表达式表达式)语句组语句组1;else 语句组语句组2;注意,如果语句组1和语句组2中都只有一条语句,则if-else语句可简化为:if(表达式)语句(表达式)语句1;else 语句语句2;选择语句if(表达式(表达式1)语句组语句组1;else if(表达式(表达式2)语句组语句组2;else if(表达式(表达式n)语句组语句组n;else 语句组语句组n+1;2.3、if-else-if语句语句 用于实现多个条件分支的选择,其一般格式如下:选择语句if-else-if语语句句:是由 if-else语句组成的嵌套,用于实现多个条件分支的选择,if-else-if语句的执行过程是:依次判断“表达式i”的值,当“表达式i”的值为真时,执行其对应的语句组i,然后跳过剩余的if语句组,继续执行该语句下面的一个语句。如果所有表达式的值均为假,则执行最后一个else后的语句组n1,然后再继续执行其下面的语句。选择语句2.4、switch语句语句if语句类型一般用于单一条件或分支数目较少的场合,如果使用if语句来编写超过3个以上分支的程序,就会降低程序的可读性,C51中提供了一种用于多分枝选择的switch语句,其一般形式如下:switch(表达式)(表达式)case 常量常量1:语句组:语句组1;break;case 常量常量2:语句组:语句组2;break;case 常量常量n:语句:语句n;break;default:语句组语句组(n1);选择语句switch 语句 switch 语句中表达式的值为常量,其执行过程是:首先计算表达式的值,并逐个与case后面的常量相比较。当表达式的值与某个常量的值相等时,则执行该常量后面的语句组和break语句,然后跳出 switch结构,继续执行下一条语句。如果表达式的值与所有case后的常量值均不相同,则执行 default后的语句组,然后继续执行下一条语句。使用使用switch语句的几点说明:语句的几点说明:switch后面表达式的值可以是数值,也可以是字符。case后面的常量只起标号作用,仅用来标志一个位置。case后面的语句组可以不用 括起来,例如:case 0:P1_0=1;P1_1=0;breake;。default标号可以缺省,表示流程转到switch语句的下一条语句。break语句的作用是跳出switch循环体,转移到后面的语句处继续执行。但如果只是要结束本次分支循环,而转入下一次循环,则要用到continue语句。此外还有第3种转移语句,即goto语句,其一般格式为“goto 语句标号“;”选择语句循环语句3 3 循环循环语句语句 循环结构是一种很重要的程序结构,其作用是:对给定的条件进行判断,当给定的条件,如关系表达式、逻辑表达式数值表达式成立(值为“真”)时,就重复执行给定的语句组,直到条件不成立时为止。给定条件称为循环条件,重复执行的语句组称为循环体。在C51语言中,可用3个语句来实现循环程序结构:while语句、do-while语句和for语句。3.1、while语句while语句用来实现“当型”循环结构,即当条件为“真”时就执行循环体。while语句的一般形式为:while(表达式)(表达式)语句组语句组;循环语句执行过程:首先计算表达式的值,若为“真”时就执行循环体语句组。在循环体执行一次后重新进行循环条件判断,若值仍为“真”则继续循环,若为“假”则退出while循环结构,执行“语句组”后面的语句。在while语句中要注意两个极端情况:如果循环条件一开始就为“假”,例如while(0),就会直接跨过 while 后面的循环体,一次循环都不会执行。反之,如果循环条件总是为“真”,例如while(1),则为无限循环,即死循环。循环语句3.2、do-while语句 一般形式为:do 语句组;语句组;while(表达式表达式);do-while语句的执行过程是,先执行一次语句组,然后检查while后面表达式的值。当表达式为“真”时就返回再执行一次语句组,直到表达式为“假”时跳出while结构,结束循环过程。循环语句 同样一个问题,既可以用while语句,也可以用do-while语句来实现,二者的循环体相同,运算结果也相同。由于do-while语句是先执行后判断,而while语句是先判断后执行,对于关系表达式一开始就为“假”时,前者会执行一次循环体内容,而后者一次也不会执行,两者在功能上是有差异的。循环语句3.3、for语句:实现执行若干次循环的功能一般形式为:for(表达式(表达式1;表达式表达式2;表达式表达式3)语句组语句组;3个表达式依次为:循环变量初值、循环条件和循环变量修改,3个表达式之间“;”for语句的执行过程:循环语句for语句的执行过程如下:计算表达式1;计算表达式2,若其值为“真”,则执行语句组,然后执行。若值为“假”,则结束循环,转到;求解表达式3;转回继续执行;循环结束,执行for语句下面的语句。for语句后的3个表达式都是可省略项,但必须保留“;”for语句后面的语句组也可以是空语句,即只有一个分号“,”,此时循环体不做操作,只是占用一段CPU机时循环语句关于循环语句,有以下说明。与if、if-else和if-else-if语句中的嵌套结构相似,while、do-while和for的循环体中也可以进行自身嵌套或相互嵌套,形成多层循环嵌套。除了循环条件为“假”时可以结束for循环过程外,利用break语句和continue语句也能干预for循环的进行程度,这相当于使switch和for语句结构有了新的出口。但break语句和continue语句的差别很大:break语句可提前结束整个循环过程,完全跳出循环体后执行循环结构下面的语句。continue语句只是提前结束了本次循环,不是跳出整个循环体,而是继续进行循环变量增值后的下一次循环。循环语句注释语句4.4.注释语句注释语句 :C51程序有两种注释语句:1、以“/”开始的单行注释。这种注释可以单独占一行,也可以出现在一行中其它内容的右侧。这种注释的范围从“/”开始,以换行符结束,即注释不能跨行。如果注释内容一行写不下,可以用多个单行注释 2、以“/*”开始,以“*/”结束的块式注释。这种注释可以包含多行内容,它可以单独占据一行(在行开头以“/*”开始,行末以“*/”结束)也可以包含多行。编译系统在发现一个“/*”后,会开始找注释结束符“*/”,把两者间的内容作为注释。一般来讲,一般来讲,单行注释多用在程序行中单行注释多用在程序行中,对,对语句进行解释或说明,块式注释多用在程序或函数头部,对其功能进行整体说明。关于关于C51C51的基本执行语句就讲的基本执行语句就讲到到这里,这里,同学们同学们再见再见