Академический Документы
Профессиональный Документы
Культура Документы
DS1307 Basics
The Real-time clock DS1307 IC basically is stand-alone time clock with following features.
Real-time clock (RTC) counts seconds, minutes, hours, date of the month, month, the day of the week,
and year with leap-year compensation valid up to 2100.
The clock operates in either the 24-hour or 12-hour format with AM/PM indicator.
56-byte, battery-backed, non-volatile (NV) RAM for data storage
Two-wire(I2C) serial interface
Programmable squarewave output signal
Automatic power-fail detect and switch circuitry
Consumes less than 500nA in battery backup mode with oscillator running
Optional industrial temperature range: -40°C to +85°C
DS1307 Pins
Below image shows the pin diagram and the recommended connections for DS1307.
VCC, GND: These pins are used to provide the power to the chip. When 5V is applied within normal limits,
the device is fully accessible and data can be written and read. When a 3V battery is connected to the device
and VCC is below 1.25 x VBAT, reads and writes are inhibited. However, the timekeeping function continues
unaffected by the lower input voltage. As VCC falls below VBAT the RAM and timekeeper are switched
over to the external power supply (nominal 3.0V DC) at VBAT.
X1-X2:Pins to connect the external 32.768kHz oscillator that provides the clock source to the chip.
Vbat: A 3.3v Lithium battery can be connected to this pin in order to provide the power source when the
external supply voltage is not available. Battery voltage must be held between 2.0V and 3.5V for proper
operation.
SCL: This pin must be connected to SCL pin of the I2C Bus/Master.
SDA: This pin must be connected to SDA pin of the I2C Bus/Master.
SQW/OUT: When enabled, the SQWE bit set to 1, the SQW/OUT pin outputs one of four square wave
frequencies (1Hz, 4kHz, 8kHz, 32kHz).
Note: The SCL,SDA, and SQW are open drain and must be pulled up with appropriate pull-up
resistors as shown in the image.
DS1307 Memory
The RTC keeps the date and time arranged in it's memory as shown below:
Control Register
7 6 5 4 3 2 1 0
OUT: This bit controls the output level of the SQW/OUT pin when the square-wave output is disabled. If
SQWE = 0, the logic level on the SQW/OUT pin is 1 if OUT = 1 and is 0 if OUT = 0. By default this pin will
be 0.
SQWE:This bit, when set to logic 1, enables the oscillator output. The frequency of the square-wave output
depends on the value of the RS0 and RS1 bits.
RS1-RS0:These bits control the frequency of the square-wave output when the squarewave output has been
enabled.
DS1307 ID
Ds1307 ID
7 6 5 4 3 2 1 0
1 1 0 1 0 0 0 R/W
1. void RTC_Init(void)
2. {
5.
8.
10.
12. }
2. {
4.
7.
15.
17. }
2. {
4.
7.
9.
12.
20.
22. }
Both the above functions use a simple structure shown below for easy access
1. typedef struct
2. {
3. uint8_t sec;
4. uint8_t min;
5. uint8_t hour;
6. uint8_t weekDay;
7. uint8_t date;
8. uint8_t month;
9. uint8_t year;
10. }rtc_t;
Hardware Connections
Code
Now, let's put together all that we have discussed in a simple example to read and show the time on character
LCD.
Note: The date and time read from Ds1307 will be of BCD format, like:
#include "rtc.h"
#include "lcd.h"
int main()
{
rtc_t rtc;