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

Рассмотрим пример разработки программных средств МПС для следующего задания.
К системе подключены дисковод и 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.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                   ; разрешение прерываний