Das sollte grob das gleiche machen wie dein Prog:
Code:
Dim U1_mes As Single
Dim Balken_laenge As Byte , I As Byte

Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31
Deflcdchar 1 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32
Do
   For U1_mes = 12.22 To 12.23 Step 0.01
      Gosub Balken
   Next U1_mes
Loop

Balken:
   Select Case U1_mes
      Case 12.69 To 14.00 : Balken_laenge = 10
      Case 12.64 To 12.68 : Balken_laenge = 9
      Case 12.58 To 12.63 : Balken_laenge = 8
      Case 12.46 To 12.57 : Balken_laenge = 7
      Case 12.38 To 12.45 : Balken_laenge = 6
      Case 12.34 To 12.37 : Balken_laenge = 5
      Case 12.28 To 12.33 : Balken_laenge = 4
      Case 12.23 To 12.27 : Balken_laenge = 3
      Case 12.17 To 12.22 : Balken_laenge = 2
      Case 11.9 To 12.16 : Balken_laenge = 1
      Case 10.5 To 11.8 : Balken_laenge = 0
      Case Is < 10.5 : Balken_laenge = 0
   End Select
   If U1_mes >= 14.1 Then
      Gosub Balken_ladung                                   'Ladung
   Else
      Gosub Balken_zeichnen
   End If
Return

Balken_zeichnen:
   For I = 1 To 10
      Locate 3 , I
      If I <= Balken_laenge Then
         Lcd Chr(0)                                         'zeichnet ein Kästchen
      Else
         Lcd Chr(1)                                         'zeichnet einen Strich
      End If
   Next I
   Waitms 50
Return

Balken_ladung:
Return
Einige Werte sind in deinen Abfragen nicht enthalten, wie z.B. 12.43 - 12.45.
Musst du mal sehen, ob das richtig ist.

Gruß

Rolf