Разработка программных средств МПС
Рассмотрим пример разработки программных средств МПС для следующего задания.
К системе подключены дисковод и 8 светодиодов. Режим ПДП организован от 2-х УВВ: УВВ1 подключено к каналу 0 КПДП и принимает 1300 байт из памяти (вывод); УВВ2 подключено к каналу 1 и передает 400 байт в память (ввод). Режим прерываний необходимо обеспечить от 3 УВВ.Вектора прерываний следуют через 4 байта. Объем модуля ОЗУ задан 4 килобайт, страницы 26, 27, 28 и 29.
1.1 Постановка и формулировка задачи
В соответствии с заданием необходимо инициализировать БИС интерфейсного модуля на следующие режимы работы:
Распределим адресное пространство ОЗУ.
В УВВ1 в режиме ПДП выводится 1300байт (514h) с 26 и 27страниц ОЗУ, начиная с адреса 6800h по адрес 6D13h (6800h + 513h =6D13h). Из УВВ2 в режиме ПДП в ОЗУ вводится 400 байт (1F9h) на 28страницу с адреса 7000h по адрес 71F8h (7000h + 1F8h = 71F8h). Область векторов прерываний для организации режима прерываний зарезервируем на 29странице с адреса 7400 по адрес 741Fh, т.к. вектора прерываний следуют через 4байта и занимают 4 х 8 =32 ячейки памяти (3210 =2016).
1.1.1 Инициализация ППИ
Адреса каналов и регистра управляющего слова (РУС) для адреса ППИ = 84h:
Управляющее слово для ППИ:
УС = 111100002 = F0h
Подпрограмма инициализации ППИ
хема электрическая принципиальная подключения БИС КР580ВВ55 (ППИ) приведена в Приложении1
1.1.2 Инициализация КПДП
Запрограммируем К 0.
РА 0 = 6800 (26 и 27 стр.)
РЦ0 = N – 1 = 1300 – 1 = 129910 = 513h,
где N =1300 – количество передаваемых байт.
РЦ0 – 14-разрядный, поэтому добавляем 2 старших нуля
При программировании РУ0 и РЦ0 объединяются
(РУ+РЦ)0= 8513h
Запрограммируем К1
РА 1 = 7000h (28 страница)
РЦ 1 = N – 1 = 400-1=39910 = 1F8h
N = 40010
Определим содержимое РР (УС).
D7=0 - нет автозагрузки; D6 =0 – продолжать передачи;
D5D4 = 00 – режим нормальной записи и фиксированного приоритета;
D0 =1 –включаем 0канал; D1 = 1 – включаем 1канал.
Таблица 1- Адреса регистров КПДП
Программа инициализации ПКДП на языке Ассемблер
DI ;запрет прерывания
MVI A, 00 ; мл. РА0 = 00h -> А
OUT 30 ; мл. РА0 -> КПДП
MVI A, 68 ; ст. РА0 = 68h -> А
OUT 30 ; ст. РА0 -> КПДП
MVI A, 13 ; мл. (РУ+РЦ)0 = 13h -> А
OUT 31 ; мл. (РУ+РЦ)0 -> КПДП
MVI A, 85 ; ст. (РУ+РЦ)0 = 85h -> А
OUT 31 ; ст. (РУ+РЦ)0 -> КПДП
MVI A, 00 ; мл. РА1 = 00h -> А
OUT 32 ; мл. РА1 -> КПДП
MVI A, 70 ; ст. РА1 = 70h -> А
OUT 32 ; ст. РА1 -> КПДП
MVI A,F8 ; мл. (РУ+РЦ)1 = F8 h -> А
OUT 33 ; мл. (РУ+РЦ)1 -> КПДП
MVI A, 41 ; ст. (РУ+РЦ)1 = 41h -> А
OUT 33 ; ст. (РУ+РЦ)1 -> КПДП
MVI A,03 ;РР = 03h -> А
OUT 38 ;А=РР -> КПДП
EI ; разрешение прерываний
Схема электрическая принципиальная подключения БИС КР580ВН59 (ПКП) приведена в Приложении 2
1.1.3 Инициализация ПКП
Для инициализации ПКП необходимо загрузить УСИ1 и УСИ2.
Начальный адрес области векторов прерываний ( область ВП на 29 стр.):
А15А14А13 .. .. .. .. А8 А7 А6 А5 А4 А3 А2 А1 А0
7400h = 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0b
УСИ1=16h
D7D6D5=000=A7A6A5
D2=1 – вектора следуют через 4 байта.
D1=1 – в системе один ПКП.
D0=0 – МПС на МПК КР580
D7-D0=A15-A8= старшему байту первого адреса области векторов прерываний.
Адреса регистров УСИ, если адрес ПКП=С0h
адрес УСИ1=16h
адрес УСИ2= 74h
Подпрограмма инициализации ПКП
DI ; Запрет прерываний
MVI A,16 ; УСИ1 ПКП
OUT COh
MVI A,74h ; УСИ2 ПКП
OUT C1h
EI ; Разрешение прерываний
Схема электрическая принципиальная подключения БИС КР580ВТ57(ПДП) приведена в Приложении 3
1.2 Блок-схема алгоритма программы инициализации интерфейсного модуля
Рисунок 2– Блок-схема алгоритма
1.3 Разработка пограммы на языке ассемблер
DI; запрет прерываний
Подпрограмма инициализации ППИ
MVI A,F0 ;УС = F0h Ак.
OUT 87h ;УС РУС[87]
Подпрограмма инициализации ПДП
MVI A, 00 ; мл. РА0 = 00h -> А
OUT 30 ; мл. РА0 -> КПДП
MVI A, 68 ; ст. РА0 = 68h -> А
OUT 30 ; ст. РА0 -> КПДП
MVI A, 13 ; мл. (РУ+РЦ)0 = 13h -> А
OUT 31 ; мл. (РУ+РЦ)0 -> КПДП
MVI A, 85 ; ст. (РУ+РЦ)0 = 85h -> А
OUT 31 ; ст. (РУ+РЦ)0 -> КПДП
MVI A, 00 ; мл. РА1 = 00h -> А
OUT 32 ; мл. РА1 -> КПДП
MVI A, 70 ; ст. РА1 = 70h -> А
OUT 32 ; ст. РА1 -> КПДП
MVI A,F8 ; мл. (РУ+РЦ)1 = F8 h -> А
OUT 33 ; мл. (РУ+РЦ)1 -> КПДП
MVI A, 41 ; ст. (РУ+РЦ)1 = 41h -> А
OUT 33 ; ст. (РУ+РЦ)1 -> КПДП
MVI A,03 ;РР = 03h -> А
OUT 38 ;А=РР -> КПДП
Подпрограмма инициализации ПКП
MVI A,16 ; УСИ1 ПКП
OUT COh
MVI A,74h ; УСИ2 ПКП
OUT C1h
EI ; разрешение прерываний