Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методическое пособие 229

.pdf
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
638.22 Кб
Скачать

Внешние прерывания инициируются сигналами на входах INT0 (вывод Р3.2) и INT1 (вывод Р3.3). Микроконтроллер реагирует на прерывание, если установлен соответствующий флаг в регистре TCON (IE0 или IE1) (TCON образовано от слов

Timer Control, IE – Interrupt Enable). Флаг ЕА (Enable interrupt)

разрешает работу всех прерываний, для каждого из которых установлен бит в TCON. Прерывания INT0 и INT1 (от слова interrupt) могут быть вызваны уровнем или переходом сигнала из 1 в 0 на входах INT0 (вывод Р3.2) и INT1 (вывод Р3.3). Тип прерывания определяют управляющие биты IT0, IT1 (interrupt type) в регистре TCON. Если один из этих битов ITi (i = 0, 1) установлен, то прерывание вызывается по переходу 1-0 на соответствующем входе INTi (i = 0, 1) микроконтроллера. Если один из битов ITi (i = 0, 1) сброшен, то прерывание вызывается при наличии низкого уровня на соответствующем входе. Когда все рассмотренные выше биты (ITi, IЕi, (i = 0, 1), ЕА) установлены соответствующим образом, то при возникновении прерывания инициируется вызов соответствующей программыобработчика прерывания. Сброс флага IЕi, (i = 0, 1), выполняется автоматически в случае, если прерывание вызвано перепадом сигнала на входе INTi (i = 0, 1). Если же вход прерывания INTi (i = 0, 1) настроен на срабатывание по низкому уровню, то состояние IЕi, (i = 0, 1) должна отслеживать программаобработчик данного прерывания. Управляющие биты представлены в прил. 2.

Внешние прерывания INT0 и INT1 могут (если разрешены) вызываться либо установкой низкого уровня на соответствующем выводе микроконтроллера (на реальном объекте), либо программной установкой битов Р3.2 и/или Р3.3 (в среде моделирования микроконтроллера).

Вектора внешних прерываний следующие: 0х03Н –INT0, 0x13Н – INT1. Другими словами, если прерывание происходит по INT0 (INT1), то адрес программы-обработчика прерывания содержится по адресу 0х03Н (0х13Н). Запись адресов происходит на этапе работы редактора связей (линкёра).

11

Разработаем структуру МПС и напишем программный модуль, обеспечивающий изменение состояния светодиода по запросу от специальной кнопки. Функциональная схема МПС представлена на рис. 2. К выводу P3.2 (INT0) подключена кнопка. Для подавления дребезга использован RS-триггер. По нажатию кнопки на вывод Р3.2 подается сигнал низкого уровня, что приводит к вызову программы-обработчика прерывания.

+5B

 

Ucc

 

 

RST

Uss

 

+U

 

R

T

 

Q

S

 

+U.

 

XTAL1

P1

 

XTAL2

P0.0

 

P0.1

RST

P0.2

 

P0.3

EA

P0.4

 

P0.5

P3.0

.+U

P0.6

P3.1

P0.7

P3.2

 

P3.3

P2

P3.4

 

P3.5

ALE

P3.6

 

P3.7

PSEN

Рис. 2. Функциональная схема МПС

Соответствующий программный модуль представлен ниже. Для запуска обработчика прерывания необходимо смоделировать нажатие кнопки.

12

#include <REG51.H> sbit s=P0^1;

sbit I=P3^2;

//обработчик прерываний по INT0

//для INT1 нужно написать interrupt 2 (см. табл. 3) void PP() interrupt 0

{

//моделирование отжатой кнопки

I=1;

//запрещение прерываний //(команда необязательная –

//по усмотрению разработчика программы) EA=0;

//изменение состояния светодиода s=~s;

//снятие блокировки прерывания; //обязательно, если присутствует EA=0; EA=1;

}

main()

{

EA=1;//снятие блокировки прерывания EX0=1;//разрешение внешнего прерывания INT0

//(для INT1 – EX1=1) IT0=1;//тип прерывания INT0 – по срезу

//(для INT1 – IT1=1) for(;;);//бесконечный цикл

}

13

Задание 1. Проверьте работу составленного выше программного модуля.

Задание 2. Разработайте структуру МПС на базе МК1816ВЕ51 и напишите программный модуль, обеспечивающий реализацию заданной преподавателем последовательности свечения 8 светодиодов в бесконечном режиме по запросу от специальной кнопки.

Отладить программный модуль.

Контрольные вопросы

1.Что такое метод передачи данных по прерыванию, и в чем его сущность?

2.Что такое процедура поллинга?

3.По какому алгоритму осуществляется идентификация источника запроса на прерывание в процедуре поллинга?

4.К каким выводам МК ВЕ51 можно подключить кнопку для реализации заданий 1, 2?

5.Что такое вектор прерывания?

6.Что такое обработчик прерывания?

7.Какие управляющие биты Вы использовали для организации системы прерываний?

8.Как осуществить выбор вектора прерывания для описания обработчика прерывания?

Домашнее задание

Оформите отчет по результатам выполнения лабораторной работы № 2. Отчет должен включать разработанные в соответствии с заданиями функциональные схемы и программные модули.

14

ПРИЛОЖЕНИЕ 1

Корпус кристалла и структура КМ1816ВВ51

Рис. П1.1. Корпус кристалла

15

Рис. П1.2. Структурная схема кристалла

16

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ 2

 

 

 

 

 

 

 

 

Таблица П2.1

 

 

 

 

 

 

 

Альтернативные функции порта 3

 

 

 

 

 

 

 

 

 

Символ

Позиция

Имя и назначение

 

 

 

 

 

 

 

P3.7

Чтение. Активный сигнал низкого уровня

 

 

RD

 

 

 

 

 

 

 

 

формируется аппаратно при обращении к

 

 

 

 

 

 

 

 

ВПД

 

 

 

 

 

 

P3.6

Запись. Активный сигнал низкого уровня

WR

 

 

 

 

 

 

 

 

формируется аппаратно при обращении к

 

 

 

 

 

 

 

 

ВПД

T1

P3.5

Вход таймера/счетчика 1 или тест-вход

T0

P3.4

Вход таймера/счетчика 0 или тест-вход

 

 

 

 

 

 

 

P3.3

Вход запроса прерывания 1. Воспринима-

 

 

INT1

 

 

 

 

 

 

 

 

ется сигнал низкого уровня или срез

 

 

 

 

 

 

 

P3.2

Вход запроса прерывания 0. Воспринима-

 

 

INT0

 

 

 

 

 

 

 

 

ется сигнал низкого уровня или срез

TXD

P3.1

Выход передатчика последовательного

 

 

 

 

 

 

 

 

порта в режиме УАПП. Выход синхрони-

 

 

 

 

 

 

 

 

зации в режиме сдвигающего регистра

RXD

P3.0

Выход приемника последовательного пор-

 

 

 

 

 

 

 

 

та в режиме УАПП. Ввод/вывод данных в

 

 

 

 

 

 

 

 

режиме сдвигающего регистра

17

 

 

 

 

Таблица П2.2

 

 

 

Регистр режима работы таймера/счетчика

 

 

 

 

 

 

 

Символ

Позиция

Имя и назначение

 

GATE

TMOD.7

Управление блокировкой. Если бит ус-

 

 

 

 

для

тановлен, то таймер/счетчик “x” раз-

 

 

 

 

T/C1 и

решён до тех пор, пока на входе

 

 

 

 

TMOD.3

“INTx” высокий уровень и бит управ-

 

 

 

 

для

ления “TRx” установлен. Если бит

 

 

 

 

T/C0

сброшен, то Т/С разрешается, как

 

 

 

 

 

только бит управления “TRx” устанав-

 

 

 

 

 

ливается

 

 

 

 

TMOD.6

Бит выбора режима таймера или счёт-

 

 

C/T

 

 

 

 

для

чика событий. Если бит сброшен, то

 

 

 

 

T/C1 и

работает таймер от внутреннего источ-

 

 

 

 

TMOD.2

ника сигналов синхронизации. Если

 

 

 

 

для

бит установлен, то работает счётчик от

 

 

 

 

T/C0

внешних сигналов на входе “Tx

 

 

M1

TMOD.5

Режим работы (см. примечание)

 

 

 

 

для

 

 

 

 

 

T/C1 и

 

 

 

 

 

TMOD.1

 

 

 

 

 

для

 

 

 

 

 

T/C0

 

 

 

M0

TMOD.4

 

 

 

 

 

для

 

 

 

 

 

T/C1 и

 

 

 

 

 

TMOD.0

 

 

 

 

 

для

 

 

 

 

 

T/C0

 

 

18

 

 

 

 

 

Примечание к табл. П2.2

 

 

 

 

 

 

М1

 

 

М0

 

Режим работы

0

 

0

Таймер МК48. “ТLx” работает как 5-битный

 

 

 

 

предделитель

0

 

1

16-битный таймер/счётчик. “THx” и “TLx

 

 

 

 

включены последовательно

1

 

0

8-битный автоперезагружаемый тай-

 

 

 

 

мер/счётчик. “THx” хранит значение, кото-

 

 

 

 

рое должно быть перезагружено в “TLx

 

 

 

 

каждый раз по переполнению

1

 

1

Таймер/счётчик 1 останавливается. Тай-

 

 

 

 

мер/счётчик 0 : TL0 работает как 8-битный

 

 

 

 

таймер/счётчик, и его режим определяется

 

 

 

 

управляющими битами таймера 0. TH0 ра-

 

 

 

 

ботает только как 8-битный таймер, и его

 

 

 

 

режим определяется управляющими битами

 

 

 

 

таймера 1

 

 

 

 

 

Таблица П2.3

 

 

 

Регистр управления/статуса таймера

 

 

 

 

Символ

 

Позиция

Имя и назначение

 

 

 

 

 

 

1

 

 

2

 

3

TF1

 

TCON.7

Флаг переполнения таймера 1. Уста-

 

 

 

 

 

навливается аппаратурно при перепол-

 

 

 

 

 

нении таймера/счётчика. Сбрасывается

 

 

 

 

 

при обслуживании прерывания аппара-

 

 

 

 

 

турно

TR1

 

TCON.6

Бит управления таймера 1. Устанавли-

 

 

 

 

 

вается/сбрасывается программой для

 

 

 

 

 

пуска/останова

 

 

 

 

 

19

 

 

Продолжение табл. П2.3

 

 

 

1

2

3

TF0

TCON.5

Флаг переполнения таймера 0. Устанав-

 

 

ливается аппаратурно. Сбрасывается

 

 

при обслуживании прерывания

TR0

TCON.4

Бит управления таймера 0. Устанавлива-

 

 

ется/сбрасывается программой для пус-

 

 

ка/останова таймера/счётчика

IE1

TCON.3

Флаг фронта прерывания 1. Устанавли-

 

 

вается аппаратурно, когда детектируется

 

 

срез внешнего сигнала ЗПР1 (INT1).

 

 

Сбрасывается при обслуживании пре-

 

 

рывания

IT1

TCON.2

Бит управления типом прерывания 1.

 

 

Устанавливается/сбрасывается про-

 

 

граммно для спецификации запро-

 

 

саЗПР1 (срез/низкий уровень)

IE0

TCON.1

Флаг фронта прерывания 0. Устанавли-

 

 

вается по срезу сигнала ЗПР0. Сбрасы-

 

 

вается при обслуживании прерывания

IT0

TCON.0

Бит управления типом прерывания 0.

 

 

Устанавливается/сбрасывается про-

 

 

граммно для спецификации запроса

 

 

ЗПР0 (срез/низкий уровень)

20