Programación Específica > Microcontroladores

 Ayuda Reloj 16f877

<< < (2/3) > >>

atila_uni:
HOlA a todos, veo que este foro tiene buenas cosas felicito a todos los que hacen esto posible, escribo aqui pues, apesar de que no puedo (aun) ayudar a gonza2004, tambien estoy trabajando en un proyecto en el que necesito accionar un piston en tiempo real, para lo cual pensaba trabajar con el DS1307, veo que es muy usado, mi problema es que no se muy bien como usar el bus I2C, para poder obtener los datos necesarios, si alguien me pocria ayudar se los agradeceria.

Tambien quiero pedir a Setha si me puedes pasar ese libro que mencionas pues estoy usando el micro xx84 , mi correo es carlos.uno@gmail.com

Gracias

Setha:
El libro es "Microcontrolador PIC16F84. Desarrollo de proyectos" de la Editorial Ra-ma. Es muy bueno, con la única pega que trabaja solo en ensamblador.

Saludos.

piolex:
y alguien sabe como conectar el pic16f877 con uun ds1302?
programacion assembler

rodrigover:

--- Cita de: "Setha" --- Para la gestión del tiempo real te sugiero utilizar un circuito integrado como el DS1307 que te facilita mucho el trabajo. Este chip proporciona directamente los segundos, minutos, horas, dia de la semana, dia del mes, mes y año, además, necesita muy pocos componentes externos pero trabaja en bus I2C.

Tengo un CDROM de un libro con el programa del reloj digital completo con representación en LCD con DS1307 y un PIC16F84. Si te viene bien te lo paso.

Saludos.

Setha.
--- Fin de la cita ---
 :huh:  holaaaaaaaa les cuento que quisira poder implentar el reloj de tiempo real y mi pregunta es si pueden ayudarme, les estaria muy agradecido, es mi primera vez que estoy en un foro y lo encuentro genial, un lugar donde todos se pueden ayudar y ojala yo tb pueda acerlo. que esten bien rodrigo, rodrigover@gmail.com

De antemano muchas gracias.-

DANIEL RODRIGUEZ:
señores, en mi humildeopinion no puede ser mas facil conectar un 1307 a un pic siempre y cuando se haga con PBP (pic basic pro ) y la razon es que este programa ya tiene todas las librerias necesarias incluidas.

ejemplo:


rutina de programacion del 1307 a travez de un pic


    memorizar:
    datos = %00000000 ;segundos
    addr = 0 ' Set address to 1
    I2CWRITE PORTC.6,PORTC.7,cont,addr,[datos]
    PAUSE 10 ' Wait 10ms for write to complete
 
     ;minutos  
    addr = 1 ' Set address to 2
    I2CWRITE PORTC.6,PORTC.7,cont,addr,[minutos]
    PAUSE 10 ' Wait 10ms for write to complete

      ;hora
    addr =2 ' Set address to 2
    I2CWRITE PORTC.6,PORTC.7,cont,addr,[hora]
    PAUSE 10 ' Wait 10ms for write to complete

      ;hora
    addr =3 ' Set address to 2
   I2CWRITE PORTC.6,PORTC.7 ,cont,addr,[diasem]
    PAUSE 10 ' Wait 10ms for write to complete

      ;dia
    addr = 4 ' Set address to 1
    I2CWRITE PORTC.6,PORTC.7,cont,addr,[dia]
    PAUSE 10 ' Wait 10ms for write to complete

       ;mes
    addr = 5 ' Set address to 2
    I2CWRITE PORTC.6,PORTC.7,cont,addr,[mes]
    PAUSE 10 ' Wait 10ms for write to complete

     ;year
    addr = 6 ' Set address to 2
    I2CWRITE PORTC.6,PORTC.7,cont,addr,[year]
    PAUSE 10 ' Wait 10ms for write to complete

    datos=%00000000    ;year
    addr = 7 ' Set address to 2
    I2CWRITE PORTC.6,PORTC.7 ,cont,addr,[datos]
    PAUSE 10 ' Wait 10ms for write to complete

    return
   
    filtro:
    base=0
    complemento=0
    base.0 = comun.4
    base.1 = comun.5
    base.2 = comun.6
    complemento.0 = comun.0
    complemento.1 = comun.1
    complemento.2 = comun.2
    complemento.3 = comun.3
    comun = base*10+complemento
    return


    rutina de lectura de datos del 1307 a travez de un pic


    leeclock:
       
    addr = 0    ; segundos
    I2CREAD PORTC.6,PORTC.7,cont,addr,[segundos]
    comun=segundos
    gosub filtro
    segundos=comun
 
    addr = 1    ; minutos
    I2CREAD PORTC.6,PORTC.7,cont,addr,[minutos]
    comun=minutos
    gosub filtro
    minutos=comun
 
    addr = 2    ; horas
    I2CREAD PORTC.6,PORTC.7,cont,addr,[hora]
    comun=hora
    gosub filtro
    hora=comun
 
    addr = 3   ; dia del asemana
    I2CREAD PORTC.6,PORTC.7,cont,addr,[diasem]
 
 
    addr = 4   ; dia
    I2CREAD PORTC.6,PORTC.7,cont,addr,[dia]
    comun=dia
    gosub filtro
    dia=comun
 
    addr = 5    ;mes
    I2CREAD PORTC.6,PORTC.7,cont,addr,[mes]
    comun=mes
    gosub filtro
    mes=comun
    addr = 6   ; año
    I2CREAD PORTC.6,PORTC.7,cont,addr,[year]
    return


Estas rutinas funcionan OK y son validas para la mayoria de los pic.

yo las empleo en el 16f84, el 16f873 y el 16f876.


Cordial saludo.

Daniel :hola:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa