■用CJNE实现三分支 CJNE入口 或 Cy=1? Yes ≠? No Yes Cy=0? 语句组1 语句组2 语句组3 出口
用CJNE实现三分支 ≠≠?? Cy=0? 语句组 语句组11 语句组 语句组22 语句组 语句组33 入口 Yes No Yes No CJNE 出口 或 Cy=1? 或 Cy=1?
用cjne实现 判零 +1 X>0 (R0)-x cine R0,#0,MP1 Y30 X=0 -1 (R1)-y mov R1,#0 X<0 sjmp MP3 判正负 开始 MP1:mov A,RO N jnb ACC.7,MP2 x=0? N mov R1,#0FFh 0 sjmp MP3 分支间 y<-0 y-1y-+1 MP2:mov R1,#01h 隔离 MP3:sjmp 结束 end
用cjne实现 cjne R0,#0,MP1 mov R1,#0 sjmp MP3 MP1:mov A,R0 MP1:mov A,R0 jnb ACC.7,MP2 mov R1,#0FFh R1,#0FFh sjmp MP3 MP2:mov R1,#01h MP2:mov R1,#01h MP3:sjmp $ :sjmp $ end 开始 结束 y←0 y←-1 y←+1 x=0? Y x<0? Y N N 判正负 判正负 判零判零 分支间 隔离 分支间 隔离 (R0)←x (R1)←y Y= +1 X>0 0 X=0 -1 X<0
循环结构程序设计 ■循环初始化: 循环控制变量的初始化、 数据变量的初始化 ■循环工作部分:循环主体,重复执行的部分 ■循环控制部分:循环变量的修改、终止控制 ■循环结束: 用于存放执行循环程序所得结 果以及恢复各单元的初值
循环结构程序设计 循环结构程序设计 循环初始化: 循环控制变量的初始化、 循环控制变量的初始化、 数据变量的初始化 数据变量的初始化 循环工作部分:循环主体,重复执行的部分 循环工作部分:循环主体,重复执行的部分 循环控制部分:循环变量的修改、终止控制 循环控制部分:循环变量的修改、终止控制 循环结束: 用于存放执行循环程序所得结 用于存放执行循环程序所得结 果以及恢复各单元的初值。 果以及恢复各单元的初值
循环问题的类型 1、计数型 循环次数已知,用计数方法控制循环的终止。 2、条件型 循环次数未知,根据某种条件判断是否终止循环。 3、计数型+条件型 1、单循环程序 2、多重循环程序
1、计数型 循环次数已知,用计数方法控制循环的终止。 循环次数已知,用计数方法控制循环的终止。 2、条件型 循环次数未知,根据某种条件判断是否终止循环。 循环次数未知,根据某种条件判断是否终止循环。 3、计数型+条件型 循环问题的类型 循环问题的类型 1、单循环程序 2、多重循环程序 1、单循环程序 2、多重循环程序 、多重循环程序
50ms延时程序 ■设单片机的晶振为12MHz ORG 0300H 周期数 MOVR7,#200 1 DELAY1: MOVR6,#125 DELAY2: DJNZ R6,DELAY2 2 DJNZ R7,DELAYI- 2 RET 2
50ms延时程序 设单片机的晶振为 设单片机的晶振为12MHz ORG 0300H 周期数 MOV R7, #200 1 DELAY1: MOV R6, #125 1 DELAY2: DJNZ R6, DELAY2 2 DJNZ R7, DELAY1 2 RET 2