Das Problem ist, das ein Interrupt dann auftritt, wenn man ihn nicht erwartet, deshalb heisst er auch Interrupt. Im ungünstigsten Fall, wenn das Hauptprogramm grad mitten dabei ist Zeichen an das LCD zu senden, und in der ISR auch wieder Zeichen an das LCD gesendet werden sollen, gibts Chaos, weil sich das LCD nimmer auskennt wo es grad ist, und eben Buchstabensalat anzeigt.

Der Interrupt wartet nämlich nicht bis irgendein Programmteil abgeschlossen ist, der kommt mittenrein, deswegen ist es besser in der ISR nur Flags zu setzen die im Hauptprogramm ausgewertet werden.
Das ist dann zwar nicht aufs 100stel Zeitnah, aber i.d.Regel reicht das trotzdem.