• «
  • 1
  • 2
  • »
  • Pages: 2/2     Go
行人匆匆
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 133 点
下载积分: 1006 分
在线时间: 7(小时)
注册时间: 2016-11-28
最后登录: 2021-09-10
查看行人匆匆的 主题 / 回贴
12楼  发表于: 2017-05-04 07:05
引用
引用第11楼flyfeky于2017-05-02 08:45发表的  :
我帮你一下,可能不是最简单的。

D0为16位寄存器
mov d0 k4y100
v0为变址寄存器
.......

谢谢,思路很好
绝世精灵
略懂、略懂……
级别: 工控侠客
精华主题: 0
发帖数量: 366 个
工控威望: 4813 点
下载积分: 1976 分
在线时间: 403(小时)
注册时间: 2007-09-08
最后登录: 2024-06-11
查看绝世精灵的 主题 / 回贴
13楼  发表于: 2017-05-05 11:59
松下有一指令 BCU (DBCU) 判断16(32)位数据中ON的位数,不知道是不是你想要的功能。
360820
我还真没有个性签名
级别: 略有小成
精华主题: 0
发帖数量: 315 个
工控威望: 496 点
下载积分: 1550 分
在线时间: 1025(小时)
注册时间: 2009-03-11
最后登录: 2024-11-23
查看360820的 主题 / 回贴
14楼  发表于: 2017-05-07 21:40
引用
引用楼主行人匆匆于2017-04-28 09:18发表的 论坛朋友能帮下吗 :
我在编程的时候,碰到一个问题,需要判断一个16位寄存器里面m位,是否有两个1,想了下不好怎么实现,看看论坛朋友有没有好方法简单点的谢谢!



有两个1就大于等于3   比较就行了

只有两个1就麻烦了点

不知道我是否理解对了
年华犹存
级别: 探索解密
精华主题: 0
发帖数量: 44 个
工控威望: 152 点
下载积分: 1432 分
在线时间: 63(小时)
注册时间: 2017-08-13
最后登录: 2024-08-30
查看年华犹存的 主题 / 回贴
15楼  发表于: 2017-08-24 16:37
位寻址啊
多多关照
他城之途
奋斗
级别: 家园常客
精华主题: 0
发帖数量: 93 个
工控威望: 702 点
下载积分: 3797 分
在线时间: 216(小时)
注册时间: 2017-07-13
最后登录: 2024-10-30
查看他城之途的 主题 / 回贴
16楼  发表于: 2017-08-24 16:46
引用
引用第10楼john42tw于2017-05-02 07:59发表的  :
有SUM指令

这个可以
worker02
级别: 略有小成
精华主题: 0
发帖数量: 115 个
工控威望: 294 点
下载积分: 723 分
在线时间: 280(小时)
注册时间: 2008-08-01
最后登录: 2024-11-20
查看worker02的 主题 / 回贴
17楼  发表于: 2017-08-30 11:43
FUNCTION FC1200 : VOID
VAR_TEMP
    I,A:INT;

END_VAR
VAR_INPUT
    ByteN:INT;
END_VAR  
VAR_OUTPUT
    B:BOOL;
END_VAR;
I:=0;
A:=0;
FOR I:=0 TO 15 DO
    IF MX[ByteN,I]THEN
        A:=A+1;
   END_IF;
END_FOR;
IF a>=2 THEN
    B:=true;
else
  B:=false;
    END_IF;

END_FUNCTION
[ 此帖被worker02在2017-08-30 13:58重新编辑 ]
jxz123130
级别: 探索解密
精华主题: 0
发帖数量: 17 个
工控威望: 144 点
下载积分: 1321 分
在线时间: 7(小时)
注册时间: 2017-08-25
最后登录: 2021-12-31
查看jxz123130的 主题 / 回贴
18楼  发表于: 2017-08-30 13:45
三菱可以直接使用SUM指令啊!或者你自己写一个8位的求和子程序,将1的个数输出来!16位的的寄存器调用两次子程序就好了!
  • «
  • 1
  • 2
  • »
  • Pages: 2/2     Go