DS1307: Lectura y Escritura de la hora

|

Este pequeño integrado es una maravilla aparte de su gran precisión, en mi opinion, tiene miles de aplicaciones que son de gran utilidad. Con esta pequeña practica se busca lo siguiente:

  • Programar la hora al DS1307
  • Leer la hora por medio del PICAXE

Programar la hora (escritura): Para esto, el PICAXE programming editor tiene una opción integrada que nos será util, ajustar la hora de la PC en el ds1307 por medio del PICAXE, dicha utilidad se encuentra en;

ds1307
le damos clic en colocar la hora de nuestro PC y listo, para ver el funcionamiento chequen el video.

Para la lectura de la hora; utilizaremos el siguiente código, clic aqui. El código para leer la hora y mostrarla en pantalla sera el siguiente:

symbol segundos = b11
symbol minutos = b12
symbol horas = b13
symbol dayweek = b14
symbol dia = b15
symbol mes = b16
symbol year = b17
symbol control = b18

Tienen de la varialbe b11 hasta b18 debido a que las primeras son tomadas para el DS1307, estas nos serviran para el resultado de la conversion, si usamos una pantalla LCD no serán necesitadas estas variables, pero como estamos usando la TERMINAL las necesitamos.

i2cslave %11010000, i2cslow, i2cbyte

En la hoja de especificaciones del fabricante del DS1307, se encontraron los siguientes detalles.

slave address - 1101000x
address size - 1 byte
bus speed - 100kHz

Esto significa que el comando i2c slave a programar en el PICAXE es el siguente:

i2cslave %11010000, i2cslow, i2cbyte

Los registros del DS1307 están definidos en la tabla 1.

Todos los datos de tiempo/fecha están en formato BCD, lo cual hace muy fácil su lectura y escritura usando notación hexadecimal. Por ejemplo 11:35 a.m. va a contener $11 en el registro de horas y $35 en el registro de minutos.

loopp:
'leyendo ds1307
readi2c 0, (b0,b1,b2,b3,b4,b5,b6,b7,b8)

El comando readi2c se utiliza para leer bytes de datos de un dispositivo I2C. Los registros del DS1307 estan definidos como:

DS1307
Tabla 1
'conversion para verlo con el comando sertxd
segundos = bcdtobin b0
minutos = bcdtobin b1
horas = bcdtobin b2
dayweek = bcdtobin b3
dia = bcdtobin b4
mes = bcdtobin b5
year = bcdtobin b6

Algo que tengo que mencionar es que según el manual la función BCDTOBIN solo esta disponible en los PICAXE X1 y X2 lo que hace esta funcion es convertir un codigo binario de valor decimal a un binario normal, por ejemplo b1= bcdtobin $88 (la respuesta será b1=88) y esta conversión es la que nos permite ver los numeros en forma normal.

'visualizando
sertxd(#horas," : ",#minutos," : ",#segundos," Fecha: ",#dia,"/",#mes,"/",#year,13,10)
wait 1
Ahora lo visualizamos tal como la linea de codigo anterior.

DIAGRAMA
ds1307 + picaxe

ds1307 + picaxe


5 comentarios:

kuragari dijo...

Y en caso de querer implementar un reloj, usando un picaxe 18 X y este integrado ds1307, como propones el mecanismo de la "puesta en hora" por el usuario (en caso de no querer incluir el circuito de descarga para inicializar el ds1307)¿?

:-O

gracias de antemano

OptimusTronic dijo...

interesante tu pregunta kuragari, pues lo que hariamos es que pormedio de botones (osea push boton) hariamos la "puesta en hora", obviamente, utilizariamos el programa de escritura ya sea el que trae el PICAXE Programming Editor ó el que nosotros hagamos (que tambien es posible. un ejemplo seria, la posibilidad de utilizar 3 push boton uno para hora otro para minutos y otro para segundos, el programa revisaria que una vez hayamos "colocado" los 3 datos (hora,minutos,segundos) le "diga" (osea escriba por medio del comando writei2c) al DS1307 que hora sera la que tendra internamente.

Saludos y espero haber sido claro, sino vuelve a preguntarme.

Anónimo dijo...

visiten mi blog
organizacionshalom.blogspot.com
academia de baile, pasarela y actuacion de venezuela aragua cagua es nuevo nuestro blog pronto tendremos fotos gracias

culerillo dijo...

Orale, con todo respeto pero que video tan mas chafa... Saludos...

Anónimo dijo...

una verga el video ....estabas en pedo ...porque no lo dejas quieto boludo

Publicar un comentario en la entrada

comentando podras mejorar el contenido del blog.