第13章 C51语句和流程.ppt_第1页
第13章 C51语句和流程.ppt_第2页
第13章 C51语句和流程.ppt_第3页
第13章 C51语句和流程.ppt_第4页
第13章 C51语句和流程.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十三章C51语句及流程,C51语句,即C51语言中的操作命令,用来使单片机完成特定的功能。C51的源程序由一系列语句组成,这些语句可以声明变量、赋值和控制输入输出。完整的语句必须以“;”开头结束。由于单片机能识别机器指令,一条语句通常被编译成几条机器指令来执行。C51语言中的语句包括描述语句、表达式语句、循环语句、条件语句、开关语句、复合语句、空语句和返回语句,下面分别进行描述。13.1语句,语句一般用于定义声明的变量,可以解释其类型和初始值。一般形式是:类型描述符变量名(=初始值);其中,类型描述符指定变量的类型,变量名是变量的标识符。如果在声明变量时赋值,应该使用“=”来指定初始值。典型

2、的语句示例如下,其中分别执行变量声明和初始化赋值。int a=1;/声明并初始化整型变量float c;/首先声明浮点变量char p6=/声明并初始化字符数组sfr P1=0 X80;/声明并初始化寄存器第三位;/声明位变量,13.2表达式语句,用于描述算术运算、逻辑运算或使单片机产生特定运算。表达式语句是C51语言中最基本的语句。例子如下:b=b * 20数数。x=A;y=B;p=(a b)/a-1;以上都是法律表述。一般来说,任何表达式的末尾都有一个分号。你可以形成一个声明。示例如下:a=a 8/赋值表达式a=a 8;/赋值语句,13.3复合语句,复合语句是由一组带花括号的语句组合而成的

3、语句。在C51语言中,由单个表达式和末尾的分号组成的语句是一个简单的语句。在C51语言中,复合语句是允许嵌套的,也就是说,“在花括号中”也是复合语句。复合语句当程序运行时,“”中的每一条语句都依次执行。在C51语言中使用复合语句时应注意以下几点:在C51语言中,复合语句在语法上等同于单个语句。复合语句不仅可以由可执行语句组成,还可以由变量定义等语句组成。应该注意的是,复合语句中定义的变量称为“局部变量”,这意味着它的有效范围只在复合语句中。对于函数,函数体是一个复合语句,函数中定义的变量的有效范围只在函数内部。13.4循环语句,通常用于需要重复执行的操作。C51语言中有三种基本的循环语句:wh

4、ile语句、do-while语句和for语句。这些语句也起到循环作用,但它们的具体功能和用法却大不相同。下面分别介绍。13.4.1 While语句,While循环语句的一般使用形式是:while(表达式)语句;当表达式的值为真时,执行语句,然后再次判断表达式的值,直到表达式的值为假,循环结束,循环外的后续语句继续执行。while语句的特点是先判断条件,然后执行语句。while语句的循环过程如图所示。13.4.2边做边声明,边做边声明的一般形式是:边做边声明;而(表达式);do-while语句是在do之后执行一次语句,然后判断表达式是否为真。如果表达式为真,则在再次执行后返回执行语句,直到表达式

5、为假,结束循环并继续执行循环外的后续语句。do-while语句的特点是先执行语句,然后判断条件。因此,do-while语句在do之后至少执行一次该语句。同样,当一个语句体由多个语句组成时,它必须用 括起来,并表示为复合语句。,13.4.3对于语句,for语句的一般形式是:for(表达式1;表达式2;表达式3)语句;其中,表达式1是一个赋值语句,它初始化并赋值一个循环变量;表达式2是一个关系逻辑表达式,用于判断循环条件是真还是假。表达式3定义了循环变量在每次循环后是如何变化的。当循环变量由表达式1初始化时,循环的数量可以由表达式2和表达式3确定。求解表达式1后,判断循环条件,即表达式2,是真还是

6、假。如果条件为真,执行以下循环语句和表达式3。直到循环条件为假,循环将结束,然后继续执行循环外的后续语句。13.5条件语句,条件语句常用于需要根据某些条件确定执行流程方向的程序中。它由if关键字组成,即if条件语句。条件语句也称为“分支语句”。C51语言提供了三种形式的条件语句,下面将分别介绍。13.5.1单分支结构,单分支结构的条件语句只有一个语句分支或语句块分支,其一般形式为:if(表达式)语句;其中,当if条件语句表达式的结果为真时,执行分支语句,执行后继续后续程序;当表达式为false时,将跳过分支语句并执行后续程序。使用if语句的单分支结构程序的例子如下:#include /头文件v

7、oid main()/main函数int a,b。/变量声明a=1;/初始化b=1;/初始化if(a=b)a;/if语句的单分支结构printf(a=% dn,a);/输出结果,13.5.2双分支结构,双分支结构的条件语句包含两个语句分支,由关键字if和else组成,其一般形式为:if(表达式)语句1;Else语句2。当表达式为真时,执行语句1,并在执行后继续执行if语句之后的语句;当表达式为false时,执行语句2,然后继续执行if语句之后的语句。13.5.3阶梯式if-else-if结构是一种多分支结构,可以包含多个分支语句,其一般形式是:if(表达式1)语句1;否则,如果(表达式2)语句

8、2;否则,如果(表达式3)语句3;否则if(表达式n)语句n;Else语句n 1。这是一个由if-else语句组成的嵌套,可以实现多向条件分支。这个陈述从上到下逐一判断条件。一旦条件成立,它就执行相关的分支语句并跳过剩余的步骤。如果这些条件都不成立,执行最后一个else分支语句n 1。13.6 switch语句,主要用于实现程序中的多语句分支处理。在C51程序中,开关语句由开关关键字和大小写来标识。switch语句的一般形式如下:switch(表达式)case常量表达式1:语句1;打破;Case常量表达式2:语句2;打破;Case常量表达式3:语句3;打破;Case常量表达式n:语句n。打破;

9、Default:语句n 1;13.7跳转语句,跳转语句主要用于程序执行顺序的跳转和转移。在C51语言中,有三种跳转语句:goto语句、break语句和continue语句。下面分别介绍。13.7.1 goto语句,goto语句是一个无条件的转折语句。当C51程序执行该语句时,程序指针将无条件地跳转到goto之后的标签所在的程序段。Goto语句存在于许多高级语言中,其一般形式如下:goto语句标签;其中语句标签是带有冒号的标识符。使用goto语句的程序示例如下:#include /头文件void main()/main函数int i=0,total=0;Loop:/语句标签总计=总计I;/执行操

10、作一;如果(i=100)/如果条件满足,转到循环处的循环;printf(1 2 100=%dn,总计);/输出结果:13.7.2 break语句,常用于循环语句和切换语句中跳出循环块。其使用的一般形式如下:中断;在C51编程中,break语句主要用于以下两种情况。当开关语句开关中使用break时,可以使程序跳出开关,执行开关后的语句。如果没有break语句,switch语句将变成一个无限循环,无法退出。在do-while、for、while循环语句中,break语句和if语句一起使用,可以实现条件满足时跳出循环的操作。13.7.3 continue语句,用于跳过循环体中的剩余语句并强制执行下一

11、个循环。其使用的一般形式如下:继续;在C51语言中,continue语句仅用于循环体,如for、while和do-while,并且通常与if条件语句一起使用,这样可以提前结束循环。使用continue语句的程序示例如下:#include /头文件void main()/主函数char ch=s,S,R,R,t;/初始化字符数组整数=-1;而(i=A /输出小写字符,13.8函数调用语句,用于调用系统函数或用户定义函数。在C51语言中,函数调用语句相对简单,可以通过在函数名后添加分号来形成。这里应该注意的是函数调用格式的问题,这将在后面的章节中详细介绍。下面只是一个例子来说明:#include

12、/头文件void myprint()/定义函数printf(hello world . n);/输出字符串int Add(int a)/定义函数返回1;/返回值void main()/main函数int i=2,j;/初始化my print();/调用函数语句j=Add(I);/用返回值调用函数语句printf(%d 1=%dn,I,j);/输出结果,13.9空语句,空语句是C51语言中的一种特殊表达式语句,它只由分号“;”组成构图。在实际的程序设计中,有时正确的语法需要一条语句,但是这条语句没有实际的运行效果,所以此时肯定有一条空语句。使用空语句最典型的例子是程序延迟。在C51程序中,在wh

13、ile和for组成的循环语句后添加分号可以形成一个不执行其他操作的空循环体。它通常用于编写等待事件发生并延迟时间的程序。示例如下:#include /头文件void main()/主函数printf(第一个输出);/的输出字符串(;a50000a);延迟一些时间并输出;/输出字符串,13.10返回语句,用于终止当前函数的执行,并强制返回到程序调用函数的位置。在C51语言中,返回语句主要有以下两种形式:返回表达式;或者返回;对于具有返回值的函数,使用第一个return语句,表达式的值是函数的返回值。如果函数没有返回值,可以使用默认表达式来代替第二个return语句。13.11 C51过程控制结构,在C51语言编程中,为了控制模块之间的顺序关系,一般采用模块化程序结构,此时需要采用一定的过程控制结构。C51程序支持多种过程控制结构,其中最常见的是顺序结构、分支结构和循环结构。序列结构的程序按照代码的顺序从上到下执行,没有代码跳转。这种结构相对简单,通常用于实现不太复杂的任务。通过判断表达式的值来选择程序的结构,以决定执行哪个程序,通常使用条件if语句、switch语句等。这种结构经常用于判断、决策和其他代码中。具有循环结构的程序重复执行相同的代码,通常由whi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论