- 1、本文档共202页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
*3.7C51语言的函数函数是一个能完成一定功能的代码段。在C51语言中,函数是描述“子程序”和“过程”的术语。C51语言程序设计中,函数的数目不受限制,但一个C51程序必须至少有一个主函数,以main为名,主函数是唯一的,整个程序从主函数开始执行。C51语言还可建立和使用库函数,可由用户根据需求调用。*3.7.1函数的分类从结构上分,函数分为两种:主函数main()和普通函数。普通函数又分为标准库函数和用户自定义函数两种。1.标准库函数标准库函数是由C51编译器提供的。善于利用标准库函数,可提高编程效率。在调用C51库函数时,仅需要包含具有该函数说明的头文件即可。2.用户定义的函数函数定义的一般格式如下:函数类型函数名(形式参数表)[reentrant][interruptm][usingn]形式参数说明{ 局部变量定义 函数体}*函数说明如下。(1)函数类型函数类型说明了函数返回值的类型。(2)函数名函数名是用户为自定义函数取的名字,以便调用函数时使用。(3)形式参数表形式参数表列出在主调函数与被调用函数间数据传递的形式参数。*【例3-13】定义一个返回两个整数的最大值的函数max()。intmax(intx,inty){intz;z=xy?x:y;return(z);}也可以用成这样:intmax(x,y)intx,y;{intz;z=xy?x:y;return(z);}*(4)reentrant修饰符 reentrant用于把函数定义为可重入函数,允许函数被递归调用。注意重入函数被调用时,实参表内不允许使用bit类型的参数。函数体内也不允许存在任何关于位变量的操作,更不能返回bit类型的值。(5)interruptm修饰符 在C51程序设计中,使用interruptm修饰符定义中断服务函数,系统编译时会自动添加现场保护、返回时自动恢复现场等程序段,并按MCS-51系统中断的处理方式将此函数安排在程序存储器中的相应位置。*m为中断号,对于MCS-51子系列,m的取值为0~4;对于MCS-52子系列,m取值0-5。具体如下:①0——外部中断0②1——定时/计数器T0③2——外部中断1④3——定时/计数器T1⑤4——串行口中断⑥5——定时/计数器T2*编写MCS-51中断函数,需要注意如下:①中断函数不能传递参数,否则编译出错。②中断函数没有返回值,一般将其定义为void类型。③不能直接调用中断函数,否则会产生编译错误。④如果在中断函数中调用了其它函数,被调用函数所用寄存器须与中断函数一致。⑤C51语言编译器在程序开始和结束处加上相应的程序,在程序开始处将ACC、B、DPH、DPL和PSW入栈保护,结束时出栈。如有usingn修饰符,程序开始将PSW入栈后还要修改PSW中的工作寄存器组选择位。⑥C51语言编译器从绝对地址8m+3处产生一个中断向量,实现到中断函数入口地址的绝对跳转。⑦中断函数最好写在程序尾部,且禁止使用extern存储类型说明,以防其它程序调用。*【例3-14】编写一个用于统计外中断0的中断次数的中断服务程序externintx;voidint0()interrupt0using1{x++;}(6)usingn修饰符修饰符usingn用于指定本函数内使用的工作寄存器组,n的取值为0~3。在中断服务函数定义时,如果没有使用using关键字,中断函数中的所有工作寄存器的内容将被保存到堆栈中。*(3)long(长整型)long(长整型)有signedlong和unsignedlong2种。默认为signedlong。用于存放一个四字节数据。signedlong用于存放四字节带符号数,补码表示。unsignedlong,用于存放四字节无符号数。(4)float(浮点型)float型长度四个字节,格式符合IEEE-754标准的单精度浮点型数据,包含指数和尾数两部分,最高位为符号位,“1”表示负数,“0”表示正数,其次的8位为阶码,最后的23位为尾数的有效数位,由于尾数的整数部分隐含为“1”,所以尾数的精度为24位。*(5)*(指针型)指针型本身就是一个变量,在这个变量中存放的指向另一个数据的地址。(6)sfr及sfr16(特殊功能寄存器型)用于访问MCS-51单片机中的SFR数据,分sfr和sfr16两种,其中sfr为字节型,可访问MCS-51内部的所有特殊功能寄存器;sfr
您可能关注的文档
- 单片机原理及接口技术—基于C51 Proteus仿真(第二版)课件 第4、5章 80C51单片机IO端口及应用最终 ; 80C51单片机的中断系统最终.ppt
- 单片机原理及接口技术—基于C51 Proteus仿真(第二版)课件 第6、7章 80C51单片机定时器计数器最终; 单片机系统的并行扩展.ppt
- 单片机原理及接口技术—基于C51 Proteus仿真(第二版)课件 第8、9章 人机交互接口设计; 80C51单片机与DAC、ADC接口芯片的设计.ppt
- 单片机原理及接口技术—基于C51 Proteus仿真(第二版)课件 第10、11章 80C51单片机串口; 80C51单片机系统的串行扩展技术.pptx
- 单片机原理及接口技术—基于C51 Proteus仿真(第二版)课件 第12、13章 80C51单片机应用实例; Keil c51 和Proteus 虚拟仿真平台的使用.ppt
- 新编大学英语(第四版)综合教程4(智慧版)课件B4U7 Home and beyond Reading 1.pptx
- 新编大学英语(第四版)综合教程4(智慧版)课件B4U7 Home and beyond Reading 2.pptx
- 新编大学英语(第四版)综合教程4(智慧版)课件B4U7 Home and beyond Lead in.pptx
- 新编大学英语(第四版)综合教程4(智慧版)课件 B4U7 Home and beyond Further development.pptx
- 新视野大学英语(第四版)读写教程2(思政智慧版)B2U4Section B.pptx
- 新视野二版听说1第6单元示范1课件.ppt
- 【参考答案】 联络口译(第二版) 《联络口译》(第二版)参考答案.pdf
- 梅大高速茶阳路段“5·1”塌方灾害调查评估报告.docx
- 虹吸雨水PE管施工节点标准做法.pdf
- 2025消防设施施工质量常见通病防治手册,典型图示+规范要求.pptx
- 新视野大学英语(第二版)读写教程 4 空军工程大学编U05B.ppt
- E英语教程2(智慧版)Unit 6.pptx
- E英语教程3(智慧版)Unit 7.ppt
- 新视野二版读写1第4单元课件Section A How to Make a Good Impression.pptx
- E英语视听说教程4(智慧版)4-U2课件(2024版)U2.pptx
最近下载
- 初二下第一次月考试卷答案.doc VIP
- 成人破伤风急诊预防及诊疗专家共识.pptx VIP
- 第10课 建设中国特色社会主义道路(课件).pptx VIP
- 完整培训手册中文ec225_ch_21_t020_thm.pdf
- 标准图集-19K112 金属、非金属风管支吊架(含抗震支吊架).pdf
- 2025年辽宁经济职业技术学院单招职业技能测试题库及完整答案1套.docx VIP
- 20231126-广发证券-美的集团-000333-ToC深化全球布局,ToB转型驱动增长.pdf
- 山东省青岛第五十八中学2025届高三上学期一模英语试卷(含答案).docx VIP
- CFA一级百题进阶:固收.doc
- 山东省济南市2025中考数学模拟(一模)试题按题型难易度分层分类汇编(14精品.pdf VIP
文档评论(0)