dyysam513
级别: 略有小成
精华主题: 0
发帖数量: 231 个
工控威望: 272 点
下载积分: 4123 分
在线时间: 95(小时)
注册时间: 2015-05-21
最后登录: 2024-10-28
查看dyysam513的 主题 / 回贴
楼主  发表于: 2024-06-03 08:57
有一台设备需要点亮50个灯,每次有且只能点亮一个灯,当有一个灯点亮时其他49个灯不允许点亮。用了3个QT16。
灯的Q点为:灯1Q1.0、灯2Q1.1、灯3~灯50:Q8.0~Q9.7、Q12.0~Q13.7、Q16.0~Q17.7。
程序怎么写会方便一点?
现在每个点亮输出都串其他点亮常闭点,写起来太复杂。

大番茄
级别: 探索解密
精华主题: 0
发帖数量: 75 个
工控威望: 152 点
下载积分: 2272 分
在线时间: 125(小时)
注册时间: 2020-04-25
最后登录: 2024-10-31
查看大番茄的 主题 / 回贴
1楼  发表于: 2024-06-03 09:12
用移位循环指令ROL-DW,一个ROL-DW不够可以用2个、用3个,一次点亮一个。
zhaoaron
zhaoaron
级别: 网络英雄
精华主题: 0
发帖数量: 1382 个
工控威望: 5001 点
下载积分: 9 分
在线时间: 706(小时)
注册时间: 2021-09-25
最后登录: 2024-10-31
查看zhaoaron的 主题 / 回贴
2楼  发表于: 2024-06-03 09:12
Q8.0~Q9.7  QW8(QB8(Q8.0 Q8.7) QB9)       QD8:QB8 QB9 QB10 QB11   判断QB8是否等于0,或者大于1,等于1.以此类推。
zwk34
天天学习,努力进步。
级别: 略有小成
精华主题: 0
发帖数量: 235 个
工控威望: 353 点
下载积分: 80602 分
在线时间: 551(小时)
注册时间: 2011-03-14
最后登录: 2024-10-31
查看zwk34的 主题 / 回贴
3楼  发表于: 2024-06-03 10:57
分7组,QB1~QB8按照需要点亮的灯赋值10进制1-128,把启动条件串进去。
zbmyyou
山东虎哥
级别: 探索解密
精华主题: 0
发帖数量: 51 个
工控威望: 148 点
下载积分: 7979 分
在线时间: 83(小时)
注册时间: 2017-03-28
最后登录: 2024-10-31
查看zbmyyou的 主题 / 回贴
4楼  发表于: 2024-06-05 16:37
赋值循环累加,对值比较,等于1,灯1亮,等于2,灯2亮.............以此类推。
方奇10010
级别: 略有小成
精华主题: 0
发帖数量: 94 个
工控威望: 203 点
下载积分: 1580 分
在线时间: 52(小时)
注册时间: 2021-07-29
最后登录: 2024-10-29
查看方奇10010的 主题 / 回贴
5楼  发表于: 2024-06-05 19:09
应该用左移指令,没法用循环左移。50个没法循环。
引用
引用第1楼大番茄于2024-06-03 09:12发表的  :
用移位循环指令ROL-DW,一个ROL-DW不够可以用2个、用3个,一次点亮一个。
大番茄
级别: 探索解密
精华主题: 0
发帖数量: 75 个
工控威望: 152 点
下载积分: 2272 分
在线时间: 125(小时)
注册时间: 2020-04-25
最后登录: 2024-10-31
查看大番茄的 主题 / 回贴
6楼  发表于: 2024-06-06 15:20
引用
引用第5楼方奇10010于2024-06-05 19:09发表的  :
应该用左移指令,没法用循环左移。50个没法循环。


哈哈哈,对的,没细想,多谢提醒,移位指令写跑马灯挺合适的
julyck
级别: 正式会员
精华主题: 0
发帖数量: 9 个
工控威望: 85 点
下载积分: 821 分
在线时间: 12(小时)
注册时间: 2022-10-16
最后登录: 2024-10-14
查看julyck的 主题 / 回贴
7楼  发表于: 2024-06-08 18:12
感谢分享
中棉油脂
级别: 工控侠客
精华主题: 0
发帖数量: 144 个
工控威望: 2201 点
下载积分: 6573 分
在线时间: 370(小时)
注册时间: 2022-06-28
最后登录: 2024-10-31
查看中棉油脂的 主题 / 回贴
8楼  发表于: 2024-06-10 13:05
图片:
图片:
移位寄存器也挺好
多多学习