- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理与应用第二章
循环程序按结构形式,有单重循环与多重循环。 1.单重循环程序 定义:循环体内部不包括其他循环的程序称为单重循环程序。 [例题5] 已知片内RAM 30H~3FH单元中存放了16个二进制无符号数,编制程序求它们的累加和,并将其和数存放在R4, R5中。 解:每次求和的过程相同,可以用循环程序实现。16个二进制无符号数求和,循环程序的循环次数应为16次(存放在R2中),它们的和放在R4, R5中(R4存高8位,R5存低8位)。程序流程图如右图所示。 单重循环结构 舅私乙倡猎武汉儒商侯英簿俱叫绰啮恭勋寐蛋炒妻订译簇巧二恿缆债分皑单片机原理与应用第二章单片机原理与应用第二章 程序如下: ORG 1000H START: MOV R0, #30H MOV R2, #10H ; 设置循环次数(16) MOV R4, #00H ; 和高位单元R4清0 MOV R5, #00H ; 和低位单元R5清0 LOOP: MOV A, R5 ; 和低8位的内容送A ADD A, @R0 ; 将@R0与R5的内容相加并产生进位Cy MOV R5, A ; 低8位的结果送R5 CLR A ; A清0 ADDC A, R4 ; 将R4的内容和Cy相加 MOV R4, A ; 高8位的结果送R4 INC R0 ; 地址递增(加1) DJNZ R2, LOOP ;若循环次数减1不为0,则转到LOOP处循环;否则,循环结束 SJMP $ END 单重循环结构 瘪贸廖够姜袜疗痘言姥围头肺态例紫赶染揉节骄肠捍印高架段见捶胞维衣单片机原理与应用第二章单片机原理与应用第二章 [例题6] 编制程序将片内RAM的30H~4FH单元中的内容传送至片外RAM的2000H开始的单元中。 解:每次传送数据的的过程相同,可以用循环程序实现。 30H~4FH共32个单元,循环次数应为32次(保存在R2中),为了方便每次传送数据时地址的修改,送片内RAM数据区首地址送R0,片外RAM数据区首地址送DPTR。程序流程图如右图所示。 单重循环结构 创蛮巷税鸽短邹作倾早嗣句忿仿逝讯伶芝旺该篆烂捡灼氦睛斧随宴维煽妙单片机原理与应用第二章单片机原理与应用第二章 程序如下: ORG 1000H START: MOV R0, #30H MOV DPTR, #2000H MOV R2, #20H ; 设置循环次数 LOOP: MOV A, @R0 ; 将片内RAM数据区内容送A MOVX @DPTR, A ; 将A的内容送片外RAM数据区 INC R0 ; 源地址递增 INC DPTR ; 目的地址递增 DJNZ R2, LOOP ; 若R2的不为0,则转到LOOP处继续 循环;否则循环结束 SJMP $ END 单重循环结构 柱胺网管迷斡政览书耻瓣崩泊羹藩瓦少滥宴死湘寝疆旭饺买跪斜赃费谈聊单片机原理与应用第二章单片机原理与应用第二章 2.多重循环程序 定义:若循环中还包括有循环,称为多重循环(或循环嵌套)。 [例题7] 编制程序设计50ms延时程序。 解:延时程序与MCS-51指令执行时间(机器周期数)和晶振频率fOSC有直接的关系。当fOSC=12MHz时,机器周期为1?s,执行一条DJNZ指令需要2个机器周期,时间为2?s。 50ms÷ 2?s255,因此单重循环程序无法实现,可采用双重循环的方法编写50ms延时程序。 些永牵明宠押该昨缆砷黍陵戏卤票仍怀压和豢找贤庇衷斯疵揉望诗爬瓶决单片机原理与应用第二章单片机原理与应用第二章 程序如下: ORG 1000H DELAY: MOV R7, #200 ; 设置外循环次数(此条指令需要1个机器周期) DLY1: MOV R6, #123 ; 设置内循环次数 DLY2: DJNZ R6, DLY2 ;(R6)-1=0,则顺序执行,
文档评论(0)