Suponiendo que no quiera hacer esto con un simple microcontrolador, le recomendaría un circuito de puerta lógica fácil desde aquí :
Imagine V out es bajo para empezar. Esto hará que la salida de la primera puerta (G1) sea alta. Eso hace que la salida de la segunda puerta (G2) sea baja, por lo que esta situación es estable .
Ahora, alguien presiona el botón. Eso conecta la salida alta de G1 a su entrada, de modo que la salida se vuelve baja. La baja en las entradas de G2 hace que la salida de G2 sea alta. Estamos en una situación estable otra vez.
Cuando alguien presiona el botón otra vez, sucede lo mismo, pero de manera opuesta: la salida baja de G1 está conectada a su entrada, lo que hace que la salida sea alta. Está conectado a la entrada de G2, lo que hace que la salida de G2 sea baja. Volvemos a la primera situación.