- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 系 统 实 用 程 序
本章将介绍主程序、子程序的概念以及应用系统的一些
实用程序。
10.1 主程序和子程序
10.2 数据采集及简单控制程序
10.3 数据处理程序
10.4 代码转换程序
10.5 软件抗干扰
10.6 最短程序
10.1 主程序和子程序
10.1.1 主程序
• 主程序是单片机系统控制程
序的主框架。
• 是一个顺序执行的无限循环
的程序
• 运行过程必须构成一
个圈。
10.1.2 子程序及参数传递
• 在程序设计中,有时需反复执行某段
程序。通常把具有一定功能的公用程序
段作为子程序。
• 在主程序需要执行这种操作的地方执
行一条调用指令,转到子程序去执行;
完成规定操作以后,再返回到原来的
程序(主程序)继续执行。
子程序调用中的参数传递问题
常用工作寄存器、累加器、地址指针寄存器或堆栈来传递参数。
1. 用工作寄存器 Rn 或累加器 A 来传递参数
2 2
【例10-1】用程序实现 c=a +b 。
设:a、b和c分别存于内部RAM的DA、DB和DC 3个单元中。
通过两次调用子程序查平方表,结果在主程序中相加得到。
其入口条件是:(A)=待查表的数;出口条件是(A)=平方值。
主程序片段:STAR:MOV A,DA ;取第一操作数
ACALL SQR ;调用查表程序
MOV R1,A ;a 2暂存R1中
MOV A,DB ;取b
ACALL SQR ;第2次调用查表程序
ADD A ,R1 ;a 2+b2→A
MOV DC,A ;结果存于DC中
SJMP $ ;等待
子程序片段:SQR:INC A ;偏移量调整(RET一字节)
MOVC A,@A+PC ;查平方表
RET
TAB:DB 0,1,4,9,16
DB 25 ,36,49,64,81
END
2. 用指针寄存器来传递参数
如果参数在片内RAM中,则可用 R0 或 R1 作指针;
如参数在片外RAM或程序存储器中,则可用 DPTR 作指针。
【例10-2】
将R0和R1指出的内部RAM中两个3字节无符号整数相加,
结果送到由R0指出的内部RAM中。
入口时,R0和R1分别指向加数和被加数的低位字节;
出口时,R0指向结果的高位字节。低字节在低地址。
NADD: MOV R7,#3 ;3字节加法
CLR C
NADD1 :MOV A,@R0 ;取加数低字节
ADDC A,@R1 ;取被加数低字节并加到A
MOV @R0,A
DEC R0
DEC R1
您可能关注的文档
- 结构陶瓷材料及其应用(杨金龙)第六讲近代传统陶瓷的进步及特种陶瓷的崛起.pdf
- 结构陶瓷材料及其应用(杨金龙)2013《结构陶瓷材料及其应用》文字讲义.pdf
- 结构陶瓷材料及其应用(杨金龙)第二讲2013中华名窑.pdf
- 结构陶瓷材料及其应用(杨金龙)第三讲补充文字资料《陶瓷装饰与釉》.pdf
- 结构陶瓷材料及其应用(杨金龙)第四讲补充文字讲义《陶瓷雕塑》.pdf
- 结构陶瓷材料及其应用(杨金龙)第五讲2013古陶瓷鉴定学.pdf
- 结构陶瓷材料及其应用(杨金龙)第三讲2013陶瓷装饰与釉.pdf
- 结合机器视觉的采摘机械手的定位仿真研究.pdf
- 结构陶瓷材料及其应用(杨金龙)第五讲补充文字讲义《古陶瓷鉴定学》.pdf
- 介绍《为未知而教,为未来而学》.pptx
文档评论(0)