[257]Лабораторные_МС_68HC11 (1086954), страница 16
Текст из файла (страница 16)
Передвыполнением программы убедитесь, что программируемая ячейка очищена (т.е. содержитзначение $FF), и EEPROM присутствует в карте памяти микроконтроллера, проверив установлен ли младший бит регистра CONFIG. Если нет, установите его, выполнив команду“Memory Modify” отладчика (программа-отладчик автоматически определяет является ликонкретный байт ячейкой EEPROM и выбирает алгоритм его программирования), послечего выполните сброс микроконтроллера и восстановите связь.
Выполните программу начиная с адреса $D000. Убедитесь, что в ячейку $B605 записалось число $55. Попробуйте в этуже ячейку аналогичным образом записать число $F0 (не стирая предыдущее значение). После этого в ячейке $B605 будет записано число $50, т.е. переход произошел только от “1” к“0”, но не наоборот.Замените предыдущую программу на новую:cpu6811org$d000; начало основной программыclr$1035; сбросить регистр bprot, разрешив; программирование ячеек EEPROMldx#$B605; установить указатель на ячейку EEPROMjsrbytee; выполнить стирание байта EEPROMbra*Выполните эту программу начиная с адреса $D000. Убедитесь, что ячейка $B605 стерлась,т.е.
ее значение стало $FF.Следующая программа предназначена для выключения встроенного EEPROM.cpu6811org$d000; начало основной программыclr$1035; сбросить регистр bprot, разрешив; программирование ячеек EEPROMldaa $103f; записать текущее значение CONFIG в; аккумуляторanda #$fe; сбросить младший битjsrprogc; выполнить запись нового значения в; CONFIGbra*Работа с EEPROM.72Лабораторная работа №10Выполните программу начиная с адреса $D000.
Используя команду отладчика “MemoryModify” убедитесь, что EEPROM все еще присутствует в карте памяти. Нажмите кнопку“Reset” и восстановите связь с модулем. Убедитесь в отсутствии EEPROM в карте памяти.Для восстановления прежней конфигурации выполните следующую программу:cpu6811org$d000; начало основной программыclr$1035; сбросить регистр bprot, разрешив; программирование ячеек EEPROMldaa $103f; записать текущее значение CONFIG в; аккумуляторoraa #1; установить младший битjsrbytec; сбросить регистр CONFIGjsrprogc; выполнить запись нового значения в; CONFIGbra*Работа с EEPROM.73Лабораторная работа №104. Контрольные вопросы1.
Какой объем имеет EEPROM микроконтроллера MC68HC11E1 и по каким адресам онрасположен?2. Приведите примеры использования EEPROM в реальных устройствах.3. Если в ячейке EEPROM записано число $96, можно ли в нее записать число $95, не стираяпредыдущего значения? Объясните почему.4. Каким образом осуществляется формирование высокого напряжения для программирования EEPROM в микроконтроллере MC68HC11E1?5. Объясните для чего используется встроенный RC генератор, разрешаемый установкой бита CSEL регистра OPTION?6. Можно ли защитить определенные области EEPROM от стирания/записи? Как это сделать?7.
Какую особенность надо учитывать при модификации регистра BPROT, если микроконтроллер работает в расширенном или однокристальном режиме?8. Каким образом происходит управление стиранием/программированием EEPROM?9. Перечислите и опишите возможные режимы стирания EEPROM.10.Опишите назначение пяти младших битов регистра PPROG.11.Опишите покомандный алгоритм программирования ячейки EEPROM.12.Опишите покомандный алгоритм стирания байта EEPROM.13.Опишите покомандный алгоритм стирания строки EEPROM.14.Опишите покомандный алгоритм стирания всего EEPROM.15.Для чего используется регистр CONFIG? Опишите назначение трех его младших битов.16.Объясните, почему модификация регистра CONFIG не приводит к немедленному изменению конфигурации системы?17.Опишите покомандный алгоритм программирования регистра CONFIG.18.Опишите покомандный алгоритм стирания регистра CONFIG.1.2.3.4.5.6.7.8.9.5.
ЗаданияНапишите программу, которая записывала бы состояние переключателей в ячейкуEEPROM с адресом, указанным в регистре X по нажатию на кнопку PA0.Напишите программу, записывающую бы по прерыванию IRQ состояние счетчика таймера в первые две ячейки EEPROM.Напишите программу, записывающую число $AA в N первых ячеек EEPROM по нажатиюкнопки PA0. Число N (от 0 до 255) определяется состоянием переключателей модуля.Напишите программу реализующую алгоритм задания 3 с тем отличием, что при нажатиина кнопку IRQ должно происходить стирание записанных ячеек.Напишите программу, которая в зависимости от состояния двух младших переключателейблокировала бы один из четырех блоков EEPROM ($b600-$b61f, $b620-$b65f, $b660-b6df,$b6e0-b7ff) для записи/стирания.Напишите программу, производящую запись в EEPROM блока данных из ОЗУ длиной16 байт. Адрес блока в ОЗУ $d200-$d20f, адрес блока в EEPROM $b600-$b60f.Напишите программу, которая позволяла бы реализовывать один из трех вариантов стирания EEPROM, в зависимости от состояния аккумулятора B (B=0 - стирание всегоEEPROM, B=1 - стирание строки, B=2 - стирание одного байта).
Входной параметр дляпрограммы: регистр X - адрес ячейки EEPROM.Напишите программу повторяющую алгоритм задания 7, с тем отличием, что при B=3выполнялась бы процедура записи байта в EEPROM. Входные параметры для программы:регистр X - адрес ячейки EEPROM, аккумулятор A - записываемые данные.Напишите программу повторяющую алгоритм задания 8, с тем отличием, что при B=4выполнялась бы модификация регистра CONFIG.
Входные параметры для программы:регистр X - адрес ячейки EEPROM, аккумулятор A - записываемые данные.Работа с EEPROM.74Лабораторная работа №1010.Напишите программу, которая модифицировала бы младший бит регистра CONFIG, взависимости от состояния переключателя С0 после нажатия кнопки PA0.11.Напишите программу последовательно записывающую в ячейку $b600 EEPROM числа от0 до $3f с промежутком между двумя записями в 1 секунду. После записи числа $3f сновазаписывается 0 и цикл повторяется.12.Напишите программу, заполняющую первую половину EEPROM числами от $0 до $FF.По нажатии кнопки PA0 содержимое EEPROM должно стираться.13.Напишите программу осуществляющую перестановку первой и второй строки EEPROM(т.е.
строки с адресами $b600-$b60f и $b610 и $b61f).14.Напишите программу, которая измеряла бы количество доступных для записи ячеекEEPROM без обращения к регистру BPROT. При подсчете постарайтесь обойтись минимальным количеством записей в EEPROM.15.Напишите программу, которая хранилась бы в EEPROM и позволяла бы сохранить воставшемся объеме EEPROM произвольный блок данных из ОЗУ допустимой длины ипри необходимости восстановить его в исходном месте. Входные параметры для программы: регистр X - начальный адрес блока данных, регистр Y - длина блока. Эти параметрытакже должны запоминаться для последующего корректного восстановления блока.Работа с EEPROM.75ПриложениеПриложениеНекоторые особенности при написании и отладке программ на модулеHC11EVB.Запуск программы пользователя с помощью программы отладчика осуществляется вспециальном режиме работы микроконтроллера bootstrap.
В отличие от нормальных режимов работы (однокристального и расширенного) режим bootstrap позволяет изменять содержимое регистра HPRIO, а также в течение всего времени работы производить запись в терегистры и биты, запись в которые в нормальных режимах разрешена только первые 64 Eцикла после сброса. Кроме этого в режиме bootstrap таблица переходов векторов прерыванийперенесена в область ОЗУ (см.
табл. П.1). В отличие от области векторов прерывания длянормальных режимов, здесь следует записывать не адрес перехода, а команду перехода с соответствующим адресом (например команду JMP). Таким образом если программа отлаживается в ОЗУ в режиме bootstrap и требуется, например, обработка прерывания IRQ, то в листинге ассемблера следует записать следующую последовательность команд:org$00eejmpint, где вместо int может быть любая метка или адрес, соответствующая началу программы обработки прерывания по IRQ.
При записи отлаженной программы в ПЗУ (предполагается,что микроконтроллер будет работать в однокристальном режиме) вместо приведенной вышепоследовательности следует записать команды:org$fff2fdbintТаблица П.1.адрес00C400C700CA00CD00D000D300D600D900DC00DF00E200E500E800EB00EE00F100F400F700FA00FDBF00векторSCISPIсчетчик пульсаций, по входному фронтусчетчик пульсаций, по переполнениюпереполнение таймеравыходное сравнение 5выходное сравнение 4выходное сравнение 3выходное сравнение 2выходное сравнение 1входной захват 3входной захват 2входной захват 1прерывание реального времениIRQXIRQSWIпрерывание по неверному коду командыпрерывание от системы COPтактовый мониторсбросПри отладке программы следует иметь в виду, что программа отладчик задействует последовательный интерфейс (SCI) и функцию выходного сравнения OC4 (для организацииточек останова), т.е.