- •Введение
- •1. Основные определения и понятия микропроцессорной техники
- •1.1. Жесткая и гибкая логика
- •1.2. Микропроцессор и «сотоварищи»
- •Контрольные вопросы
- •2. Типы микропроцессорных систем и факторы, влияющие на их быстродействие
- •2.1. Типы микропроцессорных систем
- •2.2. Программируемые логические интегральные схемы
- •2.3. Факторы, влияющие на быстродействие микропроцессоров
- •Контрольные вопросы
- •3.3.1. Команды пересылки данных
- •3.3.2. Арифметические команды
- •3.3.3. Логические команды
- •3.3.4. Команды переходов
- •3.4. Быстродействие процессора
- •4.3.1. Память программ
- •4.3.2. Память данных
- •5.1.2. Микроконтроллеры семейств pic16cxxx и pic17cxxx
- •5.1.3. Особенности архитектуры микроконтроллеров семейства pic16cxxx
- •5.2. Микроконтроллеры подгруппы pic16f8x
- •5.2.1. Основные характеристики
- •5.2.2. Особенности архитектуры
- •5.2.3. Схема тактирования и цикл выполнения команды
- •5.2.4. Организация памяти программ и стека
- •5.2.5. Организация памяти данных
- •5.2.6. Регистры специального назначения
- •5.2.7. Счетчик команд
- •5.2.8. Прямая и косвенная адресации
- •5.2.9. Порты ввода/вывода
- •5.2.10. Модуль таймера и регистр таймера
- •5.2.11. Память данных в рпзу (eeprom)
- •5.2.12. Организация прерываний
- •5.2.13. Специальные функции
- •5.3. Система команд микроконтроллеров подгруппы pic16f8x
- •5.3.1. Перечень и форматы команд
- •5.3.2. Команды работы с байтами
- •5.3.3. Команды работы с битами
- •5.3.4. Команды управления и работы с константами
- •5.3.5. Особенности программирования и отладки
- •6.1. Разработка микропроцессорной системы на основе микроконтроллера
- •6.1.1. Основные этапы разработки
- •6.1.2. Разработка и отладка аппаратных средств
- •6.1.3. Разработка и отладка программного обеспечения
- •6.1.4. Методы и средства совместной отладки аппаратных и программных средств
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, и те, которые выполняют запись, следует хранить на различных адресах, чтобы избежать случайного выполнения их обоих при сбое программы.