Or something like this :
Code:citeste_RTC: I2CREAD SDA,SCL,$d1,$00,[STR DB0\8] ' Read 8 bytes from DS1307 ore = (db0[2] & $F )+((db0[2]>>4)*10) 'formula de conversie Hex to Dec pentru ore,hour minute = (db0[1] & $F )+((db0[1]>>4)*10) 'formula de conversie Hex to Dec pentru minute,minutes Secunde = (db0[0] & $F )+((db0[0]>>4)*10) 'formula de conversie Hex to Dec pentru secunde,seconds if secunde = 15 or secunde = 30 or secunde = 45 then gosub afisare_data else gosub afisare_ceas endif Zi = (db0[4] & $F )+((db0[4]>>4)*10) 'formula de conversie Hex to Dec pentru zile,days Luna = (db0[5] & $F )+((db0[5]>>4)*10) 'formula de conversie Hex to Dec pentru luni,months An = (db0[6] & $F )+((db0[6]>>4)*10) 'formula de conversie Hex to Dec pentru ani,years anod1=0 anod2=0 Anod3=0 Anod4=0 anod5=0 anod6=0 goto citeste_rtc afisare_ceas: 'display clock Digit=secunde dig 1 gosub convert PortC=pattern Anod5=1 pause 1 anod5=0 digit=secunde dig 0 gosub convert PortC=pattern Anod6=1 pause 1 anod6=0 Digit=minute dig 1 gosub convert PortC=pattern Anod3=1 pause 1 anod3=0 Digit=Minute dig 0 gosub convert PortC=pattern Anod4=1 pause 1 anod4=0 digit=ore dig 1 gosub convert PortC=pattern Anod1=1 pause 1 anod1=0 digit=ore dig 0 gosub convert PortC=pattern Anod2=1 pause 1 anod2=0 return afisare_data: 'afisare date Digit=zi dig 1 gosub convert PortC=pattern Anod5=1 pause 1 anod5=0 digit=zi dig 0 gosub convert PortC=pattern Anod6=1 pause 1 anod6=0 Digit=luna dig 1 gosub convert PortC=pattern Anod3=1 pause 1 anod3=0 Digit=luna dig 0 gosub convert PortC=pattern Anod4=1 pause 1 anod4=0 digit=an dig 1 gosub convert PortC=pattern Anod1=1 pause 1 anod1=0 digit=an dig 0 gosub convert PortC=pattern Anod2=1 pause 1 anod2=0 ;goto citeste_RTC return convert: lookup digit, [$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern pattern=pattern^$FF return end




Bookmarks