Aca estamos de vuelta....
pufff,, crei que era el único dinosaurio por aquí, Yo programaba el Z80, cuando casi me produjo caida repentina de cabello, me pase al forth, un drama aprenderse mas de 200 instrucciones en esos microprocesadores, solo pensar en cuantos 'mov', o el 'ld' habían se me lengua la trava.
BluesBoy, parece que estas decidido a exprimir al pobre pic, eso puede no ser bueno, se hace cuando ya tenés algo armado y corriendo , resulta que agregas funcionalidades, y no da ganas de rediseñar todo de nuevo, entonces empezas a pensar tal cual lo estás haciendo ahora, llevando las cosas a un extremo.
Para empezar, lo haces bien holgado con el tema hardware, paso a explicar.
Estás empleando todos los pines del pic, 16!, o sea no emplearás cristal externo, el reloj del chip no es bueno, tu cuenta de tiempos se puede ver afectada.
De todos modos si la cuenta de tiempo es por varias horas te advierto que es muy dificil lograr un sincronismo con el tiempo real, siempre hay alguna deriva por culpa de los componentes, y algunos varios segundos los perdés o ganas por día.
De ahí es de emplear el DS1307, ese falla menos, además no se olvida la cuenta cuando cierran el grifo de la alimentación principal.
El pic lee la hora del DS1307, luego lo más lógico es implementar un contador de tiempos y que el pic lleve la cuenta, se sincronice cada cierto tiempo prudencial, tomando otra lectura del DS1307. Con este panorama, olvidate de ese tercer pin, solo hacen falta los dos de la comunicación (y no un tercer pin que genera una señal cada un segundo por ejemplo).
Los pulsadores, si manejas directamente el display (Sin CD4011), conviene instalarlos en el mísmo bus, compartiendolo, así que con eso, son dos pines menos(posibilidad de incorporar cristal externo).
Con lo que planeas estás eliminando la posibilidad de emplear reset (MCLR), no es bueno hacer eso al principio de un projecto.
El 74LS138, no te conviene, te da las salidas invertidas(creo que le dicen lógica negativa), deberás liarte con los transistores (y sus resistencias asociadas) para manejar sus señales invertidas(requieriendo un truco, o sea mas resistencias, u otro chip más un inversor). Mejor opción reemplazarlo por un CD4028 (es lo mismo que un 74LS138, pero BCD a Decimal) junto a un ULN2803, para el manejo de los cátodos de los Display's, con ello, chau resistencias, son integrados pesando en TTL.
De una, andá pensando en un 16F628, olvite del '627 creeme te quedas corto de memoria...
En tu lugar si los morlacos son el problema y no le entras al 16F873, o mejor un 16F877 (esos si hay en todas partes en Argentina), busco el 16F819, tiene 3,5k de rom, incorpora ADC, y tiene módulo I2C por hardware, el 16F628, no lo tiene. Aqui el 16F819, cuesta lo mismo que el 16F628.
Y para empezar con algo antes de comprar electronica, como has echo, planeo que emplear, escribo algunas rutinas, empezando a simular en el Proteus o con el PIC Simulator Ide (
http://www.oshonsoft.com/pic.html ) y si soy muy picante, directamente con el MPLAB X del microchips.
Avisa si te intereza o manejas el Proteus, porque tengo un problemita, y consulta de por medio, que tal ves conviene que la haga aquí, asi te benecfias con el "cableado".
siga .. siga, que no se corte.