网站大量收购独家精品文档,联系QQ:2885784924

单片机原理及接口技术—基于C51 Proteus仿真(第二版)课件 第1--3章 概述;硬件结构; C51语言编程基础.ppt

单片机原理及接口技术—基于C51 Proteus仿真(第二版)课件 第1--3章 概述;硬件结构; C51语言编程基础.ppt

  1. 1、本文档共202页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

您可能关注的文档

文档评论(0)

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

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档