恭喜,你发布的帖子
发布于 2025-04-06 13:58:16
6楼
楼主需要一个对位间接寻址的方法。
在其它的帖子中,我提供过一个方法,但不好找。
再讲一下吧。
比如,把M0.0输出到编号12的Q点中。
如何拆分为字节地址、以及位在字节内的序号。
12,最低3个bit位是0-7的数,代表一个位在字节内的序号,使用and操作提取。
提取完bit位序,12除以8,得到字节地址,smart支持字节间接寻址。
示例程序如下:
LD Always_On:SM0.0
LPS
MOVW 12, AC0 // 设一个位地址
MOVW AC0, AC1
ANDW 16#07, AC1 // 位序
DECO AC1, AC2 // 解码位序号
/I 8, AC0 // 字节序
MOVD &QB0, AC3 // Q区起始地址
+I AC0, AC3 // 合成字节地址
A M0.0 // M0.0=1?
ORB AC2, *AC3 // 置位
LPP
AN M0.0 // M0.0=0?
INVB AC2 // 取反
ANDB AC2, *AC3 // 复位
LAD长这样:
请填写推广理由:
分享
只看
楼主