Pues no habria ningun problema con hacer el I2C por Software en los perifericos. Pero no te lo recomiendo.
Sucede que cuando se hace por Software, al no tener interrupcion I2C, se hace muy muy complicado estar pendiente de la llegada de un Start por Soft y ademas estar haciendo otras cosas. CCS tiene unas funciones como I2C_poll(), que solo se puede usar con el I2c por Hardware y sin eso me fue imposible enlazar 2 PICs por I2C.
El I2C es genial por SOFT cuando eres el Maestro, pues todos hablan cuando tu digas, pero cuando eres esclavo... Se complica mucho la cosa.
NADA es imposible, yo hablo por lo que me paso, pero tal vez alguien si lo pudo hacer por Software.
SALUDOS!