Na geht doch! =D>

Code:
$regfile = "m16def.dat"                                     'definieren des verwendeten Chips

$crystal = 8000000                                          'definieren des verwendeten externen Quarz (8MHz)

$framesize = 64

'Timer Config
Config Timer1 = Timer , Prescale = 256                      'Konfiguriere Timer1
Enable Timer1                                               'schalte den Timer1 ein
On Timer1 Isr_von_timer1                                    'verzweige bei Timer1 überlauf zu   Isr_von_Timer1
Enable Interrupts
Timer1 = 34285                                              'Timer1 soll schon von 34285 wegzählen




'======================================================
'Konfigurationen für LCD Modul an Port B
'======================================================
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
Config Lcdbus = 4
Cls

' Ende LCD Config


                                                             'dimensionieren der verwendeten Variablen
Dim Sekunde As Byte
Dim Minute As Byte
Dim Stunde As Byte
Dim Tag As Byte
Dim Monat As Byte
Dim Jahr As Byte
Dim Wochentag As Byte
Dim Sek As Bit
Dim Strzeit As String * 16
Dim Strdatum As String * 16
Dim Strwochentag As String * 10


                                                              'Alle Variablen auf Null setzen
Sekunde = 0
Minute = 12
Stunde = 10
Tag = 21
Monat = 11
Jahr = 06
Wochentag = 2

Sek = 0


Ddrd = &B11100000                                           'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
Portd = &B00000000                                          'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)





' Hauptprogramm

' Anfang der Schleife
Do




' Überträge
If Sekunde > 59 Then
   Sekunde = 0
   Minute = Minute + 1
End If

If Minute > 59 Then
   Minute = 0
   Stunde = Stunde + 1
End If

If Stunde > 23 Then
   Stunde = 0
   Tag = Tag + 1
End If

If Tag > 30 Then
   Tag = 0
   Monat = Monat + 1
End If

If Monat > 11 Then
   Monat = 0
   Jahr = Jahr + 1
End If

' Wenn die Sekunde sich ändert hat, alles neu ausgeben
If Sek = 1 Then
   Sek = 0
   Gosub Ausgabe
End If



' Tastenabfrage zum stellend er Uhr
Gosub Tastenabfrage

Loop                                                        'zum Anfang der Schleife
' Ende Der Hauptschleife




' Tastenabfrage zum stellen der Uhr
Tastenabfrage:

   If Pind.2 = 1 Then                                       'Wenn an Pin 2 von Port D ein high level anliegt, dann...
      Minute = Minute + 1                                   '...setze Pin 5 von Port D von high auf low oder umgekehrt
      Bitwait Pind.2 , Reset
   End If                                                   'warte bis an Pin 2 von Port D wieder ein low level anliegt

Return



' Ausgabe der Uhrzeit
Ausgabe:

' Ausgabestrings zusammenstellen


Strzeit = " Zeit: "

If Stunde < 10 Then
   Strzeit = Strzeit + "0" + Str(stunde) + ":"
   Else
   Strzeit = Strzeit + Str(stunde) + ":"
End If

If Minute < 10 Then
   Strzeit = Strzeit + "0" + Str(minute) + ":"
   Else
   Strzeit = Strzeit + Str(minute) + ":"
End If

If Sekunde < 10 Then
   Strzeit = Strzeit + "0" + Str(sekunde) + "  "
   Else
   Strzeit = Strzeit + Str(sekunde) + "  "
End If



Strdatum = "Datum: "

If Tag < 10 Then
   Strdatum = Strdatum + "0" + Str(tag) + "."
   Else
   Strdatum = Strdatum + Str(tag) + "."
End If

If Monat < 10 Then
   Strdatum = Strdatum + "0" + Str(monat) + "."
   Else
   Strdatum = Strdatum + Str(monat) + "."
End If

If Jahr < 10 Then
   Strdatum = Strdatum + "0" + Str(jahr) + "  "
   Else
   Strdatum = Strdatum + Str(jahr) + "  "
End If


If Wochentag = 1 Then Strwochentag = "Montag"
If Wochentag = 2 Then Strwochentag = "Dienstag"
If Wochentag = 3 Then Strwochentag = "Mittwoch"
If Wochentag = 4 Then Strwochentag = "Donnerstag"
If Wochentag = 5 Then Strwochentag = "Freitag"
If Wochentag = 6 Then Strwochentag = "Samstag"
If Wochentag = 7 Then Strwochentag = "Sonntag"




'lcd routine und anzeige
Cls
Locate 1 , 1
Lcd Strzeit

Locate 2 , 1
Lcd Strdatum


' Und nun noch per RS232

Print Stunde ; Minute ; Sekunde

Print Strzeit
Print Strwochentag


'Print Zeit$
'Print Datum$
'Print Wochentag$
Print
Print


Return



' Vom Timer jede Sekunde angesprungen
Isr_von_timer1:                                             'ISR von Timer1
Timer1 = 34285                                              'Timer1 soll wieder von 34285 wegzählen
Toggle Portd.6
Toggle Portd.5                                              'schaltet Portd. im Sekundentakt EIN und AUS
Sekunde = Sekunde + 1
Sek = 1

Return



' Programm Ende
End