




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第13章C51语句和流程,C51语句,即C51语言中的操作命令,用于使单片机完成特定的功能。C51的源程序是由一系列的语句组成的,这些语句可以完成变量声明、赋值和控制输入输出等操作。一条完整的语句必须以“;”结束。由于单片机能识别的是机器指令,因此一般一条语句经过编译后生成若干条机器指令来执行。C51语言中的语句包括说明、表达式语句、循环语句、条件语句、开关语句、复合语句、空语句和返回语句等,下面分别进行说明。,1,Main函数格式:voidmain()特点:无返回值,无参。任何一个C程序有且仅有一个main函数,它是整个程序开始执行的入口。例:voidmain()总程序从这里开始执行;其他语句;若有返回值就用intmain;无返回值就用voidmain()实际上严格些应该为voidmain(void)。返回值就是在一个函数运行完后是不是有东西返回。如果一个函数只是完成一系列的动作,没有return语句,就说这个函数没有返回值。,2,13.1说明语句,说明语句一般是用来定义声明变量,可以说明其的类型和初始值。一般形式为:类型说明符变量名(=初始值);其中,类型说明符指定变量的类型,变量名即变量的标示符,如果在声明变量的时候进行赋值,则需要使用“=”指定初始值。典型的说明语句示例如下,其中分别进行了变量声明以及初始化赋值。inta=1;/声明并初始化整型变量floatc;/声明浮点型变量charp6=first;/声明并初始化字符数组sfrP1=0 x80;/声明并初始化寄存器bitthird;/声明位变量,3,13.2表达式语句,表达式语句是用来描述算术运算、逻辑运算或使单片机产生特定的操作。表达式语句是C51语言中最基本的一种语句。示例如下:b=b*20;Count+;X=A;Y=B;P=(a+b)/a-1;以上的都是合法的表达式语句。一般来说,任何表达式在末尾加上分号“;”,便可以构成语句。示例如下:a=a+8/赋值表达式a=a+8;/赋值语句,4,13.3复合语句,复合语句是用花括号“”将一组语句组合在一起而构成的语句。C51语言中由单个表达式和末尾的分号构成的语句是简单语句。在C51语言中,复合语句是允许嵌套的,即就是在花括号“”中的“”也是复合语句。复合语句在程序运行时,“”中的各行单语句是依次顺序执行的。在C51语言中使用复合语句需要注意如下几点:C51语言中,复合语句在语法上等同于一条单语句。复合语句中不但可以由可执行语句组成,还可以用变量定义等语句组成。要注意的是在复合语句中所定义的变量,称为“局部变量”,所谓局部变量就是指它的有效范围只在复合语句中。对于一个函数而言,函数体就是一个复合语句,函数内定义的变量有效范围只在函数内部。,5,13.4循环语句,循环语句经常用于需要反复多次执行的操作。C51语言中有3种基本的循环语句:while语句、do-while语句和for语句。这几个语句同样都是起到循环作用,但具体的作用和用法又不大一样。下面分别介绍。,6,13.4.1while语句,While循环语句的一般使用形式为:while(表达式)语句;当其中的表达式值为真时,便执行语句,然后再次判断表达式的值,直到表达式的值为假时,才结束循环,并继续执行循环外的后续语句。while语句的特点是先判断条件,后执行语句。while语句的循环过程如图所示。,7,While(表达式)语句(内部也可为空)特点:先判断表达式,后执行语句。原则:若表达式不是0,即为真,那么执行语句。否则跳出while语句。,8,13.4.2do-while语句,do-while语句的一般形式为:do语句;while(表达式);do-while语句是先执行一次do后面的语句,然后再判断表达式是否为真,如果表达式为真,返回再次执行do后面的语句,直到表达式为假时,才结束循环,并继续执行循环外的后续语句。do-while语句的特点是先执行语句,后判断条件。因此,do-while语句至少执行一次do后面的语句。同样,由多个语句构成语句体时,必须用“”括起来,表示成复合语句的形式。,9,13.4.3for语句,for语句的一般形式为:for(表达式1;表达式2;表达式3)语句;其中,表达式1为赋值语句,给循环变量进行初始化赋值;表达式2是一个关系逻辑表达式,作为判断循环条件的真假;表达式3定义循环变量每次循环后按什么方式变化。当由表达式1初始化循环变量后,则由表达式2和表达式3可以确定循环次数。求解完表达式1后,判断循环条件,即表达式2的真假,若条件为真,则执行下面的循环语句和表达式3,直到循环条件为假时,才结束循环,然后继续执行循环外的后续语句。,10,For(表达式1;表达式2;表达式3)语句(内部可为空)执行过程:1.求解一次表达式1.2.求解表达式2,若其值为真(非0即为真),则执行for中语句。然后执行第3步。否则结束for语句,直接跳出,不再执行第3步。3.求解表达式3.4.跳到第2步重复执行。,11,13.5条件语句,条件语句常用于需要根据某些条件来决定执行流向的程序中。其是由关键字if构成,即if条件语句。条件语句又被称为“分支语句”。C51语言提供了3种形式的条件语句,下面分别进行介绍。,12,13.5.1单分支结构,单分支结构的条件语句只有一个语句分支或者语句块分支,其一般形式为:if(表达式)语句;其中,当if条件语句表达式的结果为真时,就执行分支语句,执行完后,继续执行后续程序;当表达式为假时,就跳过分支语句,执行后续程序。使用if语句的单分支结构程序,示例如下:#include/头文件voidmain()/主函数inta,b;/变量声明a=1;/初始化b=1;/初始化if(a=b)a+;/if语句的单分支结构printf(a=%dn,a);/输出结果,13,13.5.2双分支结构,双分支结构的条件语句包含两个语句分支,由关键字if和else构成,其一般形式为:if(表达式)语句1;else语句2;当表达式为真时,就执行语句1,执行完后,继续执行if语句后面的语句;当表达式为假时,就执行语句2,执行完后,继续执行if语句后面的语句。,14,13.5.3阶梯式if-else-if结构,阶梯式if-else-if结构是一种多分支结构,其可以包含多个分支语句,其一般形式为:if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;elseif(表达式n)语句n;else语句n+1;这是由if-else语句组成的嵌套,可以实现多方向条件分支。该语句从上到下逐个对条件进行判断,一旦条件为真,就执行与其相关的分支语句,并跳过剩余的阶梯;如果没有一个条件为真,则执行最后一个else分支语句n+1。,15,13.6开关语句,开关语句主要用于在程序中实现多个语句分支处理。在C51程序中,开关语句以关键字switch和case来标识。开关语句的一般形式如下:switch(表达式)case常量表达式1:语句1;break;case常量表达式2:语句2;break;case常量表达式3:语句3;break;case常量表达式n:语句n;break;default:语句n+1;,16,13.7跳转语句,跳转语句主要用于程序执行顺序的跳转和转移。在C51语言中,跳转语句主要有三种:goto语句、break语句和continue语句。下面分别进行介绍。,17,13.7.1goto语句,goto语句是一个无条件的转向语句,在C51程序执行到这个语句时,程序指针就会无条件地跳转到goto后的标号所在的程序段。goto语句在很多高级语言中都会有,其一般形式如下:goto语句标号;其中的语句标号为一个带冒号的标识符。使用goto语句的程序示例如下:#include/头文件voidmain()/主函数inti=0,total=0;loop:/语句标号total=total+i;/执行运算i+;if(i=100)/如果满足条件则转向loop处gotoloop;printf(1+2+100=%dn,total);/输出结果,18,13.7.2break语句,break语句通常用在循环语句和开关语句中,用来跳出循环程序块。其使用的一般形式如下:break;在C51程序设计中,break语句主要用于如下两种情况。当break用于开关语句switch中时,可使程序跳出switch,而执行switch以后的语句。如果没有break语句,则switch语句将成为一个死循环而无法退出。在do-while、for、while循环语句中时,break语句和if语句联在一起使用,可以实现满足条件时便跳出循环的操作。,19,13.7.3continue语句,continue语句的是用来跳过循环体中剩余的语句而强行执行下一次循环。其使用的一般形式如下:continue;在C51语言中,continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,可以提前结束本次循环。使用continue语句的程序示例如下:#include/头文件voidmain()/主函数charch=s,S,r,R,t;/初始化字符数组inti=-1;while(i=A/输出小写字符,20,13.8函数调用语句,函数调用语句用于调用系统函数或者用户自定义函数。在C51语言中,函数调用语句比较简单,在函数名后面加上分号便可构成函数调用语句。这里需要注意的是函数调用格式的问题,这将在后面的章节详细介绍。下面仅举一个例子加以说明:#include/头文件voidmyprint()/定义函数printf(helloworld.n);/输出字符串intAdd(inta)/定义函数returna+1;/返回值voidmain()/主函数inti=2,j;/初始化myprint();/调用函数语句j=Add(i);/调用带有返回值的函数语句printf(%d+1=%dn,i,j);/输出结果,21,13.9空语句,空语句是C51语言中有一个特殊的表达式语句,其仅由一个分号“;”组成。在实际程序设计时,有时为了语法的正确,要求有一个语句,但这个语句又没有实际的运行效果,那么这时就要有一个空语句。最典型的使用空语句的例子便是程序延时。在C51程序中,while、for构成的循环语句后面加一个分号,可以形成一个不执行其他操作的空循环体。常用来编写等待事件发生以及延时的程序。示例如下:#include/头文件voidmain()/主函数printf(Firstoutput);/输出字符串for(;a50000;a+);printf(Delaysometimesandoutput);/输出字符串,22,13.10返回语句,返回语句用于终止当前函数的执行,并强制返回到程序调用该函数的位置。在C51语言中,返回语句主要有以下两种形式:return表达式;或者return;其中,对于带有返回值的函数,则使用第一种返回语句,表达式的值便是函数的返回值。如果函数没有返回值,则可以缺省表达式,而采用第二种返回语句。,23,13.11C51的流程控制结构,在C51语言的程序设计中,为了控制好模块间的顺序关系,一般采用的是模块化程序结构,这时需要采用一定的流程控制结构。C51程序支持多种流程控制结构,比较常见的是顺序结构、分支结构和循环结构等三种。顺序结构的程序按代码的顺序自上而下执行,没有代码的跳跃。这种结构比较简单,常用于实现不是很复杂的任务。选择结构的程序通过判断表达式的值来决定执行哪一段程序,一般采用条件语句if、开关语句switch等来构成。这种结构常用于判断、决策等代码中。循环结构的程序循环重复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 班会春节文化课件
- 广东省建筑施工企业安全生产管理人员安全生产(安全管理)测试题及答案(附解析)
- 2025年2月新能源汽车习题库及参考答案解析
- 玩具行业人才激励计划考核试卷
- 初中语文教学设计与指导
- 稀土金属矿选矿厂生产自动化与信息集成考核试卷
- 眼科疾病诊疗与视力保护考核试卷
- 曼汉教育费用分析
- 发动机结构与维修技术考核试卷
- 肉类产品陈列与货架管理技巧考核试卷
- 糖尿病合并痛风
- 建筑项目招投标外文翻译外文文献英文文献
- 中西文化鉴赏知到智慧树章节测试课后答案2024年秋郑州大学
- 《天津市新型职业农民培育问题研究》
- 车险理赔重大案管理办法
- 牙科市场细分领域分析-洞察分析
- 第16课《经济危机与资本主义国家的应对》中职高一下学期高教版(2023)世界历史全一册
- 货运车队的管理制度模版(2篇)
- 2024年贵州省贵阳市中考生物试卷(附答案)
- 《威尼斯商人》课本剧剧本:一场人性与金钱的较量(6篇)
- 管道、阀门安装方案
评论
0/150
提交评论