第3章 单片机C51语言程序设计基础

上传人:我*** 文档编号:137663382 上传时间:2020-07-11 格式:PPT 页数:58 大小:514KB
返回 下载 相关 举报
第3章 单片机C51语言程序设计基础_第1页
第1页 / 共58页
第3章 单片机C51语言程序设计基础_第2页
第2页 / 共58页
第3章 单片机C51语言程序设计基础_第3页
第3页 / 共58页
第3章 单片机C51语言程序设计基础_第4页
第4页 / 共58页
第3章 单片机C51语言程序设计基础_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《第3章 单片机C51语言程序设计基础》由会员分享,可在线阅读,更多相关《第3章 单片机C51语言程序设计基础(58页珍藏版)》请在金锄头文库上搜索。

1、第3章 单片机C51语言程序设计基础,3.1 语句与流程控制 3.2 函数 3.3 本章小结 3.4 实训三 简易十字路口交通信号灯控制,返回首页,教学提示,C51 语言程序是由函数组成的。函数是C51 语言的基本模块。用C51语言设计程序就是编写函数。从来源看,函数可分为用户自定义函数和标准库函数两大类。在一个C51 语言程序中有且只能有一个名为main的主函数。C51 语言程序的执行部分是由语句组成的。程序的各种主要功能都是由语句实现的。C 语言的语句可分为流程控制语句、表达式语句、复合语句、空语句。本章重点介绍C51语言中语句的使用方法以及C51语言中新增的函数类型中断函数和重入函数。,

2、教学要求,掌握C51语言基本语句的使用方法,包括赋值语句、函数调用语句、复合语句、空语句;掌握C51语言分支语句的使用方法,包括if语句、switch语句;掌握C51语言循环语句的使用方法,包括while语句、dowhile语句、for语句;掌握辅助控制语句break、continue的使用方法;理解中断函数和重入函数的使用方法;掌握常用标准库函数的使用方法。,3.1 语句与流程控制,3.1.1 基本语句 3.1.2 分支语句 3.1.3 循环语句 3.1.4 辅助控制语句,3.1.1 基本语句,基本语句主要用于顺序结构程序的编写。在C51语言中,语句的结束符为分号。,1. 赋值语句,在任何合

3、法的赋值表达式的尾部加上一个分号就构成了赋值语句。赋值语句的一般形式为 变量 = 表达式;,赋值语句的作用是先计算赋值号右边表达式的值,然后将该值赋给赋值号左边的变量。,赋值语句是一种可执行语句,应当出现在函数的可执行部分。,在C51语言中,若函数仅进行某些操作而不返回函数值,这时函数的调用可作为一条独立的语句,称为函数调用语句。其一般形式为 函数名( 实际参数表 ) ;,2. 函数调用语句,【例3.1】 从键盘输入一个3位整数,将其反向输出。例如,输入127,输出应为721。,在C51语言中,把多条语句用一对大括号括起来组成的语句称为复合语句。复合语句又称为“语句块”,其一般格式为 语句1;

4、语句2;语句n;,3. 复合语句,注意:大括号之后不再加分号。,复合语句虽然可由多条语句组成,但它是一个整体,相当于一条语句,凡可以使用单一语句的位置都可以使用复合语句。在复合语句内,不仅可以有执行语句,还可以有变量定义(或说明)语句。,如果一条语句只有语句结束符号“;”则称为空语句。,4. 空语句,空语句在执行时不产生任何动作,但仍有一定的作用。比如,预留位置或用来作为空循环体。但是,在程序中随意加分号也会导致逻辑上的错误,需要慎用。,3.1.2 分支语句,为了便于理解,图3.2给出一个简单的单片机应用系统 。,图3.2 简单的单片机应用系统,1. if语句,if语句的一般形式为: if (

5、 表达式 ) 语句; 其中,if 是关键字,表达式两侧的圆括号不可少,最后的语句可以是C51语言任意合法的语句。,图3.3给出了if语句的执行过程。可见,if语句是一种单分支语句。,【例3.2】 基于图3.2,编程实现下列功能:按下K1键,发光二极管全亮;弹起K1键后,发光二极管全灭。,图3.3 if语句的执行过程,2. if-else语句,if-else语句的一般形式为: if( 表达式 ) 语句1; else 语句2; 其中,语句1、语句2可以是C51语言中任意合法的语句。,注意:else不是一条独立的语句,只是if语句的一部分,在程序中else必须与if配对,共同组成一条if - els

6、e 语句。,【例3.3】 基于图3.2,编程实现下列功能:开机后,全部发光二极管不亮。只有当K1键与K2键同时按下,发光二极管才全亮;否则发光二极管全灭。,图3.4给出了if-else语句的执行过程。可见,if-else语句是一种二分支语句。,图3.4 if-else语句的执行过程,3. if-else-if语句,if-else-if语句的一般形式: if( 表达式1 ) 语句1; else if( 表达式2 )语句2; else语句3; if-else-if语句又称为嵌套的if-else语句,其中,语句1、语句2、语句3可以是C51语言中任意合法的语句。,图3.5给出了if-else-if语

7、句的执行过程。可见,只要一直嵌套下去,if-else-if语句可实现多分支程序设计要求。,【例3.4】 基于图3.2,编程实现下列功能:分别用按键K1、K2、K3、K4控制发光二极管D0、D1、D2、D3的亮灭。当键按下时点亮对应的发光二极管;当键弹起时熄灭对应的发光二极管。4个按键的优先权从K1到K4依次减小,若4个按键都按下,则只有D0亮。,图3.5 if-else-if语句的执行过程,4. switch语句,switch语句的一般形式: switch ( 表达式 ) case 常量表达式1 : 语句1; case 常量表达式2 : 语句2; case 常量表达式n : 语句n; defa

8、ult : 语句n+1; ,图3.6给出了switch语句的执行过程。,图3.6 switch语句的执行过程,【例3.5】 基于图3.2,编程实现下列功能:开机后,全部LED 不亮。D0的亮灭仅受K1键控制,与其他按键无关,即不管其他按键处在什么状态,只要按下K1键就点亮D0,弹起K1键就熄灭D0。同理,要求D1的亮灭仅受K2键控制,D2的亮灭仅受K3键控制,D3的亮灭仅受K4键控制。,5. 在switch 语句中使用break 语句,break 语句又称为间断语句,其作用是使程序的执行立即跳出switch 语句,从而使switch 语句真正起到分支的作用。,为了解决【例3.5 】中存在的问题

9、,必须在switch 语句中使用break 语句,即在每个语句的后面添加一条“break; ”语句。,使用break 语句后,switch 语句的一般格式: switch ( 表达式 ) case 常量表达式1:语句1; break; case 常量表达式2:语句2; break; case 常量表达式n:语句n; break; default:语句n+1; ,使用break 语句后,switch 语句的执行过程如图3.7所示。,【例3.6】 在switch语句中使用break语句,对例3.5进行改写。,图3.7 使用break语句后switch语句的执行过程,3.1.3 循环语句,在程序设计

10、中经常会遇到需要重复执行的操作,如延时、累加、累乘、数据传递等,利用循环结构来处理各类重复操作既简单又方便。 C51 语言中提供了3种语句来实现循环结构,分别是while 语句、do-while 语句和for 语句。其中,while语句又称为“当”型循环,do-while语句又称为“直到”型循环。,1. while 语句,while 语句的一般形式: while( 表达式 ) 循环体 其中,“表达式”可以是C51语言中任意合法的表达式,其作用是控制循环体是否执行;“循环体”是循环语句中需要重复执行的部分,可以是一条简单的可执行语句,也可以是用大括号括起来的复合语句。,while 语句的执行过程

11、如图3.8所示。while 语句的特点是:先判断,后执行。,(1) 要定义循环控制变量。 (2) 要确定循环变量的初值、终值、增量(步长)。 (3) 要保证每执行一次循环体,循环控制变量的值按增量向终值靠近一些,即要避免死循环。,图3.8 while 语句的执行过程,【例3.7】 基于图3.2,编程实现下列功能:开机后,全部发光二极管不亮;按下K1键,D0闪烁;松开K1键,D0停止闪烁并熄灭。,while 语句的使用注意事项:,2. do-while 语句,do-while 语句的一般格式: do 循环体 while( 表达式 ) ; 其中,“表达式”可以是C51语言中任意合法的表达式,其作用

12、是控制循环体是否执行;“循环体”可以是C51语言中任意合法的可执行语句;最后的“;”不可丢,表示do-while 语句结束。,do-while 语句的执行过程如图3.9所示。do-while 语句的特点是:先执行,后判断。,【例3.8】 基于图3.2编写程序,用do-while语句实现下列功能:开机后,全部发光二极管不亮;按下K1键,D0闪烁;松开K1键,D0停止闪烁并熄灭。,图3.9 do-while 语句的执行过程,3. for 语句,for 语句的典型应用形式: for( 循环变量初值; 循环条件; 循环变量增值 ) 循环体,for语句的一般形式: for( 表达式1; 表达式2; 表达

13、式3 ) 循环体 其中,“表达式1”、“表达式2”、“表达式3”可以是C51语言中任意合法的表达式,3个表达式之间用“;”隔开,其作用是控制循环体是否执行;循环体可以是C51语言中任意合法的可执行语句。,for 语句的执行过程如图3.10所示。,(1) for 语句中的表达式可以部分或全部省略,但两个“;”不可省略。例如:for( ; ; ) D0= !D0; 3个表达式均被省略,因缺少条件判断,循环将会无限制地执行,形成无限循环(通常称为死循环)。,在使用for语句时应注意以下两点 :,图3.10 for语句的执行过程,(2) 所谓省略,只是在for 语句中的省略。实际上是把所需表达式放在f

14、or的循环体中或for的语句前面。下面几种for 语句的表达方式是等价的。,表达方式1(正常情况): sum=0 ; for( i=1;i=100;i+ ) sum+=i; 表达方式2(省略表达式1): sum=0 ; i=1 ; for( ;i=100;i+ ) sum+=i; 表达方式3(省略表达式3): sum=0; for( i=1;i=100; ) sum+=i;i+ ; 表达方式4(省略表达式1和表达式3): sum=0;i=1; for( ;i=100; ) sum+=i;i+ ;,【例3.9】 基于图3.2编程实现下列功能:开机后,全部LED不亮;按下K1键,D0闪烁;松开K1

15、键,D0停止闪烁并熄灭。,4. 循环的嵌套,在编写程序时,嵌套循环的书写要采用缩进形式,使程序层次分明,例如: for( i=1;i=10; i+ ) / 外层循环 for( j=1;j=10; j+ ) / 中层循环 for( k=1;k=10;k+ ) / 内层循环 循环语句 ,在一个循环体内又完整地包含了另一个循环称为循环嵌套。循环的嵌套可以有多层,但每一层循环在逻辑上必须是完整的。,在进行循环嵌套时,应注意以下几点:,【例3.10】 利用双层循环打印99乘法表。,(1) 内外循环的循环变量不应相同。 (2) 内外循环不应交叉。 (3) 只能从循环体内转移到循环体外,反之不行。,5. 几

16、种循环的比较,(1) 3种循环可相互替代处理同一问题。 (2) do-while循环至少执行一次循环体,而while及for 循环则不然。 (3) while 及do-while 循环多用于循环次数不可预知的情况,而for 循环多用于循环次数可以预知的情况。,3.1.4 辅助控制语句,在循环过程中,有时不一定要执行完所有的循环后才终止,每次循环也不一定要执行完循环体中的所有语句,可能在一定的条件下跳出循环或进入下一轮循环。 为了方便对程序流程的控制,除了前面介绍的流程控制语句外,C51 语言还提供了两种辅助控制语句:break 和continue 语句。,1. break 语句,【例3.11】 求其平方数小于100 的所有整数。,break 语句的一般形式: break; break 语句的功能是: 终止所在的switch 语句; 跳出本层循环体,从而提前结束本层循环。,2. continue 语句,【例3.12】

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号