wenn ich das richtig verstanden habe, liegt an PINB.4 der "An"-Schalter, der den Eingang immer auf 0 legt.

Damit ist die Bedingung "If PINB.4 = 0" immer gegeben, d.h. er schreibt immer als erstes in der Do-Loop-Schleife "Power On", und dann als zweites z.B. "Automatik". Und dann fängt er wieder von vorne an. Und das führt zum "Flackern" zwischen den beiden Anzeigen.

Ich würde das z.B. so machen:



Code:
Do

CLS
Locate 1,1

 If Pinb.4 = 0 then
  
   If Pinb.2 = 0 then 
   LCD "Test"
   End if
  
   If Pinb.3 = 0 then 
   LCD "Handbetrieb"
   End if
  
   If Pinb.1 = 0 then 
   LCD "Automatik"
   End if
 
 Else
   LCD "Power On"
 End if
Loop
Wahrscheinlich musst Du vor das CLS noch ein paar wait-Millisekunden (z.B. 100) tun - sonst flackert´s nämlich auch ziemlich, weil das Programm ein paar hundert mal pro Sekunde den "CLS"-Befehl abarbeitet.