
отчеты по лабораторным работам / общий отчет / Система прерываний
.docЛабораторная работа по Организации ЭВМ
Система прерываний
Выполнили: студенты группы 2100
Митрофанов Александр
Пермяков Валерий
Николаев Владимир
Голубцов Евгений
Внешние события в MCU MCS51 представлены сигналами-запросами прерывания на входных портах P3.2=INT0 и P3.3=INT1
Внешние прерывания
Вход тип Рг-запр маска приорит номер вектор
p3.2 /int0 |
it0 = \ |
ie0 = /+ |
Ex0 |
0 |
0 |
03 |
p3.3 /int1 |
it1 = \ |
ie1 = /+ |
Ex1 |
2 |
2 |
13h |
Внутренние прерывания формируются системными таймерами Tm0 и Tm1.
|
|
tf0+ |
et0 |
1 |
1 |
0bh |
|
|
tf1+ |
et1 |
3 |
3 |
1bh |
Счетчик прерываний – по int0 инкремент, по int1 декремент
Реализация задачи на С
#include <reg51.h>
int_0() interrupt 0
{
P3++;
}
int_2() interrupt 2
{
P3--;
}
main()
{
P3=0;
EX0=1;
EX1=1;
IT0=1;
IT1=1;
EA=1;
while(1);
}
Реализация задачи на ассемблере
iseg at 30h
Stack: ds 10
cseg at 0
ljmp start
cseg at 3h
ljmp ex00
cseg at 13h
ljmp ex01
cseg at 40h
start:
mov SP, #Stack-1
clr A
mov P3, A
clr c
cpl c
mov EA, c
cikl: inc a
jmp cikl
ex00:
push ACC
mov A, P3
inc A
mov P3, A
pop ACC
Reti
ex01:
push ACC
mov A, P3
dec A
mov P3, A
pop ACC
Reti
end