单片机原理及接口技术(C语言)第3章重点.ppt

单片机原理及接口技术(C语言)第3章重点.ppt

  1. 1、本文档共107页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数制转换 在一个函数中需要用到某个函数的功能时,就调用该函数。调用者称为主调函数,被调用者称为被调函数。 1. 函数调用的一般形式 函数调用的一般形式: 函数名 {实际参数列表}; 若被调函数是有参函数,则主调函数必须把被调函数所需的参数传递给被调函数,即将实参传递给形参——数据传递是单向的,实参与形参的类型必须一致,否则会发生类型不匹配的错误。 形参在函数未调用之前,并不占用实际内存单元。只有当调用时,形参才分配内存单元,这时实参和形参位于内存中不同的单元。调用结束后,形参占有的内存释放,而实参所占有的单元仍保留并维持原值。 C3.4 C51语言的函数 C3.4.3 函数的的调用 2. 函数调用的3种方式 (1). 被调用的函数名作为调用函数的一个语句 例如: print_message( ); 此时,并不要求函数返回结果数值,只要求函数完成某种操作。 (2). 函数结果作为表达式的一个运算对象 例如: result=2*gcd(a,b); 被调用的函数gcd的返回值参加表达式运算:乘2后再赋给result。 (3). 函数结果作为另一个函数的实参 例如: m=max(a,gcd(u,v)); 其中,gcd(u,v)是一次函数调用,它的返回值作为另一个函数的max( )的实参之一。 C3.4 C51语言的函数 C3.4.3 函数的的调用 3. 对调用函数的说明 在一个函数调另一个函数调用另一个函数时,须具备以下条件: (1). 被调用的函数必须是已经存在的函数( 库函数或用户自定义的函数 )。 (2). 如果程序中使用了库函数,或使用了不在同一文件中的另外自定义函数,则应该在程序的开头处使用#include语句,将所有的函数信息包含到程序中来。 例如,#includestdio.h,将标准的输入、输出头文件stdio.h(在函数库中)包含到程序中来。 在程序编译时,系统会自动将函数库中的有关函数调入到程序中去,编译出完整的程序代码。 C3.4 C51语言的函数 C3.4.3 函数的的调用 (3). 若自定义函数与调用它的函数同在一个文件中,则应根据调用函数与被调用函数在文件中的位置,决定是否对被调用函数作出说明。 C3.4 C51语言的函数 C3.4.3 函数的的调用 ①若被调用函数定义在后,一般应在调用函数中,在调用之前,对被调用函数作出说明。 ②若被调用函数定义在前,不用对被调用函数进行说明。 ③若在所有函数定义之前,在文件的开头处,在函数的外部已经说明了函数的类型,则在主调用函数中不必对所调用的函数进行说明。 例如: void main( ) { int max(x,y); //对被调用函数说明 int a=10,b=5,c; c=max(a,b); ···} int max(x,y) //函数定义 int x,y; {···} 由于标准C没有处理单片机中断的定义,由此C51增加了一个扩展关键字interrupt。使用interrupt将一个函数定义成中断服务函数。对于中断服务函数,编译时会自动添加了相应的现场保护、恢复现场等,因而用户在编程时可不必考虑这些问题,减小了编程的繁琐程度。 中断函数一般形式为:viod 函数名( ) interrupt n using n interrupt后的 n是中断号,n取值为0~4,分别对应5个中断源:外中断0、T0中断、外中断1、T1中断、串行口中断。 using后的 n是中断函数中所采用的工作寄存器组号,n取值0~3,分别对应通用工作寄存器区:第0组、第1组、第2组、第3组。 using是选项可省略。若没有使用using,中断函数中使用原指定的工作寄存器组,但使用前将其内容保存到堆栈中,返回时复原。 C3.4 C51语言的函数 C3.4.4 中断服务函数 1. 变量 (1). 局部变量 在一个函数内部定义的变量叫局部变量,它只在该函数内部有效。 (2). 全局变量 在函数外定义的变量叫全局变量,有效区间是从定义开始到源文件结束,其间的所有函数都可直接访问该变量。 如果全局变量定义前的函数、或本文件之外的源文件需要访问该变量,则要使用extern关键词对该变量进行说明。 C3.4 C51语言的函数 C3.4.5 变量及存储方式 例如: int m; //全局变量定义 void main( ) { int a,c;

文档评论(0)

a336661148 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档