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个,一次点亮一个。
大番茄
级别: 探索解密
精华主题: 0
发帖数量: 75 个
工控威望: 152 点
下载积分: 2272 分
在线时间: 125(小时)
注册时间: 2020-04-25
最后登录: 2024-10-31
查看大番茄的 主题 / 回贴
2楼  发表于: 2024-06-06 15:20
引用
引用第5楼方奇10010于2024-06-05 19:09发表的  :
应该用左移指令,没法用循环左移。50个没法循环。


哈哈哈,对的,没细想,多谢提醒,移位指令写跑马灯挺合适的