(6.4)--3.5 C51的函数单片机原理与应用.ppt

上传人:奉*** 文档编号:96428754 上传时间:2023-11-27 格式:PPT 页数:21 大小:335.25KB
返回 下载 相关 举报
(6.4)--3.5 C51的函数单片机原理与应用.ppt_第1页
第1页 / 共21页
(6.4)--3.5 C51的函数单片机原理与应用.ppt_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《(6.4)--3.5 C51的函数单片机原理与应用.ppt》由会员分享,可在线阅读,更多相关《(6.4)--3.5 C51的函数单片机原理与应用.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、单片机单片机的的C51C51基础知识基础知识第三章第三章第第 节节3.5 3.5 C51C51的函数的函数5 53.5.1 函数的基本概念函数的基本概念对于较大的C51程序,一般不希望把所有内容都放在主函不希望把所有内容都放在主函数中数中,而是将它们分别放在若干个调用函数中分别放在若干个调用函数中,再由主函数、调用函数和其它语句(如预处理命令、全局变量定义等)一起组成源程序文件源程序文件。C51中的函数可作为软件模块被调用。C51程序中的函数数量不受限制,但只能有一个主函数,整个程序从这个主函数开始执行,也从主函数中结束。每个函数都由函数头和函数体组成,而函数体又由局部变量定义和执行语句组成。

2、源程序中所有函数互相独立,可以互相调用。C51的函数C51源程序文件与函数之间的关系用户用户使用的角度使用的角度划分,分为两种类型:标标准准函函数数,即库函数。这是由C51系统提供的,可满足用户的通用性要求,用户可以直接使用它们(只需在程序中开头处用#include指令将库函数的文件名包含进来即可)。自自定定义义函函数数,即用户自己编写的函数,以满足用户在库函数之外的特殊性要求,这部分内容需要用户自行编程解决。C51的函数从函数定义的形式,函数分为三类:无参函数。调用时主调函数不向被调用函数传递数据。一般用来完成指定的若干操作,类似于一条命令语句。有参函数。调用时主调函数可通过实际参数向被调函

3、数传递数据,使其具有可变参数值的功能。执行被调用函数时通常会得到一个函数返回值供主调函数使用。空函数。调用空函数时,不起任何作用。定义空函数的目的是为了先占位,当程序功能扩充时用编好的函数替代它.C51的函数3.4.2 函数的定义函数的定义 函数也遵循先定义后使用的原则。函数定义的函数定义的作用作用:把函数的信息(如函数名、函数类型、函数参数的个数与类型等)通知编译系统,以便区分是函数、变量或其他对象。C51函数定义语句称为函数头函数头或函数首部函数首部,C51函数定义语法格式如下:返回值类型函数名(形式参数)编译模式返回值类型函数名(形式参数)编译模式reentrantinterrupt x

4、using y注意注意:与变量或数组定义不同,函数定义的函数定义的末尾没有末尾没有分号分号“;”C51的函数C51函数定义语法各项含义一览表除函数名和后面的圆括号不可缺省外,其余选项都可以缺省C51的函数1、函数返回类型、函数返回类型当函数调用结束时,若需要向调用者返回一个执行结果,则这个结果称为“函数返回值”。此时必须在函数定义时明确返回值的数据类型,如如bit、int、char、long或或float型等型等。如果返回类型缺省,则系统默认为是默认为是int型型。反之,若无需返回值,则可将“返回类型值”设置为无值型,即无值型,即void型型C51的函数2、形式参数函数定义式中的形式参数仅起着

5、占位符的作用形式参数仅起着占位符的作用,它们将在函数调用时被实际参数值取代被实际参数值取代,从而实现参数值向函数的传递。形式参数列表中包括了形参类型和形参名。根据任务的需要,函数可以没有形参(称为无参函数无参函数),也可以带有形参(称为有参函数有参函数)。3、无参函数的定义:无参函数的参数列表为空或为void,没有函数返回值时函数类型可为void型。C51的函数例如,如下延时函数可实现1001000次空循环操作功能。void delay(void)/定义无返回无形参函数dalay()int i,j;/定义整型循环变量i,j for(i=0;i100;i+)/外层嵌套 for(j=0;j1000

6、;j+)/内层嵌套+空循环 函数体中定义的变量(称为局部变量),如i,j,仅在函数作用域内有效,离开函数后其值不会得到保存。4、有参函数的定义:有参函数的多个形参之间要用逗号分隔。函数类型一般与返回值类型相同。有返回值时需在函数体中用“return表达式;”语句。反之则可以不要return语句。例如:可实现计算并返回两数平均值功能的求均值函数:float average(char x,char y)/定义返回浮点型值的有参函数 float result;/定义变量 result=(x+y)/2;return result;/返回result C51C51的函数的函数由于return后面的值可以

7、是表达式,因而该函数可进一步简化为:float average(char x,char y)return(x+y)/2;/返回表达式结果 C51C51的函数的函数3.4.3 函数的调用定义函数的目的是为了调用函数,调用的一般形式为:函数名(实参表列);如果是调用无参函数,则“实参表列”可以为空,但圆括号不能省略。如果实参列表包含多个参数,则各参数间要用英文逗号分隔。根据函数调用在程序中出现的形式和位置来分,可以有3种函数调用方法:C51C51的函数的函数1、把函数作为一个独立语句作为一个独立语句来用,例如:delay(void);/产生空循环延时2、把函数作为一个变量的赋值表达式作为一个变量的

8、赋值表达式来用,例如:c=average(a,b);/将a和b的平均值存入c中3、把函数作为另一个函数调用时的参数作为另一个函数调用时的参数来用,例如:m=average(a,average(b,c);/将a、b、c三者的平均值存入m C51的函数实例15 将两个整数按大小排序,要求用函数方法找到其中的较大者。解题思路:将求两整数中较大者的功能放在自定义函数max中,利用主函数调用max时传入两个整数,然后获得大数的返回值。源程序如下:C51C51的函数的函数程序分析:先定义max函数,函数类型定为int,两个形参x和y的类型也都为int。主函数包含了一个函数调用max(a,b),其中a和b两

9、个整型实参在main函数里定义。通过函数调用,a的值传给x,b的值传给y。在max函数中,把较大的数值赋给变量z,z的值通过return语句带回到main函数,并赋给变量c。运行结果:c=77C51C51的函数的函数特别强调:特别强调:一个函数在程序中可以一个函数在程序中可以3 3种形式出现种形式出现:函数定义、函数调用和函数声明。函数定义和函数函数定义和函数调用不分调用不分先后先后,若若函数调用出现在函数函数调用出现在函数定义之前定义之前,在,在函数调用前必须先进行函数声明。函数调用前必须先进行函数声明。程序进行编译编译时从上到下时从上到下逐行进逐行进行行,如无函数声明,当编译到函数调用行时

10、,编译系统就无法确定它是函数还是变量,也无法进行虚实结合检查。反之,若在函数调用前对被调用函数进行了函数声明,编译系统就会记下有关信息,一旦发现函数调用与函数声明不匹配,就会发出语法错误提示。C51C51的函数的函数 函数函数声明和函数头的定义语句基本是相同的(两者仅差声明和函数头的定义语句基本是相同的(两者仅差一个分号一个分号),写函数声明时,可以照写函数头的定义语句,再加一个分号即可。实际上,在函数声明中的形参名也可省略,而只写形参的类型即可,因为编译系统只检查形参个数和形参类型,而不检查形参名C51C51的函数的函数例如例如,实例15的程序如果采用主函数在前,主函数在前,max函数在后函数在后的写法时,需要在主函数中增加一条对需要在主函数中增加一条对max的函数声明语句的函数声明语句,具体程序如下:C51的函数 函数声明语句也可加在程序文件的开头函数声明语句也可加在程序文件的开头(此时称为“外部声明”),这样就能使本程序文件中的所有函数都不必对其调用所有函数都不必对其调用的函数再作声明的函数再作声明。当程序文件中包含较多函数时,这样处理更加简便灵活。C51C51的函数的函数 关于关于C51C51的函数就讲的函数就讲到到这里,这里,同学们同学们再见再见

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁