Проектирование средств контроля и диагностики с элементами высокой интеграции. Методические указания - 4 стр.

UptoLike

2
отображается на 0×00). В PIC16F876/877 объем EEPROM памяти данных 256
байт (используются все 8-разрядов регистра EEADR).
1.1. Регистры EECON1, EECON2
Регистр EECON1 содержит биты управления косвенной записи/чтения
EEPROM памяти данных и FLASH памяти программ. Регистр EECON2
физически не реализован, он используется только при операциях записи с
целью предотвращения случайной записи. Значение бита EEPGD в регистре
EECON1 определяет тип памяти, к которой будет выполнено
обращение. Если
EEPGD = 0, то операции относятся к EEPROM памяти данных. Когда
EEPGD=1, обращение происходит к FLASH памяти программ.
В операции чтения используется только один дополнительный бит RD,
инициализирующий операцию чтения из указанной памяти. Установив бит RD
в '1', значение ячейки памяти будет доступно в регистре данных. Бит RD не
может быть сброшен программно в '0', он сбрасывается автоматически
по
окончании операции чтения. При чтении из EEPROM памяти данные будут
доступны в регистре EEDATA в следующем машинном цикле, после установки
бита RD. При чтении из FLASH памяти программ данные будут доступны в
регистре EEDATA:EEDATH на втором машинном цикле, поле установки бита
RD.
В операции записи используется два служебных бита WR, WREN и два бита
статуса WRERR, EEIF. Бит WREN применяется
для разрешения/запрещения
операции записи (WREN = 0 – операция записи запрещена). Перед
выполнением записи бит WREN необходимо установить в '1'. Бит WR
предназначен для инициализации записи, он аппаратно сбрасывается в '0' по
завершении операции записи. Флаг прерывания EEIF устанавливается в '1' по
завершении записи. Этот флаг должен быть сброшен программно в '0' перед
установкой бита WR.
Для EEPROM памяти данных:
После установки битов
WREN, WR в '1' стирается, указанная в регистре
EEADR, ячейка EEPROM памяти, а затем происходит запись данных из
регистра EEDATA. Операция записи сопровождается выполнением кода
программы. По завершении записи устанавливается флаг прерывания EEIF в '1'.
Бит WRERR указывает, что произошел сброс микроконтроллера
PIC16F87X во время выполнения операции записи. Бит WRERR
устанавливается в ‘1’, если во время выполнения записи данных произошел
сброс
по сигналу-MCLR или по переполнению сторожевого таймера WDT в
нормальном режиме. Проверив состояние бита WREER, пользователь может
повторить запись (регистры EEDATA и EEADR не изменяют своего значения).
Содержимое регистров данных, адреса и бит EEPGD не изменяется после
сброса по сигналу -MCLR, по переполнению сторожевого таймера WDT в
нормальном режиме.