Para detectar el paso por cero de la onda desde el punto de vista software, no hay que hacer prácticamente nada, solo solo activar la interrupción al flanco ascendente por RB0 y a este pin le llegaran los impulsos generados por el detector de paso por cero, el cual está formado por un puente de diodos con entrada a 12V, un fototransistor (4N33 o un TIL111 por ejemplo) y una resistencia de por ejemplo 100 ohmnios.
Cuando a RB0 le lleguen los impulsos positivos del detector se activará la interrupción y se irá a atender la rutina de atención a la interrupción
Un saludo