Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PIC16F877.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.15 Mб
Скачать

1.9 Eeprom память данных и flash память программ

Данные из EEPROM памяти и FLASH памяти программ могут быть прочитаны/перезаписаны в нормальном режиме работы микроконтроллера во всем диапазоне напряжения питания Vdd. Операции выполняются с одним байтом для EEPROM памяти данных, и одним словом для FLASH памяти программ. Запись производится по принципу "стирание - запись" для каждого байта или слова. Сформированная кодом программы операция стирания не может быть выполнена при включенной защите записи.

Доступ к памяти программ позволяет выполнить вычисление контрольной суммы. Данные, записанные в памяти программ, могут использоваться в виде: 14-разрядных чисел, калибровочной информации, серийных номеров, упакованных 7-разрядных символов ASCII и т.д. В случае обнаружения недействительной команды в памяти программ, выполняется пустой цикл NOP.

Число циклов стирания/записи для FLASH памяти программ значительно ниже по сравнению с EEPROM памятью данных, поэтому EEPROM память данных должна использоваться для сохранения часто изменяемых данных. Время записи данных управляется внутренним таймером, оно зависит от напряжения питания, температуры и имеет небольшой технологический "разброс".

При записи байта или слова автоматически стирается соответствующая ячейка, а затем выполняется запись. Запись в EEPROM память программ не воздействует на выполнение программы, а при записи во FLASH память программ выполнение программы останавливается на время записи. Нельзя обратиться к памяти программ во время цикла записи. В течение операции записи тактовый генератор продолжает работать, периферийные модули включены и генерируют прерывания, которые "ставятся в очередь" до завершения цикла записи. После завершения записи выполняется загруженная команда (из-за конвейерной обработки) и происходит переход по вектору прерываний, если прерывание разрешено и условие прерывания возникло во время записи.

Доступ к функциям записи/чтения EEPROM памяти данных и FLASH памяти программ выполняется через шесть регистров специального назначения:

  • EEDATA;

  • EEDATH;

  • EEADR;

  • EEADRH;

  • EECON1;

  • EECON2.

Операции чтения/записи EEPROM памяти данных не приостанавливают выполнение программы. В регистре EEADR сохраняется адрес ячейки EEPROM памяти данных. Данные сохраняются/читаются из регистра EEDATA. В PIC16F877 объем EEPROM памяти данных 256 байт (используются все 8-разрядов регистра EEADR).

Чтение FLASH памяти программ не влияет на выполнение программы, а во время операции записи выполнение программы приостановлено. В спаренных регистрах EEADRH:EEADR сохраняется 13-разрядный адрес ячейки памяти программ, к которой необходимо сделать обращение. Спаренные регистры EEADRH:EEADR содержат 14-разрядные данные для записи или отображают значение из памяти программ при чтении. Также как для EEPROM памяти данных, в регистры EEADRH:EEADR должен быть загружен адрес физически реализованной памяти программ (для PIC16F877 от 0000h до 1FFFh), потому что циклическая адресация не поддерживается (т.е. ячейка с адресом 4000h не отображается на 0000h для PIC16F877).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]