Podrías usar un microcontrolador que se haya construido en EEPROM. El PIC16F84A de 8 bits tiene 64 bytes de EEPROM, lo cual es bueno para típicamente 10,000,000 y un mínimo De 1,000,000 escrituras a cada byte (esto se conoce como resistencia de bytes). El PIC elegido en otra respuesta, PIC12F635 tiene una memoria EEPROM de 128 bytes y una resistencia de bytes de 100.000 escrituras. El PIC24F16KA102 , un procesador de 16 bits, tiene 512 bytes de EEPROM y también una resistencia de bytes de 100,000 escrituras.
El OP no indica con qué frecuencia parpadeará el LED. Para los fines de esta discusión, asumamos que es cuatro veces por minuto.
En un año parpadeará
$$ 4 * 60 * 24 * 365 = 2,102,400 \ tiempos de espacio. $$
Dado que la EEPROM necesita capturar los últimos eventos de activación y desactivación, se escribirá al doble de ese número, o aproximadamente 4.2 millones de veces . En cinco años, esto es 21 millones de veces.
Claramente, esto superará las especificaciones de cualquier EEPROM que ahora incorporé en un microcontrolador.
Pero hay una solución simple para esto. En lugar de usar el mismo byte una y otra vez para mantener un registro del estado activado o desactivado, se puede usar una matriz de bytes, que llenan todo el chip.
Necesita dos bytes para cada elemento de la matriz. Por lo tanto, una EEPROM de 64 bytes, como la del PIC16F84A, podría contener 32 elementos. Cada vez que escribe en la EEPROM, escribe un 0 en el byte de estado (es decir, este elemento tiene datos) y un 0 en el byte de datos (el LED se apagó por última vez) o un 0xFF (el LED se encendió por última vez). La próxima vez que acceda a la EEPROM, indexará los elementos hasta que encuentre uno con un byte de estado 0xFF y luego use ese elemento. Si no queda ninguno, reinicie la EEPROM y comience de nuevo (para los PIC de gama baja, esto significa escribir 0xFF en cada uno de los bytes de estado; para el PIC24, hay un comando para borrar la EEPROM completa). Si necesita conocer el último estado del LED, indexe a través de la matriz como antes, pero ahora retroceda un elemento y lea el byte de datos.
Esto esencialmente divide el número de accesos a un solo byte por un factor de 16 para el PIC16F84A (16 y no 32 porque cada uno de los bytes de estado se escribe dos veces). Por lo tanto, podría manejar un total de 16 millones de escrituras, suficientes para casi cuatro años de datos. Y el PIC12F635 con su EEPROM más grande pero con una resistencia de un byte más pequeño de 100 K, podría manejar un total de 3,2 millones de escrituras, suficiente para nueve meses.
El PIC24F16KA102, con su EEPROM de 512 bytes y su función de borrado en masa, podría manejar 25.6 millones de escrituras, suficientes por más de cinco años.
Si la velocidad de parpadeo fue solo cuatro veces por hora en lugar de cuatro veces por minuto , esto significa un total de 70,080 escrituras por año. ¡Incluso el PIC12F635, con su resistencia de 100,000 escrituras por byte, duraría 45 años!