Листинг программы к заданию 2
$mod52
ORG
000h
JMP
MAIN
ORG
0003h
JMP
INTRO
ORG
000Bh
JMP
DELAY
ORG
0100h
MAIN:
MOV
TL0, #0F8h ;Для наблюдения в режиме симуляции,
закомментить
MOV
TH0, #0FFh ;Для наблюдения в режиме симуляции,
закомментить
mov
IE, #10000011b;
SETB
TMOD.7 ;Установка режима таймера
SETB
IT0;TCON.0 = 1, INT0 прерывание по срезу(1->0)
;CLR IT0 ;TCON.0
= 0, INT0 прерывание по уровню(1)
SETB
PX0 ;Наивысший приоритет для INT0
clr
PT0 ;Низший приоритет для таймера 0
SETB
TCON.4 ;Запуск
таймера
DIVIDER:JMP
DIVIDER
DELAY: ;обработка
прерывания 00BH
MOV
TL0, #0F8h ;Закомментить
MOV
TH0, #0FFh ;Закомментить
MOV
P1, #0E7h;
cycle:JMP
cycle
RETI
INTRO: ;обработка
прерывания 003h
MOV
P1, #55h ;вывод "решетки" в порт
RETI
END
Выводы:
В
ходе выполнения лабораторной работы
были изучены режимы обработки запросов
прерываний с различными приоритетами.
Сначала сигналу INT0
присваивался высший приоритет, а сигналу
прерывания TF0
от T/C0
– низший, что позволяло нам прерывать
обработчик прерывания от сигнала TF0.
Затем мы убедились, что программа,
запускаемая от таймера/счетчика 0, не
прерывается, если назначить сигналу
INT0
приоритет, равный или меньше приоритета
сигнала прерывания TF0
от T/C0