Code ist:
Code:'************************************************************ ' 'Atmega Softclock ' 'Benutzt wird ein Mega8/8, 'Lcd An Portb , Taster Zum Stellen An Pd.0 'zum Hochzählen An Pd.3. 'zwischen XTAL ist ein 32.xxx Uhrenquarz '************************************************************ $regfile = "m8def.dat" Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4 Config Lcd = 16 * 2 Initlcd Cursor Off Cls Enable Interrupts Config Date = Mdy , Separator = / Config Clock = Soft Config Portd = Input Portd.0 = 1 'Taster1, Zeit/Datum stellen, PullUp ein, schaltet gegen Minus Portd.3 = 1 'Taster2, Zahl hochzählen, PullUp ein, schaltet gegen Minus Time$ = "00:00:00" 'Setzen auf Startwert Date$ = "00/00/00" 'Setzen auf Startwert Do Locate 1 , 1 Lcd Time$ 'Zeige Zeit in Zeile1 Locate 2 , 1 Lcd _day ; "/" ; _month ; "/0" ; _year 'Zeige Datum in Form DD/MM/YYin Zeile2 'lcd Date$ 'zeige Datum in Form MM/DD/YY If Pind.0 = 0 Then Gosub Time 'wiederhole Anzeige bis Taster 1 zum Stellen gedrückt, springe nach Sub "Time" Loop End 'Stunde Time: Waitms 200 Cls 'lösche Zeilen Do Locate 1 , 1 Lcd "Set Hour:" 'Stunden setzen Locate 2 , 1 Lcd _hour If Pind.3 = 0 Then 'Mit Taster 2 Incr _hour 'hochzählen Locate 2 , 1 Lcd _hour End If If _hour > 23 Then 'Zählt bis Max, danach wieder ab 0 Cls _hour = 00 End If 'solange, bis Taster 1 gedrückt Loop Until Pind.0 = 0 Waitms 200 'Minute Cls Do Locate 1 , 1 Lcd "Set Minute:" Locate 2 , 1 Lcd _min If Pind.3 = 0 Then Incr _min Locate 2 , 1 Lcd _min End If If _min > 59 Then Cls _min = 00 End If Loop Until Pind.0 = 0 Waitms 200 Cls 'Tag Cls Do Locate 1 , 1 Lcd "Set Day :" Locate 2 , 1 Lcd _day If Pind.3 = 0 Then Incr _day Locate 2 , 1 Lcd _day End If If _day > 31 Then Cls _day = 01 End If Loop Until Pind.0 = 0 Waitms 200 Cls 'Monat Cls Do Locate 1 , 1 Lcd "Set Month :" Locate 2 , 1 Lcd _month If Pind.3 = 0 Then Incr _month Locate 2 , 1 Lcd _month End If If _month > 12 Then Cls _month = 01 End If Loop Until Pind.0 = 0 Waitms 200 Cls 'Jahr Cls Do Locate 1 , 1 Lcd "Set Year :" Locate 2 , 1 Lcd _year If Pind.3 = 0 Then Incr _year Locate 2 , 1 Lcd _year End If If _year > 10 Then Cls _year = 00 End If Loop Until Pind.0 = 0 Waitms 200 Cls _sec = 00 'Springe Nach Setzen Von Zeit / Datum Wieder Zurueck Return







Zitieren

Lesezeichen