Bạn có thể sử dụng một vi điều khiển được tích hợp sẵn trong EEPROM. PIC16F84A 8 bit có 64 byte EEPROM, tốt cho 10.000.000 thường và tối thiểu 1.000.000 ghi vào mỗi byte (điều này được gọi là độ bền byte). PIC được chọn trong một câu trả lời khác, PIC12F635 có EEPROM 128 byte và độ bền byte là 100.000 ghi. Các PIC24F16KA102 , một bộ xử lý 16-bit, có 512 byte EEPROM và cũng là một sức chịu đựng byte 100.000 viết.
OP không cho biết tần suất đèn LED sẽ nhấp nháy. Đối với mục đích của cuộc thảo luận này, giả sử nó là bốn lần một phút.
Một năm nữa nó sẽ nhấp nháy.
4 ∗ 60 ∗ 24 ∗ 365 = 2 , 102 , 400 t i m e s .
Vì EEPROM cần nắm bắt cả hai sự kiện bật và tắt cuối cùng, nên nó sẽ được ghi thành hai lần con số đó, tương đương khoảng 4.2 triệu lần . Trong năm năm, đây là 21 triệu lần.
Rõ ràng, điều này sẽ vượt quá thông số kỹ thuật của bất kỳ EEPROM nào mà tôi hiện được tích hợp trong một vi điều khiển.
Nhưng có một giải pháp đơn giản cho việc này. Thay vì sử dụng cùng một byte nhiều lần để theo dõi trạng thái bật hoặc tắt, người ta có thể sử dụng một mảng byte, làm đầy toàn bộ chip.
Bạn cần hai byte cho mỗi phần tử trong mảng. Vì vậy, một EEPROM 64 byte, giống như một trong PIC16F84A, có thể chứa 32 phần tử. Mỗi lần bạn viết vào EEPROM, bạn viết 0 vào byte trạng thái (nghĩa là phần tử này có dữ liệu) và 0 cho byte dữ liệu (đèn LED đã tắt) hoặc 0xFF (đèn LED được bật lần cuối). Lần tới khi bạn truy cập EEPROM, bạn lập chỉ mục qua các phần tử cho đến khi bạn tìm thấy một phần tử có byte trạng thái 0xFF, sau đó sử dụng phần tử đó. Nếu không còn lại, sau đó khởi tạo lại EEPROM và bắt đầu lại (đối với PIC cấp thấp, điều này có nghĩa là ghi 0xFF cho mỗi byte trạng thái; đối với PIC24, có một lệnh để xóa toàn bộ EEPROM). Nếu bạn cần biết trạng thái cuối cùng của đèn LED, bạn lập chỉ mục qua mảng như trước đây, nhưng bây giờ quay lại một phần tử và đọc byte dữ liệu.
Điều này về cơ bản chia số lượng truy cập cho một byte cho hệ số 16 cho PIC16F84A (16 chứ không phải 32 vì mỗi byte trạng thái được ghi thành hai lần). Vì vậy, nó sẽ có thể xử lý tổng cộng 16 triệu ghi, đủ cho gần bốn năm dữ liệu. Và PIC12F635 với EEPROM lớn hơn nhưng độ bền byte nhỏ hơn 100K, sẽ có thể xử lý tổng cộng 3,2 triệu lần ghi, đủ dùng trong chín tháng.
PIC24F16KA102, với EEPROM 512 byte và tính năng xóa hàng loạt, sẽ có thể xử lý 25,6 triệu lần ghi, đủ trong hơn năm năm.
Nếu tốc độ chớp mắt chỉ là bốn lần mỗi giờ thay vì bốn lần mỗi phút , thì điều này có nghĩa là tổng cộng 70.080 ghi mỗi năm. Ngay cả PIC12F635, với độ bền 100.000 ghi trên mỗi byte, sẽ tồn tại trong 45 năm!