Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КУРС ЛЕКЦИЙ ПО МИКРОПРОЦЕССОРНОЙ ТЕХНИКЕ.doc
Скачиваний:
271
Добавлен:
13.02.2015
Размер:
1.4 Mб
Скачать

5.2.11. Память данных в рпзу (eeprom)

Микроконтроллеры подгруппы PIC6F8X имеют энергонезависимую память данных 64х8 EEPROMбит, которая допускает запись и чтение во время нормальной работы (во всем диапазоне питающих напряжений). Эта память не принадлежит области регистровой памяти ОЗУ. Доступ к ней осуществляется посредством косвеннойадресациичерезрегистрыспециальных функций:EEDATA <08h>, который содержит 8-битовые данные для чтения/записи иEEADR <09h>, включающий адрес ячейки, к которой идет обращение. Для управления процессом чтения/записи используются дварегистра:EECON1 <88h>иEECON2 <89h>.

При записи байта автоматически стирается предыдущее значение, и записываются новые данные (стирание перед записью). Все эти операции производит встроенный автомат записи EEPROM. Содержимое ячеек этой памяти при выключении питания сохраняется.

РегистрEEADRможет адресовать до 256 байт данныхEEPROM. В МК подгруппы PIC6F8X используются только первые 64 байта, адресуемые шестью младшими битамиEEADR<5:0>. Однако старшие два бита также декодируются. Поэтому эти два бита должны быть установлены в ‘0’, чтобы адрес попал в доступные 64 бита адресного пространства.

Назначение бит регистраEECON1приведено втабл. 5.6.

Таблица 5.6. Назначение бит регистра EECON1 (адреса 88h).

U

U

U

R/W-0

R/W-x

R/W-0

R/S-0

R/S-x

-

-

-

EEIF

WRERR

WREN

WR

RD

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

Биты 7:5 не используются (читаются как ‘0’)

Бит 4: EEIF: бит запросапрерыванияпо записи вEEPROM

0 = операция записи не завершена или не начиналась

1 = операция записи завершена (должен быть сброшен программно)

Бит 3: WRERR: бит признака ошибки записи вEEPROM

0 = операция записи завершена

1 = операция записи прервана преждевременно (сбросом по /MCLRили сбросом отWDT)

Бит 2: WREN: бит разрешения записи вEEPROM

0 = запрещена запись в EEPROM

1 = разрешены циклы записи

Бит 1: WR: бит управления записью

0 = цикл записи данных в EEPROMзавершен

1 = инициирует цикл записи (сбрасывается аппаратно по завершении записи. Бит WRможет быть только установлен (но не сброшен) программно)

Бит 0: RD: бит управления чтением

0 = чтение данных EEPROMне инициировано

1 = инициирует чтение данных EEPROM(чтение занимает один цикл. БитRDсбрасывается аппаратно. БитRDможет быть только установлен (но не сброшен) программно)

РегистрEECON2не является физическимрегистром. Он используется исключительно при организации записи данных вEEPROM. ЧтениерегистраEECON2дает нули.

При считывании данных из памяти EEPROMнеобходимо записать нужный адрес вEEADRрегистри затем установить битRD EECON1<0>в единицу. Данные появятся в следующем командном цикле врегистреEEDATAи могут быть прочитаны. Данные врегистреEEDATAфиксируются.

При записи в память EEPROMнеобходимо сначала записать адрес в EEADR-регистри данные вEEDATA-регистр. Затем следует выполнить специальную последовательность команд, производящую непосредственную запись:

movlw 55h

movwf EECON2

movlw AAh

movwf EECON2

bsf EECON1,WR;установить WR бит, начать запись

Во время выполнения этого участка программы все прерываниядолжны быть запрещены, для точного выполнения временной диаграммы. Время записи – примерно 10 мс. Фактическое время записи может изменяться в зависимости от напряжения, температуры и индивидуальных свойств кристалла. В конце записи битWRавтоматически обнуляется, а флаг завершения записиEEIF, он же запрос напрерывание, устанавливается.

Для предотвращения случайных записей в память данных предусмотрен специальный бит WRENврегистреEECON1. Рекомендуется держать битWRENвыключенным, кроме тех случаев, когда нужно обновить память данных. Более того, кодовые сегменты, которые устанавливают битWREN, и те, которые выполняют запись, следует хранить на различных адресах, чтобы избежать случайного выполнения их обоих при сбое программы.