3 / ЗаданЛабработа 3 Прерывания
.docxИсследование аппаратных и программных прерываний на симуляторе.
1. Запустите программный имитатор микроконтроллера. 2. Расположите в поле редактора программу: ; Update Freq установить 20
;кнопка 1 - смена приоритета
;кнопка 2 - разрешение INT0
;кнопка 3 - разрешение INT1
;Прерывания на входах Р3.2, Р3.3 формирует таймер Т0
ORG 0
JMP START
ORG 0003H
JMP NX0
ORG 000BH
JMP NT0
ORG 0013H
CLR IE1 ;нужна команда при IT1=0
PUSH PSW
MOV A,P1
ADD A,#16
MOV P1,A
CLR P0.7
SETB P0.7
POP PSW
RETI
START: SETB IT0 ;Прервание перепадом 1/0
SETB IT1 ;;
MOV TMOD,#00000010B ;режим таймера Т0
MOV TH0,#210 ;Интервал таймера Т0
MOV TL0,TH0
SETB TR0 ;Пуск таймера Т0
MOV IE,#10000010B ;Разрешение прерываний T0.
mov p1,#150
CLR P0.7
SETB P0.7
PR: MOV C,P2.2
MOV EX0,C ;Управление разрешением
MOV C,P2.3 ; прерываний INT0 и INT1
MOV EX1,C
mov c,p2.1 ; Управление
mov px1,c ; приоритетом INT1
JMP PR
NX0: PUSH PSW
MOV A,P1
CLR C
SUBB A,#16
MOV P1,A
CLR P0.7
SETB P0.7
POP PSW
RETI
NT0:
XRL P3,#00001100B ;Формирование перепада 1/0
RETI ;на входах Р3.2, Р3.3
END
3. Транслируйте программу. 4. Кнопки “3”,”2”,“1” до запуска программы подключите к нулю (нажать).
5. Запустите программу. Исследуйте влияние бит приоритета и разрешения прерываний на работу микроконтроллера, устанавливая кнопками “3”,”2”,“1” единичное и нулевое состояние соответствующих бит. Кнопка «3» единицей разрешает прерывание INT1, нулём – запрещает. Кнопка «2» единицей разрешает прерывание INT0, нулём – запрещает. Кнопка «1» единицей повышает приоритет INT1.
Результат работы программы наблюдайте на выходе DAC (встроенный осциллограф).
3. Исследование аппаратного обнаружения перепадов 1/0 на входах микроконтроллера. 3.1 Расположите в поле редактора программу:
;Формирование прерываний кнопками 3 и 2
; Update Freq установить 20
ORG 0
JMP START
ORG 0003H
JMP NX0
ORG 000BH
JMP NT0
ORG 0013H
CLR IE1 ;Нужна при прерывании уровнем “0”
PUSH PSW ;Обработка прерывания INT1
MOV A,P1
ADD A,#16
MOV P1,A
CLR P0.7 ;Запись в ЦАП
SETB P0.7
POP PSW
RETI
START: SETB IT0 ;Прерывание перепадом 1/0
SETB IT1 ;;
SETB PX1
MOV TMOD,#00000010B ;Режим таймера Т0
MOV TH0,#200 ;Интервал таймера Т0
MOV TL0,TH0
SETB TR0 ;Пуск таймера Т0
MOV IE,#10000111B ;Разрешение прерываний
MOV P1,#150 ;Начальный уровень ЦАП
CLR P0.7
SETB P0.7
PR: MOV C,P2.2 ;Копирование перепадов 1/0
MOV P3.2,C ;с контакторв порта Р2
MOV C,P2.3 ;на контакты порта Р3
MOV P3.3,C
JMP PR
NX0: PUSH PSW ;Обработка прерывания INT0
MOV A,P1
CLR C
SUBB A,#16
MOV P1,A
CLR P0.7
SETB P0.7
POP PSW
RETI
NT0: PUSH PSW ;Обработка прерывания таймера Т0
MOV A,P1
ADD A,#2
MOV P1,A
CLR P0.7
SETB P0.7
POP PSW
RETI
END 3.2 Транслируйте и запустите программу. Формируйте перепад двойным нажатием кнопок "2" и "3". 3.3 Результат работы программы наблюдайте на выходе DAC
4. В отчёте приведите программы с комментариями и осциллограммы сигналов с указанием, какие входные воздействия были применены.
