李朝青--单片机原理及接口技术 (第3版)第10章 系统实用程序.pdfVIP

李朝青--单片机原理及接口技术 (第3版)第10章 系统实用程序.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档