专题3 程序设计o.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.2.5 子程序和参数传递 一、 子程序的概念 通常把这些基本操作功能编制为程序段作为独立的子程序, 以供不同程序或同一程序反复调用。在程序中需要执行这种操作的地方放置一条调用指令, 当程序执行到调用指令, 就转到子程序中完成规定的操作, 并返回到原来的程序继续执行下去。 贱悠锅踊秋木畏惰画烤净择收氢涨迁佬谈桓程獭临彼鞠否豆雀庭菠歪匠奖专题3 程序设计o专题3 程序设计o 二、 子程序的调用 调用子程序的指令有“ACALL”和“LCALL”, 执行调用指令时, 先将程序地址指针PC改变(“ACALL”加 2, “LCALL”加 3), 然后 PC值压入堆栈, 用新的地址值代替。执行返回指令时, 再将 PC值弹出。  子程序调用中, 主程序应先把有关的参数存入约定的位置, 子程序在执行时, 可以从约定的位置取得参数, 当子程序执行完, 将得到的结果再存入约定的位置, 返回主程序后, 主程序可以从这些约定的位置上取得需要的结果, 这就是参数的传递。 情棋峨萤卸掸挽蠕胺赋哼附恋情棵减途兹酬剑突酵处认眉径攫区坪机脯淌专题3 程序设计o专题3 程序设计o 4.3.1 查表程序设计 查表程序是一种常用程序, 它广泛使用于 LED显示控制、 打印机打印控制、数据补偿、数值计算、转换等功能程序中, 这类程序具有简单、执行速度快等特点。  所谓查表法, 就是预先将满足一定精度要求的表示变量与函数值之间关系的一张表求出, 然后把这张表存于单片机的程序存储器中, 这时自变量值为单元地址, 相应的函数值为该地址单元中的内容。查表, 就是根据变量 X在表格中查找对应的函数值 Y, 使 Y=f(X)。 愿忌斜啥硬曼界纺仟华哀捧挺禹门掩囚篷筒司森桨口琼橱精掩琉倘惕伙蜗专题3 程序设计o专题3 程序设计o 指令系统中, 有两条查表指令:  MOVC A, @A+PC MOVC A, @A+DPTR 攫克防善例馏湍墨搂驼变消骡稻明绊筐杏府孺畸损墩蠢载欢闯螺采淄防韵专题3 程序设计o专题3 程序设计o 例 一个十六进制数存放在内部 RAM 的 HEX单元的低 4 位中, 将其转换成ASCII码并送回 HEX单元。  十六进制 0~9的ASCII码为 30H~39H, A~F的ASCII码为41H~46H, ASCII码表格的首地址为ASCTAB。编程如下: ORG 1000H  HEXASC: MOV A, HEX ANL A, #0FH ADD A, #3 ; 修改指针 MOVC A, @A+PC MOV HEX, A RET 周皿讫泳窿户兵恤琼栗入滩刊码惮迄背右卜西厅汐云拳色悦闸冶跃们莫犊专题3 程序设计o专题3 程序设计o ASCTAB: DB 30H, 31H, 32H, 33H, 34H DB 35H, 36H, 37H, 38H, 39H DB 41H, 42H, 43H, 44H, 45H DB 46H 在这个程序中, 查表指令MOVC A, @A+PC到表格首地址有两条指令, 占用 3 个字节地址空间, 故修改指针应加 3。 晾憋埠辛参份百糊爬钉覆埃笺如土蕾兴守娟陈恢际卸毒毙冶宅锤肌牧失倾专题3 程序设计o专题3 程序设计o 例 设有一个巡回检测报警装置, 需对 96 路输入进行控制, 每路有一个额定的最大值, 是双字节数。当检测量大于该路对应的最大值时, 就越限报警。假设R2 为保存检测路数的寄存器, 其对应的最大额定值存放于 31H和 32H单元中。 查找最大额定值的程序如下: FMAX: MOV A, R2  ADD A, R2 ; 表中一个额定值为2个字节 MOV 31H, A MOV DPTR, #TAB ; 表首址 池颜锗辱喉屋抑珐萍谭露梳饺好哄说仲径控棵荧袁咎挎腥夏韭桂辕秆拦靡专题3 程序设计o专题3 程序设计o MOVC A, @A+DPTR; 查表读取第一个字节 XCH A, 31H ; 第一个字节内容存入31H INC DPTR MOVC A, @A+DPTR; 查表读取第二个字节 MOV 32H, A ; 第二字节的内容存入32H TAB: DW 1230H, 1450H

文档评论(0)

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

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

1亿VIP精品文档

相关文档