[]第六章C51语言.ppt

  1. 1、本文档共104页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[]第六章C51语言

(2) 类型说明符 所谓类型是指函数返回值的类型 unsigned char------------字符型 char------------------------字符型 unsigned int--------------整型 int--------------------------整型 unsigned long------------长整型 long------------------------长整型 float------------------------浮点型 struct-----------------------结构体 union-----------------------共用体 void-------------------------无返回值 bit---------------------------位变量 (3) 函数标识符 函数标识符即函数名。 · 函数名() 带或不带返回值的函数。 · * 函数名() 返回指针的函数。 · (* 函数名)(void)定义带或不带返回值的无参数函数 指针。 · (* 函数名)(形参表)定义带或不带返回值的有参数 函数指针 · *(* 函数名)(void)定义返回指针的无参函数指针 · *(* 函数名)(形参表)定义返回指针的有参函数指针 (4)形参表 形参表是传入函数的形式参数表 (5)附加修饰符部分 a. reentrant 使用这个修饰符说明该函数为再入函数。所谓再入函数就是允许被嵌套调用的函数。调用可发生在任何时候,即使是在中断过程中, 在实时处理的应用问题中常常需要再入函数。 由于MCS一51缺乏合适的寻址方法,使用栈结构相对来说是必要的。因而应尽量少用再入函数。 定义一再入函数的语法如下: 返回值函数名([参数])[模式]reentrant[interrupt n][using n] 例如:int calc(char i, int b)reentrant { int x; x=table[i]; return(x * b);} b. interrupt n “interrupt”后接一个0~31的常整数,不允许使用表达式。 中断不允许用于外部函数,它对函数目标代码的影响下: *当调用函数时,SFR中的ACC.B, DPH, DPL和PSW(当需要时)入栈;(自动完成) *如不使用寄存器组切换,甚至中断函数所需的所有工作寄 存器(Rn)都入栈; *函数退出前,所有的寄存器内容出栈; *函数由8051控制命令“RETI”终止。 extern bit alarm; int alarm_count; void falarm(void) interrupt 1 using 3 { alarm_count *= 2; alarm = 1; } ; FUNCTION falarm (BEGIN) 0000 COEO PUSH ACC 0002 CODO PUSH PSW ; SOURCE LINE # 5 ; SOURCE LINE # 6 0004 E500 R MOV A,alarm_count+01H 0006 25E0 ADD A,ACC 0008 F500 R MOV alarm_count+01H,A 000A E500 R MOV A,alarm_count 000C 33 RLC A 000D F500 R MOV alarm_count,A ; SOURCE LINE # 7 000F D200 E SETB alarm ; SOURCE LINE # 8 0011 D0D0

文档评论(0)

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

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

1亿VIP精品文档

相关文档