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為開關(guān),共96個(gè)D0統(tǒng)計(jì)按鈕按下個(gè)數(shù)d10-d15保存當(dāng)前按鈕狀態(tài)當(dāng)按下一個(gè)按鈕時(shí)直接把所有按鈕狀態(tài)保存到d2-d7中當(dāng)按下2個(gè)按鈕時(shí),將當(dāng)前按鈕狀態(tài)與原始狀態(tài)異或,得到當(dāng)前狀態(tài),其他狀態(tài)歸零并將異或得到的值傳回到m0-m95正常時(shí)不會(huì)超過2個(gè)按鈕按下,但為了防止意外,超過2個(gè)按鈕就將所有按鈕復(fù)位
我寫的復(fù)雜了,其實(shí)只要保存當(dāng)前狀態(tài),下個(gè)循環(huán)時(shí)間檢測一下本次狀態(tài)與上次狀態(tài)是否相同,如果不同執(zhí)行一次異或就可以,然后再將異或結(jié)果返回到當(dāng)前m就可以了。
[ 此帖被sjbandmm在2017-05-13 11:34重新編輯 ]