- 41
- 0
- 约2.49千字
- 约 12页
- 2020-08-29 发布于北京
- 举报
Application and Development of Microcontroller 《单片机应用开发》课程 主讲教师 刘德新 移动通信技术专业教学资源库 深圳信息职业技术学院电子与通信学院 单片机的 函数 目录 01 单片机的函数格式 02 单片机的属性解释 03 单片机的扩展解释 1.单片机的函数格式 EDITED BY LIU DEXIN * 单片机应用开发 C51函数声明对标准C函数进行了扩展,具体包括: ⑴ 可指定一个函数作为一个中断函数 ⑵ 根据需要,选择所使用的寄存器组 ⑶ 选择不同的存储模式 ⑷ 指定是否为重入函数 1.单片机的函数格式 EDITED BY LIU DEXIN * 单片机应用开发 在函数声明中,可以包含下面的扩展和属性。声明C51函数的完整标准格式为: [return_type] funcname([args])[{small|compact|large}][reentrant][interrupt n][using m] 其中: return_type:函数的返回值类型,缺省类型为int funcname:函数名,符合标识符的命名规则 args:函数的参数表列 small|compact|large:函数的存储模式 reentrant:表示函数是否为重入函数 interrupt:表示本函数为中断函数 using:指定本函数所用的存储器区 2.单片机的属性解释——参数 EDITED BY LIU DEXIN * 单片机应用开发 一般通过单片机的存储器,最多可传递三个参数。这样产生结果,与有效参数机制的汇编子程序相当。如果寄存器被占用,或说明了“#pragma NOREGPARMS”,那么参数变量将使用固定的存储器位置,存储器模式决定了单片机存储器为参数提供的位置。 参数传递时的寄存器 func1(int a) //“a”是第一个参数,将利用R6,R7传递。 func2(int a ,int b) //“a”利用R6,R7传递,“b”利用R4,R5传递。 func3(int a ,int b ,int *c) //“a”利用R6,R7传递,“b”利用R4,R5传递,而“c”则是利用R1,R2,R3来传递。 EDITED BY LIU DEXIN * 单片机应用开发 3.单片机的扩展解释——存储模式切换 函数的参数和局部变量,均保存在由存储模式指定的缺省存储空间中,但是在单个函数,可以在函数声明中用small、compact或large声明来指定存储模式。例如: #pragma small //缺省为small模式 extern int func(int i , float f) large; int large_func(int i, int k) large //large 模式 { return (mtest(i, k)+2); } 函数尽量使用small存储模式。使用small存储模式的好处是,局部变量和函数的参数都保存在单片机的内部RAM中,访问效率高。但是,内部RAM的空间是有限的,很多情况下small模式不能满足程序设计的要求,这样就使用其它存储模式。 单片机应用开发 3.单片机的扩展解释——寄存器组切换 单片机将内部RAM的最低32个字节分成了4个寄存器组,每个寄存器组包括8个寄存器(R7~R0)。C51编译器可以在一个函数中决定用哪一寄存器组成为可能 例:void rb_function(void) using m {…………} 上例中m是取值为0~3的整数常量,不允许是任何表达式 “using”不允许用于外部函数,它对函数的目标代码影响如下: 函数入口处将当前寄存器保存入栈; 设置指定的寄存器组; 函数退出前寄存器组被恢复。 单片机应用开发 3.单片机的扩展解释——寄存器组切换 “using”定义对于返回一个寄存器内的值的函数是无用的,所以必须十分小心,以保证任何寄存器切换都只在自己控制的区域发生。所以一般在使用using的函数前的返回值类型加上void。 如果不做到上述这一点,那么将会产生不正确的函数结果 即使当用户使用同一寄存器组时,带“using”属性的函数原则上也不能返回一个位值 using在中断函数中应用最为广泛 单片机应用开发 3.单片机的扩展解释——重入函数 多个函数可以同时使用一个重入函数。当一个重入函数被调用运行时,另外的一个函数可能中断此运行过程,然后再次调用此重入函数。通常情况下,C
您可能关注的文档
- 大数据技术应用(国家) 技能点2:建立编写MapReduce程序的依赖包 建立编写MapReduce程序的依赖包.pptx
- 大数据金融 大数据与证券 股票价值评估.pptx
- 大数据金融 供应链金融风险类型 项目七 知识点7 供应链金融贸易真实性风险.pptx
- 大学生创新创业课程 专业名词 6.市场预测.ppt
- 大学生创新创业课程 专业名词 10.撇脂定价策略.ppt
- 大学生创新创业课程 专业名词 11.渗透定价策略.ppt
- 大学生就业指导 面试准备 【学习课件2】面试全攻略.ppt
- 大学生就业指导 模块2 明确目标——大学生职业选择、大学生就业指导 明确目标——大学生职业选择.pptx
- 大学生就业指导 子任务一防范就业陷阱 【学习课件】防范就业陷阱.pptx
- 大学生就业指导 子任务一分析就业形势 【学习课件】分析就业形势.pptx
最近下载
- (二模)苏北七市2025届高三第二次调研测试化学试卷(含标准答案).pdf
- 家校协同育人实施方案.docx
- 《数学(拓展模块一)上下册》中职数学课程全套教学课件.pptx
- 桥梁、涵洞施工方案.docx VIP
- 2026年春教科版(新教材)小学科学三年级下册(全册)教学设计(附教材目录P131).pdf
- 2025年供应链管理知识考试试题及答案解析 .docx VIP
- 5G通信基站安装协议.docx
- 煤矿井下供电的三大保护细则.docx VIP
- Unit 1 - Unit 4 课文原文及中文翻译 2025-2026学年译林版英语八年级下册.docx VIP
- 法理学(中国人民大学) 超星尔雅学习通章节测试答案.docx VIP
原创力文档

文档评论(0)