Hallo Chris,
programm-mäßig sollte dies das gleiche wie deines machen. Kleinere Fehler sind dabei behoben.

Code:
$regfile = "m32def.dat"
$crystal = 16000000

Config Adc = Single , Prescaler = Auto
Config Portc = Output

Portc = 31

Dim I As Word
Dim X As Word

X = 1

Do
   Start Adc
   X = Getadc(7)
   If X < 130 Then
      I = I - 1
      If I = 0 Then I = 5
   Elseif X < 220 Then
      I = I + 1
      If I = 6 Then I = 1
   End If
   Waitms 20
   Portc = 31
   Portc.i = 0
   End If
Loop

End
Annahme ist, dass die beiden Taster überWiderstände am PORTA.7 angeschlossen sind.
Wenn der erste gedrückt ist, kommt ein Wert kleiner 130 raus, wenn der zweite gedrückt ist, ist der Wert zwischen 130 und 220.
Welcher Wertwird ausgegeben, wenn kein Taster gedrückt ist?
Wenn ein Taster länger als deine 20ms Wartezeit gedrückt ist, springt die LED mehrfach weiter.

Gruß

Rolf