You simply put the IF/THEN in the wrong place. It must be within the FOR/NEXT loop.
I don't see the setting for the TRIS registers.
Al.
Code:
PORTA = 0
PORTB = 0
TrisA = %00000001 ' ????????????????
TrisB = %00000000 ' ???????????????
KEY VAR BYTE
KEY1 VAR BYTE
ADR VAR BYTE
SYMBOL SCLK = PORTB.0
SYMBOL SDAT = PORTB.1
SYMBOL RELY = PORTB.3
SYMBOL STRT = PORTA.0
START:
PAUSE 10
IF STRT = 0 THEN GOSUB SCAN
ENDIF
GOTO START
SCAN:
FOR ADR = 0 TO 7
I2CREAD SDAT,SCLK,$A0,ADR,[KEY]
PAUSE 10
READ ADR,KEY1
PAUSE 10
IF KEY = KEY1 THEN
HIGH RELY
PAUSE 1000
LOW RELY
Pause 1000
ENDIF
NEXT ADR
RETURN
END
DATA @0,14,21,47,56,02,11,22,33
Bookmarks