К выполнению лабораторной работы
Рассмотрим 29-й вариант задания. Согласно варианту, обрабатываемыми источниками прерываний являются внешнее прерывание INT0 и прерывание от таймера/счетчика T/С0. Параметры импульса: t=500; T=1500.
Разработаем требуемую программу. Ее текст с необходимыми комментариями приведен ниже.
Программа
.ORG 0H
AJMP START
.ORG 3H;переход на обработчик INT0
AJMP SUBR1
.ORG 0BH; переход на обработчик T/C0
AJMP SUBR2
.ORG 30H;основная программа
START: MOV IE,#00000011b;pазpешение INT0, T/С0,
;общий запpет прерываний
MOV IP,#10b; приоритеты INT0 =0, Т/С0=1
;настройка прерывания INT0 по срезу, сброс всех запросов
MOV TCON,#0
MOV R0,#6; установка счетчиков
MOV R1,#6; числа прерываний
SETB EA;общее разрешение прерываний
CYCLE: MOV R2,#250;счетчик цикла = t / 2
SETB P1.0; генерация сигнала
DELAYt: DJNZ R2,DELAYt; задержка на t
CLR P1.0
MOV R3,#5
DELAY2: MOV R4,#100;задержка на T-t ≈ 2*(R4)*(R3)
DJNZ R4,$
DJNZ R3,DELAY2
AJMP CYCL;возвpат на цикл
;обработчик INT0
SUBR1: DJNZ R0,OUT0
CLR EX0;запрет прерывания по INT0
OUT0: RETI
;обработчик T/C0
SUBR2: DJNZ R1,OUT1
CLR ET0;запрет прерывания по T/C0
OUT1: RETI
.END
|
|
Варианты заданий
№ варианта | Параметры импульса | Источники прерываний | ||
T | t | |||
INT0 | INT1 | |||
INT0 | T/C0 | |||
INT0 | T/C1 | |||
INT0 | ПИ | |||
INT1 | T/C0 | |||
INT1 | T/C1 | |||
INT1 | ПИ | |||
T/C0 | T/C1 | |||
T/C0 | ПИ | |||
T/C1 | ПИ | |||
INT0 | INT1 | |||
INT0 | T/C0 | |||
INT0 | T/C1 | |||
INT0 | ПИ | |||
INT1 | T/C0 | |||
INT1 | T/C1 | |||
INT1 | ПИ | |||
T/C0 | T/C1 | |||
T/C0 | ПИ | |||
T/C1 | ПИ | |||
INT0 | INT1 | |||
INT0 | T/C0 | |||
INT0 | T/C1 | |||
INT0 | ПИ | |||
INT1 | T/C0 | |||
INT1 | T/C1 | |||
INT1 | ПИ | |||
T/C0 | T/C1 | |||
INT0 | T/C0 |
Используемые обозначения источников прерываний:
INT0 – внешнее по входу INT0
INT1– внешнее по входу INT1
T/C0 – от таймера/счетчика 0
T/C1– от таймера/счетчика 1
ПИ - от схемы последовательного интерфейса.