Вы находитесь на странице: 1из 3

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

Федеральное государственное автономное образовательное


учреждение высшего образования
«Уральский Федеральный Университет имени первого
Президента России Б. Н. Ельцина» Физико-технологический
институт
Кафедра физических методов и приборов контроля качества

Отчёт по лабораторной работе №5


Система прерываний

Преподаватель: Моисейкин Е.В


Студент группы Фт-300009: Молина Б. Д.

Екатеринбург 2023
Цель работы
1. Изучить работу системы прерываний микроконтроллеров семейства
MCS-51 и получить навыки ее программирования.
Задание 1
2. dpp data 84h 26.ret
3. sv data 07h
4. ena xdata 04h
5. org 2003h 27.prog_int0: mov ie, #0h
6. ljmp prog_int0 28.inc 40h
7. org 2013h 29.call output40
8. ljmp prog_int1 30.call pause
9. org 2050h 31.clr tcon.1
10.mov r0,#ENA 32.mov ie, #85h
11.mov a,#20h 33.reti
12.call putbyte 34.prog_int1: mov ie, #0h
13.mov TCON,#05h 35.dec 40h
14.mov IE,#85h 36.call output40
15.mov 40h, #01h 37.call pause
16.call output40 38.clr tcon.3
17.sjmp $ 39.mov ie, #85h
18.putbyte: push dpp 40.reti
19.mov dpp, #08d 41.pause: mov r5, #0FFh
20.movx @r0, A 42.L1: mov r6, #0FFh
21.pop dpp 43.djnz r6, $
22.ret 44.djnz r5, L1
23.output40: mov r0,#sv 45.ret
24.mov a,40h
25.call putbyte
46.end

Данный код написан на ассемблере для микроконтроллеров семейства MCS-


51. Он имеет две функции обработки прерываний: prog_int0 и prog_int1.
Основная часть программы управляет установкой и сбросом определенных
флагов и регистров для обработки прерываний.
Функция putbyte используется для записи значения A в память по адресу,
указанному в регистре R0.
Функция output40 загружает значение 40h в регистр A и вызывает функцию
putbyte для записи этого значения в память по адресу, указанному в регистре
R0.
Функция pause создает задержку с помощью вложенных циклов, чтобы
создать задержку выполнения программы.
Основная часть программы устанавливает значения регистров TCON и IE, а
также вызывает функции output40 и pause. Затем она устанавливает и
сбрасывает флаги и регистры для обработки прерываний и возвращает
управление из обработчиков прерываний с помощью инструкции reti (return
from interrupt).

Вывод
В результате выполнения данной лабораторной работы, изучили работу
системы прерываний микроконтроллеров семейства MCS-51 и получили
навыки программирования этой системы. Они освоили использование
прерываний.
В данной программе использовались два обработчика прерываний prog_int0 и
prog_int1, которые выполняют определенные действия при возникновении
прерываний. Также были реализованы вспомогательные функции putbyte и
output40, которые отвечают за запись данных в память и вывод значения 40h.
Код также содержит задержку pause, которая создает паузу в выполнении
программы с помощью вложенных циклов.

Вам также может понравиться