Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_работы МПУ 2009.doc
Скачиваний:
0
Добавлен:
21.03.2026
Размер:
361.47 Кб
Скачать

5. 2. Порядок выполнения работы

1. Ознакомиться с описанием.

2. Разместить по адресам 4003Н, 400ВН и 4013Н подпрограммы обработки прерываний от входа INT0, таймера 0 и INT1 в соответствии с индивидуальным заданием.

Примечание. В лабораторном макете программа «монитор» производит переадресацию векторов прерываний в область адресов 4000Н.

3. Составить и отладить программу, использующую прерывания, проверить результаты ее работы на лабораторном макете.

В ходе работы управлять битами разрешения прерываний отдельных источников, соединяя входы Т0, Т1 с шиной «Общий». В соответствии с заданием зарисовать осциллограммы или описать характер вывода информации на дисплей.

В качестве сигнала прерывания по INT0 и INT1 использовать частоту, вырабатываемую генератором макета или вызывать прерывания, подключая соответствующий вход к "Общему".

Назначить всем источникам прерываний низкий приоритет. Запретить прерывания всех источников, кроме INT0 и INT1. Далее:

а) запрограммировать прерывания от INT0 и INT1 по перепаду. Разрешать прерывания: поочередно для INT0 и INT1;

б) запрограммировать прерывания от INT0 по уровню, от INT1 по перепаду. Разрешить прерывания совместно для INT0 и INT1;

в) назначить высокий приоритет INT1. Разрешить прерывания совместно для INT0 и INT1;

г) разрешить только прерывания таймера 0. Анализировать результат работы управляющей программы, изменяя период прерывания таймера (перед запуском программы вводить директивой монитора в ячейку 32Н числа 10Н, 80Н, F0H). Разрешить прерывания INT0 и INT1 совместно с прерываниями таймера 0. Назначить таймеру высший приоритет.

В ходе выполнения работы анализировать осциллограммы на выходе ЦАП1 и управляемых линий порта Р1.

Управляющая программа:

ORG 4000H

JMP START

ORG 4003H

JMP NX0 ;на п/п обработки прерывания INT0

ORG 400BH

JMP NT0 ;на п/п обработки прерывания таймера 0

ORG 4013H

JMP NX1 ;на п/п обработки прерывания INT1

NT0: PUSH ACC

MOV A,32H ;ввод из ячейки 32Н коэффициента

CPL A ;k, задающего период счета (прерывания)

INC A ;k·250 мкс – период таймера 0

MOV TH0,A ;занесение коэффициента в регистр

POP ACC ;таймера

*** ;команды, реализующие индивидуальное задание

RETI

NX0:

*** ;команды, реализующие индивидуальное задание

RETI

NX1:

*** ;команды, реализующие индивидуальное задание

RETI

START:

CALL INITT0 ;настройка таймера 0

MOV P1,#16

;настройка регистров системы прерываний

MOV 0B7H,#00000010B ;высший приоритет Т0

SETB PX1 ;(CLR PX1) оставить требуемую по заданию команду

SETB ЕТ0 ;(CLR ЕТ0) оставить требуемую по заданию команду

M: MOV C,T0 ;вход порта Р3.4

MOV EX0,C ;разрешение/запрет прерывания INT0

MOV C,T1 ;вход порта Р3.5

MOV EX1,C ;разрешение/запрет прерывания INT1

JMP M

END

5. 3. Варианты индивидуальных заданий

1. В подпрограмме прерывания INT0 инвертировать состояние линии Р1.4. По прерыванию INT1 инвертировать состояние линии Р1.5. По прерыванию от таймера 0 инкрементировать содержимое порта Р1.

2. Сформировать на ЦАП1 напряжение, нарастающее на 1 дискрет при обработке прерывания по входу INT0. При обработке прерывания по входу INT1 сформировать на ЦАП1 напряжение, убывающее на 2 дискрета. По прерыванию от таймера 0 установить флаг прерывания IE0, вызвав прерывание от INT0 программно (в этом случае на вход INT0 сигнал не подавать).

3. Сформировать на ЦАП1 напряжение, нарастающее на 3 дискрета при обработке прерывания по входу INT0. При обработке прерывания по входу INT1 сформировать на ЦАП1 напряжение, убывающее на 1 дискрет. По прерыванию от таймера 0 установить флаг прерывания IE1, вызвав прерывание от INT1 программно (в этом случае на вход INT1 сигнал не подавать).

4. Сформировать на ЦАП1 напряжение, нарастающее на 4 дискрета при обработке прерывания по входу INT0. Обнулить содержимое регистра Р1 при обработке прерывания по входу INT1. По прерыванию от таймера 0 установить флаг прерывания IE1, вызвав прерывание от INT1 программно (в этом случае на вход INT1 сигнал не подавать).

5. По прерыванию INT0 декрементировать содержимое регистра Р1. По прерыванию INT1 инкрементировать содержимое регистра Р1. По прерыванию таймера 0 инвертировать содержимое бита Т0.

6. По прерыванию INT0 устанавливать в «1» бит Р1.7. По прерыванию INT1 сбрасывать в «0» бит Р1.7. По прерыванию таймера 0 увеличивать содержимое регистра Р1 на 4 дискрета.

7. По прерыванию INT0 производить циклический сдвиг регистра Р1 вправо. По прерыванию INT1 производить циклический сдвиг регистра Р1 влево. По прерыванию таймера 0 инвертировать содержимое бита Т0.

8. По прерываниям INT0 и INT1 производить суммирование «по модулю два» содержимого регистра Р1 с числом F0H. По прерыванию таймера 0 производить декремент содержимого регистра Р1.

Соседние файлы в предмете Микропроцессорные устройства