Рабочая программа учебной дисциплины «Микропроцессоры и микропроцессорные устройства» с перечнем рекомендуемой литературы, страница 7

УСИ 1 (стр. 2) - это 8–ми битовое слово, которое записывается в ПКП при А0 = 0.

В УСИ1 определяетcя:

D7, D6, D5 разрядами А7А6А5 первого адреса области векторов прерываний;

D4 D3 = 10 - всегда;

D2 = F = 1, если ВП располагаются через 4 байта;

D2 = F = 0, если ВП располагаются через 8 байт;

D1 = E = 1, если в системе 1 ПКП;

D1 = E = 0, если в системе несколько ПКП (каскадное включение);

D0 = 0, если система на МПК КР580;

D0 = 1, если система на  МП Intel8086.

 

Рисунок 4 - Формат УСИ 1

УСИ 2 – это 8-битовое слово, равное старшему байту первого  адреса области векторов прерываний, оно загружается в ПКП при А0 = 1.

А0

 0          0

 ааааааааааА0

 
 


Рисунок 5 - Формат УСИ 2

Если в системе 1 ПКП, то программирование законченно.

Программирование ПКП осуществляется  загрузкой УСИ1 иУСИ2 в контроллер следующими командами

DI                    ; запрет прерывания

MVI A, УСИ1; УСИ1 —>Аккумулятор

OUT xxxxxxx0; УСИ1 —>ПКП

MVI A, УСИ2; УСИ2 —>Аккумулятор

OUT xxxxxxx1; УСИ2 —>ПКП

EI                      ; разрешение прерывания

Формирование 3-х байтовой команды CALL[вектор прерывания№].

Вектор прерывания (ВП) записан вторым  и третьим байтами команды CALL [вектор прерывания].

1- й байт = CD (код операции)

ВП      2- ой байт = младший байт ВП = ?

3- ий байт = старший байт ВП = УСИ 2

                 Определение 2- го байта ВП (таблица на стр. 4).

Он состоит из 3 групп:

  • А7А6А5 (если F = 1  и вектора располагаются через 4 байта)

или А6А5 (если F = 0  и вектора располагаются через 8 байт);

  • D2 D1 D0 - 3- х битовый номер входа IRQ, на который пришел приоритетный запрос
  • от УВВ, равный № вектора прерываний
  • два последних нуля, если F = 1  и вектора располагаются через 4 байта

три последних нуля, если F = 0  и вектора располагаются через 8 байт.

Рисунок 5 – Форматы 2-го (младшего) байта вектора прерываний при F=1 и F=0

Рассмотрим пример.

Запрограммировать ПКП, если область векторов прерываний начинается с адреса 7F60

(или расположена по адресу?), вектора располагаются через 4 байта. Определить формат трёхбайтовой команды CALL[вектор прерывания №], которую сформирует контроллер, если запрос от УВВ поступиn на вход IRQ3?

Решение.

1. Запишем 16-ричный адрес начала области векторов прерываний в двоичной системе

А15 А14 А13 А12     А11 А10 А9  А8       А7   А6   А5   А4        А3   А2   А1   А0

7F6016  = 0  1  1  1    1  1  1 1    0  1  1  0    0  0  0  02

2. Сформируем УСИ 1

D7 D6 D5  =  А7А6А5  = 011;

D4 D3 = 10  - всегда;

D2 = F = 1, т. к.  ВП располагаются через 4 байта;

D1 = E = 1, т. к. в системе 1 ПКП;

D0 = 0, т. к. микропроцессорная система построена на  МПК КР580.

 0

 

 1

 

 1

 

 0

 

 1

 

 1

 

1

 

0   

 
       D7       D6       D5       D4       D3        D2       D1        D0

= 7616

Рисунок 6 - Формат УСИ 1

 0

 
3. Сформируем УСИ2