Schau mal:
Code:
 '============ PCF 8574 versuch_2  mit INT0================================= 

$regfile = "m8def.dat" 
$crystal = 10000000 

$hwstack = 250 
$swstack = 250 
$framesize = 250 



'##################### Config für LCD #################################################### 
Config Lcd = 40 * 2 
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , Rs = Portb.4 , E = Portb.5 
Config Lcdbus = 4 
Config Lcdmode = Port 
Cursor On 
Cls 



'############################ Config I2C Bus ################################### 
Config Scl = Portd.1                                        ' I2C-Port festlegen 
Config Sda = Portd.0                                        ' I2C-Port festlegen 

Config Portd.2 = Input                                      'Int0 
Portd.2 = 1                                                 'Pull up 



'############################ Config INT0 ####################################### 
Config Int0 = Falling 
On Int0 Int0_auswerten 
Enable Int0 


Dim Tasten As Byte 
Dim Taste0 As Byte 
Dim Taste1 As Byte 
Dim Taste2 As Byte 
Dim Zaehler As Word 


Dim isr_flag As byte            'NEWNEWNEW


Enable Interrupts 

'############################################################################### 

Do 

      if isr_flag = 1 then 
        isr_flag = 0

          I2cstart 
          I2cwbyte &B01110001                  'lese Adresse von PCF8574A 
          I2crbyte Tasten , Nack 
          I2cstop 

          Locate 2 , 2 
          Lcd Tasten 

         Taste0 = Tasten.0 
         Taste1 = Tasten.1 
         Taste2 = Tasten.2 

         Locate 1 , 1 
         Lcd Tasten 
         Locate 1 , 7 
         Lcd Taste0 

         If Taste1 = 0 Then 
            If Taste0 = 0 Then 
               Zaehler = Zaehler + 1 

              Locate 1 , 30 
              Lcd " Arbeite!!" 
              Wait 1 
               Locate 1 , 30 
               Lcd "          " 
               Wait 1 

               Locate 2 , 25 
               Lcd "Zaehler= " ; Zaehler ; "  " 
            End If 
        End If 

    End If 

Loop 

End 


 '#################  (INT0) ################################## 
Int0_auswerten: 
   isr_flag = 1
Return