Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СпецКомп_очн_ЛР3.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
149.5 Кб
Скачать

Лабораторная работа № 3 стек. Обращение к подпрограммам. Система прерываний мк intel8051

Цель работы: изучение организации стековой памяти и системы прерываний микроконтроллера Intel8051, а также приобретение навыков программирования с использованием подпрограмм.

1. Оргаhизация стековой адресации

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

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

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

МНЕМОНИКА

КОП

Б

Ц

Операция

PUSH ad

11000000

2

2

(SP) := (SP)+1; ((SP)) := (ad)

POP ad

1101000

2

2

(ad) := ((SP)); (SP):=(SP)-1

LCALL ad16

00010010

3

2

(PC):=(PC)+3, (SP):=(SP) + 1

((SP)):=(PCL), (SP):=(SP)+1

((SP)):=(PCH), (SP):=ad16

ACALL ad11

aaa10001

3

2

(PC):=(PC)+2, (SP):=(SP) + 1

((SP)):=(PCL), (SP):=(SP)+1

((SP)):=(PCH), (PC[0 -10]):=ad11

RET

00100010

1

2

(PCH):=((SP)), (SP):=(SP) - 1

(PCL):=((SP)), (SP):=(SP) - 1

RET I

00110010

1

2

(PCH):=((SP)), (SP):=(SP) - 1

(PCL):=((SP)), (SP):=(SP) - 1

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

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

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

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

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

Рисунок 2.1. Архитектура системы прерываний МК51

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

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

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

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

Архитектура системы прерывания МК приведена на рис. 2.1.