- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
需要多次重复执行某段程序,可采用循环结构程序。典型的循环结构包括如下3部分: (1)循环初始化 循环前的准备,设置循环初始值。初始化指令必须放在循环体的外面,只能执行一次。 (2)循环体 循环体是循环重复执行部分,包括循环变量的修改,每循环一次,充当循环变量的计数器或指针减1。 * MCS-51单片机原理与应用 * 5.3.3 循环结构程序设计 (3)循环控制 控制循环的执行或结束,判断循环变量是否满足终值条件,若不满足则继续循环,否则终止循环。 按循环的执行方式来看,分为当型循环和直到型循环。 例5.6 分析例4.16循环程序。 解:直到型循环, 其特点是“先执行,后判断”,先执行循环体,即执行加法运算和循环变量R0减1,后判断循环条件R0是否为0,从而确定下一次循环该不该执行。 * MCS-51单片机原理与应用 * 当型循环特点是“先判断,后执行”,先判断循环条件R0是否不等于0,来确定本次循环该不该执行,只有循环条件满足其后才会执行循环体。 * MCS-51单片机原理与应用 * 汇编源程序如下: ORG 0030H START: CLR A MOV R0,#0AH SJMP LOOP1 LOOP: ADD A, R0 DEC R0 LOOP1: CJNE R0, #00H, LOOP MOV 30H,A END START * MCS-51单片机原理与应用 * 按循环终止条件来看,分为计数循环和条件循环。计数循环的循环次数是事先确定的. 上例中的循环就是已知循环次数的计数循环,充当循环变量R0的初值为10,终值为0,步长为1,这样就可以算出总共要执行10次循环。 未知循环次数,但已知循环终止的条件,称为条件循环。 * MCS-51单片机原理与应用 * 例5.7 在内部RAM单元31H起存放了一个长度小于256的字符串,该字符串以0DH(CR)为终止标志,试编程统计其长度,并存入30H单元中。 解:本例的算法流程如图。这是一个条件循环,循环条件是当A =0DH时,终止循环。 * MCS-51单片机原理与应用 * 汇编源程序如下: ORG 0030H START: MOV R0,#30H ;R0←30H MOV R1,#FFH ;R1←FFH LOOP: INC R0 ;R0←R0 + 1 INC R1 ;R1←R1 + 1 MOV A,@R0 ;A←(R0) CJNE A,#0DH, LOOP ;R0 ≠ 0DH继续循环 MOV 30H,R1 ;存长度,30H←(R1) END START 若循环体内不含另外的循环程序称为单重循环;若又包含另外完整的循环程序称为循环的嵌套,循环的嵌套可以是多重的。 * MCS-51单片机原理与应用 * 多重循环中许多规则同高级语言一样,如只许嵌套,不许交叉;循环执行是由内向外等。 例5.8 计算单灯闪烁程序中延时子程序延时时间。 解:单灯闪烁程序延时子程序是一个双重循环,R0外循环体中包含了一个R1完整的内循环。对应的汇编子程序以及每条指令的执行机器周期数如b。 * MCS-51单片机原理与应用 * 软件延时是利用MCU执行指令都有固定的时序,是需要时间的。在使用12MHz晶振时,一个机器周期正好为为1μs,所以只要计算出延时程序执行时总的机器周期数,就是总的延时时间。 由5.8(b)可以得到:延时时间 = 1+ (1+2*195+2)*255+2 = 100218 μs = 0.1s 注意,用软件实现延时时,不允许有中断,否则将严重地影响定时的准确性。若需要延时更长的时间,可采用更多重的循环。 * MCS-51单片机原理与应用 * 需要多次重复使用的基本操作编写成相对独立的程序段,这种相对独立的能被调用的程序段被称为子程序。 调用子程序的程序叫主程序或调用程序。 子程序也是由三种基本结构组成,即顺序结构、分支结构和循环结构,但是也有其独特的结构特点: * MCS-51单片机原理与应用 * 5.4 子程序设计5.4.1 子程序的结构与参数传递 (1)入口有标号 子程序的第一条指令前必须有标号,也就是该子程序的入口地址。如用ACALL DELAY就能调用0.1秒延时子程序DELAY。 (2)尾缀RET 子程序的末尾应有RET指令,以便正确返回主程序或调用程序的断点处,继续执行。 * MCS-51单片机原理与应用 * (3)现场保护与恢复 除了在主程序中完成外,也常常在执行子程序的最前面完成保护现场,在返
原创力文档


文档评论(0)