本实验设单片机采集到某温度,与参考温度相比,若等于参考温度则保温,大于参考温度则降温,小于参考温度则加温。目的是掌握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仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- 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)
|