Исследование системных и интерфейсных модулей микропроцессорных систем. Описание назначения ПИТ КР580ВИ53, ПКП КР580ВН59 и ПККД КР580ВВ79

Страницы работы

Фрагмент текста работы

Описание назначения ПИТ КР580ВИ53, ПКП КР580ВН59 и ПККД КР580ВВ79:

ПИТ: программируемые интервальные таймеры выполняют операции, связанные с временами, частотами и интервалами, освобождают центральный процессор от формирования сигналов с различными временными параметрами, генерируют точные временные интервалы под программным контролем. Может работать в 6 режимах:

Режим 0 – режим программной задержки;

Режим 1 – одновибраторный;

Режим 2 – режим генератора частоты;

Режим 3 – генератор прямоугольных импульсов;

Режим 4 – режим программного строба;

Режим 5 – режим аппаратного строба.

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

Аппаратно прерывания обслуживаются специализированными ИС, простейшими из которых являются блоки приоритетного прерывания (Intel 8214, К589ИК14 и др.). Эти блоки решают несложные задачи обработки нескольких векторных прерываний при фиксированных приоритетах запросов.

Более сложные задачи решаются программируемыми контроллерами прерываний (ПКП), в частности ИС Intel 8259А, К1810ВН59.

Эти контроллеры непосредственно реализуют прерывания с обработкой 8 запросов. С помощью нескольких ПКП легко организуются устройства обработки до 64 запросов. Контроллеры обеспечивают различные виды прерываний.

Система прерываний должна выдать команду перехода к той подпрограмме обслуживания, которая соответствует признанному запросу.

Контроллер ВН59 обеспечивает различные виды прерываний.

ПККД: этот контроллер освобождает центральный процессор от операции сканирования клавиатуры и регенерации изображения на индикаторных матрицах.

Функциональная схема включения ПИТ, ПКП и ПККД в КПУ «Электроника МС-2721»:

Описание используемых режимов работы ПИТ КР580ВИ53, ПКП КР580ВН59 и ПККД КР580ВВ79:

ПИТ: работает в режиме 0 – режим программной задержки.

После загрузки константы на линии OUT устанавливается логический 0. По каждому срезу CLK счетчик декрементируется. Когда на линии GATE 0 – счет останавливается. Когда на линии GATE 1 – счет продолжается до нуля. Когда CE достигнет нуля, на линии OUT устанавливается единица.

ПКП: работает в режиме строгой вложенности. Имеются 8 входов запроса прерывания IR7…IR0. Высший приоритет имеет вход IR0, низший – у входа IR7. Вложенность – возможность прерывания подпрограммы обслуживания запроса другой подпрограммой с более высоким приоритетом, которая, в свою очередь, также может быть прервана более приоритетной программой и т.д. Возможность вложенных прерываний обеспечивается введением команды EI в подпрограммы обслуживания прерываний. Прерывания с фиксированными приоритетами реализуются просто, но запросы неравноправные и при интенсивном поступлении запросов с высокими приоритетами запросы с низкими приоритетами могут вообще не получить обслуживания, т.е. возможно их «грубое оттеснение» более приоритетными запросами.

ПККД: Режимы работы дисплея:

1)  8-разрядный 8-символьный дисплей и ввод слева;

2)  8-разрядный 8-символьный дисплей и ввод справа со сдвигом.

Клавиатура работает в следующем режиме: кодированное сканирование клавиатуры с обнаружением 2-клавишных сцеплений.

Блок-схема алгоритма программы:


Листинг программы:

0000             PIC    EQU    FCH

0000             PKKD   EQU    E4H

0000             PIT    EQU    E3H

0000             PIT0   EQU    E0H

1940             ORG    1940H

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

1941  3E 16             MVI    A,16H  ; установка ПКП в режим строгой вложенности.

1943  D3 FC             OUT    PIC    ; ПКП - один. таблица прерываний с адреса 1900h

1945  3E 00             MVI    A,00H  ;

1947  D3 FD             OUT    PIC+1  ;

1949  3E FD             MVI    A,FDH  ; маска на прерывания 2-7

194B  D3 FD             OUT    PIC+1  ;

194D  3E 20      LEFT:  MVI    A,20H  ; снимаем запрос на прерывание (EOI 000)

194F  D3 FC             OUT    PIC    ;

1951  3E 00             MVI    A,00H  ; переводим ПККД в режим 8 знаков, вывод слева

1953  D3 E5             OUT    PKKD+1 ;

1955  FB         PRE:   EI            ; разрешаем прерывания

1956  1E 09      COUNT: MVI    E,09H  ; счетчик отображаемых цифр

1958  0E FF      M2:    MVI    C,FFH  ; С - признак отработавшиго прерывания, FF-не отработало

195A  CD 9D 19          CALL   DISP   ; отображаем регистр E

195D  CD 85 19          CALL   SEC    ; задержка на 1 с

1960  79         M1:    MOV    A,C    ; проверка признака отраб. прерывания, F5 - отработало

1961  FE F5             CPI    F5H    ;

1963  C2 60 19          JNZ    M1     ; ожидание (работает таймер)

1966  1D                DCR    E      ; уменьшаем счетчик отображаемых цифр

1967  C2 58 19          JNZ    M2     ; повторяем вывод

196A  C3 56 19          JMP    COUNT  ; зацикливаем

196D  3E 20      RIGHT: MVI    A,20H  ; снимаем запрос на прерывание (EOI 000)

196F  D3 FC             OUT    PIC    ;

1971  3E 10             MVI    A,10H  ; переводим ПККД в режим 8 знаков, вывод справа

1973  D3 E5             OUT    PKKD+1 ;

1975  C3 55 19          JMP    PRE    ; переход к отображению

1978  F5         TIME:  PUSH   PSW    ; сохраняем состояние системы

1979  3E 30             MVI    A,30H  ; канал 0 режим 0 константа FFFFh, режим шестнадцати197B  D3 E3             OUT    PIT    ; ричный

197D  3E FF             MVI    A,FFH  ;

197F  D3 E0             OUT    PIT0   ; это около 0.03 с

1981  D3 E0             OUT    PIT0   ;

1983  F1                POP    PSW    ; восстанавливаем состояние

1984  C9                RET           ; возврат

1985  F5         SEC:   PUSH   PSW    ; сохраняем состояние системы

1986  3E 64             MVI    A,64H  ; повтор около 100 раз для увеличения задержки

1988  CD 78 19   T1:    CALL   TIME   ;

198B  3D                DCR    A      ; это около 1 с

198C  C2 88 19          JNZ    T1     ;

198F  F1                POP    PSW    ; восстанавливаем состояние

1990  C9                RET           ; возврат

1991  F5         SEC15: PUSH   PSW    ; сохраняем состояние

1992  3E 0F             MVI    A,0FH  ; 15 раз повторяем односекундную задержку

1994  CD 78 19   T2:    CALL   TIME   ;

1997  3D                DCR    A      ; это около 15с

1998  C2 94 19          JNZ    T2     ;

199B  F1                POP    PSW    ; востанавливаем сотояние

199C  C9                RET           ; возврат

199D  21 79 0E   DISP:  LXI    H,0E79H; получение кода цифры из таблицы

19A0  16 00             MVI    D,00H  ; перекодировки и выжача на дисплей

19A2  19                DAD    D      ;

19A3  7E                MOV    A,M    ;

19A4  E6 0F             ANI    0FH    ;

19A6  D3 E4             OUT    PKKD   ;

19A8  C9                RET           ;

1900                    ORG    1900H  ; обработчик прерывания от ПККД

1900  F3         INT_K: DI            ; запрет прерываний

1901  C3 10 19          JMP    KLAVA  ; переход к обслуживающей части

1904                    ORG    1904H  ; обработчик прерывания от таймера

1904  F3         INT_T: DI            ; запрет прерываний

1905  0E F5             MVI    C,F5H  ; заносим с С - признак окончания прерывания F5h

1907  3E 21             MVI    A,21H  ; снимаем запрос на прерывание (EOI 001)

1909  D3 FC             OUT    PIC    ;

190B  C9                RET           ; возврат

1910                    ORG    1910H

1910  DB E4      KLAVA: IN     PKKD   ; читаем слово состояния ПККД

1912  5F                MOV    E,A    ; сохраняем его

1913  E6 01             ANI    01H    ; проверяем: первый ли столбец клавиш?

1915  FE 01             CPI    01H    ;

1917  C2 1D 19          JNZ    STLB2  ; если нет - возможно второй

191A  C3 6D 19   STLB1: JMP    RIGHT  ; если да - смена направления отображения

Похожие материалы

Информация о работе