also bei dem Listing hat es funktioniert.
Code:
'****************************************************************************** 

$regfile = "m32def.dat" 
$baud = 9600 
$crystal = 8000000                                          'Quarzfrequenz 

Config Scl = Portc.0                                        'Ports fuer I2C-Bus 
Config Sda = Portc.1 

Config Pind.6 = Output                                      'Schrittmotoren Ein/Aus 
Config Pinc.5 = Output                                      'Schrittmotor Links Richtung 
Config Pinc.3 = Output                                      'Schrittmotor Links Step 
Config Pinc.4 = Output                                      'Schrittmotor Rechts Richtung 
Config Pinc.2 = Output                                      'Schrittmotor Rechts Step 

Config Pinb.2 = Input                                       'Interrupt Int2 
Config Portb.2 = 0 
Config Portd.3 = 1 

Config Int2 = Falling 
Enable Int2 
Enable Interrupts 
On Int2 Int2_isr 


Const Writeeingabeport_adr = &H7E                           'I2C Adr PCF 2 
Const Readeingabeport_adr = &H7F                            'I2C Adr PCF 2 

Dim I2cdaten As Byte                                        'Datenbyte aus PCF8574 
Dim Taste1 As Word 
Dim Taste2 As Word 
Dim I As Word 
Dim Flag As Bit 

I2cinit 
I2cstart 
I2cwbyte &H74                                               'Schreibbefehl an PCF3 schicken 
            'Led´s ein ,Motorendstufen ein, Port-Peripherie ein, RBN-Bus Sleep Modus aus (also Peripherie aktiv) 
I2cwbyte &B00000010                                         'Datenbyte an PCF3 
I2cstop 

Portd.6 = 0                                                 'Schrittmotoren erst mal ausschalten 

I2cdaten = 0 
Flag = 0 

Taste1 = 247                                                'Taste 1    (Eingangsport-Port3) 
Taste2 = 251                                                'Taste 2    (Eingangsport-Port4) 
I = 0 

'******************** Hauptprogramm ******************************************** 

Do 
   If Flag = 1 Then Gosub Motor1_2 
   If Flag = 0 Then Gosub Motoren_aus 
Loop 


'********************* Unterprogramme ****************************************** 

Motor1_2: 
Portc.5 = 0                                                 'Richtung  Motor 1 
Portc.4 = 1                                                 'Richtung  Motor 2 
Portd.6 = 1                                                 'Motoren einschalten 

Portc.2 = 0                                                 'Step rechts 
Portc.3 = 0                                                 'Step links 
Waitms 1 
Portc.2 = 1                                                 'Step rechts 
Portc.3 = 1                                                 'Step links 
Waitms 1 
Portd.6 = 0                                                 'Motoren ausschalten 
Return 

Read_data: 
Return 


Motoren_aus: 
Portd.6 = 0                                                 'Motoren ausschalten 
Return 

Int2_isr: 
   I2cstart 
   I2cwbyte Readeingabeport_adr                             'Lesebefehl an PCF schicken 
   I2crbyte I2cdaten , Nack                                 'Datenbyte von PCF lesen 
   I2cstop 
   Waitms 50 
   Print I ; " Eingangsport Wert " ; I2cdaten ; " war beim Int2" 
   Incr I 
   If I2cdaten = Taste1 Then Flag = 1 
   If I2cdaten = Taste2 Then Flag = 0 
Return
Habe den Port 3 und 4 für das Beispiel genommen.
Steht auch im Listing mit drin.
Damals habe ich einfach nur Taster genommen und die Eingänge mit Pull-Up´s(für den sauberen Pegel) versehen.

Was für Signale gibt deine LS ab?
Am PCF sollen definierte Pegel anliegen. 0V Low oder 5V High.
Zum Schalten am PCF würde ich den Low-Pegel empfehlen. Also von 5V auf GND.
Wenn also deine LS schaltet, weil der Endpunkt erreicht ist, soll eine Pegeländerung von High auf Low am PCF erfolgen.
Das solltest du bei der Verdrahtung deiner Schaltung beachten.