Zrobiłem prosty zegarek na LCD i atmega8 ,
kwarc wewnętrzny 8Mhz
No i problem ,kod jest dość prymitywny :
Kod: Zaznacz cały
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
Config Lcd = 16 * 2
Dim Sekunda As Byte
Dim Minuta As Byte
Dim Godzina As Byte
Do
Waitms 1000
Incr Sekunda
If Sekunda = 59 Then
Sekunda = 0
Incr Minuta
End If
If Minuta = 59 Then
Minuta = 0
Incr Godzina
End If
If Godzina = 24 Then
Godzina = 0
End If
If Sekunda = 20 And Minuta = 1 Then 'budzik,zał np. Led
Reset Portx.x
End If
Cls
Cursor Off
Locate 1 , 2
Lcd "" ; Godzina
Locate 1 , 4
Lcd ":" ; Minuta
Locate 1 , 7
Lcd ":" ; Sekunda
Loop Until Godzina = 24
Tylko jako że nie umiem jeszcze Timer'ów obsługiwać ,nie wiem jak odmierzyć
"prawdziwą" sekundę - na razie te funkcję pełni 'Waitms 1000'
Ale jest precyzyjna jak tasak przy operacji neurochirurgicznej...
Ma ktoś pomysł aby wytrzasnąć sekundę?
Czy może wewn. kwarc nie będzie precyzyjny ??
Wie ktoś może jak najprościej się określa cyfry w wyświetlaczu Led'owym?
Np na PortB0-10 (7Pinów sterujących + 4 do tranzystorów).