首页 理论教育单片机无条件转移指令及用法

单片机无条件转移指令及用法

【摘要】:无条件转移指令是对转移不设置任何的条件。1)长转移指令LJMP:LJMP指令的转移范围0000H~FFFFH可达24KB。2)绝对转移指令AJMP:AJMP指令的转移范围000H~7FFH最大转移范围为2KB。3)短转移指令SJMP:SJMP指令的转移范围256B。这两种转移指令的区别是可转移的范围不同。指令“SJMP $”使程序原地踏步。

无条件转移指令是对转移不设置任何的条件。

1.【例3-22】 P1口8个灯依次循环闪烁源程序

实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。安装在P1口的8个灯从P1.0位开始到P1.7位逐一循环闪烁。

程序点评:本程序与例3-1效果一样,但在本程序中将P1口的每一个灯亮灭都设计成了子程序。

2.指令学习

无条件转移指令在MCS51系列单片机指令系统中共有4条,其中包含一组调用无条件转移指令。

1)长转移指令LJMP:LJMP指令的转移范围0000H~FFFFH可达24KB。

2)绝对转移指令AJMP:AJMP指令的转移范围000H~7FFH最大转移范围为2KB。(www.chuimin.cn)

3)短转移指令SJMP:SJMP指令的转移范围256B。其特点是可双向转移,既可向前转移,又可以向后转移。

4)长调用指令LCALL与调用返回指令RET。

在例3-22中共24次应用了长调用指令LCALL。每次所调用程序执行完后都有返回指令ret,以便返回到原调用点执行下一条指令。在例3-22的程序中,还使用了长转移指令(LJMP START)和绝对转移指令(AJMP START)。这两种转移指令的区别是可转移的范围不同。

【例3-23】 短转移指令

实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。安装在P1.0位发光二极管亮。

程序点评:程序中使用了短转移指令SJMP。指令“SJMP $”使程序原地踏步。“$”代表当前程序计数器PC值。