Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPS.doc
Скачиваний:
27
Добавлен:
17.04.2019
Размер:
1.08 Mб
Скачать

9.6 Управление прерываниями

В системе команд ОМЭВМ К1816ВЕ51 существенно расширены возможности по использованию прерываний. Система прерываний –

5-ти уровневая и двухкаскадная.

Источники запросов на прерывания с указанием фиксированных адресов переходов представлены в таблице 9.6.1. Порядок следования запросов на прерывание в этой таблице соответствует исходному распределению приоритетов от высшего (INT0) к низшему (RI):

Таблица 9.6.1

Источники запросов

Адреса

Приоритет

Внешний вход - INT0 (вход Р3.2)

0003h

Высший

Tаймер/счетчик – TF0

000Bh

Внешний вход - INT1 (вход Р3.3)

0013h

Таймер/счетчик – TF1

001Bh

Последовательный порт – RI

0023h

Низший

Каждый источник запроса на прерывание может быть индивидуально разрешен или запрещен с помощью регистра прерываний IE, значения разрядов которого следующие:

D7 D6 D5 D4 D3 D2 D1 D0

EA - - ES ET1 EX1 ET0 EX0

  • EA= 0 – запрет всех прерываний, 1–разрешение всех прерываний;

  • ES =1 – разрешение прерывания при приеме бита со входа Р3.0;

  • ET1, ET0 =1 - разрешение прерывания от таймеров;

  • EX1, EX0 =1 - разрешение прерывания от внешних источников.

В системе управления прерываниями предусмотрено изменение приоритета каждого источника с помощью регистра IP, значения разрядов которого следующие:

D7 D6 D5 D4 D3 D2 D1 D0

- - - PS PT1 PX1 PT0 PX0

  • PS – назначение приоритета для прерывания при приеме бита со входа Р3.0;

- PT1, PT0 - назначение приоритета для прерываний от таймеров;

- PX1, PX0 - назначение приоритета для прерываний от внешних источников.

Для всех пяти источников запросов на прерывание устанавливается – 1 – высший приоритет, 0 – низший приоритет. Если несколько источников запросов будут иметь одинаковое значения разрядов в регистре IP, то тогда распределение приоритетов будет соответствовать исходному распределению (таблица 9.6.1).

При выполнении прерываний реализуются операции, соответствующие команде LCALL:

- заканчивается текущая команда;

- полный 16-разрядный адрес следующей команды в виде 2-х байтов записываются в стек, при этом PSW в стек не записывается;

- в РС записываются фиксированные начальные адреса подпрограмм обработки прерывания в соответствии с таблицей 9.6.1;

- выполняется переход по начальному адресу подпрограммы обработки прерывания, в конце которой должна стоять команда RETI.

9.7. Последовательный ввод-вывод данных

В ОМЭВМ К1816ВЕ51 предусмотрено два способа последовательного ввода-вывода данных – синхронный и асинхронный с переменной скоростью обмена данными.

В качестве последовательного порта используются разряды порта Р3 – Р3.0 – для приема данных, а Р3.1 – для передачи данных.

Последовательный ввод-вывод данных программируется на 4 режима путем записи в регистр SCON управляющего кода, значения разрядов которого следующие:

D7 D6 D5 D4 D3 D2 D1 D0

SM0 SM1 SM2 REN TB8 RB8 TI RI

- SM0, SM1 - режим последовательного ввода-вывода данных;

- SM2 - разрешение многопроцессорной работы;

- RENприем (при 1) и передача (при 0);

- TB8 – 9-й бит при передачи данных, может быть использован в качестве контрольного бита;

- RB8 - 9-й бит при приеме данных, может быть использован в качестве контрольного бита;

- TI - признак окончания передачи байта из регистра SBUF;

- RI - признак прерывания после приема байта в регистр SBUF.

Передача байта выполняется в следующей последовательности:

a). в управляющем регистре SCON указывается режим последовательного вывода байта, значение 9-го контрольного разряда бита, например MOV SCON, #11001000b ;

б). выполняется команда записи в регистр SBUF передаваемого байта

MOV SBUF, A ,

после чего сразу же начинается последовательная передача байта с выхода Р3.1.

в). после окончания передачи байта формируется признак TI = 1.

Прием байта выполняется в следующей последовательности:

a). в управляющем регистре SCON указывается режим последовательного приема байта и устанавливается разрешение приема REN=1;

б). после обнаружения стартового бита выполняется прием информационного байта в регистр SBUF и контрольного 9-го бита в разряд RB8 регистра SCON;

в). формируется прерывание RI , по которому необходимо сохранить принятый байт .

Отметим режимы последовательного ввода-вывода байта, которые определяются разрядами SM1, SM0:

Режим 0. Синхронный ввод-вывод данных. Последовательный порт работает как сдвиговый регистр, при этом необходимо передавать сигнал синхронизации, так как тактовая последовательность на приеме должна быть синхронизирована с тактовой последовательностью на передачи. Скорость приема-передачи фиксированная и равна до 1000 кбод, так как для передачи используется тактовая частота fT = fQ/12, где fQ – тактовая частота кварцевого генератора.

Режим 1. Асинхронный ввод-вывод данных. Бит ТВ8 не передается. Скорость передачи определяется частотой переполнения таймера, то есть скорость можно задавать программным путем от 100 бод до 62 кбод. Для асинхронной передачи данных характерной особенностью является побайтная передача и наличие стартовой и стоповой посылки (рисунок 9.7.1).

Режим 2. Асинхронный ввод-вывод данных. Бит ТВ8 передается в качестве контрольного. Скорость передачи в этом режиме фиксированная, равна 375 кбод и определяется использованием тактовой частоты

fT = fQ/32.

Рисунок 9.7.1 Последовательная асинхронная передача байта

в режимах 2 и 3

Режим 3. Асинхронный ввод-вывод данных. Бит ТВ8 передается в качестве контрольного. Скорость передачи в этом режиме определяется частотой переполнения таймера. Записывая в таймер необходимый код, можно задавать требуемую скорость передачи битов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]