Vayamos por partes. He mirado el código y creo que los leds no deberían encenderse en el arranque.
Por otro lado, la salida del optoacoplador debería ser un PWM sincronizado con los 50Hz de la red eléctrica.
Y para programar las teclas se procede como indica el programa, así:
/****************************************************************************/
/* Captura las pulsaciones de un mando y las almacena en EEPROM */
/* El proceso de grabación es el siguiente: */
/* - las teclas a almacenar serán, en este orden: ARRIBA,ABAJO,ONOFF,P1 y P2*/
/* para cada tecla, la secuencia será: */
/* 1- hay un parpadeo del led rojo de 200ms */
/* 2- se lee la tecla y parpadea rojo 100ms */
/* 3- se lee de nuevo y se compara con la anterior. */
/* 4- Si Ok parpadeo de 200ms y siguiente tecla */
/* 5- Si no Ok hay 5 parpadeos de 100 ms y vuelta a 2 */
/****************************************************************************/