Вы можете использовать микроконтроллер, который имеет встроенную EEPROM. 8-битный PIC16F84A имеет 64 байта EEPROM, что обычно для 10 000 000 и минимум 1 000 000 записей в каждый байт (это известно как стойкость байтов). PIC, выбранный в другом ответе, PIC12F635, имеет 128-байтовую EEPROM и выдерживает байты 100 000 операций записи. PIC24F16KA102 , 16-битный процессор, имеет 512 байт EEPROM , а также выносливость байт 100000 записей.
ОП не указывает, как часто светодиод будет мигать. Для целей этого обсуждения давайте предположим, что это четыре раза в минуту.
Через год он будет мигать
4 * 60 * 24 * 365 = 2 , 102 , 400 т я м е с .
Поскольку EEPROM должна записывать как последние события включения, так и выключения, она будет записана в два раза больше этого числа, или примерно в 4,2 миллиона раз . За пять лет это будет 21 миллион раз.
Ясно, что это превысит спецификации любого EEPROM, который я сейчас встроил в микроконтроллер.
Но для этого есть простое решение. Вместо того, чтобы использовать один и тот же байт снова и снова для отслеживания состояния включения или выключения, можно использовать массив байтов, который заполняет весь чип.
Вам нужно два байта для каждого элемента в массиве. Таким образом, 64-байтовая EEPROM, как и в PIC16F84A, может содержать 32 элемента. Каждый раз, когда вы пишете в EEPROM, вы записываете 0 в байт состояния (это означает, что у этого элемента есть данные) и либо 0 в байт данных (светодиод был последним выключенным), либо 0xFF (светодиод был последним включенным). В следующий раз, когда вы получите доступ к EEPROM, вы индексируете элементы, пока не найдете элемент с байтом состояния 0xFF, а затем используете этот элемент. Если ничего не осталось, то заново инициализируйте EEPROM и начните заново (для PIC нижнего уровня это означает запись 0xFF в каждый из байтов состояния; для PIC24 есть команда для удаления всего EEPROM). Если вам нужно знать последнее состояние светодиода, вы индексируете массив, как и раньше, но теперь возвращаетесь на один элемент назад и считываете байт данных.
Это, по существу, делит число обращений к одному байту в 16 раз для PIC16F84A (16, а не 32, поскольку каждый из байтов состояния записывается дважды). Таким образом, он сможет обработать 16 миллионов записей, что достаточно для почти четырехлетних данных. И PIC12F635 с его большей EEPROM, но меньшей байтовой стойкостью в 100 Кбайт сможет обрабатывать всего 3,2 миллиона операций записи, чего хватит на девять месяцев.
PIC24F16KA102, с 512-байтовым EEPROM и функцией массового стирания, сможет обрабатывать 25,6 миллиона операций записи, чего хватит на пять лет.
Если частота мигания была только четыре раза в час вместо четырех раз в минуту , то это означает, что в общей сложности 70 080 записей в год. Даже PIC12F635, с его выносливостью 100 000 операций записи на байт, прослужит 45 лет!