Układy RTC stosuje się w celu odciążenia mikrokontrolera. Nie w każdym przypadku mikrokontroler potrafi dokładnie odmierzać czas i zajmować się innymi czynnościami. Drugi plus to taki, że układ RTC z dobrym, oscylatorem jest bardziej dokładniejszy niż mikrokontroler, ponieważ w mikrokontrolerze wystarczy zmiana napięcie żeby ta dokładność spadła.
![]() |
schemat układu |
Aby nasz układ sprawnie działał potrzebny mu jest oscylator 32,768kHz Q1 oraz dołączony do niego kondensator C1. Diody D1 D2 kontrolują aby do układu nie dotarło wyższe napięcie niż zalecane (max. 6V). Kondensator C2 standardowo filtruje napięcie, a bateria G1 dostarcza cały czas 24/7 napięcie do podtrzymania zegaru (taka bateria przeważnie trzyma ok.8 lat i więcej). Tutaj jest listing do odczytywania data i godziny:
-
$regfile = „m48def.dat”
-
$crystal = 16000000
-
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portd.5
-
Config Lcd = 20 * 4
-
Config Scl = Portc.5
-
Config Sda = Portc.4
-
Dim Sekundy As Byte : Dim Minuty As Byte : Dim Godziny As Byte
-
Dim Dzien As Byte : Dim Miesiac As Byte
-
Dim Rok As Byte : Dim Dzien_tygodnia As Byte
-
Do
-
I2cstart
-
I2cwbyte &HA0
-
I2cwbyte 2
-
I2cstart
-
I2cwbyte &HA1
-
I2crbyte Sekundy , Ack
-
I2crbyte Minuty , Ack
-
I2crbyte Godziny , Ack
-
I2crbyte Dzien , Ack
-
I2crbyte Miesiac , Nack
-
I2cstop
-
Sekundy = Makedec(sekundy)
-
Minuty = Makedec(minuty)
-
Godziny = Makedec(godziny)
-
Rok = Dzien
-
Shift Rok , Right , 6
-
Rok = Makedec(rok)
-
Dzien.7 = 0 : Dzien.6 = 0
-
Dzien = Makedec(dzien)
-
Dzien_tygodnia = Miesiac
-
Shift Dzien_tygodnia , Right , 5
-
Dzien_tygodnia = Makedec(dzien_tygodnia)
-
Miesiac.7 = 0 : Miesiac.6 = 0 : Miesiac.5 = 0
-
Miesiac = Makedec(miesiac)
-
Cls
-
Lcd „Godzina: ” ; Godziny ; „:” ; Minuty ; „:” ; Sekundy
-
Lowerline
-
Lcd „Data: ” ; Dzien ; „-” ; Miesiac ; „-” ; Rok ; ” : ” ; Dzien_tygodnia
-
Wait 1
-
Loop
-
End
Wykaz elementów:
IC1 PCF8583P
Q1 oscylator 32,768kHz
C1 kondensator 30pF
C2 kondensator 100nF
D1, D2 dioda 1N4148
G1 bateria 3V CR2032
R2 rezystor 220?
Dzięki za uwagę, jak chcesz być na bieżąco z postami to kliknij ‚Lubię to !‚.
Pozdrawiam ;)