So habe nun das Menü programmiert ist zwar nicht sonderlich komplex und schwierig aber es funktioniert.

Wenn jemand verbesserungen hat oder vorschläge wie ich es optimieren kann dem wäre ich sehr dankbar.

Code:
$regfile = "m8def.dat"                                      ' Inizialiesierung Microkontroller
$crystal = 3686400                                          ' Quarz Frequenz
Declare Sub Key1
Declare Sub Key2

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
Config Lcdbus = 4                                           ' LCD Konfiguierung

Cursor Off                                                  ' Cursor auf dem LCD Ausblenden

Deflcdchar 0 , 32 , 32 , 32 , 32 , 12 , 16 , 16 , 31        ' Fahrrad Modul 1
Deflcdchar 1 , 32 , 32 , 32 , 32 , 32 , 30 , 8 , 30         ' Fahrrad Modul 2
Deflcdchar 2 , 7 , 9 , 17 , 17 , 18 , 16 , 8 , 7            ' Fahrrad Modul 3
Deflcdchar 3 , 4 , 18 , 9 , 8 , 8 , 8 , 16 , 32             ' Fahrrad Modul 4
Deflcdchar 4 , 9 , 9 , 10 , 10 , 31 , 2 , 1 , 32            ' Fahrrad Modul 5
Deflcdchar 5 , 28 , 18 , 9 , 5 , 29 , 1 , 2 , 28            ' Fahrrad Modul 6

On Icp1 Oncapture                                           ' Interrupt Routine deklarieren

Dim Wcapture As Long                                        'Variablen Declaration
Dim Geschw As Single                                        'Variablen Declaration
Dim Endgeschw As Single                                     'Variablen Declaration
Dim Menuepunkt As Integer
Dim Anzeigezahl As Single
Dim Einheit As String * 6
Dim Zaehler As Long
Dim Strecke As Single
Dim Zeit As Integer
Menuepunkt = 0
Zaehler = 0
Strecke = 0

Ddrd = &B0000001
Portd.2 = 1
Portd.3 = 1
Ddrb.0 = 0                                                  ' Pin PB0 Eingang (Sensor + r. Taster)
Portb.0 = 1                                                 ' PullUp von Pin PB0 aktivieren


'\/Begrüßungsbildschirm\/
Cls
   Locate 1 , 1
      Lcd "Fahrradtacho"
   Locate 2 , 1
      Lcd "Version 1.0"
   Locate 1 , 14
      Lcd Chr(0)
   Locate 1 , 15
      Lcd Chr(1)
   Locate 2 , 13
      Lcd Chr(2)
   Locate 2 , 14
      Lcd Chr(3)
   Locate 2 , 15
      Lcd Chr(4)
   Locate 2 , 16
      Lcd Chr(5)
Waitms 1500
Cls
   Locate 1 , 1
      Lcd "----------------"
   Locate 2 , 3
      Lcd "Martin Gluch"
Waitms 2000
Cls
Locate 1 , 5
Lcd "Computer"
Locate 2 , 6
Lcd "bereit"
Waitms 1000
'/\Begrüßungsbildschirm/\


Tccr1a = &B00000000
Tccr1b = &B10000101
Timsk.ticie1 = 1

Sreg.7 = 1


Do

  Debounce Pind.2 , 0 , Key1 , Sub
  Debounce Pind.3 , 0 , Key2 , Sub

  Cls
  If Menuepunkt = 0 Then
  Anzeigezahl = Endgeschw
  Locate 2 , 1
  Lcd "Geschwindigkeit"
  Locate 1 , 12
  Einheit = " km/h "
  End If
  If Menuepunkt = 1 Then
  Anzeigezahl = Zeit
  Locate 2 , 1
  Lcd "Zeit pro Umdreh."
  Locate 1 , 12
  Einheit = " ms  "
  End If
  If Menuepunkt = 2 Then
  Anzeigezahl = Zaehler
  Locate 2 , 1
  Lcd "Counter"
  Einheit = "     "
  End If
  If Menuepunkt = 3 Then
  Anzeigezahl = Strecke \ 1000
  Locate 2 , 1
  Lcd "Strecke"
  Einheit = "  km  "
  End If

  Locate 1 , 6
  Lcd Anzeigezahl
  Locate 1 , 11
  Lcd Einheit
  Waitms 70

Loop

Oncapture:

  Timer1 = Timer1 - Capture1
  Wcapture = Capture1
  Wcapture = Wcapture \ 3.600
  'Wcapture = Wcapture \ 1000
  Geschw = 2.03 / Wcapture                                  ' 2,03 durch beliebigen  Reifenumfang ersetzen
  Endgeschw = Geschw * 360
  Endgeschw = Endgeschw * 10

  Zaehler = Zaehler + 1
  Strecke = Strecke + 2.03
  Zeit = Wcapture

  Portd.0 = 1
  Waitms 1
  Portd.0 = 0

Return

Sub Key1

  Cls
  If Menuepunkt = 0 Then
  Locate 2 , 1
  Lcd "Zeit pro Umdreh."
  End If

  If Menuepunkt = 1 Then
  Locate 2 , 1
  Lcd "Counter"
  End If

  If Menuepunkt = 2 Then
  Locate 2 , 1
  Lcd "Strecke"
  End If

  If Menuepunkt = 3 Then
  Locate 2 , 1
  Lcd "Geschwindigkeit"
  End If

  Menuepunkt = Menuepunkt + 1
  If Menuepunkt = 4 Then
  Menuepunkt = 0
  End If

End Sub

Sub Key2

 Zaehler = 0
 Cls
 Locate 1 , 1
 Lcd "Counter Reset"
 Waitms 500


End Sub
End
Gruß
Martin