您好,欢迎访问三七文档
第13章C51语句和流程句言中的操作命令使单片•C51语句,即C51语言中的操作命令,用于使单片机完成特定的功能。C51的源程序是由一系列的语句组成的这些语句可以完成变量声明赋值和句组成的,这些语句可以完成变量声明、赋值和控制输入输出等操作。一条完整的语句必须以“;”结束。由于单片机能识别的是机器指令,因此一结束由于单片机能识别的是机器指令,因此般一条语句经过编译后生成若干条机器指令来执行。C51语言中的语句包括说明、表达式语句、循环语句条件语句关语句复合语句空语环语句、条件语句、开关语句、复合语句、空语句和返回语句等,下面分别进行说明。•Main函数格式:voidmain()特点:无返回值,无参。任何个C程序有且仅有个i函数它是整个任何一个C程序有且仅有一个main函数,它是整个程序开始执行的入口。例:voidmain()例:voidmain(){总程序从这里开始执行;其他语句;}•若有返回值就用intmain;无返回值就用voidmain()实际上严格些应该为voidmain(void)返回值就是在一个函数运行完后是不(void)。返回值就是在一个函数运行完后是不是有东西返回。如果一个函数只是完成一系列的动作,没有return语句,就说这个函数没有返回动作,没有return语句,就说这个函数没有返回值。13.1说明语句说明语句般是用来定义声明变量可以说明其的类型和初始值•说明语句一般是用来定义声明变量,可以说明其的类型和初始值。一般形式为:•类型说明符变量名(=初始值);•其中,类型说明符指定变量的类型,变量名即变量的标示符,如其中,类型说明符指定变量的类型,变量名即变量的标示符,如果在声明变量的时候进行赋值,则需要使用“=”指定初始值。典型的说明语句示例如下,其中分别进行了变量声明以及初始化赋值。i1•inta=1;//声明并初始化整型变量•floatc;//声明浮点型变量//声明浮点型变量•charp[6]=first;//声明并初始化字符数组•sfrP1=0x80;//声明并初始化寄存器//声明并初始化寄存器•bitthird;//声明位变量13.2表达式语句表达式语句是用来描述算术运算逻辑运算或使单片机产•表达式语句是用来描述算术运算、逻辑运算或使单片机产生特定的操作。表达式语句是C51语言中最基本的一种语句。•示例如下:•b=b*20;•Count++;•X=’A’;Y=’B’;;;•P=(a+b)/a-1;•以上的都是合法的表达式语句。一般来说,任何表达式在末尾加上分号“;”便可以构成语句示例如下:末尾加上分号;,便可以构成语句。示例如下:•a=a+8//赋值表达式•=+8•a=a+8;//赋值语句13.3复合语句复合语句是用花括号“{}将组语句组合在起而构成•复合语句是用花括号“{}”将一组语句组合在一起而构成的语句。C51语言中由单个表达式和末尾的分号构成的语句是简单语句。在C51语言中,复合语句是允许嵌套的,即就是在花括号“{}”中的“{}”也是复合语句。复合语句在程序运行时,“{}”中的各行单语句是依次顺序执行的。在C51语言中使用复合语句需要注意如下几点:在C5语言中使用复合语句需要注意如下几点:•C51语言中,复合语句在语法上等同于一条单语句。•复合语句中不但可以由可执行语句组成,还可以用变量定义等语句组成要注意的是在复合语句中所定义的变量义等语句组成。要注意的是在复合语句中所定义的变量,称为“局部变量”,所谓局部变量就是指它的有效范围只在复合语句中。•对于一个函数而言函数体就是一个复合语句函数内定•对于一个函数而言,函数体就是一个复合语句,函数内定义的变量有效范围只在函数内部。13.4循环语句循句常需复多次执的操作•循环语句经常用于需要反复多次执行的操作。C51语言中有3种基本的循环语句:while语句、do-while语句和for语句这几个语句同样都是起到while语句和for语句。这几个语句同样都是起到循环作用,但具体的作用和用法又不大一样。下面分别介绍。面分别介绍13.4.1while语句循环语句的般使用形式为•While循环语句的一般使用形式为:•while(表达式)•语句;当其中的表达式值为真时便执行语句然后再次判断表达式的•当其中的表达式值为真时,便执行语句,然后再次判断表达式的值,直到表达式的值为假时,才结束循环,并继续执行循环外的后续语句。•while语句的特点是先判断条件后执行语句while语句的循环•while语句的特点是先判断条件,后执行语句。while语句的循环过程如图所示。•While(表达式)(表达式){语句(内部也可为空)}特点先判断表达式后执行语特点:先判断表达式,后执行语句。原则:若表达式不是0,即为真,那么执行语句否则跳出while那么执行语句。否则跳出while语句。13.4.2do-while语句句的般式为•do-while语句的一般形式为:•do•语句;•语句;•while(表达式);•do-while语句是先执行一次do后面的语句,然后语句是先执行次后面的语句,然后再判断表达式是否为真,如果表达式为真,返回再次执行do后面的语句,直到表达式为假时,才结束循环并继续执行循环外的后续语句结束循环,并继续执行循环外的后续语句。•do-while语句的特点是先执行语句,后判断条件。因此do-while语句至少执行一次do后面的语句因此,do-while语句至少执行次do后面的语句。同样,由多个语句构成语句体时,必须用“{}”括起来,表示成复合语句的形式。括起来表示成复合语句的形式13.4.3for语句句的般式为•for语句的一般形式为:•for(表达式1;表达式2;表达式3)•语句;•语句;•其中,表达式1为赋值语句,给循环变量进行初始化赋值;表达式2是一个关系逻辑表达式,作为判化赋值;表达式是个关系逻辑表达式,作为判断循环条件的真假;表达式3定义循环变量每次循环后按什么方式变化。当由表达式1初始化循环变量后则由表达式和表达式以确定循环次数量后,则由表达式2和表达式3可以确定循环次数。•求解完表达式1后,判断循环条件,即表达式2的真假若条件为真则执行下面的循环语句和表真假,若条件为真,则执行下面的循环语句和表达式3,直到循环条件为假时,才结束循环,然后继续执行循环外的后续语句。继续执行循环外的后续语句•For(表达式1;表达式2;表达式3){语句(内部可为空)}执行过程:1.求解一次表达式1.2.求解表达式2,若其值为真(非0即为真),则执行for中语句。然后执行第3步。否则结束for语句,直接跳出,不再执行第3步。3.求解表达式3.4.跳到第2步重复执行。13.5条件语句条件句常需根某些条件来决定执流•条件语句常用于需要根据某些条件来决定执行流向的程序中。其是由关键字if构成,即if条件语句条件语句又被称为“分支语句”C51语言提句。条件语句又被称为分支语句。C51语言提供了3种形式的条件语句,下面分别进行介绍。13.5.1单分支结构•单分支结构的条件语句只有一个语句分支或者语句块分支,其一般形式为:if(表达式)语句•if(表达式)语句;•其中,当if条件语句表达式的结果为真时,就执行分支语句,执行完后,继续执行后续程序;当表达式为假时,就跳过分支语句,执行后续程序。•使用if语句的单分支结构程序,示例如下:#ildtdih•#includestdio.h//头文件••voidmain()//主函数//主函数•{•inta,b;//变量声明•1•a=1;//初始化•b=1;//初始化•if(==b)++•if(a==b)a++;//if语句的单分支结构•printf(a=%d\n,a);//输出结果•}13.5.2双分支结构支结构的条件句包含个句支关•双分支结构的条件语句包含两个语句分支,由关键字if和else构成,其一般形式为:•if(表达式)•if(表达式)•语句1;•else•语句2;•当表达式为真时,就执行语句1,执行完后,继续执行语句后面的语句当表达式为假时就执执行if语句后面的语句;当表达式为假时,就执行语句2,执行完后,继续执行if语句后面的语句。13.5.3阶梯式if-else-if结构阶梯式结构种多支结构其•阶梯式if-else-if结构是一种多分支结构,其可以包含多个分支语句,其一般形式为:•if(表达式1)语句1;•if(表达式1)语句1;•elseif(表达式2)语句2;•elseif(表达式3)语句3;(表达式)语句;•elseif(表达式n)语句n;•else语句n+1;这是由语句组成的嵌套以实多方向•这是由if-else语句组成的嵌套,可以实现多方向条件分支。该语句从上到下逐个对条件进行判断,一旦条件为真就执行与其相关的分支语句并旦条件为真,就执行与其相关的分支语句,并跳过剩余的阶梯;如果没有一个条件为真,则执行最后一个else分支语句n+1。行最后个分支语句13.6开关语句开关语句主要用于在程序中实现多个语句分支处理在C51•开关语句主要用于在程序中实现多个语句分支处理。在C51程序中,开关语句以关键字switch和case来标识。开关语句的一般形式如下:•ith(表达式)•switch(表达式)•{•case常量表达式1:•语句1;break;•语句1;break;•case常量表达式2:•语句2;break;•case常量表达式3:case常量表达式3:•语句3;break;•case常量表达式n:•语句n;break;语句n;break;•default:•语句n+1;•}}13.7跳转语句跳转句主序执序的跳转转移•跳转语句主要用于程序执行顺序的跳转和转移。在C51语言中,跳转语句主要有三种:goto语句、break语句和continue语句下面分别进行介绍break语句和continue语句。下面分别进行介绍。13.7.1goto语句t语句是个无条件的转向语句在C51程序执行到这个语句时程序指针就会无•goto语句是一个无条件的转向语句,在C51程序执行到这个语句时,程序指针就会无条件地跳转到goto后的标号所在的程序段。goto语句在很多高级语言中都会有,其一般形式如下:•goto语句标号;•其中的语句标号为一个带冒号的标识符。使用goto语句的程序示例如下:其中的语句标号为个带冒号的标识符。使用goto语句的程序示例如下:•#includestdio.h//头文件••voidmain()//主函数//主函数•{•inti=0,total=0;•loop://语句标号//语句标号•total=total+i;//执行运算•i++;•if(i=100)//如果满足条件则转向l处//如果满足条件则转向loop处•gotoloop;•printf(1+2+……+100=%d\n,total);//输出结果•}}13.7.2break语句句常在循句关句中来•break语句通常用在循环语句和开关语句中,用来跳出循环程序块。其使用的一般形式如下:•break;•break;•在C51程序设计中,break语句主要用于如下两种情况。情况•当break用于开关语句switch中时,可使程序跳出switch,而执行switch以后的语句。如果没有语句则语句将成为个死循环无break语句,则switch语句将成为一个死循环而无法退出。•在do-whileforwhile循环语句中时break语•在do-while、for、while循环语句中时,break语句和if语句联在一起使用,可以实现满足条件时便跳出循环的操作。便跳出循环的操作13.7.3continue语句i语句的是用来跳过循环体中剩余的语句而强行执行下次循环•continue语句的是用来跳过循环体中剩余的语句而强行执行下一次循环。其使用的一般形式如下:•continue;•在C51语言中,continue语句只用在for、while、do-while等循环体中,常与条件句起使用以提前结束本次循使用句的常与if条件语句一起使用,可以提前结束本次循
本文标题:C51常用语句
链接地址:https://www.777doc.com/doc-3074123 .html