Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание N 7.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
206.34 Кб
Скачать

Лабораторная работа

Тема: Стек. Обращение к подпрограммам. Система прерывания микроконтроллера МК51.

Цель работы: изучение организации стековой памяти и системы прерываний микроконтроллера MК51.

Оборудование: персональный компьютер

Программное обеспечение: операционная система, программа отладчик для МК51

1. Общие положения. Организация стековой памяти микроконтроллера мк51.

Стековая адресация в МК организована с помощью автоинкрементной/автодекрементной косвенной адресации через 8-разрядный регистр указатель стека SP (адрес 81h в пространстве DSEG). Стек располагается в любом поле DSEG в диапазоне адресов 00h-7Fh. При выполнении операции загрузки в стек (типа PUSH, CALL) содержимое SP сначала инкрементируется, а затем в него загружается операнд. В операциях чтения (выгрузки) из стека (типа POP, RET) сначала читается содержимое стека, а затем SP декрементируется.

Команды работы со стеком приведены в таблице 1.

Таблица 1. Команды работы со стеком.

Мнемоника

Код операции

Байт

Циклов

Операция

PUSH ad

11000000

2

2

(SP)  (SP) + 1,

((SP))  (ad)

POP ad

11010000

2

2

(ad)  (SP),

(SP)  (SP) – 1

LCALL adl6

00010010

3

2

(PC)  (PC) + 3, (SP)  (SP) +1, ((SP))  (PCL), (SP)  (SP) + 1, ((SP))  (PCH), (PC)  ad16

ACALL ad11

a10a9a810001

2

2

(PC)  (PC) + 2, (SP)  (SP) + 1, ((SP))  (PCL), (SP)  (SP) + 1, ((SP))  (PCH), (PC0-10)  ad11

RET

00100010

1

2

(PCH)  ((SP)), (SP)  (SP) – 1,

(PCL)  ((SP)), (SP)  (SP) – 1

RETI

00110010

1

2

(PCH)  ((SP)), (SP)  (SP) – 1,

(PCL)  ((SP)), (SP)  (SP) – 1

При инициализации МК по сигналу RST «сброс» в указатель стека автоматически загружается код 07h, то есть первый элемент стека будет загружаться в ячейку 08h (регистр R0 первого банка регистров). Пользователь имеет возможность переопределить содержимое SP, изменив необходимым образом расположение стека в DSEG. Переполнение стека аппаратно не фиксируется, что должно учитываться в программе пользователя.

При обращении к подпрограмме (и обработке прерываний) по командам типа CALL в стек загружается только адрес возврата. Информация о состоянии МК аппаратно не сохраняется. При необходимости это делает прикладная программа.

Организация системы прерываний.

Микроконтроллер поддерживает двухуровневую приоритетную систему прерываний с пятью источниками запросов.

Имеется два внешних запроса на прерывания – линии , (разряды 2-й и 3-й третьего порта ввода/вывода, Р3.2 и Р3.3 соответственно).

Источниками внутренних запросов могут служить:

- счетчик/таймер 0

- счетчик/таймер 1

- порт последовательного ввода/вывода

Архитектура системы прерывания МК иллюстрируется рисунком 1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]