单元4 汇编语程序设计.docVIP

  • 17
  • 0
  • 约2.25万字
  • 约 28页
  • 2016-10-17 发布于浙江
  • 举报
单元4 汇编语程序设计

单元四? 汇编语言程序设计 4.1?单片机计数 1 4.2? LED显示电路 5 4.1?单片机计数 4.2? LED显示电路 图4.3 单分支结构 单分支结构程序的选择条件一般由运算或检测的状态标志提供,选用对应的条件判跳指令来实现。 ② 多分支结构程序 在实际应用中,常常需要从两个以上的流向(出口)中选一。例如,两个数相比较,必然存在大于、等于、小于三种情况,这时就需从三个分支中选一。再如多分支跳转(又称散转)将根据运算结果值在多分支中选一。这就形成了多分支结构。其流程图形如图4.4 所示。 MCS-51单片机指令集设有散转指令: JMP? @A+DPTR 其中数据指针DPTR为存放转移指令串(S0~Sn)的首地址,由累加器A的内 容动态选择对应的转? 指令。因此,可多达256(n=1~256)个分支程序中选一。 ③ 分支结构程序的形式 单分支选择结构程序有以下三种典型形式: 图4.3:条件成立则执行分支程序(1),否则执行分支程序(2),两者选一。图4.5a:条件成立则跳过程序段(2),执行程序段(3),否则顺序执行。图4.5b:条件成立则顺序往下执行,否则重复执行程序段(1),直至条件成立,程序顺序往下执行。     ?   ?   ? ? ? ? ? ? ? ?     ?? (a)    ???                  (b) 图4.5单分支结构程序的典型形式 对于第三种形式,可以程序段(1)重复执行次数作为判别条件,当重复次数达到条件满足时停止重复,程序顺序往下执行,这是分支程序结构的一种特殊形式。其中判别条件也可能是一个定量或状态标志,而重复次数是不定的,只要条件一满足,立即停止重复。也可能条件不满足时直接转向判跳指令本身,一旦条件成立,立即结束。这种方式常用于状态检测。例如:??? LOOP:JB P1.X,LOOP; 本例是等待P1.X引脚上的电平出现“1”→“0”的急跳变而结束循环等待,程序顺序往下执行。 分支结构程序允许嵌套,即一个分支接着一个分支,形成树根式多级分支程序结构。汇编语言程序本身并不限止这种嵌套层次数,但过多的嵌套层次将使程序结构变得十分复杂和雍肿,以致造成逻辑上的混乱和错误,因而应尽力避免。 图4.6循环程序的典型形式 一个较复杂的程序,总是包含多个分支程序段,为防止分支流向的混乱,应采用程序流程图具体标明每个分支的确切条件和走向。 (3)循环结构程序 循环结构程序是控制主机多次、重复执行同一个程序段的一种基本程序结构。从本质上讲,它是分支结构程序中的一个特殊形式。由于它在程序设计中的重要性,故而配以专用指令,单独作为一种程序结构的形式进行设计。 在某些情况下采用循环程序结构,可使原程序大大缩短和简化。例如,利用软件延时lms,若采用NOP指令来实现,当fosc=12MHz时,需近1000条NOP指令组成。如果采用循环结构程序,只需少数几条指令即可完成。可见其程序的简化效率。 ① 循环结构程序的组成 循环结构程序如图4.6所示,它由下述4个主要部分组成。 A、初始化部分 程序在进入循环处理程序段部分之前需设备初值,如循环次数、有关单元清0、变量设置、地址指针等。 B、循环处理部分 循环处理部分又称循环程序主体。是循环结构程序的核心,是循环执行需完成某种功能的主体。 C、循环控制部分 在重复执行循环体的过程中,不断修改和判断循环控制变量,直到符合结束循环条件。循环控制变量可以是循环递减计数或条件控制。前者是每循环执行一次,控制变量减1,并判是否减为0,若不为0,继续执行循环体程序;若控制变量减1后结果值为0,则结束循环程序的执行,进入结束处理。这些工作均由循环指令自动完成。后者判别结束条件上是否成立,例如计算结果达到给定精度要求或达到某一给定条件时就结束循环,这时的循环次数是不固定的。常用条件判跳指令来完成。 D、结束处理部分 这是对循环程序全部执行结束后的结果进行处理和存储。 ② 循环结构程序举例 有两条功能极强的循环转移指令: DJNZ ??Rn,rel????????????? ;以工作寄存器Rn为控制寄存器 DJNZ?? direct,rel ???? ????;以直接寻址单元作控制寄存器 这两条基本指令可派生出很多条不同控制计数器的循环转移指令,大大扩展了应用范围和多重循环的层次。 控制计数器的计数方式一般均为不断减1计数(递减方式),即每循环一次,计数器自动减1计数,并判控制计数器是否为0,若不为0,继续执行循环;若为0,则结束循环程序的执行,脱离循环程序顺序往下执行。循环次数在初始化时预置,循环次数范围1-255,如超过此范围,则要采用多重循环方式。多重层次原则上不受限。 ③ 多重循环结构程序 某些复杂问题或者循环数超过256,则需采

文档评论(0)

1亿VIP精品文档

相关文档