Autor Tema: Proteus DS1307 24LC256 No funciona correctamente  (Leído 3850 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado b.stronger

  • PIC10
  • *
  • Mensajes: 45
Proteus DS1307 24LC256 No funciona correctamente
« en: 01 de Julio de 2010, 00:40:10 »
Que tal, saludos!
Soy nuevo en el foro, y vengo a pedirles ayuda después de haber revisado todas las posibilidades.

Bueno, actualmente me encuentro haciendo un proyecto que incluye la utilización de un Ds1307 y una memoria 24LC256, que por falta de pines de un 16F877a tengo que conectar juntos los pines de ambos.

Entonces, para esto, he creado un programa de pruebas!




////////////////////////////////////////////////////////////////////////////////////////////

#include <16F877a.h>
#use delay (clock=4M)
#fuses xt
#include <lcd.c>
#include <24256.c>
#include <ds1307.c>

#byte porta=0x05
#byte portb=0x06
#define time 250

void main ()
{
   int i,dato;
   int8 min,hrs,sec,day,month,yr,dow;
   
   lcd_init();
   ds1307_init();   
   ds1307_set_date_time(30,5,10,7,23,59,50);
   
   porta=0;
   portb=0;
   
   init_ext_eeprom();
   write_ext_eeprom(0x00,2);
   write_ext_eeprom(0x01,4);
   write_ext_eeprom(0x02,6);
   write_ext_eeprom(0x03,8);
   write_ext_eeprom(0x04,10);
   
   do
   {
         for (i=0;i<=4;i++)
         {
            dato = read_ext_eeprom(i);
            printf(lcd_putc,"\f%u",dato);
            delay_ms(time);
         }
         
          ds1307_get_date(day,month,yr,dow);
          ds1307_get_time(hrs,min,sec);
          printf (lcd_putc,"\fHora:%u",hrs);
          printf(lcd_putc,":%u",min);
          printf(lcd_putc,":%u",sec);

         delay_ms(time);
   
   }
   while(true);

}


////////////////////////////////////////////////////////////////////////////////////////



La idea del programa es guardar 5 datos en la memoria, 2,4,6,8 y 10 en las posiciones 0,1,2,3 y 4, respectivamente, entonces estos datos se muestran para verificar que son guardados en la memoria, y ademas de mostrar la hora para ver que si corre adecuadamente.

Entonces lo que trato de probar es si el programa funcionará correctamente!!


Lo que sigue es que al simularlo en proteus, de vez en cuando me arroja datos de la memoria que no son correctos!!
No sé si es mi simulador Proteus, o es el programa!! por favor ayudenme a identificar mi problema!!

Porque lo he probado en otra maquina que tengo, y funciona bien, pero se me cierra el simulador después de 3 minutos aproximadamente!! Y tampoco tengo idea del porqué!!! Nuevamete, suplico su ayuda!!

Agrego que en el simulador si estoy utilizando las resistencias PULL-UP!!

Adjunto los archivos para que me digan si funciona en sus computadoras!! y para recibir sus valiosos comentarios y sugerencias!!


Saludos desde Oaxaca, México!!

Desconectado b.stronger

  • PIC10
  • *
  • Mensajes: 45
Re: Proteus DS1307 24LC256 No funciona correctamente
« Respuesta #1 en: 11 de Julio de 2010, 12:22:45 »
Saludos!!

Aquí para informar que ya solucioné mi problema y para decir como lo logré:

El problema se encontraba en la fuente que utilicé (una fuente de dc de 5v), simplemente la cambié por la fuente ideal que muestra proteus.

También cambié el valor analógico de las resitencias pull-up, por el valor digital.

Y también para evitar problemas le quité el valor predeterminado del DS1307 para iniciar con la hora del sistema, esa función se la deshabilité!!!

Saludos!!! Espero que alguno le sirve!! No tengo idea de como cerrar el tema, asi que hasta luego!!!