Kod mi ide ovako:
Code: Select all
'************************************************* ***************
' Ime programa: RTC.BAS
' Opis: program ilustruje primenu sata realnog vremena DS1307.
' Za povezivanje sa mikrokontrolerom se koristi I2CREAD
' naredba.
'************************************************* ***************
TRISB = %00000000
TRISC = %00011000
TRISD = %00000000
TRISA = %000000
trise=%000
symbol SCL = PORTC.3 ' I2C data pin
symbol SDA = PORTC.4 ' I2C clock pin
Mi var byte ' Minuti
Sa var byte ' Sati
Me var byte ' Meseci
Se var byte ' Sekunde
Go var byte ' Godine
Da var byte ' Dani
i var byte
symbol led=porte.0
output led
Sat_1 var word
sat_2 var word
min_1 var word
min_2 var word
min_min var word
Dan1 var word
Dan2 var word
mes1 var word
mes2 var word
OPTION_REG = $7f ' Omoguci PORTB pullup otpornike
Main:
I2CREAD SDA,SCL,%11010001,1,[Mi] 'Cita minute i smesta u Mi
I2CREAD SDA,SCL,%11010001,2,[Sa] 'Cita sate i smesta u Sa
I2CREAD SDA,SCL,%11010001,0,[Se] 'Cita sekunde i smesta u Se
I2CREAD SDA,SCL,%11010001,5,[Me] 'Cita mesece i smesta u Me
I2CREAD SDA,SCL,%11010001,6,[Go] 'Cita godine i smesta u Go
I2CREAD SDA,SCL,%11010001,4,[Da] 'Cita dane i smesta u Da
Prikaz:
for i=0 to 50
min_min = Mi
sat_1 = sa DIG 0
sat_2 = Sa dig 1
min_1 = Min_min dig 1
min_2 = Min_min dig 0
PORTB = sat_1
PORTC = sat_2
PORTD = min_1
PORTA = min_2
toggle led
pause 100
next i
goto Datum
Datum:
for i=0 to 50
dan1=Da dig 0
dan2=da dig 1
mes1=me dig 1
mes2=me dig 0
portb = dan1
portc=dan2
portd=mes1
porta=mes2
pause 100
next i
goto Main ' Ponovi sve
End ' Kraj programa
Primera radi za broj 10 casova mi pokazuje 16. i tako sve i svasta.
Pretpostavljam da treba da konvertujem broj koji dobijem iz DS1307 u binarni oblik da bi mi pokazao kako treba jer kad sam isto to probao na LCD-u radilo je okej stom razlikom sto sam ubacivao naredbu HEX ispred projeva koje treba da mi pokaze na displeju.
Ne znam da li ovde treba da radim sa maskama pa da ako mi procita broj 16 da ja upisem broj na displeju 10. Koristio sam PIC16F877. sa 4 kola 74LS47 i nisam isao u multiplex mod nego svaki port po jedan displej.