2-Лабораторная_Основы микропроцессорной техники (Основы микропроцессорной техники. Лабораторная работа 2)
.docФедеральное агентство высшего образования Российской Федерации
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра ПрЭ
" Таймеры и система прерываний MК51"
Лабораторная работа № 2 по дисциплине
"Основы микропроцессорной техники"
(учебное пособие 2008 г.в.)
Выполнил студент
Проверил преподаватель
Шарапов А. В.
Нефтеюганск 2009
Задание 1: Создадим программу (файл test.asm):
Зафиксируем содержимое регистров, флагов и ячеек памяти микроконтроллера после загрузки эмулятора:
После системного сброса указатель стека настроен на область первого банка регистров общего назначения.
Установлена максимальная скорость выполнения программы.
Задание 2: Создадим программу (файл 2.asm):
Текст программы с комментариями:
MOV A,P1 ; Загрузить число с порта Р1 в А
MOV B,#100 ; Записать в регистр В число 100
DIV AB ; Разделить А на В
MOV DPH,A ; Записать А в старший байт DPH
MOV A,#10 ; Записать в А число 10
XCH A,B ; обменяться содержимым А и В
DIV AB ; Разделить А на В
SWAP A ; Обмен тетрадами А
ORL A,B ; Логическое ИЛИ А и В
MOV DPL,A ; Записать А в младший байт DPL
END
Проверим программу на эмуляторе:
На порту Р1 число 11111111(2) = 255(10) в DPTR
Задание 3:
Записать в первые две ячейки памяти программ программу, состоящую из одной команды SJMP 0 (80 FE), и запустить ее на выполнение в автоматическом режиме. Почему не работают таймеры Т/С0 и Т/С1?
Таймеры не работают, потому что не было их инициализации.
Установив TR0=1, проверить работу Т/С0 в режиме таймера (скорость счета изменяется клавишей F5) и счетчика событий (TMOD.2=1). Перепады на линии Т0 (Р3.4) формировать с помощью клавиши Insert. В каком диапазоне изменяется содержимое регистров TL0 и TH0 при работе T/C0 в режиме 0? Когда устанавливается флаг TF0?
Флаг TF0 устанавливается при переполнении.
Задание 4: Создадим программу (файл 4.asm):
Проверим программу на эмуляторе:
При установке конкретных прерываний, программа выполняет соответствующие прерывания по необходимым адресам.
Задание 5: Создадим программу (файл 5.asm):
Проверим программу на эмуляторе:
Проимитировав на входе INT0 импульс длительностью 10 мс, измерили секундомером реальное время работы программы при наивысшей скорости (HI). Она составила 1.1 секунд, т.е. реальная скорость отличается от эмулятора в 110 раз.
Задание 6: Создадим программу (файл 6.asm):
Проверим программу на эмуляторе:
Ответы на контрольные вопросы:
-
Разрешены ли прерывания после системного сброса?
да
-
Может ли быть прервано выполнение программы обработки прерывания с высоким уровнем приоритета?
нет
-
Транслировать команду JB ТF0,$+5.
208D02
-
Что происходит при выполнении команды CJNE A,#40,M1?
Сравнение содержимого аккумулятора с #40 и переход на метку М1, если не равно.