标题:
单片机汇编语言四 控制转移类指令LJMP AJMP SJMP JMP
[打印本页]
作者:
cangyuan
时间:
2021-7-21 19:13
标题:
单片机汇编语言四 控制转移类指令LJMP AJMP SJMP JMP
本实验设单片机采集到某温度,与参考温度相比,若等于参考温度则保温,大于参考温度则降温,小于参考温度则加温。目的是掌握8051 CPU的无条件跳转和条件跳转指令。
1、控制转移类指令
程序的顺序执行是由程序计数器(PC)自动增1来实现的,要改变程序的执行顺序,控制程序的流向,必须通过控制转移类指令实现,所控制的范围为程序存储器的64KB空间。8051MCU的控制转移类指令,共17条,可分为4组。无条件转移指令4条,条件转移指令8条,子程序调用和返回指令4条,空操作指令1条。
2、无条件转移指令(4条)
LJMP addr16 ;长跳转指令,跳转范围为64K; (PC) ← addr16
AJMP addr11 ;绝对跳转指令,跳转范围为2K;; (PC)=(PC)+2,(PC)0-10 ← addr11。
SJMP rel ;短跳转指令,跳转范围(PC)=(PC)+rel, -128~+127
JMP @A+DPTR ;散转指令或间接跳转指令;; (PC)← (A)+(DPTR);A的内容为8位无符号数。
区别:跳转的范围不一样
原则上,用SJMP的地方都可以用LJMP替代。AJMP已很少使用。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.gif
(76.21 KB, 下载次数: 76)
下载附件
2021-7-22 04:13 上传
单片机源程序如下:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV P0,#0FFH
MOV R1,#12
LOOP:CLR P0.0
LCALL DELAY
SETB P0.0
LCALL DELAY
DJNZ R1,LOOP
STOP:SETB P0.0
CLR P0.1
JMP STOP
DELAY:
MOV R2,#255
D1:MOV R3,#250
D2:DJNZ R3,D2
DJNZ R2,D1
RET
END
复制代码
仿真代码51hei附件下载:
实验四工程.7z
(49.21 KB, 下载次数: 4)
2021-7-22 04:14 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1