第4章 C51单片机程序设计基础 (3) 函数参数。被调用函数的返回值作为另一个函数的实际参数。 2. 自定义函数的声明:调用函数前要对被调用的函数进行说明。标准库函数只要用#include?引入已写好的头文件,程序中就能直接调用函数。如果调用自定义的函数则要编写函数。 在C51中,函数原型一般形式如下: [extern] 函数类型 函数名(形式参数表); 函数的声明是把函数的名字、函数类型以及形参的类型、个数和顺序通知编译系统,以便调用函数时系统进行对照检查。函数的声明后面要加分号。 第4章 C51单片机程序设计基础 4.6.3中断函数 中断函数指中断服务函数,只有在中断源请求响应中断时才会被执行,它在处理突发事件和实时控制十分有效。为了捕获中断事件,通常有三种方法:一是用循环语句不断的对中断源进行查询,二是用定时中断在间隔时间内扫描中断源,三是用外部中断服务函数对中断进行捕获。在程序编写中一般采用第三种方式捕获中断,调用中断服务程序。 中断服务函数的形式: 函数类型?? ?函数名 ?(形式参数) ?interrupt ?n 使用中断服务函数时应注意:中断函数不能直接调用中断函数,不能通过形参传递参数;在中断函数中调用其它函数,两者所使用的寄存器组应相同;中断函数没有返回值,且最好写在文件的尾部,并且禁止使用extern存储类型说明。 第4章 C51单片机程序设计基础 4.6.4 函数的嵌套与递归 函数的嵌套指在一个函数中调用另一个函数。C51编译器通常依靠堆栈来进行参数传递,堆栈设在片内RAM中,而片内RAM的空间有限,因而嵌套的深度比较有限,一般在几层以内。如果层数过多,就会导致堆栈空间不够而出错。 递归调用是嵌套调用的一个特殊情况。如果在调用一个函数过程中又直接或间接调用该函数本身,则称为函数的递归调用。在函数的递归调用中要避免出现无终止的自身调用,应通过条件控制结束递归调用,使得递归的次数有限。 4.6.5 C51结构、联合和枚举 1.C51结构 (1) 结构 第4章 C51单片机程序设计基础 结构是一种数据的集合体,它能按需要将不一同类型的变量组合在一起,整个集合体用一个结构变量名表示,组成这个集合体的各个变量称为结构成员。 一般定义结构格式:struct ?结构名 ?{结构元素表}; (2) 结构变量 定义结构类型后能按结构类型的格式定义结构变量,只有结构变量才能参与程序执行,结构类型只是用于说明结构变量属于那种结构。 一般定义结构变量的格式: struct ?结构名 ?结构变量名 1,结构变量名2……结构变量N; 第4章 C51单片机程序设计基础 (3) 结构元素 使用结构变量是通过对它的结构元素的引用来实现。结构中数据元素引用的方法是使用存取结构元素成员运算符“.” 来连接结构名和元素名. 其格式如下:结构变量名.结构元素 (4) 结构类型 struct {结构元素表} ?结构变量名1,结构变量2……结构变量名N; struct ?结构名 {结构元素表} ?结构变量名1,结构变量名2……结构变量名N; 第4章 C51单片机程序设计基础 2.枚举 枚举数据类型是把某些整型常量的集合用一个名字表示,其中整型常量只是这个枚举类型变量可取的合法值。枚举类型有两种定义格式: enum ?枚举名 ?{枚举值列表} ?变量列表; enum ?枚举名 ?{枚举值列表}; emum ?枚举名 ?变量列表; 3.联合 联合也是C51语言构造类型的数据结构。它和结构类型一样能包含不同类型的数据元素,不同之处在于联合的数据元素都是从同一个数据地址开始存放。结构变量占用的内存大小是该结构中数据元素所占内存数的总和,而联合变量所占用内存大小只是该联合中最长的元素所占用的内存大小。使用联合变量时要注意它的数据元素只能是分时使用,而不能同时使用。 第4章 C51单片机程序设计基础 格式为:sbit 位变量名=位地址常数 把位的绝对地址赋给位变量,sbit的位地址必须位于80H-FFH之间 sbit P0_0=0x80; sbit P1_1=0x91; sbit RS0=0xd3; /* 实际定义的是特殊功能寄存器PSW的第3位*/ sbit ET0=0xa9; /* 实际定义的是特殊功能寄存器IE的第1位*/ ②用特殊功能寄存器名带位号定义位变量 格式为:sbit 位变量名= 特殊功能寄存器^位号常数 第4章 C51单片机程序设计基础 例如:sfr P1 = 0x90; sbit P1_1 = P1 ^ 1; /*先定义一个特殊功能寄存器
您可能关注的文档
最近下载
- 旅居房车设计说明书.doc VIP
- 大明英烈传朱太公列传.pdf VIP
- 大明英烈传列传.pdf VIP
- 海尔冰箱BCD-248WBCS ZA说明书.pdf VIP
- 2001款0204宝马7系735745Li_汽车使用手册用户操作指南驾驶车主车辆说明书电子版.PDF
- 交通运输行业行业深度报告:无人机反制系统-奠定低空经济安全发展之基石.pdf VIP
- 人工智能时代语言研究中的伦理问题-Ethical Issues in Language Research in the AI Era.pdf VIP
- 2025年度广东省广州市小学五年级上学期期末测试数学试题.docx VIP
- 彝学研究史.PDF VIP
- 自考英语(二)新版教材课文翻译、课后习题及考前重点笔记整理.pdf VIP
原创力文档

文档评论(0)