文档介绍:分支程序设计
   在很多实际问题中,都需要根据不同的情况进行不同的处理。这种思想体现在程序设计中,就是根据不同条件而转到不同的程序段去执行,这就构成了分支程序。分支程序的结构有两种,。
分支程序结构
(a) 结构使用条件转移指令来实现分支,当给出的条件成立时,执行程序段A,否则执行程序段B。
(b) 结构使用散转指令JMP来实现多分支转移,它首先将分支程序按序号的值来实现分支转移。
分支程序的特点是改变程序的执行顺序,跳过一些指令,去执行另外一些指令。应注意:对每一个分支都要单独编写一段程序,每一分支的开始地址赋给一个标号。
在编写分支程序时,关键是如何判断分支的条件。在MCS-51系列单片机中可以直接用来判断分支条件的指令并不多,只有累加器为零(或不为零)、比较条件转移指令CJNE等,MCS-51单片机还提供了位条件转移指令,如JC,JB等。把这些指令结合在一起使用,就可以完成各种各样的条件判断。分支程序设计的技巧,就在于正确而巧妙的使用这些指令。
【例4-5】设补码X放在内部RAM30H单元中,函数Y与X有如下的关系式:
    试编写程序,根据X的值求出Y,并放回原单元。
解取出X后先做取值范围的判断,用累加器A状态转移指令判断X是否为0,用位状态转移指令判断X是大于0还是小于0。。
程序如下:
MOV A,30H
JZ ZER0
JNB ,PLUS
ADD A,#5
MOV 30H,A
PLUS: SJMP $
ZERO: MOV 30H,#20H
SJMP $
END
【例4-6】内部RAM40H和41H单元中各有一无符号数,比较其大小,将大数存放于内部RAM60H单元,小数存放于内部RAM61H单元,如两数相等,则分别送往这2个单元。
解用比较不等转移指令CJNE比较力两个无符号书,先确定它们是否相等,若不相等时再根据借位标志确定这两个无符号书的大小。。
    程序如下:
  MOV
A, 40H
 
 
  MOV
61H, 41H
 
 
  CJNE
A, 41H, LOOP
 
 
  AJMP
AGEQ
 
   LOOP:
  JNC
AGEQ
;A≥(41H)则无借位
 
  XCH
A, 61H
;A<(41H)有借位
   AGEQ:
  MOV
60H, A
;A与(61H)交换
 
  SJMP
$
 
 
  END
 
 
【例4-7】某温度控制系统,采集的温度值(Ta)放在累加器A中。此外,在内部RAM54H单元存放控制温度下限制(T54),在55H单元存放控制温度上限制(T55)。若Ta >T55,程序转向JW(降温处理程);若Ta<T54,则程序转向S