《pic单片机原理、开发方法及实践》3第三章pic单片机指令系统和程序设计基础.ppt

《pic单片机原理、开发方法及实践》3第三章pic单片机指令系统和程序设计基础.ppt

  1. 1、本文档共108页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《pic单片机原理、开发方法及实践》3第三章pic单片机指令系统和程序设计基础

常用宏指令 * (3)SKPC / SKPNC ——进位标志判断跳转宏指令 格式: SKPC 或者 SKPNC (没有任何参数)。 说明:判断状态寄存器中的进位标志 C 。当使用 SKPC 指令时,若 C 为 1 则跳过下一条指令;当使用 SKPNC 指令时,若 C 不为 1 则跳过下一条指令。 SKPC 将被替代为 BTFSS STATUS , C 。 SKPNC 将被替代为 BTFSC STATUS , C 。 常用宏指令 * (4) SKPZ / SKPNZ —— 零标志判断跳转宏指令 格式: SKPZ 或者 SKPNZ (没有任何参数)。 说明:判断状态寄存器中的零标志 Z 。当使用 SKPZ 指令时,若 Z 为 1 时,跳过下一条指令;当使用 SKPNZ 指令时,若 Z 不为 1 时,跳过下一条指令。 SKPZ 将被替代为 BTFSS STATUS , Z 。 SKPNZ 将被替代为 BTFSC STATUS , Z 。 程序流程图 * 程序流程图是一种用图形形式直观表示程序流程及其分支条件的方法,这种方法,比用文字或直接通过程序表述的编程思路要直观得多,是开发复杂程序的利器。因此要求读者尽量在编程之前都要画出流程图,有助于提出算法和分析错误原因。 程序流程图常用的图形符号: 圆角矩形框为起始/终止框,表示一个程序的开始或结束。 矩形框为任务框,表示要处理的任务。 菱形框为判断框,表示要判断的因素,判断结果将导致程序走入不同的分支。 指向线为带有箭头的线段,表示程序的走向。 3.2.2 汇编语言程序的基本流程 * 1.顺序程序结构 顺序结构是最简单的、最直接的一种程序结构,单片机执行时从头到尾严格按照预先定义好的顺序依次执行各个任务,每一条语句均被执行一遍。 * 程序清单 3-5 是典型的顺序程序结构的例子,它实现的功能是将放置在连续文档寄存器中的 32 位数 P1P2P3P4 左移一位,或者理解为对32位的无符号整数乘以 2 。其中 P1~P4 是存放在连续地址的,宽度都为 8 位的文档寄存器。它们的地址为 20H,21H,22H 和 23H 。 * 程序清单 3-5 P1 EQU 20H ;定义 P1 的地址 P2 EQU 21H ;定义 P2 的地址 P3 EQU 22H ;定义 P3 的地址 P4 EQU 23H ;定义 P4 的地址 BCF STATUS , C ;第一步进位位 C 清零,以便移入 P4 最低位 RLF P4 , f ;第二步最低字节 P4 循环左移,结果还放入 P4 RLF P3 , f ;第三步最低字节 P3 循环左移,结果还放入 P3 RLF P2 , f ;第四步最低字节 P2 循环左移,结果还放入 P2 RLF P1 , f ;第五步最低字节 P1 循环左移,结果还放入 P1 STOP GOTO $ ;符号$指代本语句,可以让单片停止在本句 2.分支程序结构 * 程序中经常需要根据上一步的执行结果决定下一步将要执行的内容,这就需要分支结构的程序。在流程图中分支程序表现为一个菱形的判断框,它有一个入口和两个出口。判断框中的内容,是对上一步的结果进行判断的条件,判断的结果有是(Y)或否(N)两种。这两种判断结果分别对应菱形的两个出口,当判断结果为“是”时执行第一个出口处的程序 B ,当判断结果为“否”时执行第二个出口处的程序 C 。这样实现了从 B 和 C 程序段中选择一段执行的目的,也就是实现了“分支程序结构”。 * 求绝对值ABS=|X-Y|的运算,其中X和Y分别放在文档寄存器 20H 和 21H 中,结果 ABS 放在 22H 中。 实现的思路是:无论 X 和 Y 谁大谁小,先对它们做减法运算(X-Y)。如果 X 小于 Y ,就会发生借位(此时 STATUS 中的进位位 C 为 0 ) ;反之,如果 X 大于或等于 Y 时,不发生借位( C 为 1 )。判断标志位 C ,当其为 1 时,上这个减法的结果就是 ABS ;当其为 0 时, ABS 等于(Y-X)。这个程序的流程图如图3.10 所示。 * 3.循环程序结构 * 循环程序的结构包含以下三个组成部分: (1)循环体:要求重复执行的程序段,即循环程序的主体部分。循环体又可以分为循环工作部分和循环控制部分。循环控制部分在每次循环中检查是否达到循环结束条件,当满足结束条件时就停止循环,往下执行其他程序。 (2)循环结束条件。常见的循环是计数循环,每执行一次循环就对计数器加 1 或减 1 ,当计数器达到某个阈值时就结束循环,该阈值就是循环结束

文档评论(0)

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

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

1亿VIP精品文档

相关文档