Hallo Tryan,
ich hatte übersehen, dass Offset nicht mehr jedesmal neu gesetzt ist und daher in der ISR immer nur weiter verändert wird: Offset = Offset * 5.

Nimm mal diese Do..Loop und erste Zeile von Timer0_isr

Code:
Do
   If Pina <> Taster Then
      Taster = Pina
      Select Case Taster
         Case 0 :
            Zeichen = 0
            Locate 1 , 1
            Lcd "Kein Taster"
         Case 1 : Zeichen = 1
            Locate 1 , 1
            Lcd "Taster 1    "
         Case 2 : Zeichen = 2
            Locate 1 , 1
            Lcd "Taster 2    "
         Case 4 : Zeichen = 3
         Case 8 : Zeichen = 4
         Case 16 : Zeichen = 5
         Case 32 : Zeichen = 6
         Case 64 : Zeichen = 7
         Case 128 : Zeichen = 8
      End Select
   End If
Loop

Timer0_isr:
   Offset = Zeichen * 5                                     'immer 5 Werte pro Zeichen
Gruß

Rolf