Vous êtes sur la page 1sur 4

DS1307

Descripcin.
El circuito integrado DS1307 es un reloj de tiempo real (RTC) de bajo consumo de energia.

Caractersticas.

Reloj de tiempo real (RTC). Cuenta Segundos, Minutos, Horas, Fecha del mes,
Mes, Da de la semana, y Ao con compensacin de ao bisiesto vlido hasta 2100.

56-Byte, Respaldo de batera, memoria RAM de propsito general con ilimitadas


escrituras.

Interfaz Serial I2C.

Salida programable de una seal de onda cuadrada.

Reloj y calendario.
La informacion del tiempo y calendario se obtiene mediante la lectura de los bytes del registro
adecuado. El tiempo y calendario son establecidos o inicializados por la escritura de los bytes
del
registro
adecuado. El
contenido
de
los
registros
en
tiempo
y
calendario estn establecidos en formato BCD.
La siguiente tabla muestra los registros del reloj de tiempo real (RTC).

Registro Segundos. Direccin 0x00


Este registro es de lectura y escritura. Mediante este registro se puede configurar los segundos
en el RTC, o bien se pueden leer los segundos.
El BIT 7 CH controla la interrupcin del reloj. Cuando este BIT se establece a 1 el oscilador es
desactivado. Cuando este BIT se establece en 0 el oscilador
esta habilitado.
Para configurar la hora o fecha en el RTC establecemos este BIT en 1, una vez ya configurado
el RTC establecemos este BIT a 0 para que el RTC inicie (comienza a contar).
Los BIT 6, BIT 5, BIT 4, BIT 3, BIT 2, BIT 1 y BIT 0 establecen los segundos, en un rango de 059.

Registro

Minutos. Direccin

0x01

Este registro es de lectura y escritura. Mediante este registro se puede configurar los minutos
en
el
RTC,
o
bien
se
pueden
leer
los minutos.
El BIT
7 siempre
se
establece
en 0.
Los BIT 6, BIT 5, BIT 4, BIT 3, BIT 2, BIT 1 y BIT 0 establecen los minutos, en un rango de 059.

Registro

Horas. Direccin

0x02

Este registro es de lectura y escritura. Mediante este registro se puede configurar las
horas,12/24,
AM/PM
en
el
RTC.
El BIT
7 siempre
se
establece
en 0.
El BIT 6 establece el modo de 12/24 Horas en el RTC. Cuando se establece en 1 el modo de
12 Horas es seleccionado. Cuando se establece en 0 el modo de 24 Horas es seleccionado.
El BIT 5 establece AM/PM siempre y cuando BIT 6 este en modo de 12 Horas. Si BIT
5 es 1 PM
es
seleccionado,
si BIT
5 es 0 AM
es
seleccionado.
Los BIT
5, BIT
4, BIT
3, BIT 2, BIT
1 y BIT
0 establecen
las
horas.

Registro Da.

Direccin 0x03

Este registro es lectura y escritura. Mediante este registro se puede configurar el da en el RTC,
o bien se
puede
leer
el da.
Los BIT
7, BIT
6, BIT
5, BIT
4 y BIT
3 siempre
se
establecen
en 0.
Los BIT 2, BIT
1 y BIT
0 establecen
el da,
en
un
rango
de
1-7.

Registro

Fecha. Direccin 0x04

Este registro es de lectura y escritura. Mediante este registro se puede configurar la fecha en el
RTC,
o
bien
se
puede
leer
la
fecha.
Los BIT
7 y BIT
6 siempre
se
establecen
en 0.
Los BIT 5, BIT 4, BIT 3, BIT 2, BIT 1 y BIT 0 establecen la fecha, en un rango de 1-31.

Registro

Mes.

Direccin

0x05

Este registro es de lectura y escritura. Mediante este registro se puede configurar el mes en el
RTC,
o
bien
se
puede
leer
el
mes.
Los BIT
7, BIT
6 y BIT
5 siempre
se
establecen
en 0.
Los BIT 4, BIT 3, BIT 2, BIT 1 y BIT 0 establecen el mes, en un rango de 1-12

Registro

Ao.

Direccin

0x06

Este registro es de lectura y escritura. Mediante este registro se puede configurar el ao en el


RTC,
o
bien
se
puede
leer
el
ao.
Los BIT 7, BIT 6, BIT 5, BIT 4, BIT 3, BIT 2, BIT 1 y BIT 0 establecen el ao, en rango de 00-99

Interfaz

Serial

I2C

El DS1307 soporta protocolo I2C. El DS1307 opera en el modo estndar (100kHz) solamente.
La direccin de
esclavo
del
DS1307
es 1101000.

Escritura

de

datos

en

el

registro

En la siguiente figura se muestra la secuencia para escribir en los registros del DS1307.

Ejemplo.

Escribir

el cdigo para

configurar

el

siguiente

reloj.

Solucin:
I2C1_Init(100000); // Configura I2C en 100kHz
void main()
{
I2C1_Start();
// Condicin de Start
I2C1_Wr(0xD0); // Direccin del DS1307_W
I2C1_Wr(0x00);
//
Inicia
Word
Address
desde
0x00
I2C1_Wr(0x92);
// Configura a 12 segundos + pausa. (0x12 | 0x80 ) = 0x92
I2C1_Wr(0x35);
//
Configura
a
35
minutos
I2C1_Wr(0x66);
// Configura a 6 horas, modo12Hr/PM. (0x06 | 0x60) = 0x66
I2C1_Wr(0x02);
//
Configura
a da lunes
I2C1_Wr(0x24);
//
Configura
a
fecha
24
I2C1_Wr(0x03);
//
Configura
a
mes
marzo
I2C1_Wr(0x14);
//
Configura
a
ao
2014
I2C1_Stop();
// Condicin de
Stop
I2C1_Start();
// Condicin de Start
I2C1_Wr(0xD0); // Direccin del DS1307_W
I2C1_Wr(0x00);
//
Inicia
I2C1_Wr(0x12);
// Configura a
I2C1_Stop();

Word
Address
desde
12 segundos y activa el
// Condicin de

0x00
RTC
Stop

Lectura

de

un

registro

En la siguiente figura se muestra la secuencia para leer los registros del DS1307.

Ejemplo: Escribir el cdigo par leer los segundos, minutos, horas, da, fecha, mes y ao.
Solucin:
I2C1_Init(100000);
//
Configura
I2C
unsigned char segundos, minutos, hora, dia, fecha, mes, year;
void main()
{
I2C1_Start();
// Condicin de Start

en

100kHz

I2C1_Wr(0xD0);
// Direccin del DS1307_W
I2C1_Wr(0x00);
// Inicia Word Address desde 0x00
I2C1_Repeated_Start();
//
Repetir
condicin de
Start
I2C1_Wr(0xD1);
// Direccin del
DS1307_R
segundos
=
I2C1_Rd(1);
//
Leer
los
segundos
+
ACK
minutos
=
I2C1_Rd(1);
//
Leer
los
minutos
+
ACK
hora
=
I2C1_Rd(1);
//
Leer
las
hora
+
ACK
dia
=
I2C1_Rd(1);
//
Leer
el da +
ACK
fecha
=
I2C1_Rd(1);
//
Leer
la
fecha
+
ACK
mes
=
I2C1_Rd(1);
//
Leer
el
mes
+
ACK
year
=
I2C1_Rd(0);
//
Leer
el
ao
+
NACK
I2C1_Stop();
// Condicin de
Stop
}

Link
http://mplabc18.blogspot.com/2014/03/ds1307.html

Vous aimerez peut-être aussi