51单片机 如何利用程序指针实现跳转

51单片机 如何利用程序指针实现跳转,第1张

方法1:

MOV DPTR ,#LOCA取得JMP @A+DPTR的地址(PC)

MOV A,#4 跳转步长

LOCA:

JMP @A+DPTR

(注:JMP @A+DPTR是一条1字节的指令,执行该条指令后PC=LOCA+1,如果想取该指令之后的PC,可以用方法2)

方法2:

MOV DPTR ,#LOCA取执行JMP @A+DPTR后的地址(PC)

MOV A,#4 跳转步长

JMP @A+DPTR

LOCA:

程序行1

程序行2

……

……

……

程序行N

方法3(程序跳转表):

MOV DPTR ,#LIST取程序跳转表首地址

MOV A,R0 取跳转偏移(跳转偏移存在R0中)

JMP @A+DPTR

程序行1

程序行2

……

……

……

程序行N

LIST:

SJMP FUN1

SJMP FUN2

SJMP FUN3

……

FUN1:

……

FUN2:

……

FUN3:

……

1、首先打开华中数控程序,在程序段最前端加 “ / ” 跳段标示符号。

2、其次选择跳段模式为,开启时,遇到带“ / ”的程序段就会跳过,而没有“/”的程序段无一跳过都会被执行。

3、最后跳段模式为关闭时,所有所有的程序段正常执行。

这里讲解一下PLC是如何实现计数跳转功能的,以下示例。

【控制要求】

按下开关,a,b,c,d灯同时点亮,延时2s,再按着d,c,b,a的顺序依次熄灭且每次熄灭保持1s,重复循环5次。

【动作分析】

按下开关,就是一个等待输入信号;延时2s,采用延时等待指令,等待2s;a,b,c,d灯同时点亮,就是触发输出端为通状态,a,b,c,d为4个输出端,可选用Y0,Y1,Y2,Y3分别代表a,b,c,d灯;接着就是d,c,b,a的顺序依次熄灭且每次熄灭保持1s,这里每个灯熄灭,用到了两条指令,先是用触发输出,触发Y端为断状态,就是熄灭的状态,再用延时等待指令,等待1s,这样就是一个灯熄灭1s,再添加一个计数跳转的指令,计数1次跳转至程序第1帧,共计数5次,计数完成,程序停止。

【控制流程图】

【修改别名】

别名修改可参照流水灯测试案例修改。

【程序编辑】

根据流程图编程,按下开关,添加“等待输入”指令;a,b,c,d灯同时点亮实际是4条触发输出指令,在编辑程序的时候就要分别列开。在编程软件JS_PRGMR中,可以一条指令触发多个输出端口。

【程序调试】

当所有的程序编辑完成之后,我们就可以将程序通过串口下发至PLC中,程序调试有几种方式。

1、可以在编程软件上进行程序调试,在菜单栏中的调试框中,打开“在线调试环”,选择下发程序的端口,即可在线调试。

2、可在触摸屏软件上实现在线模拟,进行程序调试。

注意事项:

1、PLC用直流24V电源供电,现场接线注意保证接线正确,输出不得过压和过流。

2、调试的时候注意设备和人身安全,优先在线模拟调试。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11686198.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存