- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机第五章:C语言程序设计
5.3.1 函数 5.可重入函数 C编译程序通常将函数的局部变量分配在存储器的固定位置 如果正在执行该函数时发生了中断,而中断服务程序中也调用该函数,先前的局部变量值便会被破坏。 类似的情况在实现函数递归调用时也会发生 定义为可重入函数后,编译程序产生能够保护局部变量的代码 reentrant 5.3.1 函数 6.中断处理函数 中断服务程序,是CPU响应中断后要执行的一段程序,在C语言中组织成一个函数的形式 编写中断处理函数时,程序员仅需关心中断类型号和寄存器组的选择,编译程序会自动产生中断向量和返回地址的入栈及出栈代码 interrupt using 5.3.1 函数 7.intrinsic函数 一些常用的只进行简单处理的函数,LCALL或ACALL的执行代价太高 intrinsic函数是一类用汇编语言代码实现的短小函数,若有对intrinsic函数的调用,编译程序将会直接用被调用函数代码替换函数调用语句 5.3.2 流程控制 1.分支 if语句 switch-case结构 2.循环 goto语句 while结构 do…while结构 for结构 break和continue语句 5.3.3 输入与输出 一些C开发环境提供了流式输入/输出函数,可以实现通过串行口或用户自定义I/O接口的输入/输出操作,例如getchar、gets、scanf、putchar、puts、printf等 输入/输出功能需要调用_getkey和putchar两个函数,这两个函数的默认实现是通过串行口实现的 如果使用输入/输出函数,还需要在程序中加入一些代码,以便调用时已经对串行口进行了适当的初始化工作 5.3.4 程序的入口 在main函数执行之前,已经做了一些初始化 若有在main函数执行之前就应当初始化的资源,或者需要将存储区初始化为特定的值,可以在STARTUP.A51中修改或添加代码 单片机程序的入口其实还是0000H,在STARTUP.A51中初始化代码的最后一条指令才转向main函数执行 5.4 C语言与汇编语言的混合编程 5.4 C语言与汇编语言的混合编程 C语言调用汇编语言程序时,被调用函数(汇编语言函数)要在调用函数(C语言函数)所在文件中说明。对于汇编语言程序有以下要求 (1) 要使用SEGMENT伪指令定义可重定位的CODE段 (2) 要根据不同情况对函数名进行转换 (3) 须使用PUBLIC伪指令将被调用函数说明为外部可用函数 (4) 若有参数传递,按规则使用参数 (5) 若有返回值,按照规则存入寄存器 5.4 C语言与汇编语言的混合编程 函数首部 符号名 说明 void func( void ) FUNC 无参数传递或不含寄存器参数的函数名不作改变 void func( char ) _FUNC 带寄存器参数的函数名加“_”前缀 void func( void ) reentrant _?FUNC 可重入函数前加“_?”前缀 混合编程 例:编写汇编语言函数max,参数为两个8位无符号数,功能是求出其中的大数返回。 在C语言中可按以下的方式声明和调用 extern unsigned char max(unsigned, unsigned); void main(void) { unsigned char x,y; x = 130; y = 131; x = max(x,y); while(1); } 两个参数分别在R7和R5中传递到子程序,返回值应保存在R7中。 混合编程 PUBLIC _MAX ;声明 MIXED SEGMENT CODE ;定义一个可重定位的段 RSEG MIXED ;选择MIXED为当前段 _MAX:MOV A, R7 ;第一个参数 CLR C SUBB A, R5 ;减去第二个参数 JNC _MAX_RET ;无借位,第一个参数值大 MOV A, R5 ;有借位,第二个参数值大 MOV R7, A ;返回值在R7 _MAX_RET: RET END 《单片机应用系统设计》教学课件 第5章 MCS-51 C语言程序设计 5.1 C语言与MCS-51单片机 C语言是一种通用的计算机程序设计语言,代码效率高,数据类型和运算符丰富,有良好的程序结构,适用于各种应用系统的程序设计,是目前使用较广的单片机编程语言。 本章重点介绍在单片机上使用MCS-51 C语言的特殊数据类型、存储模式、程序的结构、混合编程。 5.1.1 C语言程序开发过程 一
您可能关注的文档
- 华师版数学八年新教材培训.ppt
- 十五连2013年上半年精神文明建设汇报材料.ppt
- 千医心内科迎评工作介绍.ppt
- 《窗口》(活动2)课件.ppt
- 中考数学总复习26矩形菱形与正方形.ppt
- 中考数学总复习22三角形与全等三角形.ppt
- Unit6 Do you like banana是SectionB.ppt
- 中国北方(天津)养老产业总部基地项目投资建议.ppt
- 人教版七年级地理上册课件:4.3《人类的聚居地》.ppt
- 军事理论课 专题.ppt
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
最近下载
- 通用学术英语进阶(北京科技大学)中国大学MOOC(慕课)章节测验试题(答案).pdf
- 必威体育精装版部编版语文期末复习三年级非连续性文本阅读(附参考答案).docx
- 政务服务中心软硬件项目运维服务方案2.doc VIP
- 火力发电厂直接空冷工程技术规范初稿.doc
- 2024年河北省继续医学教育公共选修课参考答案.pdf VIP
- 老友记台词剧本第一季第1集中英双语左右对照.pdf
- 2024-2025学年广东省广州市省实教育集团初三数学试题第一次模拟考试试题含解析.doc VIP
- 【国家标准】国家职业技能标准 (2019年版) 起重装卸机械操作工.pdf
- 肺结核诊疗方案毕业设计.docx
- 2024年广东省职业院校技能大赛(中职组)智慧物流作业赛项考试题库(含答案).docx VIP
文档评论(0)