单片机讲义第9讲.pptVIP

  • 3
  • 0
  • 约4.12千字
  • 约 23页
  • 2017-08-17 发布于河南
  • 举报
单片机原理与应用 第 九 讲 主要内容 第4章 汇编语言程序设计 1. 4.3.2 分支程序设计 2. 4.3.3 循环程序设计 4.3.2 分支程序设计 在程序设计过程中,有时要根据不同情况执行不同功能的程序段,这种根据程序要求而改变程序执行顺序的设计,称为分支程序设计。分支程序设计分为无条件分支程序设计和条件分支程序设计两类。无条件分支程序中含有LJMP、AJMP等无条件转移指令,执行这类指令,程序将无条件转移,条件分支程序中含有判零、比较、位控制等条件转移指令。 分支程序的结构: 单分支选择结构 (具有三种形式) 当程序的判别仅有两个出口,两者选一,称为单分支结构。通常用条件判别指令来选择并转移 单分支程第二种结构 当条件满足时跳过程序段 1 单分支程第三种结构 当条件满足时执行程序段2, 否则执行程序段1 2.多分支选择结构 通常有两中形式 [例4.10] 片外RAM 2000H、2001H单元分别存放两个数,判断这两个数是否相等,如果相等,则位地址7FH置1,否则清零。 若要判断两个数是否相等,使用比较转移指令就很容易实现该题中的要求,程序流程如图4-2所示。在下面的程序清单中,请读者考虑一下无条件转移指令AJMP的作用。 ORG 0100H SUB1: MOV DPTR,#2000H ;地址指针指向片外2000H单元 MOVX A,@DPTR ;(2000H)→A MOV R0,A ;A→R0 MOV DPTR,#2001H ;地址指针指向2001H单元 MOVX A,@DPTR ;(2001H)→A MOV 30H,R0 CJNE A,30H,NE ;若两个数不相等,则转NE SETB 7FH ;若两个数相等,则7FH单元置1 AJMP OVER ;转OVER NE: CLR 7FH ;7FH单元清零 OVER: RET 说明: 1. 7FH 是位地址;请看教程 P24 CLR 7FH; 等效于: CLR 2FH.7 SETB 7FH ; 等效于: SETB 2FH.7 2. CJNE A, R0, NE; 不能使用 请参考P 47 表3-4 CJNE A,#data , REL CJNE A,direct , REL [例4.11] 设VAR 单元内有一自变量X,请按如下条件编程求函数值Y并存入FUNC单元中。 程序如下: ORG 0100H SUB2: VAR EQU 30H FUNC EQU 31H MOV A,VAR ;X→A JZ DONE ;若X=0,则转DONE JNB ACC.7,POSI ;若X0,则转POSI MOV A,#0FFH ;若X0,则-1→A,FFH为-1的补码 SJMP DONE ;转DONE POSI: MOV A,#01H ;1→A DONE: MOV FUNC ,A ;存Y值 RET 分支程序注意事项: 1. 分支程序在判别时,要将各种可能性都要考

文档评论(0)

1亿VIP精品文档

相关文档