www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

PIC in čip za realni čas PCF8583!

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
dgregor
Član
Član



Pridružen-a: Čet 06 Jan 2005 13:55
Prispevkov: 32
Aktiv.: 0.14
Kraj: Celje

PrispevekObjavljeno: Pon Maj 15, 2006 3:04 pm    Naslov sporočila:  PIC in čip za realni čas PCF8583! Odgovori s citatom

Pozdravljeni!

Je že kdo uporabljal za štetje realnega časa na PIC-u Phillipsov čip PCF8583?
Prosim za mnenja in izkušnje oziroma obstaja kakšna blojša varianta?

Vnaprej hvala za komentarje!

Lp, Gregor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pon Maj 15, 2006 3:05 pm    Naslov sporočila:   Odgovori s citatom

Odtipkaj v iskalnik na forumu PCF8593
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.71
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Pon Maj 15, 2006 3:21 pm    Naslov sporočila:   Odgovori s citatom

Ta chip deluje lepo. Na internetu je cul kup primerov za uporabo. Ni drag in ga imajo pri nas v trgovinah. Verjetno obstja tudi kašna boljša verzija, vendar je ta povsem v redu.

Jur
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
California
Član
Član



Pridružen-a: Pet 26 Avg 2005 19:48
Prispevkov: 236
Aktiv.: 1.00
Kraj: Hrastnik

PrispevekObjavljeno: Pon Maj 15, 2006 7:32 pm    Naslov sporočila:   Odgovori s citatom

Poizkusi! PIC18F458. LP Vlado

Koda:

program RTCmbasic       'DELA NA PORTD 4,3;

dim Sec as byte
dim Min as byte
dim Hr  as byte
dim Day as byte
dim Mn  as byte
dim Year as byte
dim txt as char[16]
dim Tipka_RD0, minuta as byte

sub procedure Set_Clk
   'i2C_Start           ' issue start signal
   Soft_I2C_Start
   'I2C_Wr($A0)         ' address PCF8583
   Soft_I2C_Write($A0)
   delay_ms(5)
   'I2C_Wr(0)           ' start from word at address 0 (configuration word)
   Soft_I2C_Write(0)
   delay_ms(5)
   'I2C_Wr($80)         '0 write $80 to config. (pause counter...)
   Soft_I2C_Write($80)
   delay_ms(5)
   'I2C_Wr(0)           '1 write 0 to cents word
   Soft_I2C_Write(0)
   delay_ms(5)
   'I2C_Wr(0)           '2 write 0 to seconds word
   Soft_I2C_Write(0)
   delay_ms(5)
   'I2C_Wr(minuta)         '3 write $56 to minutes word
   Soft_I2C_Write($56)
   delay_ms(5)
   'I2C_Wr($C0+$9)     '4 $80 is 12hr mode A.M., write $10 to hours word    80
                       ' $C0 is 12hr mode P.M.,
   Soft_I2C_Write($C0+$9)
   delay_ms(5)
   'I2C_Wr($80+$18)     '5 write $80=2006, +$17 to year/date word
   Soft_I2C_Write($80+$18)
   delay_ms(5)
   'I2C_Wr($03)         '6 write $02 to weekday/month
   Soft_I2C_Write($03)                       '2
   delay_ms(5)
   'I2C_Stop            ' issue stop signal
   Soft_I2C_Stop

   'i2C_Start           ' issue start signal
   Soft_I2C_Start
   'I2C_Wr($A0)         ' address PCF8530
   Soft_I2C_Write($A0)
   delay_ms(5)
   'I2C_Wr(0)           ' start from word at address 0
   Soft_I2C_Write(0)
   delay_ms(5)
   'I2C_Wr(0)           ' write 0 to config word (enable counting)
   Soft_I2C_Write(0)
   delay_ms(5)
   'I2C_Stop            ' issue stop signal
   Soft_I2C_Stop
end sub

sub procedure Zero_fill(dim byref value as char[10])    ' fill text repesentation
  if length(value) = 1 then                         '      with leading zero
    value[2] = value[1]
    value[1] = 48
    value[0] = 2
  end if
end sub

' reads time and date information from RTC (PCF8583)
sub procedure Read_time(dim byref Sec as byte,
                        dim byref Min as byte,
                        dim byref Hr  as byte,
                        dim byref Day as byte,
                        dim byref Mn  as byte)

   soft_i2c_start
   delay_us(20)
   soft_i2c_write($A0)
   delay_us(20)
   soft_i2c_write(2)
   delay_us(20)
   soft_i2c_start
   delay_us(20)
   soft_i2c_write($A1)
   delay_us(20)
   sec=soft_i2c_read(1)
   min = soft_i2c_read(1)
   hr = soft_i2c_read(1)
   day =soft_i2c_read(1)
   mn = soft_i2c_read(0)

   soft_I2C_Stop
end sub

sub procedure Transform_time(dim byref Sec  as byte,
                             dim byref Min  as byte,
                             dim byref Hr   as byte,
                             dim byref Day  as byte,
                             dim byref Mn   as byte,
                             dim byref Year as byte)
  sec  =  ((sec and $F0) >> 4)*10 + (sec and $0F)   ' formats date and time
  min  =  ((min and $F0) >> 4)*10 + (min and $0F)
  hr   =  ((hr and $F0) >> 4)*10 + (hr and $0F)
  year =  ((day and $C0)) >> 6
  day  =  ((day and $30) >> 4)*10 + (day and $0F)
  mn   =  ((mn and $10) >> 4)*10 + (mn and $0F)
end sub

sub procedure Display_time(dim Sec  as byte,
                           dim Min  as byte,
                           dim Hr   as byte,
                           dim Day  as byte,
                           dim Mn   as byte,
                           dim Year as byte)

   ByteToStr(day,txt)

   Zero_fill(txt)
   LCD_Out(1,6,txt)

   ByteToStr(mn,txt)
   Zero_fill(txt)
   LCD_Out(1,9,txt)
   LCD_Chr(1,16,52+year)

   ByteToStr(hr,txt)
   LCD_Out(2,6,txt)
   ByteToStr(min,txt)
   Zero_fill(txt)
   LCD_Out(2,9,txt)
   ByteToStr(sec,txt)
   Zero_fill(txt)
   LCD_Out(2,12,txt)
end sub

sub procedure Init
  INTCON2 = $80             '18F458
  CMCON = 7                 'comparators on portD off
  TRISB = 0                 ' designate portd as output
  LCD_init(portb)           ' initialize LCD on PORTB

  txt = "Date:"             ' prepare and output static text on LCD
  LCD_Out(1,1,txt)          '
        '

  txt = "Time:"
  LCD_Out(2,1,txt)


  txt = "200"
  LCD_Out(1,13,txt)
  Lcd_Cmd(LCD_CURSOR_OFF)
end sub


main:
  Init                                            ' perform initialization
  soft_i2c_config(PORTD,4,3)


  while true
    'Init
    'soft_i2c_config(PORTD,4,3)

    Read_Time(Sec, Min, Hr, Day, Mn)    ' read time from RTC(PCF8583)

    Transform_Time(Sec, Min, Hr, Day, Mn, Year)   ' format data and time

    Display_Time(Sec, Min, Hr, Day, Mn, Year)     ' prepare and display on LCD
    Lcd_Chr(1,9,".")
    Lcd_Chr(1,12,".")
    Lcd_Chr(2,9,":")
    Lcd_Chr(2,12,":")
    Delay_ms(1000)                                ' wait 1s
  wend
end.

_________________
California
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group