第4章 7~10节 单片机的C语言.ppt
《第4章 7~10节 单片机的C语言.ppt》由会员分享,可在线阅读,更多相关《第4章 7~10节 单片机的C语言.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、4.7 函函 数数 C C C 语言程序由函数组成,下面介绍函数的要点。语言程序由函数组成,下面介绍函数的要点。语言程序由函数组成,下面介绍函数的要点。语言程序由函数组成,下面介绍函数的要点。语言程序由函数组成,下面介绍函数的要点。语言程序由函数组成,下面介绍函数的要点。4.7.14.7.1函数的分类及定义函数的分类及定义函数的分类及定义函数的分类及定义 从用户使用角度划分,函数分为从用户使用角度划分,函数分为从用户使用角度划分,函数分为从用户使用角度划分,函数分为从用户使用角度划分,函数分为从用户使用角度划分,函数分为库函数库函数库函数库函数库函数库函数和和和和和和用户定义函数用户定义函数用
2、户定义函数用户定义函数用户定义函数用户定义函数n nn库函数库函数库函数库函数库函数库函数是编译系统为用户设计的一系列是编译系统为用户设计的一系列是编译系统为用户设计的一系列是编译系统为用户设计的一系列是编译系统为用户设计的一系列是编译系统为用户设计的一系列标准函数标准函数标准函数标准函数标准函数标准函数 (见本书附录二见本书附录二见本书附录二见本书附录二见本书附录二见本书附录二),用户只需调用,而无需自己去编写这些复杂的函数。如前面,用户只需调用,而无需自己去编写这些复杂的函数。如前面,用户只需调用,而无需自己去编写这些复杂的函数。如前面,用户只需调用,而无需自己去编写这些复杂的函数。如前面
3、,用户只需调用,而无需自己去编写这些复杂的函数。如前面,用户只需调用,而无需自己去编写这些复杂的函数。如前面所用到的头文件所用到的头文件所用到的头文件所用到的头文件所用到的头文件所用到的头文件reg51.hreg51.hreg51.h等,有的头文件中包括一系列函数,要等,有的头文件中包括一系列函数,要等,有的头文件中包括一系列函数,要等,有的头文件中包括一系列函数,要等,有的头文件中包括一系列函数,要等,有的头文件中包括一系列函数,要使用其中的函数必须使用其中的函数必须使用其中的函数必须使用其中的函数必须使用其中的函数必须使用其中的函数必须先使用先使用先使用先使用先使用先使用#包含语句包含语句
4、包含语句包含语句包含语句包含语句,然后才能调用。,然后才能调用。,然后才能调用。,然后才能调用。,然后才能调用。,然后才能调用。n nn用户自定义函数用户自定义函数用户自定义函数用户自定义函数用户自定义函数用户自定义函数是用户根据任务是用户根据任务是用户根据任务是用户根据任务是用户根据任务是用户根据任务编写的函数编写的函数编写的函数编写的函数编写的函数编写的函数。n nn从参数形式上从参数形式上从参数形式上从参数形式上从参数形式上从参数形式上函数分为函数分为函数分为函数分为函数分为函数分为无参函数无参函数无参函数无参函数无参函数无参函数和和和和和和有参函数有参函数有参函数有参函数有参函数有参函
5、数。n nn无参函数无参函数无参函数无参函数无参函数无参函数:函数中无参数定义。:函数中无参数定义。:函数中无参数定义。:函数中无参数定义。:函数中无参数定义。:函数中无参数定义。n nn有参函数有参函数有参函数有参函数有参函数有参函数:函数中定义形式参数,在调用时,调用函数用:函数中定义形式参数,在调用时,调用函数用:函数中定义形式参数,在调用时,调用函数用:函数中定义形式参数,在调用时,调用函数用:函数中定义形式参数,在调用时,调用函数用:函数中定义形式参数,在调用时,调用函数用实际参数实际参数实际参数实际参数实际参数实际参数代替代替代替代替代替代替形式参数形式参数形式参数形式参数形式参数
6、形式参数,调用完返回结果给调用函数。,调用完返回结果给调用函数。,调用完返回结果给调用函数。,调用完返回结果给调用函数。,调用完返回结果给调用函数。,调用完返回结果给调用函数。1 14.7.24.7.2函数的定义函数的定义函数的定义函数的定义n nn 无参函数的定义:无参函数的定义:无参函数的定义:无参函数的定义:无参函数的定义:无参函数的定义:返回值类型返回值类型返回值类型返回值类型返回值类型返回值类型 函数名函数名函数名函数名函数名函数名 ()()()函数体语句函数体语句函数体语句函数体语句函数体语句函数体语句 如果函数没有返回值,可以将返回值类型设为如果函数没有返回值,可以将返回值类型设
7、为如果函数没有返回值,可以将返回值类型设为如果函数没有返回值,可以将返回值类型设为如果函数没有返回值,可以将返回值类型设为如果函数没有返回值,可以将返回值类型设为voidvoidvoid 函数以函数以函数以函数以函数以函数以“”开始,以开始,以开始,以开始,以开始,以开始,以“”结束,结束,结束,结束,结束,结束,n nn 有参函数的定义:有参函数的定义:有参函数的定义:有参函数的定义:有参函数的定义:有参函数的定义:返回值类型返回值类型返回值类型返回值类型返回值类型返回值类型 函数名函数名函数名函数名函数名函数名 (形式参数表列形式参数表列形式参数表列形式参数表列形式参数表列形式参数表列)形
8、式参数类型说明形式参数类型说明形式参数类型说明形式参数类型说明形式参数类型说明形式参数类型说明 /形式参数类型说明可放在形式参数表列形式参数类型说明可放在形式参数表列形式参数类型说明可放在形式参数表列形式参数类型说明可放在形式参数表列形式参数类型说明可放在形式参数表列形式参数类型说明可放在形式参数表列 函数体语句函数体语句函数体语句函数体语句函数体语句函数体语句 return(return(return(返回形参名返回形参名返回形参名返回形参名返回形参名返回形参名)2 2 也可以这样定义也可以这样定义 返回值类型返回值类型返回值类型返回值类型返回值类型返回值类型 函数名函数名函数名函数名函数名
9、函数名 (类型说明形式参数表列类型说明形式参数表列类型说明形式参数表列类型说明形式参数表列类型说明形式参数表列类型说明形式参数表列)函数体语句函数体语句函数体语句函数体语句函数体语句函数体语句 return(return(return(返回形参名返回形参名返回形参名返回形参名返回形参名返回形参名)其中形式参数表列的各项要用其中形式参数表列的各项要用其中形式参数表列的各项要用其中形式参数表列的各项要用其中形式参数表列的各项要用其中形式参数表列的各项要用 ,隔开,通过隔开,通过隔开,通过隔开,通过隔开,通过隔开,通过returnreturnreturn语句将需返回的值返回给调用函数语句将需返回的值
10、返回给调用函数语句将需返回的值返回给调用函数语句将需返回的值返回给调用函数语句将需返回的值返回给调用函数语句将需返回的值返回给调用函数。4.7.3.4.7.3.函数的调用函数的调用函数的调用函数的调用n nn 函数调用的形式为:函数调用的形式为:函数调用的形式为:函数调用的形式为:函数调用的形式为:函数调用的形式为:函数名函数名函数名函数名函数名函数名 (实际参数表列实际参数表列实际参数表列实际参数表列实际参数表列实际参数表列);对于无参函数当然不存在实际参数表列对于无参函数当然不存在实际参数表列对于无参函数当然不存在实际参数表列对于无参函数当然不存在实际参数表列对于无参函数当然不存在实际参数
11、表列对于无参函数当然不存在实际参数表列 实参实参实参实参实参实参和和和和和和形参形参形参形参形参形参的数目相等的数目相等的数目相等的数目相等的数目相等的数目相等类型一致类型一致类型一致类型一致类型一致类型一致。3 3函数的调用方式有三种函数的调用方式有三种函数的调用方式有三种函数的调用方式有三种函数的调用方式有三种函数的调用方式有三种n nn 函数调用语句:即把被调函数调用语句:即把被调函数调用语句:即把被调函数调用语句:即把被调函数调用语句:即把被调函数调用语句:即把被调函数名作为调用函数函数名作为调用函数函数名作为调用函数函数名作为调用函数函数名作为调用函数函数名作为调用函数(无返回(无返
12、回(无返回(无返回(无返回(无返回值)值)值)值)值)值)的一个语句,如的一个语句,如的一个语句,如的一个语句,如的一个语句,如的一个语句,如 fun1()fun1()fun1();n nn 被调函数作为表达式的被调函数作为表达式的被调函数作为表达式的被调函数作为表达式的被调函数作为表达式的被调函数作为表达式的运算对象运算对象运算对象运算对象运算对象运算对象(有返回值)(有返回值)(有返回值)(有返回值)(有返回值)(有返回值)如如如如如如 rettrettrett=2*get(a,b)=2*get(a,b)=2*get(a,b);此时拿函数中的此时拿函数中的此时拿函数中的此时拿函数中的此时拿
13、函数中的此时拿函数中的 a a a,b b b 应为实参,其以返回值参予式中的应为实参,其以返回值参予式中的应为实参,其以返回值参予式中的应为实参,其以返回值参予式中的应为实参,其以返回值参予式中的应为实参,其以返回值参予式中的运算。运算。运算。运算。运算。运算。n nn 被调函数作为另一个数的被调函数作为另一个数的被调函数作为另一个数的被调函数作为另一个数的被调函数作为另一个数的被调函数作为另一个数的实际参数实际参数实际参数实际参数实际参数实际参数(函数调用嵌套函数调用嵌套函数调用嵌套函数调用嵌套函数调用嵌套函数调用嵌套)如如如如如如 m=max(a,get(a,b)m=max(a,get(
14、a,b)m=max(a,get(a,b);函数函数函数函数函数函数 get(a,b)get(a,b)get(a,b)作为作为作为作为作为作为max()max()max()的一个实际参数被调用。的一个实际参数被调用。的一个实际参数被调用。的一个实际参数被调用。的一个实际参数被调用。的一个实际参数被调用。4 44.7.4 对被调函数的说明对被调函数的说明 如果被调函数如果被调函数如果被调函数如果被调函数如果被调函数如果被调函数出现出现出现出现出现出现在主调函数在主调函数在主调函数在主调函数在主调函数在主调函数之后之后之后之后之后之后,在主调函数前应对被调函数作以,在主调函数前应对被调函数作以,在主
15、调函数前应对被调函数作以,在主调函数前应对被调函数作以,在主调函数前应对被调函数作以,在主调函数前应对被调函数作以说明说明说明说明说明说明,形式为:形式为:形式为:形式为:形式为:形式为:返回值类型返回值类型返回值类型返回值类型返回值类型返回值类型 被调函数名被调函数名被调函数名被调函数名被调函数名被调函数名 (形参表列形参表列形参表列形参表列形参表列形参表列);例如:例如:例如:例如:例如:例如:intintint fun1(a,b);fun1(a,b);fun1(a,b);/*/*/*函数说明函数说明函数说明函数说明函数说明函数说明*/main()main()main()/*/*/*主函数
16、主函数主函数主函数主函数主函数*/intintint d,u=3,v=2;d,u=3,v=2;d,u=3,v=2;d=2*d=2*d=2*fun1(u,v)fun1(u,v)fun1(u,v);/调用函数调用函数调用函数调用函数调用函数调用函数fun1(u,v)fun1(u,v)fun1(u,v)intintint fun1(a,b)fun1(a,b)fun1(a,b)/定义函数定义函数定义函数定义函数定义函数定义函数 intintint a,ba,ba,b;intintint c;c;c;c=c=c=a+ba+ba+b;return(c);return(c);return(c);上例中被调函
17、数在后、在主调函数前对被调函数进行明上例中被调函数在后、在主调函数前对被调函数进行明上例中被调函数在后、在主调函数前对被调函数进行明上例中被调函数在后、在主调函数前对被调函数进行明上例中被调函数在后、在主调函数前对被调函数进行明上例中被调函数在后、在主调函数前对被调函数进行明 5 5 被调函数出现在主调函数之前,可以不对被调函数说明。下面以一个简单被调函数出现在主调函数之前,可以不对被调函数说明。下面以一个简单被调函数出现在主调函数之前,可以不对被调函数说明。下面以一个简单被调函数出现在主调函数之前,可以不对被调函数说明。下面以一个简单被调函数出现在主调函数之前,可以不对被调函数说明。下面以一
18、个简单被调函数出现在主调函数之前,可以不对被调函数说明。下面以一个简单例子来说明。例子来说明。例子来说明。例子来说明。例子来说明。例子来说明。intintint fun1(a,b)fun1(a,b)fun1(a,b)/定义在前定义在前定义在前定义在前定义在前定义在前 intintint a,b;a,b;a,b;intintint c;c;c;c=a+b;c=a+b;c=a+b;return(c);return(c);return(c);main()main()main()intintint d,u=3,v=2;d,u=3,v=2;d,u=3,v=2;d=2*fun1(u,v);d=2*fun1
19、(u,v);d=2*fun1(u,v);/调用在后调用在后调用在后调用在后调用在后调用在后 此例中被调函数在主调函数前,不用说明此例中被调函数在主调函数前,不用说明此例中被调函数在主调函数前,不用说明此例中被调函数在主调函数前,不用说明此例中被调函数在主调函数前,不用说明此例中被调函数在主调函数前,不用说明6 64.8 4.8 单片机的单片机的单片机的单片机的 C C 语言编程实例语言编程实例语言编程实例语言编程实例 由于由于由于由于由于由于 C51 C51 C51 编译器是针对单片机的,因此编译器是针对单片机的,因此编译器是针对单片机的,因此编译器是针对单片机的,因此编译器是针对单片机的,因
20、此编译器是针对单片机的,因此 ANSI C ANSI C ANSI C 中的中的中的中的中的中的 scanfscanfscanf (串口接受串口接受串口接受串口接受串口接受串口接受)和和和和和和 printfprintfprintf (串口发送串口发送串口发送串口发送串口发送串口发送)等对等对等对等对等对等对PCPCPC机的输入输出语句机的输入输出语句机的输入输出语句机的输入输出语句机的输入输出语句机的输入输出语句无效无效无效无效无效无效,运算的数据可以通过变量,运算的数据可以通过变量,运算的数据可以通过变量,运算的数据可以通过变量,运算的数据可以通过变量,运算的数据可以通过变量置入或取出,这
21、时置入或取出,这时置入或取出,这时置入或取出,这时置入或取出,这时置入或取出,这时 C51 C51 C51 会自动安排使用的存贮单元。会自动安排使用的存贮单元。会自动安排使用的存贮单元。会自动安排使用的存贮单元。会自动安排使用的存贮单元。会自动安排使用的存贮单元。也可以用户自行通过具体的内存地址置入数据或从特也可以用户自行通过具体的内存地址置入数据或从特也可以用户自行通过具体的内存地址置入数据或从特也可以用户自行通过具体的内存地址置入数据或从特也可以用户自行通过具体的内存地址置入数据或从特也可以用户自行通过具体的内存地址置入数据或从特定地址取出数据。定地址取出数据。定地址取出数据。定地址取出数
22、据。定地址取出数据。定地址取出数据。C C C 语言的上机调试和汇编程序使用同一仿真调试语言的上机调试和汇编程序使用同一仿真调试语言的上机调试和汇编程序使用同一仿真调试语言的上机调试和汇编程序使用同一仿真调试语言的上机调试和汇编程序使用同一仿真调试语言的上机调试和汇编程序使用同一仿真调试软件(例如软件(例如软件(例如软件(例如软件(例如软件(例如 伟福集成环境伟福集成环境伟福集成环境伟福集成环境伟福集成环境伟福集成环境)。)。)。)。)。)。下面是一个下面是一个下面是一个下面是一个下面是一个下面是一个C C C语言程序编译后生成的机器代码及对语言程序编译后生成的机器代码及对语言程序编译后生成的
23、机器代码及对语言程序编译后生成的机器代码及对语言程序编译后生成的机器代码及对语言程序编译后生成的机器代码及对应的反汇编程序。应的反汇编程序。应的反汇编程序。应的反汇编程序。应的反汇编程序。应的反汇编程序。7 74.8.14.8.14.8.1、C C C语言程序的反汇编程序语言程序的反汇编程序语言程序的反汇编程序语言程序的反汇编程序语言程序的反汇编程序语言程序的反汇编程序(源代码源代码源代码源代码源代码源代码)【例例例例例例4-54-54-5】例例例例例例3-13-13-1曾用汇编语言完成了外部曾用汇编语言完成了外部曾用汇编语言完成了外部曾用汇编语言完成了外部曾用汇编语言完成了外部曾用汇编语言完
24、成了外部RAMRAMRAM的的的的的的000EH000EH000EH单元和单元和单元和单元和单元和单元和000FH000FH000FH单元的内容单元的内容单元的内容单元的内容单元的内容单元的内容交换交换交换交换交换交换,现改用,现改用,现改用,现改用,现改用,现改用C CC语言编语言编语言编语言编语言编语言编 程。程。程。程。程。程。C CC语言对地址的指示方法可以语言对地址的指示方法可以语言对地址的指示方法可以语言对地址的指示方法可以语言对地址的指示方法可以语言对地址的指示方法可以采用采用采用采用采用采用指针变量指针变量指针变量指针变量指针变量指针变量,也可以引用,也可以引用,也可以引用,也
25、可以引用,也可以引用,也可以引用absacc.habsacc.habsacc.h头文件作绝对地址访头文件作绝对地址访头文件作绝对地址访头文件作绝对地址访头文件作绝对地址访头文件作绝对地址访 问,下面采用绝问,下面采用绝问,下面采用绝问,下面采用绝问,下面采用绝问,下面采用绝对地址访问方法。对地址访问方法。对地址访问方法。对地址访问方法。对地址访问方法。对地址访问方法。#include#include#include main()main()main()char c;char c;char c;for(;)for(;)for(;)c=XBYTE14;c=XBYTE14;c=XBYTE14;XBY
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 710节 单片机的C语言 10 单片机 语言
限制150内