kylew
kylew
级别: 略有小成
精华主题: 0
发帖数量: 107 个
工控威望: 214 点
下载积分: 534 分
在线时间: 206(小时)
注册时间: 2010-08-08
最后登录: 2024-04-10
查看kylew的 主题 / 回贴
楼主  发表于: 2017-05-13 10:04
要求在触摸屏上做50到100个开关吧,同时只能接通一个开关,
比如当前有一个开关置位,按下另一个开关时当前开关复位,按下的开关置位。
怎样才能简单点呢?我做的功能是有了,就是写的程序太繁杂了!
sjbandmm
级别: 略有小成
精华主题: 0
发帖数量: 237 个
工控威望: 407 点
下载积分: 987 分
在线时间: 167(小时)
注册时间: 2008-08-23
最后登录: 2024-05-22
查看sjbandmm的 主题 / 回贴
1楼  发表于: 2017-05-13 10:54
LD SM400
MOV K0 Z0
MOV K0 D0
FOR K96
LD M0Z0
INC D0
LD SM400
INC Z0
NEXT
LD SM400
BMOV K4M0 D10 K6
LD= D0 K1
BMOV K4M0 D2 K6
LD= D0 K2
BKXOR D10 D2 D20 K6
BMOV D20 K4M0 K6
LD> D0 K2
BKRST M0 K96
END
m0-M95为开关,共96个D0统计按钮按下个数d10-d15保存当前按钮状态当按下一个按钮时直接把所有按钮状态保存到d2-d7中当按下2个按钮时,将当前按钮状态与原始状态异或,得到当前状态,其他状态归零并将异或得到的值传回到m0-m95正常时不会超过2个按钮按下,但为了防止意外,超过2个按钮就将所有按钮复位

我写的复杂了,其实只要保存当前状态,下个循环时间检测一下本次状态与上次状态是否相同,如果不同执行一次异或就可以,然后再将异或结果返回到当前m就可以了。
[ 此帖被sjbandmm在2017-05-13 11:34重新编辑 ]
sjbandmm
级别: 略有小成
精华主题: 0
发帖数量: 237 个
工控威望: 407 点
下载积分: 987 分
在线时间: 167(小时)
注册时间: 2008-08-23
最后登录: 2024-05-22
查看sjbandmm的 主题 / 回贴
2楼  发表于: 2017-05-13 11:09
这只是我一个方法,请有其他思路的也说下自己的想法,大家一起学习!
sjbandmm
级别: 略有小成
精华主题: 0
发帖数量: 237 个
工控威望: 407 点
下载积分: 987 分
在线时间: 167(小时)
注册时间: 2008-08-23
最后登录: 2024-05-22
查看sjbandmm的 主题 / 回贴
3楼  发表于: 2017-05-16 22:27
8楼的思路不错,就是还要完善下,某个按钮按下后就不能自复位,必须要用别的按钮复位。