51单片机资料-C51常用语句讲解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

详细介绍。下面仅举一个例子加以说明:
• #include <stdio.h>
//头文件
• void myprint()
//定义函数
•{

printf("hello world.\n");
//输出字符串
•}
• int Add(int a)
//定义函数
•{

return a+1;
//返回值
•}

• void main()
行if语句后面的语句;当表达式为假时,就执行语 句2,执行完后,继续执行if语句后面的语句。
14
13.5.3 阶梯式if-else-if结构
• 阶梯式if-else-if结构是一种多分支结构,其可以 包含多个分支语句,其一般形式为:
• if (表达式1) 语句1; • else if (表达式2) 语句2; • else if (表达式3) 语句3; • else if (表达式n) 语句n; • else 语句n+1; • 这是由if-else语句组成的嵌套,可以实现多方向
条件分支。该语句从上到下逐个对条件进行判断, 一旦条件为真,就执行与其相关的分支语句,并跳 过剩余的阶梯;如果没有一个条件为真,则执行最 后一个else分支语句n+1。
1实现多个语句分支处理。在C51
程序中,开关语句以关键字switch和case来标识。开关语句
序示例如下:
• #include <stdio.h>
//头文件

• void main()
//主函数
•{
• char ch[]={'s','S','r','R','t'};
//初始化字符数组
• int i=-1;
• while(i<4)
//进入循环
•{

i++;

if(ch[i]>='A' && ch[i]<='Z')
8
13.4.2 do-while语句
• do-while语句的一般形式为: • do • 语句; • while(表达式); • do-while语句是先执行一次do后面的语句,然后再
判断表达式是否为真,如果表达式为真,返回再次 执行do后面的语句,直到表达式为假时,才结束循 环,并继续执行循环外的后续语句。 • do-while语句的特点是先执行语句,后判断条件。 因此,do-while语句至少执行一次do后面的语句。 同样,由多个语句构成语句体时,必须用“{}”括 起来,表示成复合语句的形式。
• 复合语句是用花括号“{}”将一组语句组合在一起而构成 的语句。C51语言中由单个表达式和末尾的分号构成的语句 是简单语句。在C51语言中,复合语句是允许嵌套的,即就是 在花括号“{}”中的“{}”也是复合语句。复合语句在程 序运行时,“{}”中的各行单语句是依次顺序执行的。在 C51语言中使用复合语句需要注意如下几点:
//声明并初始化整型变量 • float c;
//声明浮点型变量 • char p[6]="first";
//声明并初始化字符数组 • sfr P1=0x80;
//声明并初始化寄存器 • bit third;
//声明位变量
3
13.2 表达式语句
• 表达式语句是用来描述算术运算、逻辑运算或使单片机产 生特定的操作。表达式语句是C51语言中最基本的一种语句。
• break; • 在C51程序设计中,break语句主要用于如下两种情
况。 • 当break用于开关语句switch中时,可使程序跳出
switch,而执行switch以后的语句。如果没有 break语句,则switch语句将成为一个死循环而无 法退出。 • 在do-while、for、while循环语句中时,break语 句和if语句联在一起使用,可以实现满足条件时便 跳出循环的操作。
//if语句的单分支结构 • printf("a=%d\n",a);
//输出结果
•}
13
13.5.2 双分支结构
• 双分支结构的条件语句包含两个语句分支,由关键 字if和else构成,其一般形式为:
• if (表达式) • 语句1; • else • 语句2; • 当表达式为真时,就执行语句1,执行完后,继续执
的一般形式如下:
• switch(表达式)
•{
• case 常量表达式1:

语句1; break;
• case 常量表达式2:

语句2; break;
• case 常量表达式3:

语句3; break;
• case 常量表达式n:

语句n; break;
• default:

语句n+1;
•}
16
13.7 跳转语句
9
13.4.3 for语句
• for语句的一般形式为: • for(表达式1;表达式2;表达式3) • 语句; • 其中,表达式1为赋值语句,给循环变量进行初始化
赋值;表达式2是一个关系逻辑表达式,作为判断 循环条件的真假;表达式3定义循环变量每次循环 后按什么方式变化。当由表达式1初始化循环变量 后,则由表达式2和表达式3可以确定循环次数。 • 求解完表达式1后,判断循环条件,即表达式2的真 假,若条件为真,则执行下面的循环语句和表达式3, 直到循环条件为假时,才结束循环,然后继续执行 循环外的后续语句。
在实际程序设计时,有时为了语法的正确,要求有一个语句,但这个语句又
没有实际的运行效果,那么这时就要有一个空语句。最典型的使用空语句
的例子便是程序延时。
• 在C51程序中,while、for构成的循环语句后面加一个分号,可以形成一个
不执行其他操作的空循环体。常用来编写等待事件发生以及延时的程序。
10
• For (表达式1;表达式2;表达式3) { 语句(内部可为空)} 执行过程: 1.求解一次表达式1. 2.求解表达式2,若其值为真(非0 即为 真),则执行for中语句。然后执行第3步。 否则结束for 语句,直接跳出,不再执行第3 步。 3.求解表达式3. 4.跳到第2步重复执行。
11
直到表达式的值为假时,才结束循环,并继续执行循环外的后续语 句。 • while语句的特点是先判断条件,后执行语句。while语句的循环过 程如图所示。
7
• While (表达式) {语句(内部也可为空)} 特点:先判断表达式,后执行语 句。 原则:若表达式不是0,即为真, 那么执行语句。否则跳出while 语句。
2
13.1 说明语句
• 说明语句一般是用来定义声明变量,可以说明其的类型和初始值。 一般形式为:
• 类型说明符 变量名(=初始值); • 其中,类型说明符指定变量的类型,变量名即变量的标示符,如果在
声明变量的时候进行赋值,则需要使用“=”指定初始值。典型的 说明语句示例如下,其中分别进行了变量声明以及初始化赋值。 • int a=1;

i++;

if(i<=100)
//如果满足条件则转向loop处

goto loop;
• printf("1+2+……+100=%d\n", total);
// 输
出结果
•}
18
13.7.2 break语句
• break语句通常用在循环语句和开关语句中,用来 跳出循环程序块。其使用的一般形式如下:
• 跳转语句主要用于程序执行顺序的跳转和转移。 在C51语言中,跳转语句主要有三种:goto语句、 break语句和continue语句。下面分别进行介绍。
17
13.7.1 goto语句
• goto语句是一个无条件的转向语句,在C51程序执行到这个语句时,程序指针就会无条
件地跳转到goto后的标号所在的程序段。goto语句在很多高级语言中都会有,其一般
//主函数
•{
• int i=2,j;
//初始化
• myprint ();
//调用函数语句
• j=Add(i);
//调用带有返回值的函数语句
• printf("%d+1=%d\n",i,j);
// 输 出 结

•}
21
13.9 空语句
• 空语句是C51语言中有一个特殊的表达式语句,其仅由一个分号“;”组成。
1
• Main 函数
格式:void main() 特点:无返回值,无参。 任何一个C程序有且仅有一个main函数,它是整个 程序开始执行的入口。 例:void main()
{ 总程序从这里开始执行; 其他语句; }
• 若有返回值就用 int main ;无返回值 就用 void main()实际上严格些应该为void main (void)。返回值就是在一个函数运行完后是不 是有东西返回。如果一个函数只是完成一系列的 动作,没有return 语句,就说这个函数没有返回值。
• 示例如下: • b=b*20; • Count++; • X=’A’;Y=’B’; • P=(a+b)/a-1; • 以上的都是合法的表达式语句。一般来说,任何表达式在末
尾加上分号“;”,便可以构成语句。示例如下: • a=a+8
//赋值表达式 • a=a+8;
//赋值语句
4
13.3 复合语句
形式如下:
• goto 语句标号;
• 其中的语句标号为一个带冒号的标识符。使用goto语句的程序示例如下:
• #include <stdio.h>
//头文件

• void main()
//主函数
•{
• int i=0,total=0;
• loop:
//语句标号
• total = total +i;
//执行运算
//如果是大写字符则退出本次循环,进入下次循环

continue;

printf("ch[%d]=%c\n",i,ch[i]);
//输出小写字符
•}
•}
20
13.8 函数调用语句
• 函数调用语句用于调用系统函数或者用户自定义函数。在C51语言中,函数调用语句比较简单,在函数
名后面加上分号便可构成函数调用语句。这里需要注意的是函数调用格式的问题,这将在后面的章节
• C51语言中,复合语句在语法上等同于一条单语句。 • 复合语句中不但可以由可执行语句组成,还可以用变量定义
等语句组成。要注意的是在复合语句中所定义的变量,称为 “局部变量”,所谓局部变量就是指它的有效范围只在复合 语句中。 • 对于一个函数而言,函数体就是一个复合语句,函数内定义 的变量有效范围只在函数内部。
C51语句和流程
• C51语句,即C51语言中的操作命令,用于使单片机 完成特定的功能。C51的源程序是由一系列的语句 组成的,这些语句可以完成变量声明、赋值和控制 输入输出等操作。一条完整的语句必须以“;”结 束。由于单片机能识别的是机器指令,因此一般一 条语句经过编译后生成若干条机器指令来执行。 C51语言中的语句包括说明、表达式语句、循环语 句、条件语句、开关语句、复合语句、空语句和 返回语句等,下面分别进行说明。
5
13.4 循环语句
• 循环语句经常用于需要反复多次执行的操作。C51 语言中有3种基本的循环语句:while语句、dowhile语句和for语句。这几个语句同样都是起到 循环作用,但具体的作用和用法又不大一样。下面 分别介绍。
6
13.4.1 while语句
• While循环语句的一般使用形式为: • while(表达式) • 语句; • 当其中的表达式值为真时,便执行语句,然后再次判断表达式的值,
13.5 条件语句
• 条件语句常用于需要根据某些条件来决定执行流 向的程序中。其是由关键字if构成,即if条件语句。 条件语句又被称为“分支语句”。C51语言提供了 3种形式的条件语句,下面分别进行介绍。
12
13.5.1 单分支结构
• 单分支结构的条件语句只有一个语句分支或者语句块分支,其一般形式为: • if (表达式) 语句; • 其中,当if条件语句表达式的结果为真时,就执行分支语句,执行完后,继续执行后续程
19
13.7.3 continue 语句
• continue语句的是用来跳过循环体中剩余的语句而强行执行下一次循环。
其使用的一般形式如下:
• continue;
• 在C51语言中,continue语句只用在for、while、do-while等循环体中,常
与if条件语句一起使用,可以提前结束本次循环。使用continue语句的程
序;当表达式为假时,就跳过分支语句,执行后续程序。 • 使用if语句的单分支结构程序,示例如下: • #include <stdio.h>
//头文件 • • void main()
//主函数 •{ • int a,b;
//变量声明 • a=1;
//初始化 • b=1;
//初始化 • if (a==b) a++;
相关文档
最新文档