ЛАБОРАТОРНАЯ РАБОТА №6 Работа с ЕЕPROM памятью данных 6.1 Цель работы: Изучение методов работы с EEPROM памятью данных. 6.2 Технические средства: Оборудование: УЛС “P-Student”, внутрисхемный программатор PICkit 2, ПЭВМ. Программное обеспечение: MPLAB IDE. 6.3 Краткие теоретические сведения EEPROM память данных является энергонезависимой памятью, поэтому очень широко используется для хранения констант, калибровочной информации, серийных номеров, данных о разработчике и т.д. Модуль EEPROM памяти данных позволяет выполнить чтение и запись байта. При записи байта происходит автоматическое стирание ячейки и запись новых данных (стирание перед записью). EEPROM память данных рассчитана на большое количество циклов стирание/запись (более 1000). Время записи управляется интегрированным таймером и зависит от напряжения питания, температуры и технологического разброса параметров кристалла. EEPROM память не отображается на адресное пространство памяти данных, а доступна через регистры специального назначения. Для доступа к EEPROM памяти данных используются 4 регистра специального назначения: EECON1, EECON2 (не физический регистр), EEDATA, EEADR. В регистре EEDATA сохраняются 8-разрядные данные записи/чтения, а регистр EEADR содержит адрес ячейки EEPROM памяти данных. С помощью 8-разрядного регистра EEADR можно адресовать 256 байт EEPROM памяти данных. МК PIC16F84A имеет объём EEPROM в 64 байта. Т.к. в МК реализован не весь объем адресуемой памяти, биты <7-6> EEADR должны быть равны нулю. Регистр EECON1 содержит биты управления чтением/записью EEPROM памяти данных (рис. 6.1). Регистр EECON2 предназначен для защиты от случайной записи в EEPROM память данных. В операции чтения используется только один дополнительный бит RD, инициализирующий операцию чтения из указанной памяти. Установив бит RD в '1', значение ячейки памяти будет доступно в регистре данных. Бит RD не может быть сброшен программно в '0', он сбрасывается автоматически по окончании операции чтения. При чтении из EEPROM памяти данные будут доступны в регистре EEDATA в следующем машинном цикле, после установки бита RD. В операции записи используется два служебных бита WR, WREN и два бита статуса WRERR и EEIF. Бит WREN применяется для разрешения или запрещения операции записи (WREN=0 – операция записи запрещена). Перед выполнением записи бит WREN необходимо установить в '1'. Бит WR предназначен для инициализации записи, бит WR аппаратно сбрасывается в '0' по завершении операции записи. Флаг прерывания EEIF устанавливается в '1' по завершении записи. Этот флаг должен быть сброшен программно в '0' перед установкой бита WR. Рисунок 6.1 – Назначение битов регистра EECON1 Последовательность действий при чтении из EEPROM памяти данных: 1. Необходимо проверить, что не происходит запись (WR = 0). 2. Записать адрес в регистр EEADR. 3. Инициализировать чтение данных установкой бита RD. Данные будут доступны в регистре EEDATA в следующем машинном цикле. 4. Прочитать данные из регистра EEDATA. Последовательность действий при записи в EEPROM память данных: 1. Необходимо проверить, что не происходит запись (WR = 0). 2. Записать адрес в регистр EEADR. 3. Записать данные в регистр EEDATA. 4. Установить бит WREN, разрешив запись в EEPROM память. 5. Запретить прерывания, если они разрешены. 6. Выполнить обязательную последовательность: 1 - запись значения 55h в регистр EECON2 2 - запись значения AAh в регистр EECON2 7. Сбросить бит WREN. 8. Разрешить прерывания (если необходимо). После завершения цикла записи сбрасывается в '0' бит WR, устанавливается в '1' флаг прерывания EEIF (сбрасывается программно). Если шаг 1 не выполняется, то необходимо дождаться сброса бита WR. 6.4 Ход работы 1. Создать подпрограммы записи и чтения EEPROM памяти для МК PIC16F84A. 2. Проверить работу подпрограмм с помощью программного отладчика MPLAB SIM. 3. Выполнить задания в соответствии с вариантом (таблица 6.1). Таблица 6.1 – Варианты заданий № варианта 1. 2. 3. 4. 5. Условие для выполнения задания: Вводить адрес EEPROM с помощью комбинаций кнопок S1 – S4, S7 – ввод. Считать и вывести значение на дисплей. Выводить на дисплей записанный, при программировании в EEPROM, произвольный текст. Считывать числа с клавиатуры (S8 – ввод). Если в ОЗУ накопится не менее 20 введённых символов, то записать их в EEPROM память. Вводить данные с помощью комбинаций кнопок S1 – S4, S7 – ввод, выводить на дисплей и записать в EEPROM. После включения восстанавливать введенную комбинацию, с продолжением работы программы. Вводить данные с помощью комбинаций кнопок S1 – S4, S7 – ввод и записать в EEPROM. Нажатием на кнопку S8 воспроизводить записанные символы на светодиодной линейке с интервалом в 0,5 с. 4. Проверить работу программы с помощью программного отладчика MPLAB SIM. 5. Запрограммировать МК и проверить работу программы на реальном устройстве (тип генератора: на выбор). 6. Результаты работы записать в отчёт и сделать вывод по проделанной работе. 6.5 Контрольные вопросы 1. Модуль EEPROM памяти данных в МК PIC16F84. 2. Назначение битов регистра EECON1 МК PIC16F84. 3. Порядок чтения из EEPROM памяти данных. 4. Порядок записи в EEPROM память данных.