Hola.
Podrías usar la interrupción por cambio de estado en el puerto B, para atender a la pulsación. Luego, en la rutina de interrupción, podes tener una variable global la cual sea 1 si querés que trabaje el juego de luces y que sea 0 si querés que no trabaja.
En tu programa podrías tener un ciclo while infinito y dentro del mismo un while que sólo esté activo si la variable anteriormente mencionada se encuentra en 1.