Hola .. yo utilize el pcf8583 en un proyecto y me funciono genial pero el problema que tuve fue que niple no configuraba bien las alarmas ( nada raro!!! ), recalco que el ajuste de fecha y hora si funciona correctamente!! , revisé un poco el codigo en ASM que este generaba y al parecer la parte de las alarmas estaba incompleta .. por eso decidí configurar yo mismo las alarmas utilizando la hoja de datos y para aprovechar el niple y no hacerlo en ASM utilize los modulos de escritura en memorias RAM por I2C, claro, despues debes ingresar el MPLAB y corregir la direccion de escritura del dispositivo en el codigo ASM por la direccion que configuraste para el pcf8583; ahora para configurar las alarmas debes configurar 4 registros del pcf8583, has lo siguiente utilizando las escritura en memoria RAM:
Paso 1 - Direccion: 0 Valor a grabar: 04h Este es el registro de control/status
Paso 2 - Direccion: 8 Valor a grabar: 11000XXXb Activamos el timer y que genere interrupciones, las XXX significan si
es por segundos, minutos, horas, nose cual será la opcion que deseas
Paso 3 - Direccion: 15 Valor a grabar: XXXXAAAAb Este valor es el tiempo que quieras si vas a poner 15 segundos debes
ponerlo en BCD y NO en binario, es decir 15h y no 0Fh
Paso 4 - Direccion: 7 Valor a grabar: 00h Inicializa el registro timer y empieza el conteo
Ahora cuando el dichoso timer genere la interrupcion, solo debes repetir los pasos 1 y 4, pero te recomiendo que hagas una rutina de usuario y que lo ejecutes todo para ahorrar espacio en el pic ... Respecto a los años; el bendito pcf8583 no se le puede programar los años a como te entendi, por ejemplo, si estamos en 1999 NO podes poner 99 ... el pcf entiende 00h para año bisiesto y 01h, 02h y 03h para los años siguientes y como los años bisiestos se repiten cada 4 años este vuelve a empezar en 00h, es por eso que solo utiliza 2bits para el año ... el año 2004 fue bisiesto esto seria 00h, 2005 seria 01h, ahora 2007 seria 03h y si tu proyecto sigue funcionando hasta el proximo año el pcf volveria a comenzar en 00h donde 2008 es bisiesto por ello debes idear un algoritmo que almacene "como todos los humanos entendemos" los años ... Espero que te sirva!