2-Лабораторная_Основы микропроцессорной техники (Лаба № 2 Основы микропроцессорной техники. Отладка / Документ Microsoft Word (2)
.docТомский межвузовский центр дистанционного образования
Томский государственный университет
систем управления и радиоэлектроники (ТУСУР)
Кафедра промышленной электроники (ПрЭ)
Лабораторная работа № 2
Основы микропроцессорной техники
Отладка прикладных программ для микроконтроллера МК48
Выполнил:
Студент ТМЦДО
гр.:
специальности 200400
1 июня 2007 г.
2007
Цель работы: приобретение навыков отладки прикладных программ для однокристалических микроконтроллеров семейства МК48 с помощью программных средств инструментальной ЭВМ, в качестве которой используется компьютер IBM PC: ассемблера, линкировщика и эмулятора.
Ход работы:
6.2 Подготовил исходный текст исследуемой программы TEST.asm, реализующей 8-канальный распределитель уровня логической 1 по линиям порта Р1.
6.3 Вызвал эмулятор AVOSET SISTEMS INC. Пронаблюдал выполнение программы в пошаговом режиме, а затем в автоматическом с различной скоростью.
6.4 Модифицировал программу:
1) вместо NOP вставил команду INC A. Аккумулятор начал заполняться единицами и обнуляться.
2) вместо RL A вставил RR A, восстановил на прежнее место команду NOP, состояние триггера переноса С при выполнении циклических сдвигов в аккумуляторе не меняется.
6.5 В режиме Patch Code записал программу временной задержки и оценил время её выполнения с помощью Set Cycles.
Время выполнения программы – 514 циклов.
6.6 Записал программу PROG.asm. подготовил файл PROG.hex, загрузил его в эмулятор и прогнал программу в ручном и автоматическом режиме.
Содержимое порта P2 меняется из за того, что через него идут данные в порт Р4 и Р5. При наличии прерывания управление передается по адресу 0000DH. Для запрета внешнего прерывания существует программа DIS. При вызове подпрограммы указатель стека SP устанавливается в 0, а в стеке сохраняется адрес команды следующей за командой вызвавшей прерывание. Функцию вывода Т0 можно изменить командой STRT. При переполнении таймера/счетчика флаг таймера устанавливается в 1.
6.7 Проверил на эмуляторе работу программы COMP.asm.
6.8 Разработал и отладил на эмуляторе программу ZERO обнуляющую содержимое порта Р1 после поступления 5 импульсов на вход Т1.
6.9 Контрольные вопросы:
-
Каким образом можно вызвать подпрограмму, находящуюся в первом банке памяти программ, из программы, расположенной в нулевом банке?
SEL MB1 - CALL - SEL MB0
-
Как можно организовать условный переход из первой страницы программной памяти к третьей?
MOVP3@A
-
Какие действия происходят при системном сбросе микроконтроллера?
Системный сброс устанавливает PC и SP в нулевое состояние, выбирает RB0 и MB0, запрещает прерывания, останавливает таймер/счётчик, сбрасывает в нуль флаги пользователя F0 и F1, запрещает выдачу тактовых импульсов на вывод T0, подготавливает порты P1 и P2 для приёма информации (выводит в них байт единиц).
-
Каким образом можно воспользоваться эмулятором для определения времени выполнения программы?
Для определения времени выполнения программы нужно число циклов умножить на 15 (т.к. в одном цикле 15 периодов колебаний) и разделить на частоту кварцевого генератора.