Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мп.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
752.94 Кб
Скачать

3 Разработка программных средств мпс

3.1 Постановка и формулировка задачи инициализации интерфейсного модуля.

В соответствии с заданием необходимо инициализировать БИС интерфейсного модуля на следующие режимы работы МПС.

- обеспечить параллельный вывод информации на принтер и семисегментный индикатор с помощью БИС КР580ВВ55 (ППИ). Принтер подключен к КА, поэтому настроим КА на 1 режим работы; семисегментный индикатор подключен к КВ, который должен работать в режиме 0.

Для обеспечения заданных режимов ППИ необходимо загрузить УС в РУС ППИ.

- обеспечить передачу информации в режиме ПДП от 1го УВВ, с помощью БИС КР580ВТ57 (КПДП). УВВ1 подключено к К3 и он передаёт 3000 байт в ОЗУ на 14-17 страницы, начиная с адреса 3840h на странице 14 .

Для обеспечения заданного режима КПДП необходимо запрограммировать К3, загрузить информацию в регистры К3 - РА3, РЦ3, РУ3. а также загрузить регистр режима (РР).

КПДП работает в режиме нормальной записи фиксированного приоритета без автозагрузки.

Обеспечить режим прерывания от принтера с помощью БИС КР580ВН59 программированный контроллер прерываний. Зададим область векторов прерываний на 14-й странице ОЗУ с адреса 3800h, вектора располагаются через 8 байт

Для обеспечения режима прерываний необходимо загрузить УСИ1 и УСИ2 в ПКП.

Таблица 14 Распределение адресного пространства ОЗУ

стр

Адрес памяти

14

3800

Область векторов прерываний

---

383F

3840

Вывод 3000 байт на УВВ1

3BFF

15

3С00

---

3FFF

16

4000

---

43F7

17

4400

---

47FF

+ 3840 300010 =BB816 ; BB8-1 =BB716

BB7 Т.к. вектора располагаются через 8 байт, шаг

43F7 получится 8 байт

3.1.1 Инициализация ППИ

Нам необходимо подключить принтер. Принтер работает в режиме - 1, а семисегментный индикатор в режиме 0. Адрес ППИ в системе 28. Принтер подключен к КA, а семисегментный индикатор к КB.

Определим адреса каналов:

Т.к. адрес ППИ в системе 28, то

КА = 28h = 0010 1000

КВ = 29h = 0010 1001

КС = 2Ah = 0010 1010

РУС = 2Bh = 0010 1011

Сформируем управляющее слово инициализации ППИ:

D7

D6

D5

D4

D3

D2

D1

D0

HEX

1

0

1

0

*

0

0

*

A0

D7 = 1 - признак управляющего слова;

D6,D5 = 0,1 KА работает в режиме 1

D4 = 0 - т.к КА работает на вывод

D3 = * - безразлично т.к. выводы KС используются под сигналы квитирования

D2 = 0 - KВ работает в режиме 0

D1 = 0- KВ настроен на вывод

D0 = * - безразлично т.к. выводы KС используются под сигналы квитирования

Программа инициализации ППИ на языке Assembler

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

MVI A,A0 ; УС = A0h Ак.

OUT 2B ; Ак. = УС= AOh ППИ (РУС)

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

3.1.2 Инициализация КПДП

Перед работой КПДП необходимо его инициализировать, т.е. загрузить необходимые данные в следующие регистры каналов:

Согласно заданию к КПДП для организации режима ПДП подключается 1 УВВ:

УВВ1 к каналу 3, работает на вывод 3000 байт на 14 страницу памяти (адрес 3840h);

Адрес регистров КПДП для КПДП = 46h

РА3= 01000110= 46h

(РУ+РЦ)3=01000111 =47h

РР=01001000=48h

УВВ1 подключено к каналу 3, работает на вывод 3000 байт на 14-17 страницы памяти (адрес 3840h);

РА3= 3840h (14 страница ОЗУ)

РЦ3=300010-110=299910 =BB7h=00 1011 1011 01112

РУ3=102 т.к вывод

(РУ+РЦ)3= 1000 1011 1011 01112=8BB7h

Сформируем содержимое регистра режима (РР):

D7

D6

D5

D4

D3

D2

D1

D0

HEX

0

1

0

0

1

0

0

0

48

D0 = 0- канал 0 - отключен;

D1 = 0 - канал 1 - отключен;

D2 = 0 - канал 2 - отключён К2;

D3 = 1 - канал 3 включен К3;

D4= 0 т.к приоритет фиксированный

D5= 0 т.к режим нормальной записи/чтения

D6=1 следующая передача запрещена.

D7= 0 т.к автозагрузка отключена.

Программа инициализации КПДП на языке Assembler

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

MVI A, 40 ;мл. РА3 Ак.

OUT 46 ; мл. РА3 КПДП(РА3)

MVI A,38 ; ст. РА3 =38 h Ак.

OUT 46 ; ст. РА3 КПДП(РА3)

MVI A,B7 ; мл. (РУ+РЦ)3 =B7h Ак.

OUT 47 ; мл. (РУ+РЦ)3 КПДП((РУ+РЦ)3)

MVI A,8B ; ст. (РУ+РЦ)3 = 8Bh Ак.

OUT 47 ; ст. (РУ+РЦ)3 КПДП((РУ+РЦ)3)

MVI A,48 ;РР=48hАк.

OUT 48 ;Ак.= РРКПДП(РР)

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

3.1.3 Инициализация ПКП

Необходимо реализовать режим прерываний с помощью ПКП.

Начальная область векторов прерывания для ведущего контроллера 3800, в соответствии с заданием в МПС включен 1 ПКП. Вектора прерывания следует через 8 байт.

3800h=0011 1000 0000 00002

Формирование УСИ1

D7

D6

D5

D4

D3

D2

D1

D0

HEX

0

0

0

1

0

0

1

0

12h

D7, D6, D5 = А7, А6, А5 первого адреса области ВП

D4, D3 «10» всегда

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

D1 =1 т.к количество ПКП в системе один

D0=0 т.к. МПК КР580

УСИ1= 12h

Формирование УСИ2

D7

D6

D5

D4

D3

D2

D1

D0

HEX

0

0

1

1

1

0

0

0

38h

D7 - D0 = A15 A8: Старший байт 1-го адреса области векторов прерывания.

УСИ2= 38h

Адрес ПКП

А216 = 1010 00102

Rg УСИ1 = 1010 00102 = А216

Rg УСИ2= 1010 00112 = А316

Программа инициализации ПКП на языке Assembler

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

MVI A,12 ; УСИ1= 12h Ак.

OUT А2 ; УСИ1ПКП

MVI A,38 ; УСИ2= 38 Ак.

OUT А3 ; УСИ2ПКП

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

3.2 Блок-схема алгоритма программы инициализации интерфейсного

модуля

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

Инициализация ППИ

УС -> A0 -> РУС

Инициализация КПДП

3840 -> РА3

8BB7 -> (РЦ+РУ)3

48 -> РР

Инициализация ПКП

12 -> УСИ1

38 -> УСИ2

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