Скачиваний:
19
Добавлен:
23.06.2014
Размер:
29.18 Кб
Скачать

Министерство образования Российской Федерации

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

ЛабОраторная работа № 2 по Основе микропроцессорной технике.

Отладка прикладных программ для микроконтроллера МК48

Выполнил студент : вариант:9.

Проверил преподаватель

____________ ________

Цель работы: приобретение навыков отладки прикладных программ для однокристальных микроконтроллеров семейства МК48 и приобретение навыков отладки простейших программ с помощью ассемблера, линковщика и эмулятора.

Ход работы:

  1. Скомпилировал и отлинковал программу TES.asm.

  2. В эмуляторе ппроследил работу программы TES, реализующей 8-канальный распределитель уровня логической 1 по линиям порта Р1, сначала в пошаговом режиме, а затем в автоматическом режиме с различной скоростью. Содержимое А заполняется бегущей единицей влево. Содержимое Р1 аналогично А. Содержимое R1 претерпевает декремент от 0 до 0.

  3. Модифицировал программу TES в режиме дизассемблирования: вместо команды NOP вставил команду INC A. Содержимое А заполняется 1 справа на лево. Программа TES1.

  4. Используя режим Patch Code, вместо RL A поместил команду RR A. Команду NOP вернул на прежнее место. При выполнении циклицеских сдвигов в аккумуляторе состояние триггера переноса С не меняется.

  5. В режиме Patch Code записал программу временной задержки

MOV R0,#0

DJNZ R0,$

  1. Скомпилировал и отлинковал программу PROG.asm. Проследил её работу в эмуляторе в пошаговом и автоматическом режимах. При наличии прерывания управление передаётся по адресу 0Dh. При этом указатель стека уменьшается, а в стеке сохраняется адрес команда следующей за командой вызвавшей прерывание. При переполнении таймера-счётчика флаг таймера устанавливается в 1.

  2. Скомпилировал и отлинковал программу СОМР.asm, формирующей в аккумуляторе двоично-десятичный код числа датчиков, информация с которых превышает пороговое значение, находящееся в аккумуляторе. Проследил её работу в эмуляторе.

  3. Составил программу индивидуального задания ZAD1.asm, которая заполняет все чётные элементы РПД логическими нулями, а нечётные - еденицами. Скомпилировал и отлинковал программу. Проследил её работу в эмуляторе.

Ответы на вопросы:

  1. Для вызова подпрограммы, находящейся в первом банке памяти программ, расположенной в нулевом банке, необходимо перед вызовом подпрограммы выполнить команду SEL MB1, а в подпрограмме последним должен быть код: SEL MB0

RET.

  1. Для условного перехода из первой страницы программной памяти в третью необходимо чтобы команда перехода по условию указывала на команду JMP 03XXH, где ХХ-8ми разрядный адрес продолжения программы в третьей странице, т.к команда JMP позволяет передать управление в переделах банка памяти.

  2. При системном сбросе микроконтроллера РС SP F0 F1 устанавливаются в нулевое состояние, выбирается RB0 MB0, запрещается прерывание, выдача тактовых импульсов на вывод Т0, останавливается таймер счетчик, подготавливаются порты Р0 Р1 для приема.

  3. Для определения времени выполнения программы необходимо подсчитать число отсчётов таймера за время выполнения программы. В начале программы STRT T, в конце STOP TCNT. Это число связано со временем через тактовую частоту микроконтроллера.

Соседние файлы в папке lab2
  • #
    23.06.2014329 б15COMP.ASM
  • #
    23.06.201481 б15COMP.HEX
  • #
    23.06.20141.34 Кб15COMP.LST
  • #
    23.06.201429.18 Кб19LR2.doc
  • #
    23.06.2014249 б15PROG.ASM
  • #
    23.06.201456 б16PROG.HEX
  • #
    23.06.20141.17 Кб15PROG.LST
  • #
    23.06.2014131 б15TES.ASM
  • #
    23.06.201444 б15TES.HEX