单片机应用技术C51程序控制语句C51程序控制语句.pptVIP

  • 47
  • 0
  • 约4.01千字
  • 约 30页
  • 2021-03-31 发布于北京
  • 举报

单片机应用技术C51程序控制语句C51程序控制语句.ppt

模块二 C51语言与 Keil C集成开发系统 2.2 C51程序结构控制语句 2.2.1 C51语句概述 一个完整的C51程序包括数据描述和数据操作。 数据描述定义数据结构和数据初值,由数据定义部分来实现; 数据操作是对己提供的数据进行加工,这部分的功能就是由语句来实现的。 2.2.1 C51语句概述 分号是语句的终结符,一个语句必须在最后出现分号,分号是语句中不可缺少的一部分,在后面介绍空语句时会看到,甚至一个单独的分号也可以构成一个语句。 C51的语句按其复杂度可以分为简单语句和复杂语句。 可以用花括号“{”和“}”把一些语句组合在一起,使其在语法上等价于一个简单语句,这样的语句就称之为复合语句。 复合语句中最后一个语句中最后的分号不能忽略不写;结束一个复合语句的右花括号之后不能带分号。 2.2.2 分支控制语句 1.if…else…语句 if(表达式) { 分支一 } else { 分支二 } 2.2.2 分支控制语句 2.if…语句 if(表达式) {语句} 实例2-3 P0口接8只发光二极管,P1.0接一个按钮,要求将按钮按下时,左边四个发光二极管亮,当按钮放开时,右边四个发光二极管亮。 实例2-3 #includereg51.h sbit p10=P1^0; main() { while(1) { if(p10==1) P0=0x0f; else P0=0xf0; } } 3.多级if…else…语句 if(表达式1) { 分支一 } else if(表达式2) { 分支二 } 多级if语句流程图 实例2-4 P0口接8只发光二极管,P1.0、P1.1分别接一个按键S1、S2,要求当没有键按下时,8全灭,当S1按键按下时,左边四个亮,当S2按键按下时,右边四个亮,当两个按键按下时,全亮。 流程图 源程序 #includereg51.h sbit p10=P1^0; sbit p11=P1^1; void main() { while(1) { if(p10==0p11==0) P0=0; else if(p11==0) P0=0x0f; else if(p10==0) P0=0xf0; else P0=0xff; } } 4.switch语句 switch(整形或字符型变量) { case 变量可能值1:分支一;break; case 变量可能值2:分支二;break; …… case 变量可能值n:分支n;break; default:分支n+1或空语句; } switch语句流程图 【例2-5】 P1.0~P1.3接4个按键,P1.4~P1.7接4个发光二极管,现要求一般情况下,4个发光二极管全亮,如果只按S1时D1灭,只按S2时D2灭,依此类推。 源程序清单: #includereg51.h void main() { unsigned char ctl; P1=0X0F; while(1) { ctl=P1; } } 2.2.3 循环语句 1.while语句 while(表达式) { 循环体 } 【例2-6】 使用while语句实现从1到100的累加。 2.for语句 for(表达式1;表达式2;表达式3) { 循环体 } 表达式1为循环控制变量初始化表达式,表达式2为循环条件表达式,表达式3为循环控制变量增值表达式。 “增值”仅仅是指循环控制变量发生了变化,不要按其字面意思去理解。 for语句的几点说明 ①for语句中的控制变量初始化表达式可以省略,但分号(;)不可省略。 ②for语句中的循环条件表达式可以省略。此时一般要在循环体中对循环条件进行判断并提供退出循环的措施,否则会导致“死循环”。 ③for语句中的循环控制变量增值表达式也可以省略。 ④可以同时省略for语句中的循环控制变量初始化表达式和增量表达式,这样的for语句完全等价于while语句。 实例: 常见程序段: int i; for(i = 0; i 30000; i++) { } 自行完成例2-6的功能。 3.do…while语句 do { 循环体 } while (表达式); 4.嵌套的循环结构 实际应用中,经常要用到嵌套的循环结构。 在嵌套循环结构中,内层循环需要置于称之为外层循环的另一个循环中。 3种循环语句还可以互相嵌套。 【例2-9】 P0.0接一个发光二极管,P1.0按一个按键,要求当按键按下时,发光二极管不停地闪烁,当按键放开时,停止闪烁。 源程序清单: #inc

文档评论(0)

1亿VIP精品文档

相关文档