aqí va el programita:
////////////////////////////////////////////////////////////////////////////////
////////////ESTE PROGRAMA UTILZA EL CIRCUITO DS1307 PARA MOSTRAR LA ////////////
//////////HORA EN TIEMPO REAL A TRAVEs DE UNA LCD DE 2 POR 16 CARACTERES/////
#include <16F877A.h> /// libreria para el manejo del pic16f877a
#use delay(clock=8000000) /// declara la frecuencia del cristal
#fuses HS,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,NOPROTECT
#include <ds1307.c>
#include <lcd.c>
#use fast_io(A)
#use fast_io(B)
#use fast_io(C) /// con esta instruccion evitamos que
#use fast_io(D) /// se este configurando cada vez que usamos
#use fast_io(E) /// alguna instruccion de entrada o salida
#byte portc = 7 /// se definen direcciones de memoria
#byte portd = 8
int sec;
int min;
int hrs;
int day;
int month;
int yr;
int dow;
////////////////////////////////////////////////////////////////////////////////
//////////////////////Comienzo de la funcion principal//////////////////////////
////////////////////////////////////////////////////////////////////////////////
void main()
{
ds1307_init(0); ///se inicializa el ds1307
set_tris_a(0xff);
set_tris_d(0x00);
set_tris_b(0x00);
set_tris_c(0x04);
set_tris_e(0x01);
port_b_pullups(true);
lcd_init(); /// inicializamos lcd
// Set date for -> 15 June 2005 Tuesday
// Set time for -> 15:20:55 (9:49:00 am)
ds1307_set_date_time(8,11,7,2,9,49,00); /// se escribe en el displositivo
/// el tiempo deseado
while(1)
{
delay_ms(100);
ds1307_get_date(day,month,yr,dow); /// se obtiene la fecha
ds1307_get_time(hrs,min,sec); /// se obtiene la hora
lcd_gotoxy(1,2);
printf(lcd_putc,"%02d:%02d:%02d ",hrs,min,sec); ///se despliegan los datos
lcd_gotoxy(1,1);
lcd_putc("WWW.ELHACKER.NET");
}
}