网站大量收购独家精品文档,联系QQ:2885784924

计算机常用的编程语言程序设计是为解决某个问题而用计算机所能接...幻灯片.ppt

计算机常用的编程语言程序设计是为解决某个问题而用计算机所能接...幻灯片.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.2.5 循环程序设计 图4.3 循环程序流程图 4.2.5 循环程序设计 【例】 【功能】n个单字节数相加,和为双字节,存放在(R3、R4)中。 【入口参数】单字节数Xi存放在从40H开始的RAM单元中,n放在R2中。(R2作为控制变量,R0作为变址单元 ) 【出口参数】和存放在(R3、R4)中。 ADD1: MOV R3, #00H MOV R4, #00H MOV R2, #n MOV R0, #40H LOOP: MOV A, R4 ;取部分和低位 ADD A, @R0 ;与Xi相加 MOV R4, A INC R0 ;地址加1 CLR A ADDC A, R3 ;低位字节向高位字节进位 MOV R3, A DJNZ R2, LOOP ;未加完继续重复 4.2.5 循环程序设计 【例】 【功能】设计一个延时10ms的程序。 【分析】延时程序的延时主要与所用晶振和延时程序中的循环次数 有关。已知AT89C51单片机使用的晶振为12MHz,则可知一个机器周期为1。 【入口参数】(R0)=毫秒数,(R1)=1ms延时预定值。 【出口参数】定时到,退出程序。 ORG 2000H 指令机器周期数 1 MOV R0 , #0AH ;毫秒数→R0 1 2 DL2: MOV R1 , #MT ;1ms延时值→R1 1 3 DL1: NOP 1 4 NOP 1 5 DJNZ R1 , DL1 ;1ms延时循环 2 6 DJNZ R0 , DL2 ;10ms延时循环 2 4.2.5 循环程序设计 该延时程序是一个双重循环程序,内循环1ms延时的预定值MT需计算: (1+1+2)×1×MT=1000() ?  MT=250=0FAH 用0FAH代替程序中的MT,则该程序执行后,能实现10ms的延时。 若考虑第1、2、6行延时参数配置指令的时间因素,则该段延时程序的精确延时时间计算式为:   1×1+(1+2)×1×10+(1+1+2)×1×250×10=10.031ms 4.2.6 逻辑操作程序设计 计算所的智能作用体现在它具有判断能力,逻辑判断的实质是对逻辑关系进行程序模拟。MCS-51单片机具有丰富的逻辑操作和位操作指令,为程序来 模拟原来由硬件所能实现的逻辑功能提供了方便。 【例】设P1口的P1.0~P1.3为准备就绪信号输入端,当该4位全为1时,说明各项工作已准备好,单片机可顺序执行主程序,否则循环等待。试编写程序。 程序如下: ORG 2000H LOOP: MOV A,P1 ;P1内容送A ANL A,#0FH ; 屏蔽高4位 CJNE A,#0FH,LOOP ;低4位不全为1,等待循环 MAIN: …... 4.2.7 子程序设计 按功能分为中断子程序和功能子程序。 调用子程序时要注意: (1)中断子程序调用由单片机自身产生,执行RETI指令 返回;功能子程序调用由主程序执行LCALL或ACALL 指令产生,执行RET指令返回。 (2)在子程序中,应包含有现场保护和现场恢复两部分。 (3)主程序和子程序约定好交换数据的地址单元或存储 器,其为主、子程序共有部分。 (4)子程序可以对另外的子程序调用,称为子程序嵌套。 4

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档