历史上的今天
今天是:2025年01月11日(星期六)
2021年01月11日 | MCS-51单片机的无条件转移指令用法介绍
2021-01-11 来源:eefocus
控制转移指令用于控制程序的流向,所控制的范围即为程序存储器区间,MCS-51系列单片机的控制转移指令相对丰富,有可对64kB程序空间地址单元进行访问的长调用、长转移指令,也有可对2kB字节进行访问的绝对调用和绝对转移指令,还有在一页范围内短相对转移及其它无条件转移指令,这些指令的执行一般都不会对标志位有影响。
MCS-51单片机的无条件转移指令用法介绍
无条件转移指令
这组指令执行完后,程序就会无条件转移到指令所指向的地址上去。长转移指令访问的程序存储器空间为16地址64kB,绝对转移指令访问的程序存储器空间为11位地址2kB空间。
LJMP addr16 ;addr16→(PC),给程序计数器赋予新值(16位地址)
AJMP addr11 ;(PC)+2→(PC),addr11→(PC10-0)程序计数器赋予新值(11位地址),(PC15-11)不改变
SJMP rel ;(PC)+ 2 + rel→(PC)当前程序计数器先加上2再加上偏移量给程序计数器赋予新值
JMP @A+DPTR ;(A)+ (DPTR)→(PC),累加器所指向地址单元的值加上数据指针的值给程序计数器赋予新值
这几条指令,如果要他细分析的话,区别较大,但初学者时,可以不理会那么多,统统理解成LJMP标号,也就是跳转到一个标号处,但事实上,JMP标号,在前面的例程中我们已接触过,并且也知道如何来使用了,AJMP和SJMP也是一样,那么这几条指令它们的区别何在呢?在于跳转的范围不一样。好比跳远,LJMP一下就能跳64K那么远(当然近了就更没关系了)。而AJMP最多只能跳2K距离,而SJMP则最多只能跳256这么远,原则上,所有用AJMP或SJMP的地方都可以用LJMP来替代。因此在初学者时,需要跳转时可以全用LJMP。
但是在查表时要注意会出错,因为他们的机器周期不一样,取得的数也不一样。
史海拾趣
|
有两个电感小伙子上了表演台。其中一个是立式电感(径向电感),一个是径向电感。立式电感双脚踏地,显得稳健;径向电感一脚踏地,一脚朝天,显得活泼。 爱因迪生:请问色码电感,这两个小伙子你更中意哪个? 色码电感:我更喜欢 ...… 查看全部问答> |
|
我们在开发机上开发好程序,可以下载到开发板上进行编译等(开发板有自带系统),这个下载文件传输共享功能是开发版自带linux os提供的,还是其它硬件实现的,如果是OS提供的,假如说我有一个全新的arm处理器,那又怎样实便往arm芯片里下载程 ...… 查看全部问答> |
|
刚从51转到MSP430系列,发现有些难度,现在串口通信都搞不通,各位网友看一下是哪个地方出错了。 程序如下:现在发现就是无法发送: void main( void ) { WDTCTL = WDTPW + WDTHOLD; FLL_CTL1|=SELS+SELM_XT2; //MCLK:XT ...… 查看全部问答> |
|
此指南为工程师,设计师,嵌入式开发商提供了完美的采购指南,包括了以TI的处理器为基础的开发套件,嵌入式软件,工程服务以及终端设备的解决方案,这些内容全部是由我们世界各地TI开发者网络成员提供,欲知详情,请速速下载一探究竟~~~ ...… 查看全部问答> |
|
在网点出入口安装摄像机,遇到最大的问题是由于摄像机安装位置不当,监视画面上会出现逆光现象, 对此,广州恒威电子小编提出几点建议. 可以采用三种办法加以改善:一是在安装位置上尽量避免阳光直射;二是选用具有 ...… 查看全部问答> |
|
我的嵌入式Qt开发第一课——基于BBB和hmc5843三轴电子罗盘 几次想照着课本系统地学习Qt,但我发现还是有具体问题驱动时学习比较快。于是我给自己设定了这个任务: 读取HMC5843的三轴磁场强度值,计算出角度,并把角度用直观形式显示在图形界面上。 这里面涉及到一些问题,接下来就用问答的形式记录一 ...… 查看全部问答> |
|
一直以为lcd使用后会出现吵闹的声音,原来是蜂鸣器的原因。目前仓库已经更新,修正这个问题。 http://git.oschina.net/raw-os/helper2416 … 查看全部问答> |




