Un sensor seria exactamente igual en tu programa que un boton.
Mi recomendacion es que actues de otra forma:
Boton/sensor conteo: Aumenta una variable, Atento a no aumentar pasado los 999
Boton/sensor desconteo: Disminuye una variable, atento a no disminuir si es 0.
Podras observar que digo UNA variable. Y asi es , una sola. Luego creas una funcion que te separe las decenas/centenas/unidades y finalmente mostras.
Como la funcion que separa las centenas etc, es tal ves un poco lenta y a veces no necesaria si no cambia el valor de la variable, podrias usar alguna otra varible para indicar si cambio o no (al presionar los botones lo activas) y antes de pasarlo a BCD preguntas si es necesario.
Tambien lo mejor es llevar el multiplexado a una interrupcion, haciendo que cada ves que entre a la interrupcion te muestre otro display, sin delays entre medio ya que esto lo fija la interrupcion. Pero si es muy avanzado esto, entonces solo tenes que tener en cuenta que los botones/sensores, si tu Main es MUY rapido (que siempre lo es ) podria aumentar de mas de 1, por lo que vas a tener que buscar una forma un poco mas complicada al actuar sobre los botones, preguntando si se mantiene presionado, si se solto, etc.