Como bien te comentaron se pueden cambiar los pin del I2C. La emulación del I2C del lenguaje permite cambiar los pin que quieras esto es mas o menos igual para todos los Basic incluyendo la mayoría de los otros lenguajes.
PIC Basic del PSI:
'************************DS1624*************************************
.
.
Symbol sda = RB1 'asignamos nombre al pin que hará de SDA del puerto I2C
Symbol scl = RB4 'asignamos nombre al pin que hará de SCL del puerto I2C
.
.
.
.
main:
temperatura = d_ds1624(0, 0, 0) 'genera una lectura en el chip ds
WaitMs 1000 'pausa de 1Seg, tiempo máximo de conversión del chip ds
temperatura = d_ds1624(0, 0, 1) 'lee la lectura en dos Bytes (13bit)
.
.
.
goto main
end
.
.
.
'Funcion de lectura/escritura del DS1624
'ds1624_rw=0 el chip prepara un lectura, ds1624_rw=1 el chip entrega una lectura
'ds1624_rw=2 se hace una lectura del registro de control.
Function d_ds1624(ds1624_h As Byte, ds1624_l As Byte, ds1624_rw As Byte) As Word
RA4 = 1 'led placa I2c a On
If ds1624_rw = 0 Then 'solicita una lectura de temperatura
I2CWrite sda, scl, %10010010, 0xac, 0x00 'inicializa el registro de control
WaitMs 10 'pausa para que termine la escritura
I2CWrite1 sda, scl, %10010010, 0xee 'comienza una conversión
Endif
If ds1624_rw = 1 Then 'hace la lectura de la temperatura
I2CWrite1 sda, scl, %10010010, 0xaa 'prepara el chip para lectura de temperatura
I2CRead1 sda, scl, %10010011, ds1624_h, ds1624_l 'lee la temperatura
Endif
If ds1624_rw = 2 Then 'hace una lectura del registro de control
I2CRead sda, scl, %10010011, 0xac, ds1624_l 'lee registro de control
ds1624_h = 0 'borra Byte alto de antiguos valores
Endif
d_ds1624.HB = ds1624_h 'actualiza la temperatura
d_ds1624.LB = ds1624_l 'actualiza decimales temperatura o indica datos registro control
RA4 = 0 'led placa i2c a OffEnd Function
End Function
.
.
.
end
http://www.todopic.com.ar/foros/index.php?topic=14917.msg126106#msg126106Recuerda que si utilizas interrupciones tienes que deshabilitarlas antes de usar las funciones del lenguaje I2C y recordar volver a activarlas al final de la rutina antes de salir de ella.