Versuch mal, Irrtum vorbehalten.

Ein paar Sachen würde ich anders machen, aber eigentlich könnte das gehen. Ist der Code von dir oder wo hast du ihn her ?

Code:
$regfile = "m48def.dat"
$crystal = 4000000


Config Timer1 = Timer , Prescale = 64                       ' 1 sec
Const Timerpreset = 3036                                    ' 1 sec

On Timer1 Ontimer1

Config Portd.0 = Output                                     'A
Config Portd.1 = Output                                     'B
Config Portd.2 = Output                                     'C
Config Portd.3 = Output                                     'D
Config Portd.4 = Output                                     'E
Config Portd.5 = Output                                     'F
Config Portd.6 = Output                                     'G

Config Portb.1 = Output                                     'Digi 1
Config Portb.2 = Output                                     'Digi 2
Config Portb.3 = Output                                     'Digi 3
Config Portb.4 = Output                                     'Digi 4

Config Portc.2 = Output                                     'Dezimalpunkt = Sek_blink Gegen +
Config Portc.1 = Output                                     'Relais
Config Portc.0 = Output                                     'Peeper Gegen -

Config Portc.3 = Input                                      ' Start/ Stop Taster
Config Portc.4 = Input                                      'Minuten Taster
Config Portc.5 = Input                                      'Sekunden Taster


Declare Sub Zeiteinstellung
Declare Sub Soundout

Dim Zeit(4) As Byte

Dim Kontrolle As Eram Byte                                  ' kontrollbyte
Dim Eezeit(4) As Eram Byte

Dim Z As Byte
Dim I As Word
Dim Tmp As Byte

Dim Taste1 As Bit
Dim Taste2 As Bit
Dim Taste3 As Bit
Dim Taste4 As Bit


   Portd = &H7F
   Portb = &H1E
   Portc = &H3C

   Taste4 = 1


'--- Sekunden-Punkt darf in diesem Fall nicht in der Multiplexroutine stehen ---
   Dezimalpunkt Alias Portc.2                               'dezimalpunkt blinkt im halbsekunden takt
   Dim Sek_blink As Bit

'Zeit Voreinstellung laden aus EEProm

   Call Zeiteinstellung

   Enable Timer1
   Stop Timer1
   Timer1 = Timerpreset
   Enable Interrupts
'*******************************************************************************
Main:
   Tmp = 1
   For Z = 1 To 4
      Dezimalpunkt = Sek_blink
      I = I + 1
      If I = 600 Then
         Sek_blink = 0
         I = 0
      End If

      Portd = Lookup(zeit(z) , Led_table)                   'zahl aus Variable in 7segment anzeigen
      Portb = Tmp
      If Tccr1b = 0 Then                                    'wenn timer gestoppt, ist Relais aus
         Portb.5 = 1                                        'einzelnen segmente ansteuern
      End If
      Shift Tmp , Left , 1
      Waitms 1

'----------------- Start/Stop und wenn geändert EEPROM-werte Schreiben ---------
      If Pinc.3 = 0 And Taste4 = 0 Then
         Eezeit(1) = Zeit(1)
         Eezeit(2) = Zeit(2)
         Eezeit(3) = Zeit(3)
         Eezeit(4) = Zeit(4)
         Kontrolle = 0                                      ' ERAM Kontrolle
         Taste4 = 1                                         ' reset changed
      End If
'----------------- Reine Start/Stop Routien ------------------------------------
      If Pinc.3 = 0 And Taste3 = 0 Then
         Taste3 = 1                                         ' disable start/stop
         If Tccr1b = 0 Then
            Start Timer1
            Call Zeiteinstellung
            I = 0                                           ' reset blink-count
            Portc.1 = 1                                     'Relais ON
         Else
            Stop Timer1
            Call Zeiteinstellung
            I = 0                                           ' reset blink-count
            Portc.1 = 0                                     'Relais OFF
         End If
      End If
      If Pinc.3 = 1 Then
         Taste3 = 0                                         ' enable start/stop
      End If
'----------------- Minuten um 1 erhöhen Taster ---------------------------------
      If Pinc.4 = 0 And Taste2 = 0 And Tccr1b = 0 Then
         Taste2 = 1                                         ' disable up/down MIN
         Taste4 = 0                                         ' set changed
         Incr Zeit(2)
         If Zeit(2) = 10 Then
            Zeit(2) = 0
            Incr Zeit(1)
            If Zeit(1) = 10 Then Zeit(1) = 0
         End If
      End If
      If Pinc.4 = 1 Then
         Taste2 = 0                                         ' enable up/down MIN
      End If
'------------Sekunde und Minuten = Null setzen ---------------------------------
      If Pinc.4 = 0 And Tccr1b = 0 And Pinc.5 = 0 Then
         Taste4 = 0                                         ' set changed
         Zeit(1) = 0
         Zeit(2) = 0
         Zeit(3) = 0
         Zeit(4) = 0
      End If
      If Pinc.4 = 1 And Pinc.5 = 1 Then

      End If

   Next Z

'******************************************************************************
'----------------- Sekunden um 1 erhöhen Taster --------------------------------
   If Pinc.5 = 0 And Taste1 = 0 And Tccr1b = 0 Then
      Taste1 = 1                                            ' disable up/down SEC
      Taste4 = 0                                            ' set changed
      Incr Zeit(4)
      If Zeit(4) = 10 Then
         Zeit(4) = 0
         Incr Zeit(3)
         If Zeit(3) = 6 Then Zeit(3) = 0
      End If
   End If
   If Pinc.5 = 1 Then
      Taste1 = 0                                            ' enable up/down SEC
   End If


Goto Main


'******************************************************************************
Ontimer1:
   Timer1 = Timerpreset
   Decr Zeit(4)
   Sek_blink = 1
   I = 0                                                    'blink counter
   If Zeit(1) = 0 And Zeit(2) = 0 And Zeit(3) = 0 And Zeit(4) = 0 Then
       Stop Timer1
       Call Zeiteinstellung
       I = 0
       Portc.1 = 0                                          'relais OFF
       Call Soundout                                        'Peep-peep
    End If
    If Zeit(4) = 255 Then
         Zeit(4) = 9
         Decr Zeit(3)
         If Zeit(3) = 255 Then
            Zeit(3) = 5
            Decr Zeit(2)
            If Zeit(2) = 255 Then
               Zeit(2) = 9
               Decr Zeit(1)
            End If
         End If
     End If
Return

'----------- gespeicherte Timerwerte aus EEPROM laden --------------------------
Sub Zeiteinstellung
   If Kontrolle = &HFF Then                                 ' neu oder gelöschter ERAM
      Zeit(1) = 0
      Zeit(2) = 0
      Zeit(3) = 0
      Zeit(4) = 0
   Else
      Zeit(1) = Eezeit(1)                                   'Minuten Zehner
      Zeit(2) = Eezeit(2)                                   'Minuten Einer
      Zeit(3) = Eezeit(3)                                   'Sekunden zehner
      Zeit(4) = Eezeit(4)                                   'Sekunden Einer
   End If
End Sub

Sub Soundout
   Portb.1 = 1
   Portb.2 = 1
   Portb.3 = 1
   Portb.4 = 1
   Sound Portc.0 , 400 , 100
   Portb.1 = 0
   Portb.2 = 0
   Portb.3 = 0
   Portb.4 = 0
   Waitms 100
   Portb.1 = 1
   Portb.2 = 1
   Portb.3 = 1
   Portb.4 = 1
   Sound Portc.0 , 400 , 100
   Waitms 100
   Portb.1 = 0
   Portb.2 = 0
   Portb.3 = 0
   Portb.4 = 0
   Sound Portc.0 , 400 , 100
   Portb.1 = 1
   Portb.2 = 1
   Portb.3 = 1
   Portb.4 = 1
End Sub


End

'Parameter für 7Segment um diese Zahl Anzuzeigen über die Ausgänge
Led_table:
'        0        1     2     3        4     5        6     7     8     9
   Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H0 , &H10