Простейшая микро-ЭВМ

         

ПРОСТОЙ ГРАФИЧЕСКИЙ ДИСПЛЕЙ


Запоминающее устройство на 256 слов по 8 бит позволяет отображать 2048 точек на экране в виде сетки 64x32 элемента. В этом случае знакогенератор не требуется, поскольку каждый бит из памяти прямо отобража­ется без преобразования. Схема такого устройства индикации дана на рис. 10.9. Каждая точка формируется из восьми сосед­них горизонтальных строчек развертки.

Логика работы ТВ-дисплея довольно проста и может быть без труда реализована даже на такой простой вычислительной машине, как ПМ-ЭВМ. Вся сложность в том, что быстродейст­вие ПМ-ЭВМ, да и многих других машин более высокого клас­са, недостаточно, чтобы уложиться в жесткие рамки телеви­зионного стандарта. Выход заключается либо в создании спе­циализированного периферийного процессора — контроллера ЭЛТ, каковыми являются рассмотренные выше устройства (промышленностью выпускается специализированная микро­схема КР580ВГ75 - программируемый контроллер ЭЛТ), либо в отступлении от стандарта, если требования к информа­ционной емкости дисплея, как в нашем случае, не велики.

Покажем, что, не используя практически никакой дополни­тельной аппаратуры, можно реализовать вывод поля памяти объемом 256 байтов (сетка 64x32 элемента) на экран обыч­ного осциллографа. Подключим к ПМ-ЭВМ схему, показанную на рис. 10.10. Здесь порт 000 служит для параллельной выдачи содержимого ячеек памяти. Сдвиговый регистр преобразует параллельный код в последовательный. Сигнал с выхода сдви­гового регистра может быть подан непосредственно на вход Z модуляции яркости осциллографа. Порт 001 служит для вы­вода синхроимпульса строчной развертки Н, а порт 002 — для вывода синхроимпульса кадровой развертки V. Кадровая и строчная развертки могут быть сформированы с помощью простых пассивных цепей непосредственно из соответствую­щих синхроимпульсов. Выдаваемые портами 000, 001 и 002 сигналы формируются с помощью следующей программы:

014 000 176                                   Ml: MOV A, M 7 - количество тактов


014 001 323                                                OUT,OOOQ10 014 002 000

014 003 167                                                MOV M, А 7

014 004 000                                               NOP           4

014 005 054                                               INR L 5

014 006 035                                                DCRE 5

014 007 302                                               JNZ,M1 10

014 010 000

014 011 014



Итого: 48 тактов



Рис. 10.9. Схема приставки для формирования графической информации на экране ТВ

Эта часть программы выводит в порт 000 очередной байт из памяти. Команды MOV M, А и NOP вставлены, чтобы полу­чить выраженную в тактах длительность этого фрагмента про­граммы кратной восьми. В итоге получаем 48 тактов. Это зна­чит, что стоящий на выходе сдвиговый регистр должен выда­вать очередной разряд числа через каждые 6 тактов, чтобы завершить выдачу всех восьми разрядов за 48 тактов. После восьми циклов прохождения первого фрагмента программы содержимое регистра Е станет равным нулю и начнет испол­няться следующий фрагмент программы, предназначенный для выдачи синхроимпульса строчной развертки, здесь же про­исходит и загрузка регистра Е:



Рис. 10.10. Схема приставки для формирования графической информации на экране осциллографа

014012257                           XRAA                                        4

014013323                           OUT.OOOQ                                  10

014 014 000

014015323                           OUT,001Q                                  10

014016 001

014017036                           MVIE, 010Q                               7

014 020 010

014 021 000                           NOP                                            4

014 022 000                           NOP                                            4

014 023 000                           NOP                                            4

014 024 000                           NOP                                            4



014 025 000                           NOP                                            4

014 026 000                           NOP                                            4

014 027 000                           NOP                                            4

014 030 000                           NOP                                            4

014031000                           NOP                                            4

014032057                           СМА                                            4

014033323                           OUT, 001Q                                  Ю

014 034 001

014035025                           DCRD                                         5

014036302                           JNZ,M1                                       Ю

014037 000

014040014                                                                           ---------------

Итого: 56.тактов

Этот фрагмент программы имеет продолжительность 96 так­тов, т. е. вдвое больше времени выдачи одного байта из памяти. Следовательно, общая продолжительность цикла строчной развертки составляет 48-8 + 96 = 480 тактов (т. е. 480 мкс). Количество строк определяется числом 32 (040Q), загружае­мым в регистр D следующим фрагментом программы:

014041257                         XRA, А                                     4

014042323                          OUT, 002Q                                10

014 043 002

014 044 026                           MVI D, 040Q                               7

014 045 040

014046041                           LXIH, ADM                                10

014 047 000

014050015

014051315                           CALLINP                                   17

014 052 X

014053 Y

014 054 057                           СМА                                           4

014055323                           OUT, 002Q                                  10

014 056 002

014057303                           JMP, Ml                                      10

014 060 000

014061 014

Итого: 72 + время исполнения ПП ввода IMP (3840 тактов)

В этом фрагменте происходит выдача синхроимпульса кадро­вой развертки и задается адрес начала массива информации, выводимой на дисплей. Отведя на обратный ход луча время, равное четверти длительности прямого хода луча для верти­кальной развертки, получим период кадровой развертки, рав­ный 480-32 + 480-8 = 19 200 мкс. Отсюда получаем частоту кад­ровой развертки, равную примерно 50 Гц, что нас вполне удов­летворяет. В последнем фрагменте программы, длящемся 3840 мкс, предусмотрен вызов ПП ввода информации в ОЗУ с клавиатуры или внешнего устройства для изменения картин­ки на экране дисплея. Эта ПП должна иметь строго определен­ную длительность, необходимую для стабильности параметров развертки. Если в этом промежутке времени исполняются дру­гие программы неизвестной длительности, надо организовать систему с внешними прерываниями.



Содержание раздела