找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6031|回复: 0
收起左侧

单片机汇编语言四 控制转移类指令LJMP AJMP SJMP JMP

[复制链接]
ID:808939 发表于 2021-7-21 19:13 | 显示全部楼层 |阅读模式
  本实验设单片机采集到某温度,与参考温度相比,若等于参考温度则保温,大于参考温度则降温,小于参考温度则加温。目的是掌握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

单片机源程序如下:
  1. ORG 0000H
  2.         LJMP MAIN
  3.         
  4.         ORG 0100H
  5.                 MAIN:
  6.                 MOV P0,#0FFH
  7.                 MOV R1,#12

  8.                 LOOP:CLR P0.0
  9.                 LCALL DELAY
  10.                 SETB P0.0
  11.                 LCALL DELAY
  12.                 DJNZ R1,LOOP
  13.                
  14.                 STOP:SETB P0.0
  15.                 CLR P0.1
  16.                 JMP STOP
  17.                
  18.                
  19.                 DELAY:
  20.                 MOV R2,#255
  21.                 D1:MOV R3,#250
  22.                 D2:DJNZ R3,D2
  23.                 DJNZ R2,D1
  24.                 RET
  25.                
  26.                 END
复制代码

仿真代码51hei附件下载:
实验四工程.7z (49.21 KB, 下载次数: 4)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表