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重新编辑 ]