Ich würd das ganze wie folgt machen:
Ermitteln der Stelle x : Division durch 10^x
Ermitteln des Restes : Wert mod 10^x

Das ganze kannst du in einer Schleife abarbeiten.
Pseudocode:
Code:
input = 995;
Anzahl_Stellen = 3;
i = Anzahl Stellen - 1;
while i>-1 do
{
   Wert = input / 10^i;
   Ausgeben(Wert,i);
   input = input mod 10^i;
   i--;
}
Die Funktion Ausgeben gibt ein Digit an einer bestimmten Stelle aus.
Das wäre dann ja nur noch eine simple Encoder-Funktion, die das entsprechende Anzeigemodul ansteuert.