单片机技术及应用--第四章 MCS-51程序设计.ppt

单片机技术及应用--第四章 MCS-51程序设计.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教学提示 本章重、难点在于单片机MCS-51汇编语言程序的3种基本结构形式、常用汇编语言程序设计。 教学目标 掌握汇编语言程序基本结构。 掌握程序设计的步骤和方法。 学会具体程序的应用。 4.1 三种基本程序结构 程序设计是为了解决某一个问题,将指令有序地组合在一起。程序有简有繁,有些复杂程序往往是由简单的基本程序所构成。本章将通过一些基本程序,介绍部分常用程序设计方法。 程序设计的过程大致可以分为以下几个步骤: (1) 编制说明要解决问题的程序框图。 (2) 确定数据结构、算法、工作单元、变量设定。 (3) 根据所用计算机的指令系统,按照已编制的程序框图,用汇编语言编制出源程序。 (4) 将编制出的程序在计算机上调试,直至实现预定的功能。 4.1.1 顺序程序 顺序程序是指按顺序依次执行的程序,也称为简单程序或直线程序。计算机是按指令在存储器中存放的先后次序来顺序执行程序的。除非用特殊指令让它跳转,不然它会在PC控制下执行。顺序程序结构虽然比较简单,但也能完成一定的功能任务,是构成复杂程序的基础。 【例4-1】已知16位二进制负数存放在R1、R0中,试求其补码,并将结果存放在R3、R2中。 解:二进制负数的求补方法可归结为“求反加1”,符号位不变。利用CPL指令实现求反;加1时,则应低8位先加1,高8位再加上低位的进位。注意这里不能用INC指令,因为INC指令不影响标志位。 程序如下: CONT: MOV A,R0 ;读低8位 CPL A ;取反 ADD A,#1 ;加1 MOV R2,A ;存低8位 MOV A,R1 ;读高8位 CPL A ;取反 ADDC A,#80H ;加进位及符号位 MOV R3,A ;存高8位 RET ;返回 【例4-2】将两个半字节数合并成一个1字节数。 解:设内部RAM的40H、41H单元中分别存放着8位二进制数。 要求取出两个单元中的低半字节,合并成一个字节后,存放在42H单元中。 程序如下: ORG 0000H START: MOV R1,#40H MOV A,@R1 ANL A,#0FH ;取第一个半字节 SWAP A INC R1 XCH A,@R1 ;取第二字节 ANL A,#0FH ;取第二个半字节 ORL A,@R1 ;拼字 INC R1 MOV @R1,A ;存放结果 SJMP $ END 【例4-3】拆字程序。 ORG 0000H START: MOV R1,#40H MOV A,@R1 MOV B,A ;暂存B中 ANL A,#0FH ;取第一个半字节 INC R1 MOV @R1,A ;存放第一个半字节 MOV A,B SWAP A ANL A,#0FH ;取第二个半字节 INC R1 MOV @R1,A ;存放第二个半字节 SJMP $ END 4.1.2 分支程序 分支程序比顺序程序的结构复杂得多,其主要特点是程序的流向有两个或两个以上的出口,根据指定的条件进行选择确定。编程的关键是如何确定供判断或选择的条件以及选择合理的分支指令。 通常根据分支程序中出口的个数,分为单分支结构程序(两个出口)和多分支结构程序(3个或3个以上出口)。 在处理实际事务中,只用简单程序设计的方法是不够的,因为大部分程序总包含有判断、比较等情况。根据判断、比较的结果转向不同的分支。 【例4-4】求单字节有符号二进制数的补码。 解:正数的补码是其本身,负数的补码是其反码加1。因此,程序首先判断被转换数的符号,负数进行转换,正数即为补码。设二进制数放在累加器A中,其补码放回到A中。 程序如下: ORG 0000H CMPT: JNB ACC.7,NCH

文档评论(0)

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

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

1亿VIP精品文档

相关文档