Hallo Thomas,
solange dein Programm genau so aussieht, ist es vollkommen überflüssig, die Zeit in einem Timer Interrupt zu verschwenden. Da du nichts anderes machst, als das Flag zu setzen, das du dann in der Hauptschleife wieder abfragst, kannst du auch gleich das Interrupt Flag des Timers abfragen.
Die Schleife würde dann so aussehen:
Code:
Do
   If TIFR.TOV0 = 1
   ...
   Set TIFR.TOV0
Loop
Das ändert an dem Ablauf nichts, nur hast du die Zeit zum Aufruf und Verlassen der ISR gespart.
Damit kann dann auch kein Interrrupt deine LCD Kommandos unterbrechen.
Ist allerdings dann nicht mehr so leicht übertragbar auf andere Hardware, weil dort die Register evtl. anders heißen.