Interface of DS1307 with PIC16F876A


Closed Thread
Results 1 to 22 of 22
  1. #1
    Eng4444's Avatar
    Eng4444 Guest

    Exclamation Interface of DS1307 with PIC16F876A

    Hello everybody,

    Is anyone ready to teach me how to program DS1307 to be used with PIC16F876 while programming with PicBasic Pro?

    i have never used I2C...

    I'm working working on electric energy calculation: Energy = Power . Time

    so i need to get the time and multiply it by the power i already calculated.Ne need to see time on LCD but just to manipulate with it internally.

    I am even ready to pay for the one who will give a whole program... in fact, i am so squeezed by time and i need a quick solution.

    Thank you.

  2. #2
    Eng4444's Avatar
    Eng4444 Guest


    Did you find this post helpful? Yes | No

    Default Not help yet

    Come one please... i need even small clues!

  3. #3
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    Like ONE HOUR has elapsed since your initial post and you're bugging people for an answer... on a SUNDAY when almost all the professionals are home lazing by the pool and very few folks are actually looking at the forum.

    Code:
    	I2CAddress var Byte
    	RTCRegister var Byte
    	RegisterContents var Byte
    
    	I2CAddress=$D0
    	I2CRead SDA,SCL,I2CAddress,RTCRegister,[RegisterContents],I2CError
    Look in the PBP manual to see what I've written. Look in the RTC's Datasheet to discover what the Registers are and what they contain. Go to the MELabs website, download and study an RTC example that's posted there...

  4. #4
    Eng4444's Avatar
    Eng4444 Guest


    Did you find this post helpful? Yes | No

    Arrow Dear Melanie,

    You cannot understand what people have... please don't think that i am just sitting here waiting to study that stuff. I am a biomedical Engineer - from where my nickname- and i will graduate in 2 weeks.

    the last time i asked a help about "div32", i felt i was treated in a bad way.

    i want you to understand that working with PIC is not my specialization at all; not with PicBasic Pro, nor with DS1307.

    i just design medical instruments and machines and train doctors to use them.

    But it just happened that in my senior project, i am adding an extra part and using PIC. Then, i will never see PIC in my whole life.

    So in case you are able to help me, do it completely please; even if you ask for money.

    But i need a whole program... between DS1307 and PIC16F876A.

    By the way, can i use a program written in C and write it in the PicBasic Pro program? because i just found an interface written in C language.

  5. #5
    Eng4444's Avatar
    Eng4444 Guest


    Did you find this post helpful? Yes | No

    Default One more thing..

    i think you didn't understand me well because you provided me a program to read from DS1307 and i am thankful.

    But still, i dunno how to prgram it ( i mean how to set hours, minutes, seconds, month, day ,year for the first time).

    So as i said, i just bought a DS1307 and i have a PIC16F876A. what are the next steps?....


    I'll appear an idiot i know but really... this is not my field at all.. i got stuck with it and not way to step back because of lack of time...

    thank you all for your understanding.

  6. #6
    Eng4444's Avatar
    Eng4444 Guest


    Did you find this post helpful? Yes | No

    Lightbulb Melanie

    Would you be able to help me?

  7. #7
    Join Date
    Sep 2005
    Location
    Campbell, CA
    Posts
    1,107


    Did you find this post helpful? Yes | No

    Default

    The following may prove useful.

    Remember that the DS1307 stores all data in BCD format, so you will have
    to convert your ASCII input into binary BCD before writing, and will have to
    convert back from BCD when reading.


    ClockAddr CON %11010000 ' RTC device address (byte addressing)
    Offset CON 0
    Cntrl CON %00010000 ' sets the SQW/OUT to 1Hz pulse, logic level low

    I2CRead SDA_PIN, SCL_PIN,ClockAddr,Offset,[sec,mins,hr,day,date,mon,yr],ErrorTrap


    I2CWrite SDA_PIN,SCL_PIN,ClockAddr,Offset,[sec,mins,hr,day,date,mon,yr,cntrl],ErrorTrap
    Charles Linquist

  8. #8
    Join Date
    Feb 2006
    Posts
    89


    Did you find this post helpful? Yes | No

    Default Rtc

    If you can buy a ds1302 RTC I can provide you with a working program and a schematic. I know it isn't a 1307, but those are the options I can provide.

    Travin

  9. #9
    Eng4444's Avatar
    Eng4444 Guest


    Did you find this post helpful? Yes | No

    Lightbulb Dear Travin

    Quote Originally Posted by Travin77
    If you can buy a ds1302 RTC I can provide you with a working program and a schematic. I know it isn't a 1307, but those are the options I can provide.

    Travin
    ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++

    I do not care about the IC, i can buy DS1302 as long as it gives the same result.
    i just need to deal with time in a certain way (multiply, divide...etc) so the IC will not cause a prob at all... do you have a program for PIC16F876A? i'll be more than thankful!!!

  10. #10
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    Eng4444 please understand that folks don't sit next to their terminals all day long waiting to answer your questions. I might glance at it once a day if I'm at my desk - sometimes more, or I might not for several days at a time... Time may be of the essence for you but I also have other priorities in my life...

    If you are calculating Energy = Power . Time, then you are about to open up a whole heap of time calculation problems if you are going to read the time and date, because as you move through midnight into the next day, or increment through into the next month, you have to take into account a whole new set of figures...

    Example... What is the elapsed time between 14:37:31 on 25/02/06 and 17:11:09 on 26/05/06? That's a whole heap of code to do that. You have to work out how much time elapsed until midnight on one day, and how much time elapsed since midnight on the next. Then a month goes by... and you have to take account how many days have elaspsed. And was this year a Leap Year? If you get it wrong you're a day out... So unless you convert everything to Linear Time (there was a long thread on Julian Date calculation some time ago) you have a headache with a PIC full of lots of code doing no more than calculating an elapsed period.

    The DS1307 however provides you with an easier solution that saves you having to do these Time and Date calculations... just count Seconds. Set up the DS1307 to output a Second Pulse to your PIC, and your program sits there doing whatever you want it to do and just simply incrementing a counter every time a Second ticks by.

    Melanie

  11. #11
    Join Date
    May 2004
    Location
    New England
    Posts
    164


    Did you find this post helpful? Yes | No

    Default

    Isn't there a different chip in the DSxx series that just records the launch date and then counts elapsed seconds? - can't recall the part # off-hand.

    Arch

  12. #12
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

  13. #13
    Eng4444's Avatar
    Eng4444 Guest


    Did you find this post helpful? Yes | No

    Default Dear Melanie,

    Maybe you can come up with a new solution for my problem?

    i really do not need about making it work for a year or month... not even a week or a full day!

    i just want to do a demonstration for 30 minutes and i need to show people who a watching the final number.

    so what do you say if i take a second small PIC (12F675 OR 16F84) and run a loop inside it? and then, i take the final number as if it is number of seconds and multiply by it by the Power in PIC16F876... what do you say or suggest?

    would it be an accurate number of seconds?

    but what to write in that loop? what delay to put.... ?

    I hope You or anyone helps me in this affaire...

  14. #14
    Eng4444's Avatar
    Eng4444 Guest


    Did you find this post helpful? Yes | No

    Default i think it will work..

    Maybe this is the best solution to work in peak times? i mean the usage of the second PIC...

    any advice is appreciable.

  15. #15
    Eng4444's Avatar
    Eng4444 Guest


    Did you find this post helpful? Yes | No

    Default Ds1307

    DS1307: I2C Serial Interface; how to do it?

  16. #16
    Join Date
    Sep 2005
    Location
    Campbell, CA
    Posts
    1,107


    Did you find this post helpful? Yes | No

    Default

    The code that I posted earlier works fine for a DS1307!
    Charles Linquist

  17. #17
    Join Date
    Feb 2006
    Posts
    89


    Did you find this post helpful? Yes | No

    Default More specific

    Eng,

    Tell me how you are determining the power. Are you using sensors, or just extrapolation? How many pins are you using? Need more data. I don't mind helping (what help I can provide as I am new to this stuff). Give more data, and you might just get more results.

    Travin

  18. #18
    Eng4444's Avatar
    Eng4444 Guest


    Did you find this post helpful? Yes | No

    Default Dear Charles

    sorry to say it but, what are: SDA_PIN, SCL_PIN,ClockAddr,Offset ?

    i know nothing about them.....

    what are their settings? should i write them as they are? or replace them with other things?

    Moreover, how to set the first date and time? you provided me with the way i read or write but how to set the initial time?

    thank you in advance :-)

  19. #19
    Eng4444's Avatar
    Eng4444 Guest


    Did you find this post helpful? Yes | No

    Default Dear Travin77

    Let's say i will use port RC0 from my PIC16F876A.

    i am getting power by using sensors. Things are so fine and i am being able to calculate this power. I am even seeing it on LCD. but now i need to go and get the energer... E = POWER . TIME

    SO i still need the time... any detailed code suitable with PIC16F876A would be appreciated!

    i need to know how to set the ports, how to enter the first date and time, if i need to write something related to frequency or not, how to read time from DS1307 into a variable, how to display it on LCD.

    Thank you in advance!

  20. #20
    Join Date
    Feb 2006
    Posts
    89


    Did you find this post helpful? Yes | No

    Default Did you look here?

    I just wanted to let you know that there is pre-written code for this chip. Go here:

    http://www.melabs.com/resources/samp...ted/MN1307.txt

    This might help.

    Travin

  21. #21
    Eng4444's Avatar
    Eng4444 Guest


    Did you find this post helpful? Yes | No

    Unhappy Dear Travin

    Quote Originally Posted by Travin77
    I just wanted to let you know that there is pre-written code for this chip. Go here:

    http://www.melabs.com/resources/samp...ted/MN1307.txt

    This might help.

    Travin
    __________________________________________________ ____________

    I have already found it but i really do not know how to make it work for PIC16F876A! things might be different a bit...

    Many people are telling me that i just to need to write 2 to 3 lines only to fix the actual time, after defining the ports used. And then, i'll be able to read from DS1307. so when i saw that program.... i was chocked because of so many many lines....i don't want the user to do anything with time, i do not want to put buttons.. i just want this IC to have internal real time clock working fine so that whenever i want i can take the difference between 2 time intervals in order to get seconds and then, / 3600 to ge tthe hours...

    As you see, i just want an extremely simple thing but i am not able to do it...
    this is why, i'll keep on asking if someone can help me to write those 7 to 8 lines as i think..

  22. #22


    Did you find this post helpful? Yes | No

Similar Threads

  1. LCDOUT w/custom interface?
    By Mike, K8LH in forum PBP Extensions
    Replies: 4
    Last Post: - 3rd March 2015, 04:54
  2. Replies: 33
    Last Post: - 19th March 2010, 04:02
  3. DS1307 on fire
    By brid0030 in forum General
    Replies: 6
    Last Post: - 25th November 2006, 03:44
  4. 'SCI' interface
    By ecua64 in forum Off Topic
    Replies: 0
    Last Post: - 29th September 2005, 17:02
  5. User Configuration Interface in PBP
    By Radiance in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 7th February 2004, 09:00

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts