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

UptoLike

4
MOVWF EEADR ; ячейки
BSF STATUS,RP0 ; Выбрать банк 3
BCF EECON1,EEPGD ; Выбрать EEPROM память
BSF EECON1,RD ; Инициализировать чтение
BCF STATUS,RP0 ; Выбрать банк 2
MOVF EEDATA,W ; W = EEDATA
1.3. Запись в EEPROM память данных
Запись данных в EEPROM память несколько сложнее чтения. Адрес
ячейки EEPROM памяти и записываемые данные должны быть помешены в
соответствующие регистры специального назначения, бит EEPGD сбрасывается
в '0'.
Бит WREN должен всегда равняться нулю, кроме непосредственной записи
в EEPROM память.
Бит WR может быть установлен в '1' только, если бит
WREN был установлен в предыдущих командах, т. е. биты WR, WREN не
могут устанавливаться в '1' одной командой. Бит WREN должен быть сброшен
в '0' после инициализации записи (на процесс записи он не влияет).
Перед записью в EEPROM память должна быть выполнена обязательная
последовательность команд, предотвращающая случайную запись.
Обязательная
последовательность выполняется при выключенных
прерываниях.
Рекомендованная последовательность действий при записи в EEPROM
память:
1. Если шаг 10 не был выполнен, то необходимо проверить, что не происходит
запись (WR=0).
2. Записать адрес в регистр EEADR. Проверьте, что записанный адрес
корректен для данного типа микроконтроллера.
3. Записать 8-разрядное значение в регистр EEDATA.
4. Сбросить в '0' бит EEPGD для обращения к EEPROM памяти
данных.
5. Установить бит WREN в '1', разрешив запись в EEPROM память.
6. Запретить прерывания, если они разрешены.
7. Выполнить обязательную последовательность из пяти команд:
· Запись значения 55h в регистр EECON2 (две команды, сначала в W затем в
EECON2;
· Запись значения AAh в регистр EECON2 (две команды, сначала в W затем в
EECON2);
· Установитьбит WR в '1'.
8. Разрешить прерывания (если необходимо).
9. Сбросить
бит WREN в '0'.
10. После завершения цикла записи сбрасывается в '0' бит WR, устанавливается
в '1' флаг прерывания EEIF (сбрасывается программно). Если шаг 1 не
выполняется, то необходимо проверить состояние битов EEIF, WR перед
началом записи.