Hallo habe jezt dem uhr laufen auf nem lcd.

aber wie schreibe ich ein routiner sum einstellen fon dieser uhr.
also datum und seit, mit 2 oder 4 taster.

Code:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2

Config Lcd = 20 * 4
Config Sda = Portc.4
Config Scl = Portc.5
Cls


$lib "mcsbyte.lbx"                                          ' for smaller code
$lib "ds1307rtc.lib"                                        ' modified lib

'address of ds1307
Const Ds1307w = &HD0                                        ' Addresses of Ds1307 clock
Const Ds1307r = &HD1

Config Clock = User                                         ' this will dim the bytes automatic
'dim other needed variables
Dim Weekday As Byte
Locate 1 , 1
Lcd "DS1307"
Waitms 100
' assigning the time will call the SetTime routine
Time$ = "23:58:59"                                          ' to watch the day changing value
Date$ = "11-13-02"                                          ' 13 november 2002
Do
Cls
  Locate 1 , 1
  Lcd "Datum: " ; Date$ ;
  Locate 2 , 1
  Lcd "Tijd: " ; Time$
  Waitms 500
Loop

End

'called from ds1307clock.lib
Getdatetime:
  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307w                                          ' send address
  I2cwbyte 0                                                ' start address in 1307

  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307r                                          ' send address
  I2crbyte _sec , Ack
  I2crbyte _min , Ack                                       ' MINUTES
  I2crbyte _hour , Ack                                      ' Hours
  I2crbyte Weekday , Ack                                    ' Day of Week
  I2crbyte _day , Ack                                       ' Day of Month
  I2crbyte _month , Ack                                     ' Month of Year
  I2crbyte _year , Nack                                     ' Year
  I2cstop
  _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
  _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
Return

Setdate:
  _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307w                                          ' send address
  I2cwbyte 4                                                ' starting address in 1307
  I2cwbyte _day                                             ' Send Data to SECONDS
  I2cwbyte _month                                           ' MINUTES
  I2cwbyte _year                                            ' Hours
  I2cstop
Return

Settime:
  _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307w                                          ' send address
  I2cwbyte 0                                                ' starting address in 1307
  I2cwbyte _sec                                             ' Send Data to SECONDS
  I2cwbyte _min                                             ' MINUTES
  I2cwbyte _hour                                            ' Hours
  I2cstop
Return