(15.10)--第4章2 C语言单片机原理与应用.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《(15.10)--第4章2 C语言单片机原理与应用.ppt》由会员分享,可在线阅读,更多相关《(15.10)--第4章2 C语言单片机原理与应用.ppt(60页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、返回目录*1单片机原理与接口技术单片机原理与接口技术第第4章章 MCS-51C程序设计程序设计 返回目录本章教学要求(1)(1)熟悉熟悉C51C51语法基础和程序结构。语法基础和程序结构。(2)(2)掌握掌握C51C51结构化程序设计。结构化程序设计。(3)(3)掌握掌握C51C51对单片机硬件的访问方法。对单片机硬件的访问方法。(4)(4)掌握掌握C51C51函数定义与调用。函数定义与调用。(5)(5)了解汇编语言和了解汇编语言和C51C51的混合编程。的混合编程。*2返回目录4.1 C51概述概述4.2 C51语法基础语法基础4.2.1 标识符和关键字标识符和关键字4.2.2 数据类型数据
2、类型4.2.3 运算符和表达式运算符和表达式4.2.4 程序结构程序结构*3本本 章章 目目 录录4 4.3 C51.3 C51对对对对MCS-51MCS-51单片机的访问单片机的访问单片机的访问单片机的访问4 4.3.1 .3.1 存储类型存储类型存储类型存储类型4 4.3.2 .3.2 存储模式存储模式存储模式存储模式4 4.3.3 .3.3 对特殊功能寄存器的访问对特殊功能寄存器的访问对特殊功能寄存器的访问对特殊功能寄存器的访问4 4.3.4 .3.4 对存储器和并行口的访问对存储器和并行口的访问对存储器和并行口的访问对存储器和并行口的访问4 4.3.5.3.5 位地址访问位地址访问位地
3、址访问位地址访问4.3.6 4.3.6 中断函数中断函数中断函数中断函数 返回目录*44 4.4 C51.4 C51结构化程序设计结构化程序设计结构化程序设计结构化程序设计4 4.4.1 .4.1 顺序结构程序顺序结构程序顺序结构程序顺序结构程序4 4.4.2 .4.2 选择结构程序选择结构程序选择结构程序选择结构程序4 4.4.3 .4.3 循环结构程序循环结构程序循环结构程序循环结构程序4 4.5 C51.5 C51程序设计实例程序设计实例程序设计实例程序设计实例4 4.5.1 .5.1 查表程序查表程序查表程序查表程序4 4.5.5.2 .2 单片机内单片机内单片机内单片机内/外部资源应
4、用外部资源应用外部资源应用外部资源应用程序设计程序设计程序设计程序设计4 4.5.5.3 C51.3 C51语言和语言和语言和语言和MCS-51MCS-51汇编汇编汇编汇编语言混合编程语言混合编程语言混合编程语言混合编程4 4.5.5.4 .4 编程优化的概念编程优化的概念编程优化的概念编程优化的概念习题与思考题习题与思考题习题与思考题习题与思考题本本 章章 目目 录录返回目录4.4 C51结构化程序设计 C51C51程程序序是是一一种种结结构构化化程程序序,由由若若干干模模块块组组成成,每每个个模模块块中中包包含含若若干干个个基基本本结结构构,而而每每个个基基本本结结构构中中可以有若干条语句
5、。可以有若干条语句。基本结构有三种:基本结构有三种:顺序结构顺序结构选择结构选择结构循环结构循环结构*5-三种结构程序三种结构程序返回目录 顺序结构是一种最基本、最简单的程序结构。在这种结顺序结构是一种最基本、最简单的程序结构。在这种结构中,语句被依次逐条地顺序执行。构中,语句被依次逐条地顺序执行。例例4-7 一乘法程序,乘积放在外部一乘法程序,乘积放在外部RAM的的0000H单元。单元。void main()unsigned long xdata*p;/*设定设定p是指向外部是指向外部RAM区的区的unsigned long指针指针*/unsigned long x=12345,y=6789
6、0,mum;mum=x*y;p=0;/*p指向外部指向外部RAM区区0000H单元单元*/*p=mum;/*乘积存入外部乘积存入外部RAM区区0000H单元单元*/*64.4.1 顺序结构程序顺序结构程序-顺序结构顺序结构返回目录4.4.2 选择结构程序 用用if语语句句可可以以构构成成选选择择结结构构。它它根根据据给给定定的的条条件件进进行行判判断断,以以决决定定执执行行某某个个分分支支程程序序段段。语语言言的的if语句有三种基本形式。语句有三种基本形式。1单分支语句单分支语句if(条件表达式条件表达式)语句组语句组;*7 其语义是:如果条件表达式的其语义是:如果条件表达式的其语义是:如果条
7、件表达式的其语义是:如果条件表达式的值为真,则执行其后的语句组,否值为真,则执行其后的语句组,否值为真,则执行其后的语句组,否值为真,则执行其后的语句组,否则不执行其后的语句组。单分支语则不执行其后的语句组。单分支语则不执行其后的语句组。单分支语则不执行其后的语句组。单分支语句执行过程可表示为图句执行过程可表示为图句执行过程可表示为图句执行过程可表示为图4-14-1所示。所示。所示。所示。-单分支结构单分支结构返回目录-单分支结构举例例例4-8 寻找两个数中的大数输出寻找两个数中的大数输出void main()unsigned xdata*p;unsigned a=35,b=78,max;ma
8、x=a;if(maxb)max=a;elsemax=b;p=0;/*p指向外部指向外部RAM区区0000H单元单元*/*p=max;/*最大值存入外部最大值存入外部RAM区区0000H单元单元*/*104.4.2 选择结构程序选择结构程序-双分支结构举例双分支结构举例返回目录3多分支语句多分支语句 当有多个分支选择时,可采用当有多个分支选择时,可采用if-else-if语句结构,其语句结构,其一般形式为:一般形式为:if(条件表达式条件表达式1)语句组语句组1;else if(条件表达式条件表达式2)语句组语句组2;else if(条件表达式条件表达式3)语句组语句组3;else if(条件表
9、达式条件表达式n)语句组语句组n;else语句语句m;*114.4.2 选择结构程序选择结构程序-多分支结构多分支结构其语义是:依次判断条件其语义是:依次判断条件其语义是:依次判断条件其语义是:依次判断条件表达式的值,当出现某个表达式的值,当出现某个表达式的值,当出现某个表达式的值,当出现某个条件表达式的值为真(非条件表达式的值为真(非条件表达式的值为真(非条件表达式的值为真(非0 0)时,则执行其对应的)时,则执行其对应的)时,则执行其对应的)时,则执行其对应的语句组。然后跳到整个语句组。然后跳到整个语句组。然后跳到整个语句组。然后跳到整个if if语句之外继续执行程序。语句之外继续执行程序
10、。语句之外继续执行程序。语句之外继续执行程序。如果所有的表达式的值均如果所有的表达式的值均如果所有的表达式的值均如果所有的表达式的值均为假(为假(为假(为假(0 0),则执行语句),则执行语句),则执行语句),则执行语句组组组组mm。然后继续执行后续。然后继续执行后续。然后继续执行后续。然后继续执行后续程序。程序。程序。程序。返回目录例例4-10 如如图图4-3所所示示,单单片片机机P1口口的的P1.0和和P1.1各各接接一一个个开开关关 K1、K2,P1.4、P1.5、P1.6和和P1.7各各接接一一只只发发光光二二极极管管。由由K1和和K2的的不不同同状状态态来来确定哪个发光二极管被点亮。
11、确定哪个发光二极管被点亮。程序如下:程序如下:*124.4.2 选择结构程序选择结构程序-多分支结构举例多分支结构举例返回目录*13#include “reg51.h”#include “reg51.h”void main()void main()char a;char a;a=P1;a=P1;a=a&0 x03;/*a=a&0 x03;/*屏蔽高屏蔽高屏蔽高屏蔽高6 6位位位位*/if(a=0)P1=0 x7F;if(a=0)P1=0 x7F;else if(a=1)P1=0 xBF;else if(a=1)P1=0 xBF;else if(a=2)P1=0 xDF;else if(a=2)
12、P1=0 xDF;else P1=0 xEF;else P1=0 xEF;4.4.2 选择结构程序选择结构程序-多分支结构举例多分支结构举例返回目录4开关选择switch语句switch语句结构的一般形式为:语句结构的一般形式为:switch(表达式表达式)case 常量表达式常量表达式1:语句组语句组1;case 常量表达式常量表达式2:语句组语句组2;case 常量表达式常量表达式n:语句组语句组n;default:语句组语句组n+1;*144.4.2 选择结构程序选择结构程序-多分支结构多分支结构其其其其语语语语义义义义是是是是:计计计计算算算算表表表表达达达达式式式式的的的的值值值值,
13、并并并并逐逐逐逐个个个个与与与与其其其其后后后后的的的的常常常常量量量量表表表表达达达达式式式式值值值值相相相相比比比比较较较较,当当当当表表表表达达达达式式式式的的的的值值值值与与与与某某某某个个个个常常常常量量量量表表表表达达达达式式式式的的的的值值值值相相相相等等等等时时时时,即即即即执执执执行行行行其其其其后后后后的的的的语语语语句句句句组组组组,然然然然后后后后继继继继续续续续执执执执行行行行后后后后面面面面所所所所有有有有的的的的casecase语语语语句句句句,但但但但不不不不再再再再进进进进行行行行判判判判断断断断;如如如如表表表表达达达达式式式式的的的的值值值值与与与与所所所
14、所有有有有casecase后后后后的的的的常常常常量量量量表表表表达达达达式式式式的的的的值值值值均均均均不不不不相相相相等等等等时时时时,则则则则 执执执执 行行行行 defaultdefault后后后后 的的的的 语语语语句。句。句。句。返回目录例例4-11 用用switch语句完成例语句完成例4-10任务。程序如下:任务。程序如下:#includevoid main()char a;a=P1;a=a&0 x03;/*屏蔽高屏蔽高6位位*/switch(a)case 0:P1=0 x7F;break;case 1:P1=0 xBF;break;case 2:P1=0 xDF;break;d
15、efault:P1=0 xEF;*154.4.2 选择结构程序选择结构程序-多分支结构举例多分支结构举例返回目录在使用在使用switch语句时还应注意以下几点:语句时还应注意以下几点:(1)在在case后后的的各各常常量量表表达达式式的的值值不不能能相相同同,否否则则会会出出现现错错误。误。(2)在在case后,允许有多条语句,可以不用后,允许有多条语句,可以不用 括起来。括起来。(3)各各case和和default子子句句的的先先后后顺顺序序可可以以变变动动,而而不不会会影影响响程序执行结果。程序执行结果。(4)default子句可以省略不用。子句可以省略不用。(5)在在每每一一case语语
16、句句之之后后增增加加break语语句句,使使每每一一次次执执行行之之后均可跳出后均可跳出switch语句,这样才能实现多分支结构。语句,这样才能实现多分支结构。*164.4.2 选择结构程序选择结构程序-使用使用使用使用switchswitch语句语句语句语句返回目录4.4.3 循环结构程序 循循环环结结构构程程序序的的其其特特点点是是,在在给给定定条条件件成成立立时时,反反复复执执行行某某程程序序段段,直直到到条条件件不不成成立立为为止止。给给定定的的条条件件称称为为循循环环条条件件,反反复复执执行行的的程程序序段段称称为为循循环环体体。语语言言提提供供了了多多种种循循环环语语句句,可可以以
17、组组成各种不同形式的循环结构。成各种不同形式的循环结构。语言提供的循环语句有:语言提供的循环语句有:1)1)用用whilewhile语句;语句;2)2)用用do-whiledo-while语句;语句;3)3)用用forfor语句。语句。*17-语言的循环语句语言的循环语句返回目录1while循环语句while循环语句的一般形式为:循环语句的一般形式为:while(表达式表达式)语句组语句组其中表达式是循环条件,语句组为循环体。其中表达式是循环条件,语句组为循环体。*18while语语句句的的语语义义是是:计计算算表表达达式式的的值值,当当值值为为真真(非非0)时时,执执行行循循环环体体语语句组
18、。句组。4.4.3 循环结构程序循环结构程序-while循环语句循环语句返回目录*19例例4-12 前面的例前面的例4-11程序只能执行一遍,用程序只能执行一遍,用while语句使其语句使其无穷循环执行。程序如下:无穷循环执行。程序如下:#includevoid main()char a;while(1)/*循环条件表达式的值始终为循环条件表达式的值始终为1,无穷循环无穷循环*/a=P1;a=a&0 x03;/*屏蔽高屏蔽高6位位*/switch(a)case 0:P1=0 x7F;break;case 1:P1=0 xBF;break;case 2:P1=0 xDF;break;case 3
19、:P1=0 xEF;4.4.3 循环结构程序循环结构程序-while循环语句循环语句返回目录2do-while循环语句循环语句do-while循环语句的一般形式为:循环语句的一般形式为:do 语句组语句组while(表达式表达式);*204.4.3 循环结构程序循环结构程序-do-while循环语句循环语句 这这这这个个个个循循循循环环环环与与与与whilewhile循循循循环环环环的的的的不不不不同同同同在在在在于于于于:先先先先执执执执行行行行循循循循环环环环体体体体中中中中的的的的语语语语句句句句组组组组,然然然然后后后后再再再再判判判判断断断断表表表表达达达达式式式式的的的的值值值值是
20、是是是否否否否为为为为真真真真,如如如如果果果果为为为为真真真真(非非非非0 0)则则则则继继继继续续续续循循循循环环环环;如如如如果果果果为为为为假假假假(0 0),则则则则终终终终止止止止循循循循环环环环。因因因因此此此此,do-whiledo-while循循循循环环环环至至至至少少少少要要要要执执执执行行行行一一一一次次次次循循循循环环环环体体体体内内内内的的的的语语语语句句句句组组组组。do-whiledo-while循循循循环环环环语语语语句句句句流流流流程图如图程图如图程图如图程图如图4-54-5所示。所示。所示。所示。返回目录例例4-13 用用do-while语句实现例语句实现例
21、4-12。程序如下:。程序如下:#includevoid main()char a;do a=P1;a=a&0 x03;/*屏蔽高屏蔽高6位位*/switch(a)case 0:P1=0 x7F;break;case 1:P1=0 xBF;break;case 2:P1=0 xDF;break;case 3:P1=0 xEF;while(1);/*循环条件表达式的值始终为循环条件表达式的值始终为1,无穷循环无穷循环*/*214.4.3 循环结构程序循环结构程序-do-while循环语句循环语句返回目录-for循环语句3for循环语句循环语句for语语句句使使用用最最为为灵灵活活,它它完完全全可
22、可以以取取代代while语句。语句。for循环语句的一般形式为循环语句的一般形式为:for(表达式表达式1;表达式表达式2;表达式表达式3)语句组语句组for循环语句的执行过程如下:循环语句的执行过程如下:(1)先求解表达式先求解表达式1。(2)求求解解表表达达式式2,若若其其值值为为真真(非非0),则则执执行行for语语句句中中指指定定的的语语句句组组,然然后后执执行行下下面面第第3步步;若其值为假若其值为假(0),则转到第,则转到第5步,结束循环。步,结束循环。(3)求解表达式求解表达式3。(4)转回上面第转回上面第2步继续执行。步继续执行。(5)循环结束,执行循环结束,执行for语句的下
23、一个语句。语句的下一个语句。*224.4.3 循环结构程序循环结构程序返回目录-for循环语句关于关于for循环语句的说明:循环语句的说明:for(表达式表达式1;表达式表达式2;表达式表达式3)语句组语句组(1)for循环中的循环中的“表达式表达式1(循环变量初值循环变量初值)”,“表达式表达式2(循环条件循环条件)”和和“表达式表达式3(循环变量增量循环变量增量)”都是选择项都是选择项(可缺省可缺省),但但“;”不能缺不能缺省省(2)省略了省略了“表达式表达式1(循环变量初值循环变量初值)”,则不对循环控制变量赋初值则不对循环控制变量赋初值(3)省略了省略了“表达式表达式2(循环条件循环条
24、件)”,则不作其他处理时便成为死循环则不作其他处理时便成为死循环(4)省略了省略了“表达式表达式3(循环变量增量循环变量增量)”,则不对循环控制变量进行操则不对循环控制变量进行操作,这时可在语句组中加入修改循环控制变量的语句作,这时可在语句组中加入修改循环控制变量的语句(5)“表达式表达式1(循环变量初值循环变量初值)”和和“表达式表达式3(循环变量增量循环变量增量)”可同时可同时省略,结果如同前面第省略,结果如同前面第2,4两种情况两种情况(6)3个表达式可同时省略个表达式可同时省略,结果如前面第结果如前面第2,3,4三种情况的综合效果三种情况的综合效果(7)表达式表达式2一般是关系表达式或
25、逻辑表达式,但也可是数值表达式一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体语句组或字符表达式,只要其值非零,就执行循环体语句组*234.4.3 循环结构程序循环结构程序返回目录例4-14 用for语句实现例4-12。#include#include“reg51.hreg51.h”void main()void main()char a;char a;for for(;(;)/*)/*无循环条件,无穷循环无循环条件,无穷循环*/a=P1;/*a=P1;/*读读P1P1口的值口的值*/a=a&0 x03;a=a&0 x03;/*/*屏蔽高屏蔽高6 6位位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 15.10-第4章2 C语言单片机原理与应用 15.10 语言 单片机 原理 应用
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内