Томский межвузовский центр дистанционного образования

Томский государственный университет

систем управления и радиоэлектроники (ТУСУР)

Кафедра промышленной электроники (ПрЭ)

Лабораторная работа № 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 периодов колебаний) и разделить на частоту кварцевого генератора.

Соседние файлы в папке 2-Лабораторная_Основы микропроцессорной техники (Лаба № 2 Основы микропроцессорной техники. Отладка