Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Real time sat s timerom

[es] :: Elektronika :: Mikrokontroleri :: Real time sat s timerom

[ Pregleda: 3191 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

marinbnm

Član broj: 19868
Poruke: 256
*.adsl.net.t-com.hr.

Sajt: www.fmdream.net


+2 Profil

icon Real time sat s timerom02.04.2008. u 18:42 - pre 195 meseci
Pozdrav!

Zanimalo bi me ima li tko rutinu za sat, znači namjestim mu vrijeme i datum, i onda da mogu mu recimo namjesitit datum i vrijeme kad da upali relej......ili ići još sa onim DS1302 kao real time clock?


Inače radim u PICBASIC pro.....i 16F877 koristim..


Pa ako netko ima kakav primjer!

tnx!

frffr
 
Odgovor na temu

pelctronics
Beograd

Član broj: 133821
Poruke: 74
87.250.52.*



Profil

icon Re: Real time sat s timerom02.04.2008. u 21:48 - pre 195 meseci

'****************************************************************
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [Boris] *
'* Notice : Copyright (c) 2008 [pelctronics] *
'* : All Rights Reserved *
'* Date : 26.1.2008 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
DEFINE LCD_DREG PORTB ' I/O port na kome se nalazi LCD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2 ' Register select pin
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3 ' Enable pin
DEFINE LCD_BITS 4 ' 4-bitni data bus
DEFINE LCD_LINES 2 ' LCD ima dva reda karaktera
define osc 8
symbol SCL = PORTC.3 ' I2C data pin
symbol SDA = PORTC.4 ' I2C clock pin

trisd=00000000
portd=00

B0 var byte
b0=0
Sekunde var byte ' Sekunde
Minuti var byte ' Minuti
sati var byte ' Sati
Dani var byte ' Dan
Meseci var byte ' Mesec
Godina var byte ' Godina

paljenje_minut var byte
paljenje_sat var byte

gasenje_sat var byte
gasenje_minut var byte

paljenje_minut=0
paljenje_sat=0
gasenje_sat=0
gasenje_minut=0

read 1,b0
pause 20

portd=B0




Main:


gosub Procitaj_sat
pause 100
gosub provera_dana


if (minuti=paljenje_minut) and (sati=paljenje_sat) then pali

pause 100
if (Minuti=gasenje_minut) and (sati=gasenje_sat) then gasi


goto Main ' Ponovi sve





provera_dana:

select case meseci

case 1 '''januar''''''


paljenje_minut=52
paljenje_sat=16
gasenje_sat=16
gasenje_minut=55


case 22 '''''februar''''''

paljenje_minut=32
paljenje_sat=15
gasenje_sat=15
gasenje_minut=33




case 3 ''''mart'''

paljenje_minut=15
paljenje_sat=16
gasenje_sat=7
gasenje_minut=0




case 4 '''''april'''
paljenje_minut=00
paljenje_sat=17
gasenje_sat=7
gasenje_minut=0




case 5 ''''''maj'''''
paljenje_minut=00
paljenje_sat=18
gasenje_sat=7
gasenje_minut=0






case 6 '''''''jun''''''
paljenje_minut=0
paljenje_sat=18
gasenje_sat=7
gasenje_minut=0




''''''jul'''''
case 7
paljenje_minut=20
paljenje_sat=19
gasenje_sat=7
gasenje_minut=0





case 8 '''''avgust''''
paljenje_minut=0
paljenje_sat=20
gasenje_sat=7
gasenje_minut=0





case 9 '''''septembar''''''
paljenje_minut=20
paljenje_sat=20
gasenje_sat=7
gasenje_minut=0






'''''oktobar'''''
case 10
paljenje_minut=20
paljenje_sat=19
gasenje_sat=19
gasenje_minut=22







case 11 ''''''novembar''''''
paljenje_minut=20
paljenje_sat=19
gasenje_sat=19
gasenje_minut=22





'''''''decembar'''''
case 12
paljenje_minut=20
paljenje_sat=19
gasenje_sat=19
gasenje_minut=22

end select

return
'''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''' paljenje
pali:
if (Minuti=gasenje_minut) and (sati=gasenje_sat) then gasi

portd=255
b0=portd
write 1, b0 ''pamti zadnje stanje

goto main
'''''''''''''''''''''''''''''''''''''''''''''''''' gasenje
gasi:
portd=00
b0=portd
write 1, b0 ''pamti zadnje stanje
goto main
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''
procitaj_sat:
I2CREAD SDA,SCL,%10100001,2,[Sekunde]
I2CREAD SDA,SCL,%10100001,3,[Minuti]
I2CREAD SDA,SCL,%10100001,4,[sati]
I2CREAD SDA,SCL,%10100001,5,[Dani]
I2CREAD SDA,SCL,%10100001,6,[Meseci]
I2CREAD SDA,SCL,%10100001,7,[Godina]


sati =(sati & $F )+((sati>>4)*10) '''konverzija iz hexa decimalnog u decimalni broj '''''
minuti = (minuti & $F )+((minuti>>4)*10)'''''
dani = (dani & $F )+((dani>>4)*10)
meseci =(meseci & $F )+((meseci>>4)*10)
sekunde =(sekunde & $F )+((sekunde>>4)*10)

lcdout $fe,1 ' Obrisi displej
lcdout $fe,2 ' Prvi red prvi karakter
lcdout "Vreme:",dec2(sati),":", dec2(Minuti),":",dec2(Sekunde)
lcdout $fe,$c0 ' Drugi red, prvi karakter
lcdout "Datum:",dec2(Dani),".",dec2 (Meseci),".20",dec2(Godina)

return



End ' Kraj programa





Slicno pa preradi :-)
kolo je pcf8583 Philips

 
Odgovor na temu

marinbnm

Član broj: 19868
Poruke: 256
*.adsl.net.t-com.hr.

Sajt: www.fmdream.net


+2 Profil

icon Re: Real time sat s timerom02.04.2008. u 23:17 - pre 195 meseci
Super....

samo jedno, na kraju meseci, trba li umjesto "end select" biti "end select case"?
frffr
 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
*.adsl.beotel.net.



+28 Profil

icon Re: Real time sat s timerom03.04.2008. u 07:07 - pre 195 meseci
i jos jedna opaske da ne bude zabune za mladje
Citat:
sati =(sati & $F )+((sati>>4)*10) '''konverzija iz hexa decimalnog u decimalni broj '''''

komentar treba da bude: konverzija BCD broja u pojedinacne decimalne cifre
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Real time sat s timerom

[ Pregleda: 3191 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.