Académique Documents
Professionnel Documents
Culture Documents
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.
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
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
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
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