[257]Лабораторные_МС_68HC11 (8-разрядные микроконтроллеры семейства M68HC11 фирмы Motorola), страница 2
Описание файла
Файл "[257]Лабораторные_МС_68HC11" внутри архива находится в папке "8-разрядные микроконтроллеры семейства M68HC11 фирмы Motorola". PDF-файл из архива "8-разрядные микроконтроллеры семейства M68HC11 фирмы Motorola", который расположен в категории "". Всё это находится в предмете "цифровые устройства и микропроцессоры (цуимп)" из 8 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "цифровые устройства и микропроцессоры" в общих файлах.
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
Просмотр и изменение ячеек памятиПросмотр содержимого памяти можно осуществить выбрав в меню “DebugfMemory”подпункт “Inspect”, после чего появится окно, в котором Вам будет предложено ввести начальный и конечный адрес для просмотра. Для изменения содержимого регистров необходимо вызвать пункт меню “DebugfMemoryfModify”.При изменении регистра CONFIG или ячейки EEPROM следует убедиться, что битызащиты в регистре BPROT сброшены.
Введите адрес $1034 и нажмите стрелку вверх. Приэтом в окне данных отобразится содержимое ячейки $1035 (BPROT). После сброса запись вEEPROM и CONFIG запрещена и в регистре BPROT находится число $1f.Вторым, иногда упускаемым моментом, является то, что записанное в регистр CONFIGзначение становится активным (и видимым) лишь после сброса микроконтроллера.8.
Различные режимы выполнения программыОтладочный комплект обеспечивает работу программы в двух режимах: режим запускаи режим трассировки.Сначала рассмотрим режим трассировки. В этом режиме при нажатии клавиши <F7>выполняется ровно одна команда, на которую указывает программный счетчик PC. Исполняемая команда не должна запрещать прерывания процессора, иначе выполнение будет происходить до точки программы, в которой прерывания будут разрешены. Тут же следует отметить, что время ответа лимитировано и может произойти разрыв связи (в этом случае можновоспользоваться опцией “DebugfResynchronize” для восстановления связи без потери данных).
Для трассировки программы из приведенного выше примера необходимо предварительно занести в регистр X число $0000, а в регистр PC число $c800.Если необходимо какой-либо фрагмент текста выполнить целиком (например, это может быть цикл с большим параметром или программа с ветвлением), то можно воспользоваться вторым режимом - выполнение программы до точки останова. Для установки точкиостанова в окне “Debug window” надо cтрелками выберать команду, на которой необходимопоставить точку останова. В нашем случае это будет команда, следующая за командой“bne $c802”. Далее нажмите <Ctrl-F8> и, убедившись что содержимое программного счетчика корректно, нажмите клавишу <F9> (соответствует опции “DebugfRun Program”).
Программа остановится сразу после выполнения цикла.Отладочный комплект.5Лабораторная работа №19. Контрольные вопросы1. Каковы функции опции “OptionfCommunication”?2. Каким образом осуществляется просмотр содержимого памяти?3. Каковы функции кнопки “Trace”?4. Что представляют из себя данные, выводимые командой “Decode”?5. Каково назначение точек останова?6. Какой командой выполняется просмотр содержимого регистров ОЭВМ?7. Каковы основные режимы выполнения программ?8. Каким образом осуществляется создание и редактирование файлов в редакторе?9.
Назовите основные части ОМ.10.Каким образом осуществляется загрузка программы в память ОМ?11.Какое дополнительное оборудование и как можно подключить к ОМ?12.Какие особенности имеет ОЭВМ МС68НС11E1?13.Какие тонкости существуют при модификации регистра CONFIG?14.Каковы функции директивы “DebugfRegistersfModify”?15.Каким образом в кросс-ассемблере устанавливается адрес начала программы?Отладочный комплект.6Лабораторная работа №2Лабораторная работа №2Методы адресации. Команды пересылки данных.1. ВведениеВ этой лабораторной работе изучаются:• методы адресации,• группа команд пересылки данных.2.
Методы адресацииМикроконтроллеры семейства M68HC11 имеют следующие типы адресации: неявная,непосредственная, прямая, расширенная, индексная и относительная.Рассмотрим каждый из видов адресации подробнее.Неявная адресация используется в том случае, когда в качестве операндов используютсялибо регистры (например, COMA, CLI), либо фиксированная ячейка памяти (SWI). Другимисловами можно сказать, что неявная адресация не требует отдельного битового поля для указания операнда. В большинстве случаев такие команды однобайтные.4353COMACOMBИсключение составляют команды, взаимодействующие с регистром Y:18 3518 3ATYSABYВ случае использования непосредственной адресации операнд (или один из операндов)включен непосредственно в код команды. Длина таких команд может составлять от двух дочетырех байт.
При записи команд, использующих непосредственную адресацию операндпредворяется символом “решетка” (‘#’).86 03LDAACE 80 00LDX18 8C 56 78 CPY#3#32768#$5678Прямая адресация используется для доступа к данным, расположенным в первых256 байтах памяти. При этом младший байт адреса операнда расположен непосредственно закодом команды. Применение этой группы команд позволяет сократить объем программы, атакже сократить время выполнения на выборке операнда из памяти.96 3FDA FFLDAAORAB63$FFИспользование расширенной адресации позволяет осуществить доступ к любой ячейкепамяти в пределах адресного пространства контроллера. При этом два байта, следующие непосредственно за кодом команды, представляют собой абсолютный адрес операнда.B6 40 007E 78 12LDAAJMP$4000$7812Методы адресации.
Команды пересылки даных.7Лабораторная работа №2Как правило, ассемблер автоматически выбирает наиболее оптимальный из двух вышеописанных методов адресации.Для доступа к массивам данных удобно использовать индексную адресацию. В микроконтроллерах семейства M68HC11 используется так называемая индексная адресация с8-разрядным смещением. При этом в индексный регистр X или Y заносится 16-разрядный адрес, а следующий за кодом команды байт содержит 8-разрядное смещение. Абсолютный адрес при этом вычисляется простым суммированием содержимого индексного регистра с байтом смещения.A6 0718 AD 00LDAAJSR$07,X0,YКоманды работы со стеком так же принято относить к командам с индексной адресацией.3237PULAPSHBЭти команды используют индексную адресацию без смещения.Относительная адресация используется в командах передачи управления.
При этом абсолютный адрес перехода вычисляется путем сложения содержимого программного счетчикасо смещением, представляющим собой 8-разрядное знаковое число. Таким образом, используя относительную адресацию можно осуществить переход на адрес, лежащий в пределах от-128 до +127, относительно адреса следующего за командой перехода.8D 0024 FFBSRBCC*+$2*-125Заметим, что для наглядности здесь мы использовали символ “звездочка” (‘*’), который заменяется ассемблером на адрес текущей команды. Программы, использующие только относительную и неявную адресацию, принято называть позиционно-независимыми программами.Это объясняется тем, что при перемещении кода из одной области памяти в другую работоспособность программы сохраняется.3.
Команды пересылки данныхПростейшими командами являются команды пересылки данных. Список этих командприведен в таблице 2.1. Рассмотрим каждую из команд подробнее на простых примерах.Команды TSTA, TSTB и TST служат для установки регистра статуса в соответствии сTSTATSTBTST*LDAA**LDAB**LDD**LDX**LDY**LDS**CLRACLRBCLR*STAA***STAB***STD***STX***STY***STS***Таблица 2.1. Команды пересылки данных.TABPSHATBAPULATAPPSHBTPAPULBTSXPSHXTXSPULXTSYPSHYTYSPULYXGDXXGDYПримечания:*- Команды, использующие расширенную и индексную адресацию**- Команды, использующие непосредственную, прямую, расширенную и индексную адресацию***- Команды, использующие прямую, расширенную и индексную адресациюМетоды адресации.
Команды пересылки даных.8TSTA, TSTB, TST (opr)S X H I- - - -N Z V C? ? 0 0LDAA (opr), LDAB (opr),LDD (opr), LDS (opr),LDX (opr), LDY (opr)S X H I- - - -N Z V C? ? 0 -Лабораторная работа №2содержимым регистра А, В или ячейки памяти соответственно.Далее результат может быть использован в командах условногоперехода. Занесите в регистр A значение $00 и выполните впошаговом режиме команду TSTA. Теперь посмотрите на содержимое регистра статуса: должен быть установлен флаг нуля(Z) и сброшены флаг отрицательного результата (M), переноса(C) и переполнения (V).
Проведите подобный опыт при другихзначениях регистра A, обращая на различное состояние регистра статуса.Рассмотрим команды загрузки в регистр содержимогоячейки памяти. Загрузите в память EVB следующую программу:cpuorgldab6811$c800$56; определение типа микроконтроллера; начальный адрес программы; загрузить в регистр B содержимое; ячейки $56, используя прямую; адресациюldy$c800; загрузить в регистр Y данные,; расположенные по адресу $c000; (предыдущую команду)ldx#$1f00; установить регистр X на базовый; адрес PRU MC68HC24ldaa $03,x; считать информацию с переключателейВыполните ее в пошаговом режиме, обращая внимание на состояние регистра статуса.
Здесьпредставлены все виды адресации, используемые в этой группе команд.Работа команд очистки регистров A и B и ячейки памятиCLRA, CLRB, CLR (opr)может быть проиллюстрирована на примере следующей простой программы:S X H I N Z V C- - - - 0 1 0 0cpuorgclrbldx6811$c800; определить тип микроконтроллера; начальный адрес программы; очистить регистр B#$1f00; установить регистр X на базовый; адрес PRU MC68HC24clr$04,x; погасить светодиодыПредварительно занесите в порт B микросхемы эмулятора портов (ячейка памяти $1f04) какое-нибудь число, например $AA, затем выполните программу в пошаговом режиме.
Обратите внимание, что при завершении программы в регистре B будет находиться значение $00,а светодиоды погаснут.Теперь рассмотрим работу команд модификации ячеекSTAA (opr), STAB (opr),памяти.Для этого введем следующую программу:STD (opr), STS (opr),STX (opr), STY (opr)S X H I- - - -N Z V C? ? 0 cpuorgldd6811$c800#$AA55ldx#$1f00;;;;;определить тип микроконтроллераначальный адрес программыустановить в регистре D значение$AA55установить регистр X на базовыйМетоды адресации. Команды пересылки даных.9Лабораторная работа №2; адрес PRU MC68HC24clr$04,x; погасить светодиодыstaa $04,x; зажечь все четные светодиодыstab $04,x; зажечь все нечетные светодиоды,; погасив четныеldaa $03,x; считать информацию с переключателейstaa $04,x; отобразить состояние переключателей; на светодиодахTAB, TBAРаботу команд пересылки данных между регистрами A и Bлегко проследить на простом тесте: введите каждую из командS X H I N Z V Cи выполните в пошаговом режиме.