
- •1 Анализ проектируемой системы
- •2 Разработка аппаратных средств мпс
- •2.1 Блок центрального процессора
- •2.1.2 Бис системного контроллера кр580вк38
- •2.1.3 Бис буферных регистров кр580ир82.
- •2.2 Модуль памяти
- •2.2.1 Модуль озу
- •2.2.2 Модуль пзу
- •2.3 Интерфейсный модуль
- •2.3.1 Организация параллельного ввода вывода информации
- •2.3.2 Организация режима прерываний
- •2.3.3 Организация режима прямого доступа к памяти
- •3 Разработка программных средств мпс
- •3.1 Постановка и формулировка задачи инициализации интерфейсного модуля.
- •3.3Разработка программы на языке Assembler
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; разрешение прерываний