Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Энергонезависимая память данных EEPROMСодержание книги
Поиск на нашем сайте
Энергонезависимая EEPROM память данных предназначена для хранения информации, которая должна сохраняться даже при отключении электропитания микроконтроллера. EEPROM память может быть перезаписана большее количество раз по сравнению с FLASH. Минимальное число циклов стирание/запись EEPROM составляет 100 тысяч, а FLASH памяти – всего 1 тысяча. Карта памяти EEPROM приведена на рис. 2.3.
Рис. 2.3. Организация энергонезависимой памяти данных EEPROM
Для чтения и записи информации в EEPROM память данных и во FLASH память программ используются регистры специального назначения: EEDATA – регистр данных (младший байт данных при обращении к 14-разрядной памяти программ), EEDATH – старший байт данных при обращении к памяти программ, EEADR – регистр адреса (младший байт адреса при обращении к 4К памяти программ), EEADRH – старший байт адреса при обращении к памяти программ, EECON1 – первый регистр управления EEPROM (FLASH), EECON2 – второй регистр управления EEPROM (FLASH), INTCON – регистр управления прерываниями, PIE2 – второй регистр разрешения прерываний и PIR2 –второй регистр флагов прерываний. Для чтения данных из EEPROM необходимо выполнить следующую последовательность действий: – записать адрес необходимой ячейки памяти в регистр EEADR; – сбросить в «0» бит EEPGD в регистре EECON1; – инициировать операцию чтения путем установки в «1» бита RD в регистре EECON1; – считать полученные данные из регистра EEDATA. Чтение данных из FLASH памяти программ осуществляется аналогично, последовательность действий при этом немного сложней: – записать младший байт адреса необходимой ячейки в регистр EEADR, а старший – в регистр EEADRH; – установить в «1» бит EEPGD в регистре EECON1; – инициировать операцию чтения путем установки в «1» бита RD в регистре EECON1; – сформировать выдержку времени длительностью два машинных цикла, например путем выполнения двух холостых команд NOP; – считать младший байт полученных данных из регистра EEDATA, а старший – из регистра EEDATH. Последовательность действий при записи информации в EEPROM следующая: 1. Проверить состояние бита WR в регистре EECON1 и убедиться, что он равен «0», те есть в настоящий момент не производится запись в EEPROM либо FLASH. 2. Записать адрес нужной ячейки в регистр EEADR. 3. Записать данные в ячейку EEDATA. 4. Сбросить в «0» бит EEPGD в регистре EECON1. 5. Установить в «1» бит WREN в регистре EECON1, разрешив запись в EEPROM. 6. Запретить прерывания, если они были разрешены. 7. Выполнить обязательную последовательность из пяти команд. – записать значение H'55' в регистр EECON2 (две команды, сначала запись в W, затем в EECON2). – записать значение H'AA' в регистр EECON2 (две команды, сначала запись в W, затем в EECON2). – установить в «1» бит WR в регистре EECON1. 8. Разрешить прерывания, если это необходимо. 9. Сбросить в «0» бит WREN в регистре EECON1. 10. По окончании цикла записи автоматически сбрасывается в «0» бит WR регистра EECON1 и взведется в «1» флаг прерывания EEIF в регистре PIR2 (сбрасывается программно). Не смотря на то, что флаг прерывания взводится после окончания каждого цикла записи обработка прерываний будет инициирована только в том случае если они разрешены установкой в «1» битов GIE и PEIE регистра INTCON и не маскированы (бит EEIE в регистре PIE2 взведен).
Стек Стеком называется область оперативной памяти, организованная по принципу «первым вошел – последним вышел». В микроконтроллерах PIC16 стек используется исключительно для хранения адресов возврата из подпрограмм. В отличии от других микропроцессоров и микроконтроллеров, в микроконтроллерах PIC16 запись данных на стек не предусматривается. Выбор очередной свободной ячейки стековой памяти осуществляется автоматически, указатель стека программно не доступен. Стек имеет всего восемь 13-разрядных ячеек статической оперативной памяти (рис. 2.4.), следовательно в программе для микроконтроллера PIC16 не должно быть более восьми вложенных подпрограмм, с учетом обработчиков (драйверов) прерываний.
Рис. 2.4. Организация стековой памяти
Порядок выполнения работы В данной лабораторной работе необходимо разработать и отладить программу, реализующую обращение к определенным областям памяти микроконтроллера PIC16F873A. Конкретное задание выдается преподавателем. В качестве примера рассмотрим следующее задание: необходимо разработать программу заполняющую все регистры общего назначения банка 0 возрастающими двоичными числами начиная с h'00', и копирующую эти данные в EEPROM.
Постановка задачи Представим исходную словесную форму задания в аналитическом виде. Для этого обозначим буквой N число записываемое в очередной регистр, буквой F адрес регистра, а буквой E адрес ячейки EEPROM. Поскольку адреса РОН в банке 0 начинаются с H'20', а заканчиваются H'7F', то можно записать, что F ⊂ [H'20', H'7F']. Соответственно в этот массив памяти поместятся числа от H'00' до H'5F' или N ⊂ [H'00', H'5F']. При копировании в EEPROM будут задействованы ячейки с адресами E ⊂ [H'00', H'5F']. Также можно записать: [ F 0]=0, [ Fi ]= Ni, [ Fi +1]= Ni +1, [ Ei ]=[ Fi ]. В последних формулах квадратные скобки обозначают, что буквами F и E обозначены не адреса ячеек памяти, а содержимое ячеек памяти с этими адресами.
|
||||
Последнее изменение этой страницы: 2016-06-06; просмотров: 208; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.34.148 (0.007 с.) |