Устройство телеметрии

от автора

Николай Ситнов

Статья может оказаться интересной любителям ретро-электроники. В ней описывается устройство телеметрии, разработанное и созданное автором в конце восьмидесятых годов прошлого века. Устройство представляет собой аппаратно-программный комплекс, основой которого является микропроцессор КР580ВМ80А. Передача данных осуществлялась по телефонному каналу в виде частотно-модулированного сигнала, в коде МТК-2. Для визуализации принятых данных использовался телетайп.

Краткая история проекта

Создание устройства началось в 1987 году. В то время автор работал на предприятии, осуществляющем телевизионное вещание, где среди прочего оборудования имелись так называемые микроретрансляторы – небольшие приемопередатчики, устанавливаемые на границе зоны уверенного приема сигналов мощных станций. Работали они в необслуживаемом режиме. Появилась идея организовать дистанционный контроль их состояния.

Помимо этого, актуальной представлялась задача непрерывного автоматического мониторинга режимов работы различных узлов контролируемого оборудования с целью локализации «плавающих» неисправностей – то есть таких, которые проявляются в виде редких случайных отказов с последующим самовосстановлением. Подобные неисправности, зачастую, крайне трудно поддаются диагностике даже в лабораторных условиях. А уж тем более – тогда, когда объект расположен в десятках километров от центра обслуживания, и доступ к нему затруднен.

На создание устройства ушло более двух лет. Оно было разработано и изготовлено силами автора, в домашних условиях. Узнав о разработке, руководство предприятия проявило крайнюю заинтересованность в ней, пообещав всестороннее содействие и поддержку, в том числе – и при организации мелкосерийного производства. Однако, в то время промышленное изготовление печатных плат было слишком дорогостоящим делом, и выпуск даже небольшой серии не состоялся. Свою роль в снижении привлекательности проекта сыграла и слабая распространенность телефонной связи в местах расположения оборудования, которое предполагалось контролировать.

Тем не менее, один экземпляр устройства был внедрен, и проработал на объекте пять лет – до 1995 года. После этого оборудование перенесли в другое место, где возникли трудности с организацией телефонной связи. Устройство было выведено из эксплуатации и больше по назначению не использовалось.

При рассмотрении устройства нельзя не упомянуть и о приемной установке, которая применялась для получения от него данных. В состав установки входили пульт оператора, демодулятор и телетайп. Процесс приема данных предполагал участие человека. Пульт оператора имел выключатель телефонной линии, имитирующий снятие трубки, а также номеронабиратель. Телеграфный демодулятор был изготовлен по описанию из журнала «Радио» [1]. Сигнал с его выхода, посредством реле-повторителя, подавался на аппарат Т-63, либо РТА-80. Кроме того, был предусмотрен звуковой контроль процессов установления соединения и приема данных.

Технические характеристики устройства

Измеряемый параметр …………………………………. напряжение
Пределы измеряемого напряжения, В …………… –5 ÷ +5
Количество входов ……………………………………….. от 1 до 64
Выходной код ………………………………………………. МТК-2
Скорость, Бод ………………………………………………. 50
Вид модуляции выходного НЧ сигнала ………….. ЧМ, АМ
Частота сигнала, соответствующая 1, Гц ……….. 1126
Частота сигнала, соответствующая 0, Гц ……….. 1276
Напряжения питания, В ………………………………… +12, +5, –5, –15

Внешний вид устройства телеметрии показан на рис.1.

Рис. 1 – Устройство телеметрии

Рис. 1 – Устройство телеметрии

Устройство телеметрии (далее для краткости – устройство) предназначено для осуществления дистанционного контроля работы различной аппаратуры, а также для локализации неисправностей, проявляющихся в виде редких случайных сбоев в ее работе.

Устройство осуществляет:

  1. Измерение напряжений и передачу их значений по телефонному каналу посредством НЧ-сигнала, модулированного телетайпным сигналом в коде МТК-2;

  2. Анализ временной стабильности параметров в двух режимах и формирование специальной таблицы;

  3. Передачу таблицы вышеуказанным способом;

  4. Обмен данными с ЭВМ в параллельном коде.

Сеанс передачи данных начинается при поступлении на специальный вход сигнала «запрос передачи». Этот сигнал должен быть сформирован дополнительными средствами, состав и назначение которых зависит от конкретного применения устройства, а также от вида используемого канала связи. Например, в случае применения коммутируемого телефонного канала этот сигнал создается блоком сопряжения с АТС при поступлении от телефонной станции вызывного напряжения.

В ответ на «запрос передачи» устройство формирует сигнал «подтверждение передачи». В рассматриваемом случае он подается на блок сопряжения с АТС и вызывает имитацию поднятия трубки телефонного аппарата. Через некоторое время начинается передача данных, которая продолжается, пока они не будут переданы полностью. Состояние принимающей стороны (преждевременный отбой) при этом не контролируется. По окончании сеанса сигнал «подтверждение передачи» снимается, чем обеспечивается отбой телефонного соединения со стороны устройства.

В зависимости от конкретного применения, устройством могут быть задействованы от одного до шестидесяти четырех входов. Программа автоматически настраивается на используемое их количество. Для этого к последнему входу должен быть подключен источник заведомо ненулевого напряжения. Устройство содержит специальный источник напряжения –1 В, который дополнительно служит для контроля масштаба преобразования.

Имеется выход телетайпного сигнала (логические уровни ТТЛ). Существуют широкие возможности расширения системы.

Устройство состоит из следующих частей:

  1. Процессорная плата,

  2. Плата дополнительных элементов,

  3. Соединительный узел,

  4. Блок питания.

Процессорная плата представляет собой простейшую микро-ЭВМ и является функционально законченным блоком общего применения. Плата дополнительных элементов содержит входной коммутатор, АЦП, формирователи различных сигналов. Блок питания обеспечивает устройство напряжениями +12 В, +5 В, –5 В и –15 В и в данной статье рассматриваться не будет.

Процессорная плата имеет следующие технические характеристики:

Центральный процессор ……………………………….КР580ВМ80А
Емкость ОЗУ, кбайт ……………………………………….2
Емкость ПЗУ, кбайт ……………………………………….2
Частота тактовых сигналов, МГц ……………………2
Напряжения питания, В …………………………………+12, +5, –5

Принципиальная электрическая схема процессорной платы изображена на рисунке 2.

Рис. 2 – Процессорная плата. Схема принципиальная электрическая

Рис. 2 – Процессорная плата. Схема принципиальная электрическая

На процессорной плате расположен центральный процессор (DD7), ОЗУ(DD5), ПЗУ(DD6), тактовый генератор (DD1.1-DD1.3, DD2, V1, V2, R1–R8, C1–C5, Z1), устройство задержки (DD9.1, DD1.4), логическая схема (DD8, DD9.2), дешифратор выбора микросхем памяти и устройств ввода-вывода (DD3), а также параллельный программируемый адаптер (ППА) КР580ВВ55 (DD4).

Тактовый генератор состоит из собственно задающего генератора (DD1.1, DD1.2, R1, R2, C1, C2, Z1) и формирователя импульсов F1 и F2 (DD1.3, DD2, R3–R8, C3–C5, V1, V2). Цепочка R3C3 создает задержку фронта F2 относительно спада F1.

У дешифратора DD3 использованы только три выхода. Остальные предназначены для расширения памяти и добавления устройств ввода-вывода и имеют выходы на плате. ПЗУ выбирается сигналом с выхода f0, ОЗУ – с выхода f8, ППА – с выхода f15. Такое распределение адресного пространства дает возможность создавать расширенные ОЗУ и ПЗУ, представляющие со стороны процессора единый массив адресов. Сигнал с выхода f0 дешифратора также выведен с платы.

Кроме того, плата имеет выводы системных шин, каналов A, B, C ППА и некоторых других сигналов. Предусмотрена возможность питания ОЗУ от батареи (отдельный вывод питания на плате).

Для сопряжения временных диаграмм ОЗУ и процессора необходимо задержать цикл обращения к ОЗУ на один такт. Это осуществляет устройство задержки (DD9.1, DD1.4). Устройство функционирует следующим образом. При отсутствии циклов обращения к ОЗУ на входе 5 DD9.1, а значит и на входе Rdy процессора – логическая 1. Устройство не оказывает влияния на его работу. При обращении к ОЗУ, сигнал его выбора, логически суммируясь с сигналом Wait (0), дает 0 на входе Rdy процессора. Переходя в состояние ожидания, последний устанавливает 1 на своем выходе Wait. Сигнал готовности вновь устанавливается в 1. Обнаружив это, процессор выходит из состояния ожидания и сбрасывает Wait, в результате чего на входе Rdy опять появляется 0, но он уже не влияет, поскольку в данном машинном цикле больше не анализируется процессором. При снятии сигнала выбора ОЗУ, сигнал Rdy устанавливается в 1. При новом обращении к ОЗУ все повторяется в вышеописанной последовательности.

На плате имеются также восемь конденсаторов, шунтирующих шины питания. Плата имеет габариты 225*155 мм. Вид ее со стороны электронных компонентов и с обратной стороны показан на рисунках 3 и 4 соответственно.

Рис. 3 – Процессорная плата (вид стороны электронных компонентов)

Рис. 3 – Процессорная плата (вид стороны электронных компонентов)
Рис. 4 – Процессорная плата (вид с обратной стороны)

Рис. 4 – Процессорная плата (вид с обратной стороны)

В отличие от процессорной платы, плата дополнительных элементов является специфической для данного устройства и обеспечивает выполнение следующих функций:

  • формирование сигнала «сброс»,

  • выбор источника входного напряжения (коммутацию входных цепей),

  • обеспечение достаточно высокого сопротивления измерительных входов,

  • аналого-цифровое преобразование,

  • формирование тонального сигнала,

  • формирование телетайпного сигнала,

  • некоторые другие функции, рассмотренные далее, в процессе описания. Принципиальная электрическая схема платы дополнительных элементов представлена на рисунке 5.

Рис. 5 – Плата дополнительных элементов. Схема принципиальная электрическая

Рис. 5 – Плата дополнительных элементов.
Схема принципиальная электрическая

Узел формирования сигнала Reset состоит из триггера Шмитта (DD5.5, DD11.2, R4–R6), выходной сигнал которого привязан к фазе F2, и цепочки R7C10, предназначенной для формирования сигнала «сброс» при включении устройства, а также для защиты от дребезга контактов кнопки SB7. Сигнал Reset формируется при нажатии на указанную кнопку, при подаче питания и при приходе сигнала с блока формирования сигнала «сброс» (замыкание входа «сброс» устройства на общий провод).

Для возврата в исходное состояние анализатора временной стабильности параметров, а также для обеспечения защиты от случайных сбоев, необходимо периодически (например, один раз в сутки) формировать сигнал «сброс». Это достигается применением специального устройства, рассмотрение которого выходит за рамки данной статьи. При отсутствии необходимости в анализаторе такое устройство может отсутствовать.

Коммутатор (DD12-DD20) предназначен для подключения входа операционного усилителя DA1 к одному из источников входного сигнала и отключения его при измерении «нуля».

C выхода операционного усилителя DA1, включенного по схеме повторителя, измеряемое напряжение через подстроечный резистор R13 поступает на вход АЦП (DD8). R13 предназначен для коррекции масштаба преобразования. При поступлении логического 0 на входы 1 и 15 DD9 и на вход 1 DD10, на шину данных поступают младшие восемь бит выходного кода АЦП, а при поступлении логического 0 на вход 15 DD10 – старшие два бита. Элементы DD9 и DD10 имеют три состояния выходов. Управляющие сигналы для них формируются элементами DD7.1 и DD7.2. Младшие биты кода могут быть считаны по адресам 5000H-57FFH, старшие – по адресам 6800H-6FFFH. Сигнал «запрос преобразования» с выхода PB7 микросхемы ППА DD4, расположенной на процессорной плате, поступает на вход «гаш.» DD8.

Для обеспечения возможности измерения как положительных, так и отрицательных напряжений, применен следующий способ. Перед измерением группы параметров входной коммутатор закрывается (по входу S микросхемы DD12), и измеряется «нуль» АЦП. Затем коммутатор открывается, и измеренное значение «нуля» вычитается из каждого измеренного значения напряжения. Измерение «нуля» происходит один раз перед измерением параметров в режиме «Непосредственная телеметрия», и один раз – перед формированием X-блока параметров анализатора временной стабильности. «Нули» X-блока и Y-блока равны.

Модулированный по частоте сигнал формируется на выходе f14 дешифратора DD3, находящегося на процессорной плате и, после инвертирования элементом DD2.5, поступает на входы j и k триггера DD3, где приобретает форму меандра. Сформированный триггером сигнал подается на вход элемента DD6.2, и далее – через конденсатор C9 – на выход устройства.

На выходе f12 дешифратора формируется импульс при передаче нуля в телетайпном коде, а на выходе f11 – при передаче единицы. Сигналы поступают через инверторы DD5.1 и DD5.2 на входы j и k триггера DD4 соответственно. Триггер формирует телетайпный сигнал, поступающий через элемент DD2.6 на выход устройства.

На входы C обоих триггеров поступает короткий положительный импульс, сформированный из отрицательного фронта сигнала Wr схемой на элементах DD2.1–DD2.4, DD1.1, DD1.2.

При установке перемычки между одним из выходов триггера DD4 и входами 12, 13 элемента DD6.2 устройство формирует АМ-сигнал.

Сигнал «подтверждение передачи» появляется на выходе Inte микропроцессора в ответ на сигнал «запрос передачи». При этом разрешается формирование звукового сигнала (вход R DD3). На время отсутствия сигнала триггер переводится в нулевое состояние в целях снижения потребляемой устройством мощности (резистор R2). При отсутствии передачи триггер DD4 также блокирован по входу R.

Сигнал «подтверждение передачи» используется для включения реле, которое входит в состав устройства сопряжения с АТС и создает цепь постоянного тока по телефонному шлейфу. Между появлением этого сигнала и началом передачи существует временная задержка, достаточная для завершения оборудованием АТС коммутационных операций.

Порт «A» и часть канала «C» ППА использованы для обмена данными с ЭВМ в параллельном коде, и работают в режиме 2 [2].

Параметрический стабилизатор R8VD2 предназначен для питания микросхем DD12-DD20, DA1, а также делителя R10–R12. Этот делитель задает на специальном выходе устройства калиброванное напряжение –1В. Данный выход можно подключить к последнему используемому входу коммутатора с целью автоматической настройки программы на необходимое их количество, а также для контроля масштаба преобразования.

Вид платы со стороны электронных компонентов показан на рис. 6, а с обратной стороны – на рис. 7.

Рис. 6 – Плата дополнительных элементов (вид со стороны электронных компонентов)

Рис. 6 – Плата дополнительных элементов (вид со стороны электронных компонентов)
Рис. 7 – Плата дополнительных элементов (вид с обратной стороны)

Рис. 7 – Плата дополнительных элементов (вид с обратной стороны)

Переключение режимов устройства осуществляется посредством шести кнопок с раздельной фиксацией, входящих в состав соединительного узла (рис. 8). По мере необходимости, программа устанавливает логический 0 на линии порта «B» ППА, соответствующей той или другой кнопке, и анализирует состояние нулевого разряда порта «C», к которому все кнопки подключены через диоды VD1–VD6. Порт «B» используется также для выдачи управляющих сигналов на коммутатор. Сигнал «запрос передачи» приходит на вход PC2. К нему подключена схема защиты от статических зарядов (VD7, VD8), расположенная также на соединительном узле. Для формирования этого сигнала достаточно соединить соответствующий вход устройства с общим проводом. Здесь же расположена и кнопка «сброс» (SB7).

Рис. 8 – Узел соединительный. Схема электрическая принципиальная

Рис. 8 – Узел соединительный. Схема электрическая принципиальная

Изображение соединительного узла приведено на рисунке 9. На рисунках 10, 11 и 12 показана конструкция устройства.

Рис. 9 – Узел соединительный

Рис. 9 – Узел соединительный
Рис. 10 – Вид устройства без верхней крышки

Рис. 10 – Вид устройства без верхней крышки

Программа, прошитая в ПЗУ DD6 процессорной платы, написана на языке ассемблера и задает весь функционал данного устройства. Алгоритм ее работы изображен на рисунке 13.

Рис. 13 – Алгоритм работы программы

Рис. 13 – Алгоритм работы программы

В начальной стадии осуществляется определение количества используемых входов коммутатора. Для этого измеряется «нуль» АЦП, а затем происходит опрос всех входов, начиная с шестьдесят четвертого. Первые четыре двоичных разряда результата маскируются, что обеспечивает высокую помехоустойчивость системы при определении количества входов. Найдя вход, напряжение на котором больше 150 мВ, программа настраивается на требуемое их количество. При этом информация об остальных, незадействованных входах, телетайпом не печатается. Информация о количестве входов используется также анализатором временной стабильности параметров (далее анализатор).

Рабочий цикл начинается с выявления сигнала «запрос передачи». При его наличии анализируется состояние кнопки SB1 – «Расширение по выводу». В случае нажатой кнопки происходит переход по адресу 45C5H (в ОЗУ), куда при помощи процедуры параллельного обмена данными с ЭВМ можно записать команду jmp adr, где adr – адрес программы-расширителя, записываемой в ОЗУ таким же способом. Программа-расширитель может выполнять самые разнообразные функции (например, передавать данные в другом коде). При отжатой кнопке осуществляется дальнейшее выполнение программы.

При нажатой кнопке SB2 – «Непосредственна телеметрия» – в канал связи выдается текст, идентифицирующий этот режим. Далее начинается опрос всех входов и передача информации о напряжении на них. Данные распечатываются на телетайпной ленте под номерами, соответствующими входам коммутатора. Они располагаются в шесть столбцов. При наличии перегрузки на каком-либо входе печатается «+ПЕР. » или «–ПЕР. » в зависимости от знака напряжения. При отжатой кнопке осуществляется обход этой части программы.

Следующая часть программы, обход которой включается кнопкой SB3, осуществляет передачу таблицы анализатора. Как и в предыдущем случае, сначала в канал выдается идентификатор режима – текст «Память.», а затем, в случае наличия в памяти вышеупомянутой таблицы, она передается по каналу связи. Таблица распечатывается на ленте в виде нескольких столбцов (максимум девять), количество которых зависит от текущего состояния анализатора. В первом столбце печатается номер параметра (входа), а в остальных – значения параметров. Каждый такой столбец несет информацию об определенном блоке параметров. Блоки отображаются парами, рядом (X-блок и Y-блок). Подробное изложение сведений об их назначении будет дано при описании анализатора.

Следующая часть программы, также имеющая обход, который включается при отжатии кнопки SB6, производит обмен данными с ЭВМ в параллельном коде. Обмен осуществляется через порт «A» ППА в режиме 2 [2]. Пересылка каждого байта данных происходит за четыре цикла работы программы. При этом сначала из ЭВМ должен быть введен указатель направления: 00H – для ввода, 0FFH – для вывода (по отношению к устройству). Затем, по порядку – младший и старший байты адреса. После этого ЭВМ может считать или записать в ОЗУ устройства по этому адресу байт.

После приема устройством указателя направления и каждого байта адреса содержимое счетчика циклов увеличивается на единицу. После обмена байтом данных счетчик обнуляется. Обнуление происходит и при отжатии кнопки SB6 до завершения процесса обмена, чем можно возобновлять нормальное состояние этого процесса при сбоях. Состояние процесса не влияет на выполнение остальных частей программы.

Для обмена данными между устройством и компьютером «Радио-86РК» [3] разработана специальная программа на языке Бейсик. С помощью нее можно записать (в ОЗУ) и считать байт по любому адресу, а также произвести пересылку группы байтов из буфера программы в некоторую область ОЗУ устройства и считать в буфер программы информацию из любой области памяти устройства. При этом выходы PC0 и PC1 ППА D14 компьютера использованы для выдачи сигналов Ack и Stb, а входы PC4 и PC5 – для ввода сигналов Obf и Ibf соответственно. Сигналы Ack и Stb перед подачей на устройство должны быть проинвертированы. Для ускорения процесса пересылки группы байтов можно отжать кнопки SB2 и SB3 и удерживать сигнал «запрос передачи» до окончания обмена.

 10 REM ПРОГРАММА ОБМЕНА ДАННЫМИ С УСТРОЙСТВОМ ТЕЛЕМЕТРИИ  20 HIMEM &3FFF:I=&9A:O=&98  30 PB=&A001:PC=&A002:RU=&A003  40 PRINT "1-ЧТЕНИЕ БАЙТА"  50 PRINT "2-ЗАПИСЬ БАЙТА"  60 PRINT "3-ЧТЕНИЕ ПОСЛЕДОВАТЕЛЬНОСТИ БАЙТОВ В БУФЕР"  70 PRINT "4-ЗАПИСЬ ПОСЛЕДОВАТЕЛЬНОСТИ БАЙТОВ ИЗ БУФЕРА"  80 PRINT "НАЧАЛО БУФЕРА - 4000H."  90 INPUT "ВВЕДИТЕ НОМЕР РЕЖИМА.",N  100 ON N GOSUB 110, 120, 130, 160:GOTO 40  110 GOSUB 210:GOSUB 220:PRINT @B:RETURN  120 GOSUB 210:INPUT "ВВЕДИТЕ БАЙТ.",B:GOSUB 290:RETURN  130 GOSUB 190:AB=&4000  140 FOR A=A1 TO A2  150 GOSUB 220:POKE AB,B:AB=AB+1:NEXT A:RETURN  160 GOSUB 190:AB=&4000  170 FOR A=A1 TO A2  180 B=PEEK(AB):GOSUB 290:AB=AB+1:NEXT A:RETURN  190 INPUT "ВВЕДИТЕ НАЧ.АДРЕС.",A1  200 INPUT "ВВЕДИТЕ КОН.АДРЕС.",А2:RETURN  210 INPUT "ВВЕДИТЕ АДРЕС.",А:RETURN  220 REM /////////////// ЧТЕНИЕ БАЙТА //////////////  230 Y=A/256:AS=INT(Y):AM=(Y-AS)*256  240 POKE RU,&98:POKE PB,0:GOSUB 340:PRINT "1"  250 POKE PB,AM:GOSUB 340:PRINT"2":POKE PB,AS:GOSUB 340  255 PRINT "3"  260 POKE RU,&9A  270 IF PEEK(PC) AND &10 THEN 270  280 POKE RU,1:B=PEEK(PB):POKE RU,0:RETURN  290 REM /////////////// ЗАПИСЬ БАЙТА ////////////////  300 Y=A/256:AS=INT(Y):AM=(Y-AS)*256  310 POKE RU,&98:POKE PB,&FF:GOSUB 340:PRINT "1"  320 POKE PB,AM:GOSUB 340:PRINT "2":POKE PB,AS:GOSUB 340  325 PRINT "3"  330 POKE PB,B:GOSUB 340:RETURN  340 REM \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\  360 POKE RU,3:POKE RU,2  370 IF PEEK (PC) AND &20 THEN 370  380 RETURN

После процедуры обмена осуществляется переход в начало основного цикла программы, где анализируется состояние сигнала «запрос передачи». При отсутствии этого сигнала программа определяет состояние кнопки SB4 –»Расширение по анализу». В случае нажатой кнопки срабатывает переход на расширитель, аналогично описанному выше.

Далее, при достижении количеством блоков параметров своего максимального значения, срабатывает обход анализатора. В противном случае начинается формирование X-блока.

Анализатор временной стабильности параметров работает следующим образом. Измеряются напряжения на всех входах, и измеренные значения заносятся в ОЗУ, образуя X-блок. После временной задержки аналогично формируется Y-блок. Затем происходит поэлементное вычитание Y-блока из X-блока. Образуется результирующий блок, значения элементов которого характеризуют величину временной нестабильности соответствующих параметров. Следующим этапом является поэлементное вычитание этого блока из специально сформированной таблицы приращений. Если хотя бы одно число из результирующего блока (результат вычитания Y-блока из X-блока) больше соответствующего числа из таблицы приращений, дальнейшее формирование блоков происходит в других областях ОЗУ, а эти X-блок и Y-блок входят в таблицу анализатора, передаваемую по каналу связи в режиме «Память». В противном случае, в следующем цикле работы программы блоки формируются заново в тех же самых областях памяти, и в таблицу анализатора не входят. При распечатке X-блок и Y-блок располагаются рядом, один за другим. Максимальное количество блоков – восемь – ограничено шириной телетайпной ленты.

Константа первой задержки (рис. 13) записана в ПЗУ по адресам 0451H и 0452H, а для второй задержки – 04C8H и 04C9H (соответственно младший и старший байты). Обе константы равны 1FFFH.

Существуют два режима анализа. Первый не осуществляет формирование таблицы приращений. Ее в этом случае необходимо занести в ОЗУ по каналу параллельного ввода-вывода, или сформировать при помощи расширителя. При втором режиме таблица приращений формируется следующим способом. Организованный в программе счетчик проходов анализатора имеет коэффициент пересчета 15. При обнулении его происходит формирование таблицы приращений, каждый элемент которой в этом случае представляет собой 125 процентов +5 от соответствующего элемента результирующего блока (результат вычитания Y-блока из X-блока). Коэффициент пересчета счетчика можно изменить, если занести новое его значение, увеличенное на единицу, по адресу 04E4H (при программировании ПЗУ).

Переключение режимов производится кнопкой SB5 – «Режим анализа». Ее нажатому состоянию соответствует второй режим. Выход из анализатора осуществляется только в одну точку программы – на процедуру параллельного ввода-вывода.

Стрелками с числом на алгоритме обозначены точки перехода на расширители. Они заслуживают особого рассмотрения. В этих местах, в программе, расположены команды call adr, где adr – адрес первой ячейки в группе из трех ячеек в таблице расширителей, находящейся в ОЗУ. Начальная стадия работы программы записывает в первую ячейку каждой группы, начиная с третьей, код команды ret. Переходы на первые две группы происходят при помощи команд jz adr и включаются кнопками SB1 и SB2. Пользуясь процедурой параллельного ввода-вывода, в любую группу ячеек можно записать команду перехода на расширитель. При приходе сигнала «сброс» во все группы, кроме первых двух, вновь помещаются команды ret. Первый или второй расширители могут заполнять таблицу необходимыми командами переходов.

Все значения параметров, печатаемые программой – четырехзначные. Они имеют два разряда перед запятой, что соответствует напряжению, измеренному без входного делителя. Имеется возможность при помощи расширителей устанавливать запятую в любое место числа в зависимости от примененных делителей или усилителей. При этом все входы подразделяются на группы по количеству разрядов числа перед запятой. Для изменения числа разрядов перед запятой при передаче непосредственных данных, расширитель должен записать в ячейку 46F7H количество параметров в этой группе, а в ячейку 46D0H – 80H, если перед запятой – 0 разрядов, 81H – если 1 разряд, 82H – если 2 разряда и т. д. Затем он должен вызвать подпрограмму передачи этой группы данных, после чего может определить аналогичным образом следующую группу. После завершения непосредственной передачи данных должен быть произведен переход по адресу 01FCH. Подпрограмма передачи группы данных имеет адрес вызова 00f0H.

Процесс аналогичной настройки подпрограммы передачи таблицы анализатора (адрес вызова – 023CH) отличается лишь тем, что размер группы данных необходимо ей передавать в аккумуляторе микропроцессора. После передачи таблицы переход должен произойти по адресу 0362H.

Для изменения скорости передачи данных и частот сигнала, соответствующих единице и нулю, необходимо заменить коды в ячейках ПЗУ, указанных ниже. В них расположены соответствующие скоростные (z) и частотные (f) константы.
061AH – f1 (39H) , 0618H – z1 (2DH)
0610H – f0 (32H) , 060EH – z1 (33H)

В скобках указаны константы, соответствующие вышеуказанным частотам и скорости 50 Бод (при частоте кварцевого генератора 8 МГц).

Для вычисления констант при заданной частоте и скорости предназначена специальная программа на Бейсике. Результатом ее работы является пара констант (частотная и скоростная) и скорость в бодах, вычисленная с учетом их значений. Для каждой из частот вычисления производятся отдельно. При помощи программы можно также вычислить скорость при известных константах.

 10 REM ПРОГРАММА ДЛЯ ВЫЧИСЛЕНИЯ КОНСТАНТ И СКОРОСТИ  20 PRINT:PRINT:PRINT “1 - ВЫЧИСЛЕНИЕ СКОРОСТИ”  30 PRINT “2 - ВЫЧИСЛЕНИЕ КОНСТАНТ F И Z”  40 INPUT “ВВЕДИТЕ НОМЕР РЕЖИМА.”,R  50 IF R=1 THEN GOSUB 80  60 IF R=2 THEN GOSUB 100  70 GOTO 20  80 INPUT “ВВЕДИТЕ F И Z”,F,Z:GOSUB 170  90 S=N/((F*15+33)*Z):PRINT S;“БОД”:RETURN  100 INPUT “ВВЕДИТЕ ЧАСТОТУ СИГНАЛА (ГЦ)”,E  110 INPUT “ВВЕДИТЕ СКОРОСТЬ (БОД)”,Y:GOSUB 170  120 F=(1/(E*2)-33/N)/(15/N)  130 Z=N/((15*F+33)*Y):REM E-ЧАСТ.СИГН.,N-ТАКТ.Ч.  140 PRINT “F=”;@F;“H , Z=”;@Z;“H”  150 Z=INT(Z):F=INT(F)  160 PRINT “ПРОВЕРКА:”:PRINT “СКОРОСТЬ -”;:GOSUB 90:RETURN  170 INPUT “ТАКТ.ЧАСТОТА (МГЦ)”;N:N=N*10^6:L=1/N:RETURN

Заключение

Использование телетайпа для приема информации было обусловлено тем фактом, что на предприятии в то время отсутствовали компьютеры. Однако, уже скоро – через несколько лет – ситуация кардинально изменилась, и появилась актуальная задача интеграции устройства в современную на тот момент технологическую среду. Было разработано программное обеспечение, позволяющее не только принимать и обрабатывать данные, но и визуализировать их в более удобном виде – с названиями параметров, а также накапливать в базе данных. Подверглась изменениям и программа самого устройства – в новой версии вместо МТК-2 использовался код КОИ-7, а передача велась уже на скорости 600 Бод. На приемной стороне применялся модем ИСМ-1200.

Но тестирование этого комплекса началось всего лишь за неделю до вывода устройства из эксплуатации по указанной ранее причине. Работы по данному направлению приостановились из-за отсутствия перспективы быстрого внедрения, а в дальнейшем – прекратились совсем.

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

Список источников

  1. Демиденко А. Низкочастотный RTTY конвертер.— Радио, 1985, № 9, с. 19 — 22.

  2. Зеленко Г., Панов В., Попов С. Микросхема КР580ВВ55.— Радио, 1983, № 6, с. 42-46.

  3. Горшков Д., Зеленко Г., Озеров Ю., Попов С. Персональный радиолюбительский компьютер «Радио-86РК».— Радио, 1986, № 4, с. 24 — 26.


Текст программы

Листинг
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     ASEG     ORG 0 ;MОДУЛЬ ПЕРЕДАЧИ (1 ЧАСТЬ). MW1 EQU 46FFH SV  EQU 46FEH P1  EQU 46FDH RI0 EQU 46FBH SPT EQU 46FAH G6  EQU 46F8H N   EQU 46F7H ISS EQU 46F6H SBT EQU 46F5H WY  EQU 46F4H SCHS EQU 46F3H S1  EQU 46F2H C25 EQU 46F1H O1  EQU 46F0H O2  EQU 46EFH UX  EQU 46EDH UY  EQU 46EBH U0  EQU 46E9H SCA EQU 46E8H DSV EQU 46E7H PP  EQU 46E6H RDTH EQU 46E5H @63 EQU 46E4H @58 EQU 46E3H @50 EQU 46E1H @51 EQU 46E0H @52 EQU 46DEH @53 EQU 46DCH SB  EQU 46DBH MB  EQU 46DAH IM  EQU 46D9H @3F2 EQU 46D8H @3F1 EQU 46D7H @1F2 EQU 46D6H @1F1 EQU 46D5H @2F2 EQU 46D4H @2F1 EQU 46D3H KT2 EQU 46D2H JA1  EQU 46D0H U2  EQU 46CFH KT2P EQU 46CEH NT2 EQU 46CCH @1FK2 EQU 46CBH @1FK1 EQU 46CAH STEK  EQU 46C8H RP1   EQU 46C5H RP2   EQU 46C2H RP3   EQU 46BFH RP4   EQU 46BCH RP5   EQU 46B9H RP6   EQU 46B6H RP7   EQU 46B3H RP8   EQU 46B0H RP9   EQU 46ADH RP10  EQU 46AAH RP11  EQU 46A7H RP12  EQU 46A4H RP13  EQU 46A1H KOL   EQU 46A0H KDT   EQU 469EH SCHB   EQU 469DH NB1   EQU 469BH RF    EQU 4699H TU0 EQU 4697H BE10 EQU 4687H KN1 EQU 0FEH KN2 EQU 0FDH KN3 EQU 0FBH KN4 EQU 0F7H KN5 EQU 0EFH KN6 EQU 0DFH PA1 EQU 7800H PB1 EQU 7801H PC1 EQU 7802H RGU1 EQU 7803H SZR  EQU 6800H MZR  EQU 5000H @CR  EQU 02H @LF  EQU 08H MINUS   EQU 18H SPACE  EQU 04H TCK   EQU 07H NP    EQU 06H US1   EQU 0D9H ;B-НА ВЫВОД,МЛ.C-НА ВВОД (РЕЖИМ 0),A-РЕЖ.2 DT    EQU 4000H    LXI SP,BE10    MVI A,US1    STA RGU1    MVI A,09H;РЗПР ПО ВВОДУ    STA RGU1    MVI A,0CH;ЗАПРЕТ ПР. ПО ВЫВОДУ    STA RGU1    MVI A,0FFH    STA MW1 ;####### ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА ВХОДОВ ######    MVI A,0C0H    STA P1    STA PB1    CMA @222:DCR A    JNZ @222    CALL ACP    MOV H,D    MOV A,E    ANI 0F0H    MOV L,A    MVI C,3FH ?333: MOV A,C    STA P1    CALL ACP    MOV A,D    CMP H    JNZ ?444    MOV A,E    ANI 0F0H    CMP L    JNZ ?444    DCR C    JNZ ?333 ?444: INR C    MOV A,C    STA KOL    ADD A    MOV E,A    MVI D,00H    LXI H,DT    DAD D    SHLD RF    DCX H    DCX H    SHLD KDT    LHLD RF    DAD D    SHLD NB1 ;УСТАНОВКА КОМАНД RET В ПЕРЕКЛЮЧАТЕЛИ    LXI B,03H    LXI H,RP13    MVI A,0C9H    MVI D,0BH ?111:MOV M,A    DAD B    DCR D    JNZ ?111 ;/////////////////////////////////// A06:CALL RP11    LDA PC1   ;НАЛИЧИЕ ЗАПРОСА    ANI 04H   ;НА ПЕРЕДАЧУ    JNZ R2 ;НА РАСШ.ПО АНАЛИЗУ.    MVI A,KN1    STA PB1    LDA PC1    ANI 01H   ;РАСШ. ПО ВЫВОДУ    JZ  RP1    MVI A,TCK    STA NT2+2    MVI A,SPACE    STA JA1+1    STA JA1+2    CALL RP3  ;РАСШИРЕНИЕ    EI ;------------- ЗАДЕРЖКА ------------    LXI H,0FFFFH A1Z:DCX H    NOP    NOP    NOP    NOP    NOP    NOP    MOV A,L    ORA H    JNZ A1Z ;НЕПОСРЕДСТВ.ПЕРЕДАЧА.    MVI A,KN2    STA PB1    LDA PC1    ANI 01H   ;ОБХОД?    JNZ @001    LXI H,NT1    LXI B,KT1    CALL TTYP    MVI A,0C0H  ;ОЧИСТКА,ЗАКР.КОМMУТАТОРА,ОТКР Р.КЛЮЧА    STA P1      ;ПРОМ.ЯЧЕЙКА ПОРТА PB1    CALL ACP    XCHG    CALL DK    SHLD RI0   ;НОЛЬ АЦП    MVI A,80H  ;ОТКР.КОММУТАТОРА    STA P1    MVI A,NP+1 ;КОЛ.ЧИСЕЛ В СТРОКЕ+1.    STA SPT    ;СЧЕТЧИК ЧИСЕЛ В СТР.    XRA A    STA SV ;СЧЕТЧИК ВХОДОВ    CALL RP12    MVI A,82H  ;ЗПT.ПОСЛЕ 2 ЗНАКА    STA JA1     ;В ТЕКСТ (ЗАПРОС ЧИСЛА)    LDA KOL    ;КОЛИЧ.ВХОДОВ    STA N    CALL @002    JMP @001 @002: LDA SPT    DCR A    STA SPT    JNZ ?0    LXI H,ZH    LXI B,ZH+1    MVI A,NP    STA SPT    CALL TTYP ?0:   MVI C,0FH    CALL TR    JMP EN TR:   LDA SV     INR A    STA SV ;НОМЕР ЧИСЛА В ТЕКСТЕ    MOV C,A    MVI B,00H    CALL KP ;ДВОИЧНО-ДЕС.ПРЕОБР.    MOV E,C    LXI H,RX  ;АДРЕС ТАБЛ.ТЕЛЕТАЙПН.ЦИФР    MVI A,0FH    ANA E    MVI B,00H    MOV C,A    DAD B    MOV A,M    STA NT2+1    LXI H,RX    MVI A,0F0H    ANA E    RRC    RRC    RRC    RRC    MOV C,A    DAD B    MOV A,M    STA NT2    RET EN:   CALL ACP    MOV A,D   ;ОПР.НАЛИЧИЯ ПЕРЕГРУЗКИ    ORA A    JNZ ZV    MOV A,E    ORA A    JNZ ZV    JMP PRG1 ZV:   MVI A,80H    ANA D    JNZ PRG2    CALL E4 ;ВЫЧИТАНИЕ НОЛЯ(РЕЗ.В DE) ;В РЕГИСТРЕ D D7=1 -В DE  ОТРИЦАТЕЛЬНОЕ ЧИСЛО    LXI H,G6  ;АДРЕС 1-Й ПРОМ.ЯЧЕЙКИ.    MOV M,E    INX H    MVI A,7FH    ANA D    MOV M,A    MVI A,80H    ANA D    JZ  H0    MVI A,MINUS    JMP Z9 H0:   MVI A,SPACE Z9:   STA U2    LXI H,NT2 ;АДР.НАЧ.ТЕКСТА    LXI B,KT2 ;АДР.КОН.    LXI D,G6 IC:   CALL TTYP    LDA N    DCR A    STA N    RZ     LDA P1    INR A  ;СЛЕДУЮЩИЙ ВХОД    STA P1    JMP @002 PRG1: LXI H,NT2      LXI B,KT2P    CALL TTYP    LXI H,NTP1    LXI B,KTP1    JMP IC PRG2: LXI H,NT2    LXI B,KT2P    CALL TTYP    LXI H,NTP2    LXI B,KTP2    JMP IC E4:   LHLD RI0 E6:   DAD D    JC  WA    CALL DK    XCHG    MVI A,80H    ORA D    MOV D,A    RET WA:   XCHG    RET NT1:  DB  00H   ;РУССКИЙ РЕГ.    DB 02H  ;ВК    DB 08H  ;ПС    DB 08H  ;ПС    DB 08H  ;ПС    DB 06H   ;Н    DB 10H   ;Е    DB 0DH   ;П    DB 03H   ;О    DB 14H   ;С    DB 0AH   ;Р    DB 10H   ;Е    DB 12H   ;Д    DB 14H   ;С    DB 01H   ;Т    DB 19H   ;В  ;   DB 1BH   ;РЕГ.ЦИФР ;   DB 07H   ;. ;   DB 00H   ;РУССКИЙ РЕГ.     DB 10H   ;Е    DB 06H   ;Н    DB 06H   ;Н    DB 18H   ;А    DB 1DH   ;Я    DB 04H   ;     DB 01H   ;Т    DB 10H   ;Е    DB 09H   ;Л    DB 10H   ;Е    DB 07H   ;М    DB 10H   ;Е    DB 01H   ;Т    DB 0AH   ;Р    DB 0CH   ;И    DB 1DH   ;Я    DB 1BH   ;РЕГИСТР ЦИФР    DB 07H   ;.    DB 08H   ;ПС ZH:   DB  02H   ;ВК KT1:  DB  08H   ;ПС NTP2: DB  11H   ;ПЛЮС    DB  00H   ;РУС.    DB  0DH   ;П    DB  10H   ;Е    DB  0AH   ;Р    DB  1BH   ;ЦИФР.    DB  07H   ;.    DB  04H   ;     DB  04H   ;  KTP2: DB  04H   ;  NTP1: DB  18H   ;МИНУС    DB  00H   ;РУС.    DB  0DH    DB  10H    DB  0AH    DB  1BH    DB  07H    DB  04H    DB  04H KTP1: DB  04H  ;МОДУЛЬ ПЕРЕДАЧИ (2 ЧАСТЬ). ;ПЕРЕДАЧА СОДЕРЖИМОГО ПАМЯТИ . @001:CALL RP4    MVI A,KN3    STA PB1    LDA PC1    ANI 01H   ;ОБХОД?    JNZ A04    LXI H,NT3 ;АДР.НАЧ.ТЕКСТА    LXI B,KT3 ;АДР.КОН.ТЕКСТА    CALL TTYP   ;ПЕРЕДАЧА    XRA A    STA ISS   ;ИНКР.СЧЕТЧИК СТРОК    STA SBT    STA WY    STA SV ;ЯЧ.НОМЕРА СТРОКИ    LXI H,BE10    SHLD TU0    LHLD NB1 ;АДР.НАЧ.1 БЛОКА    CALL RP13    MVI A,82H    STA JA1    LDA KOL    ;КОЛ.ДАННЫХ    CALL @009  ;ПЕРЕДАЧА ДАННЫХ    JMP A04 @009: STA SCHS   ;СЧЕТЧИК СТРОК    XRA A    STA SBT    MVI A,0FFH    STA IM ;ПРИЗНАК 1 ПРОХОДА    JMP ?79 ?78:  POP H ?79: LDA KOL    ADD A    MOV C,A    MVI B,00H ;(BC-РАЗН.АДР.БЛОКОВ-2)    MOV E,M    INX H    MOV D,M    DCX H    DAD B    PUSH H ; ОПРЕДЕЛЕНИЕ  ПЕРЕГРУЗКИ    XRA A    CMP D    JNZ MP    CMP E    JNZ MP    MVI A,0FH ;ПРИЗНАК ОТР.ПЕРЕГРУЗКИ    STA WY MP:   MVI A,40H    ANA D    JZ  DP    MVI A,0F0H  ;ПРИЗН.ПОЛОЖИТЕЛЬНОЙ ПЕРЕГР.    STA WY DP:   CALL E5 ;ВЫЧИТАНИЕ НУЛЯ    XCHG    SHLD G6    MOV A,H    ANI 80H    JZ  LD    MVI A,MINUS    JMP AP LD:   MVI A,SPACE AP:   STA U2    LDA SBT    ORA A    JNZ ?01    LDA SCHB   ;СЧЕТЧИК БЛОКОВ    ANA A    JNZ R01    POP H    JMP A04 R01:STA SBT    LXI H,BE10    SHLD TU0    LXI H,ZH    LXI B,ZH+1    CALL TTYP    POP H    LDA SCHS    ORA A    JZ  AE    DCR A    STA SCHS    LDA IM    ORA A    JZ  XI    LDA ISS    JMP FY XI:   MVI B,00H    LDA ISS    MOV C,A    LHLD NB1 ;АДР.НАЧ.БЛОКА 1    DAD B FY:   INR A    INR A    STA ISS    PUSH H    CALL TR ;НУМЕРАЦИЯ СТРОК    LXI H,NT2    LXI B,NT2+2    CALL TTYP    LDA IM    ORA A    JNZ ZL    XRA A    STA WY    JMP ?78 ZL:   XRA A    STA IM ; ИНДИКАЦИЯ  ПЕРЕГРУЗКИ ?01:  LDA WY    ANI 0FH    JZ  RO    LXI H,NTP1    LXI B,KTP1    JMP NV RO:   LDA WY    ANI 0F0H    JZ  TX    LXI H,NTP2    LXI B,KTP2    JMP NV TX:   LXI H,U2    LXI B,KT2    LXI D,G6 NV:   CALL TTYP    XRA A    STA WY    LDA SBT    DCR A    STA SBT    LHLD TU0    INX H    INX H    SHLD TU0    JMP ?78 AE:   LHLD NB1    MVI B,00H    LDA ISS    MOV C,A    DAD B    RET NT3:  DB  02H   ;ВК    DB  08H   ;ПС    DB  08H   ;ПС    DB  00H   ;РУС.    DB  0DH   ;П    DB  18H   ;А    DB  07H   ;М    DB  1DH   ;Я    DB  01H   ;Т    DB  17H   ;Ь    DB  1BH   ;ЦИФР.    DB 07H    ;. KT3:DB 08H   ;ПС E5:PUSH H    PUSH D    LHLD TU0    MOV E,M     INX H    MOV D,M    XCHG    POP D    CALL DK    CALL E6    POP H    RET  ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% A04:CALL RP10    DI    CALL A05    JMP  A06 ;ВВОД ИЛИ ВЫВОД БАЙТА ЧЕРЕЗ ППА (РЕЖИМ 2). A05:MVI A,KN6    STA PB1    LDA PC1    ANI 01H    JZ  A07    XRA A    STA S1    RET        ;ОБХОД A07:  LDA S1    CPI 01H    JZ  C03    CPI 02H    JZ  C04    CPI 03H    JZ  C05    LXI H,$+6    JMP WB ;ВВОД БАЙТA    STA C25    MVI A,01H    STA S1    RET C03:  LXI H,$+6    JMP WB    STA O1    MVI A,02H    STA S1    RET C04:  LXI H,$+6    JMP WB    STA O2    MVI A,03H    STA S1    RET C05:  LDA O1    MOV E,A    LDA O2    MOV D,A    LDA C25    ORA A    JNZ A09    XCHG    MOV A,M    STA PA1    XRA A    STA S1    RET A09:  LXI H,$+6    JMP WB    XCHG    MOV M,A    XRA A    STA S1    RET WB:   LDA PC1    ANI 08H    RZ    LDA PC1    ANI 20H    RZ    LDA PA1    PCHL  KZ    EQU 1FFFH MKB   EQU 08H MPS   EQU 0FH ;/////////////// МОДУЛЬ АНАЛИЗА ////////////// R2:MVI A,KN4    STA PB1    LDA PC1    ANI 01H    JZ  RP2 ;РАСШ.ПО АНАЛИЗУ    CALL RP5 ;РАСШИРЕНИЕ    LDA MW1   ;ПРИЗНАК 1 ПУСКА ;( УСТАНАВЛИВАЕТСЯ ПРИ ЗАПУСКЕ СИСТЕМЫ )    ORA A      MVI A,00H    STA MW1    JZ  UV    LHLD NB1 ;АДРЕС 1 БЛОКА    SHLD UX ;УКАЗАТЕЛЬ Х-БЛОКА    LDA KOL    ADD A    MOV E,A    MVI D,00H    DAD D    SHLD UY ;УКАЗАТЕЛЬ Y-БЛОКА    LXI H,BE10 ;АДРЕС НУЛЯ 1 БЛОКА    SHLD U0 ;УКАЗАТЕЛЬ ЯЧЕЙКИ С "НУЛЕМ"    XRA A    STA SCHB   ;СЧЕТЧИК БЛОКОВ    STA SCA   ;СЧ.ЦИКЛ.АНАЛИЗА UV:LDA SCHB    CPI MKB   ;МАКС.КОЛ.БЛОКОВ    JZ  B05   ;ОБХОД ПОСЛЕ ФОРМ.ВСЕХ БЛОКОВ ;$$$$$$$$$$$$ ИЗМЕРЕНИЕ НУЛЯ АЦП $$$$$$$$$$$    MVI A,0C0H ;ОТКР.КЛ.,ЗАКР.КОММУТАТОРА    STA P1        ;ПРОМ.ЯЧ.PB1    CALL ACP    LHLD U0    MOV M,E    INX H    MOV M,D    INX H    MOV M,E    INX H    MOV M,D    ;НУЛИ X-БЛОКА И Y-БЛОКА РАВНЫ ;%%%%%%%%%%% ЗАПОЛНЕНИЕ X-БЛОКА %%%%%%%%%%%    LHLD UX ;УКАЗАТЕЛЬ X-БЛОКА    CALL IY    CALL RP6 ;################ ЗАДЕРЖКА ###############    LXI B,KZ  ;КОНСТ.ЗАДЕРЖКИ  B02:  DCX B    XRA A    CMP B    JNZ B02    CMP C    JNZ B02 ;&&&&&&&&&&& ЗАПОЛНЕНИЕ Y-БЛОКА &&&&&&&&&&&    LHLD UY   ;УКАЗАТЕЛЬ Y-БЛОКА    CALL IY    CALL RP7 ;<<<<<<<<<<<<<< ВЫЧИТАНИЕ <<<<<<<<<<<<<    LHLD UY    XCHG    LHLD UX    LDA KOL    ADD A    SUI 02H    MOV C,A    MVI B,00H    DAD B    MOV B,H    MOV C,L    LHLD UX    CALL MF ;ВЫЧИТАТЕЛЬ    CALL RP8 ;++++++++++++++++++++++++++++++++++++++    MVI A,KN5    STA PB1    LDA PC1    ANI 01H   ;ТИП АНАЛИЗА    JZ  T2 ;ТИП 2 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> B06:  LHLD KDT  ;АДРЕС КОНЦА ТАБЛ.ПРИРАЩЕНИЙ    PUSH H    POP  B    LHLD RF ;АДРЕС РЕЗ.ВЫЧИТАТЕЛЯ    XCHG    LXI  H,DT ;АДР.ТАБЛ.ПРИРАЩЕНИЙ (ДЕЛЬТА-ТАБЛИЦЫ)    CALL MF    LDA PP    ORA A    JZ  B14    LDA KOL    MOV L,A    MVI H,00H    DAD H    DAD H    PUSH H    POP B    LHLD UX    DAD B    SHLD UX    LHLD UY    DAD B    SHLD UY    LHLD U0    INX H    INX H    INX H    INX H    SHLD U0    LXI B,KZ    XRA A B03:DCX B    CMP B    JNZ B03    CMP C    JNZ B03    LDA SCHB    INR A    INR A    STA SCHB B14:  LDA SCA   ;СЧЕТЧИК ЦИКЛОВ АНАЛИЗА    INR A    STA SCA    CPI MPS   ;МАКС.ПОЛОЖЕНИЕ СЧЕТЧИКА    JNZ B05    XRA A    STA SCA B05:  JMP A04   ;В МОДУЛЬ ПЕРДАЧИ ;  (НА ВВОД-ВЫВОД ЧЕРЕЗ ППА) ;"""""""""""""" 2 ТИП АНАЛИЗА """"""""""""" T2:   LDA SCA   ;СЧЕТЧИК ЦИКЛОВ АНАЛИЗА    ORA A    JNZ B06    CALL RP9 ;&&&&&&& ФОРМИРОВАНИЕ ТАБЛИЦЫ ПРИРАЩЕНИЙ &&&&&&    LDA KOL   ;РАЗМЕР ТАБЛ.ПР.    STA RDTH    LHLD RF   ;ПАМЯТЬ РЕЗ.ВЫЧИТАТЕЛЯ    LXI D,DT  ;АДР.ТАБЛ.ПРИРАЩЕНИЙ B10:  MOV C,M    INX H    MOV B,M    INX H    PUSH H    PUSH B    POP H    CALL DL2    CALL DL2    DAD B    INX H    INX H    INX H    INX H    INX H    MOV A,L    STAX D    INX D    MOV A,H    STAX D    INX D    POP H    LDA RDTH    DCR A    STA RDTH    JNZ B10    JMP B14  IY:LDA KOL   ;ОБЩEЕ КОЛ-ВО ВХОДОВ    STA DSV   ;ДЕКРЕМЕНТНЫЙ СЧ. ВХОДОВ    LDA P1    ANI 80H    STA P1 B01:   CALL ACP    MOV M,E    INX H    MOV M,D    INX H    LDA P1    INR A    STA P1    LDA DSV    DCR A    STA DSV    JNZ B01    RET ;$$$$$$ ПОДПРОГРАММА ДЕЛЕНИЯ НА 2 $$$$$$ DL2:  MOV A,C    RAR    JNC B07    CMC B07:  MOV C,A    MOV A,B    RAR    JNC B08    CMC    MOV B,A    MVI A,80H    ORA C    MOV C,A    JMP B11 B08:  MOV B,A B11:  RET  ;HL-АДРЕС НАЧАЛА ТЕКСТА ;BC-АДРЕС КОНЦА ТЕКСТА ;DE-АДРЕС НАЧАЛА ЧИСЛОВОГО БЛОКА ;(ТЕКСТ В ТЕЛЕТАЙПНЫХ КОДАХ)  ;D7=1 - ЗАПРОС НА ПРЕОБРАЗОВАНИЕ ЭЛЕМЕНТА ;ЧИСЛОВОГО БЛОКА. ;В ЭТОМ СЛУЧАЕ D0-D2 - КОЛИЧЕСТВО РАЗРЯДОВ  ;ПЕРЕД ЗАПЯТОЙ ZPT   EQU 06H RGCF  EQU 1BH TTYP:  PUSH PSW    INX B @61:  MOV A,M    ANI 80H    JNZ @60    MOV A,M    CALL TELETYPE @67:  INX H    MOV A,H    CMP B    JNZ @61    MOV A,L    CMP C    JNZ @61    POP PSW    RET @60:  MOV A,M    ANI 0FH    STA @63    MVI A,RGCF    CALL TELETYPE    PUSH H    PUSH B    XCHG    MOV C,M    INX H    MOV B,M    INX H    XCHG    CALL KP    PUSH B    MOV A,B    ANI 0F0H    RRC    RRC    RRC    RRC    CALL EA    POP B    DCX SP    DCX SP    MOV A,B    ANI 0FH    CALL EA    POP B    DCX SP    DCX SP    MOV A,C    RRC    RRC    RRC    RRC    ANI 0FH    CALL EA    POP B    MOV A,C    ANI 0FH    CALL EA    POP B    POP H    JMP @67  EA:   LXI H,RX    MVI B,00H    MOV C,A    DAD B    MOV A,M    CALL TELETYPE    LDA @63    DCR A    STA @63    JNZ @65    MVI A,ZPT    CALL TELETYPE @65: RET RX:DB  0DH    DB  1DH    DB  19H    DB  10H    DB  0AH    DB  01H    DB  15H    DB  1CH    DB  0CH    DB  03H  ;ПЕРЕДАЧА ТЕЛЕТАЙПН. КОДА (2-ЧАСТОТН.) F1 EQU 57 ;1126 ГЦ F0 EQU 50 ;1276 ГЦ Z1 EQU 45 Z0 EQU 51 ;50 БОД TELETYPE:PUSH B       PUSH D      PUSH H      MOV  C,A       CALL NUL      MVI  B,05H CIKL:   ANI  10H      CZ   NUL      CNZ  EDIN      MOV  A,C      RLC      MOV  C,A      DCR  B      JNZ  CIKL      CALL EDIN      CALL EDIN      POP  H      POP  D      POP  B      RET NUL:MVI  H,Z0      MVI  E,F0      STA  6000H      JMP  SIGN EDIN:  MVI  H,Z1      MVI  E,F1      STA  5800H SIGN: PUSH PSW @33: MOV  D,E TON: DCR  D      JNZ  TON      STA  7000H  ;ПЕРЕКЛ.ТРИГЕРА      DCR  H      JNZ  @33      POP  PSW      RET  ;ДВОИЧНО-ДЕС.ПРЕОБР. KP:  PUSH D      PUSH H      PUSH PSW      MVI  A,0FFH      STA  @58      LXI  H,0000H      DAD  SP      SHLD @50      LXI  H,@56      MOV  A,C      ANI  0FH      MOV  E,A      MVI  D,00H      DAD  D      MOV  A,M      STA  @51      MVI  H,00H      MOV  A,C      RRC      RRC      RRC      RRC      ANI  0FH      MOV  L,A      DAD  H      LXI  D,@55      DAD  D      SPHL      POP  H      SHLD @52      MVI  H,00H      MOV  A,B      ANI  0FH      MOV  L,A      DAD  H      LXI  D,@54      DAD  D      SPHL      POP  H      SHLD @53      LDA  @51      LHLD @52      MVI  B,00H      MOV  C,A @57: MOV  A,L      STA  MB      MOV  A,H      STA  SB      DAD  B      LDA  MB      ADD  C      MOV  A,L      DAA      MOV  E,A      MVI  D,00H      JNC  S      MOV  A,L      ANI  0FH      DAA      RRC      RRC      RRC      RRC      ANI  0FH      MOV  D,A      MOV  A,L      RRC      RRC      RRC      RRC      ANI  0FH      ADI  00H      DAA      ADD  D      DAA      RRC      RRC      RRC      RRC      ANI  0FH      MOV  D,A S:   LDA  SB      ADD  B      MOV  A,H      DAA      ADD  D      DAA      MOV  D,A      LDA  @58      ORA  A      JZ   @59      XRA  A      STA  @58      LHLD @53      MOV  B,D      MOV  C,E      JMP  @57 @59: MOV  B,D      MOV  C,E      LHLD @50      SPHL      POP  PSW      POP  H      POP  D      RET @54: DW   0000H      DW   256H      DW   512H      DW   768H      DW   1024H      DW   1280H      DW   1536H      DW   1792H      DW   2048H      DW   2304H      DW   2560H      DW   2816H      DW   3072H      DW   3328H      DW   3584H      DW   3840H @55: DW   0000H      DW   16H      DW   32H      DW   48H      DW   64H      DW   80H      DW   96H      DW   112H      DW   128H      DW   144H      DW   160H      DW   176H      DW   192H      DW   208H      DW   224H      DW   240H @56: DB   00H      DB   1H      DB   2H      DB   3H      DB   4H      DB   5H      DB   6H      DB   7H      DB   8H      DB   9H      DB   10H      DB   11H      DB   12H      DB   13H      DB   14H      DB   15H  ;16-РАЗР.ВЫЧИТАТЕЛЬ MF:PUSH PSW    XRA A    STA PP    SHLD @1F1;@1F1 И @1F2     XCHG    SHLD @2F1;@2F1 И @2F2     INX B     INX B    MOV A,B    CMA    MOV H,A    MOV A,C    CMA    MOV L,A    INX H    SHLD @1FK1;@1FK1 И @1FK2     LHLD RF    SHLD @3F1 ;@3F1 И @3F2    LXI H,00H    DAD SP    SHLD STEK CKL: LHLD @1F1     SPHL    POP B    LXI H,00H     DAD SP    SHLD @1F1    LHLD @2F1    SPHL    POP D    LXI H,00H    DAD SP    SHLD @2F1    XCHG    MOV A,B    ANI 0FH    MOV B,A    MOV A,H    ANI 0FH    CMA    MOV H,A    MOV A,L    CMA    MOV L,A    INX H    MOV A,H    ORA L    JZ  IB    DAD B    JC  IA    MVI A,0FFH    STA PP    MOV A,H    CMA    MOV H,A    MOV A,L    CMA    MOV L,A    INX H IA:XCHG    LHLD @3F1    INX H    INX H    SPHL    PUSH D    LXI H,02H    DAD SP    SHLD @3F1    LHLD @1FK1    XCHG    LHLD @1F1    DAD D    MOV A,H    ORA A    JNZ CKL    MOV A,L    ORA A    JNZ CKL UI:LHLD STEK    SPHL    POP PSW    RET  IB:DAD B    NOP    JMP IA  DK:MOV A,H    CMA    MOV H,A    MOV A,L    CMA    MOV L,A    INX H    RET  ACP: PUSH H    PUSH B    PUSH PSW    LDA  P1    STA  PB1     LDA  P1    ORI  80H    STA  PB1     ;ПУСК АЦП    POP  H    PUSH H    POP  H    PUSH H    POP  H    PUSH H    POP  H    PUSH H    POP  H    PUSH H    LDA  P1    ANI  7FH    STA  PB1    POP  H    PUSH H    POP  H    PUSH H    POP  H    PUSH H    POP  H    PUSH H    POP  H    PUSH H     LDA  MZR    MOV  E,A    LDA  SZR    ANI  3    MOV  D,A    CPI  3    JNZ  N56    MOV  A,E    ADI  10    JNC  N56    LXI D,0FFFFH ;ПЕРЕГРУЗКА N56:POP PSW    POP B    POP H    RET    END  

ПЕРЕЧНИ ЭЛЕМЕНТОВ К СХЕМАМ ПРИНЦИПИАЛЬНЫМ ЭЛЕКТРИЧЕСКИМ  ПЛАТА ПРОЦЕССОРНАЯ  РЕЗИСТОРЫ           R1, R2     МЛТ-0,25          1К0           R3         МЛТ-0,25          200           R4, R5     МЛТ-0,25          1К2           R6, R7     МЛТ-0,5           510           R8, R9     МЛТ-0,25          1К0  КОНДЕНСАТОРЫ           C1, C2    КТ-1               1000ПФ           C3        КТ-1               330ПФ           C4, C5    КТ-1               390ПФ           C6-C12    КЛС                100Н  ТРАНЗИСТОРЫ           VТ1, VТ2   КТ315И  МИКРОСХЕМЫ           DD1       К155ЛА3           DD2       К155ТМ2           DD3       К155ИД3           DD4       КР580ВВ55           DD5       КР537РУ8Б1                  ВОЗМОЖНА                                                 УСТАНОВКА                                                 К537РУ9А,                                                  К537РУ9Б           DD6       К573РФ2           DD7       КР580ВМ80А           DD8, DD9  К555ЛР11           Z1    РЕЗОНАТОР КВАРЦЕВЫЙ   8МГЦ   ПЛАТА ДОПОЛНИТЕЛЬНЫХ ЭЛЕМЕНТОВ  РЕЗИСТОРЫ          R1         МЛТ-0,25           1К0          R2         МЛТ-0,5            160          R3         МЛТ-0,25           20К          R4         МЛТ-0,25           2К0          R5         МЛТ-0,25           2К4          R6         МЛТ-0,25           27К          R7         МЛТ-0,25           5К6          R8         МЛТ-0,5            820          R9         МЛТ-0,25           100К          R10        МЛТ-0,25           3К6          R11        СП5-3              1К0          R12        МЛТ-0, 25          510          R13        СП5-3              200  КОНДЕНСАТОРЫ          C1-C8      КЛС                100Н          C9         К50-6              200МКФ 10В          C10        К50-6              100МКФ 10В          C11-C13    КЛС                100Н          C14        К50-6              100МКФ 10В          C15        К50-6              100МКФ 10В          C16        К50-6              100МКФ 25В  ДИОДЫ          VD1        КД510А          VD2        КС156А  МИКРОСХЕМЫ          DD1        К555ЛР11          DD2        К155ЛН1          DD3, DD4   К155ТВ1          DD5        К155ЛН1          DD6        К155ЛА7          DD7        К155ЛИ1          DD8        К1113ПВ1          DD9, DD10  К155ЛП11          DD11       К155ТМ2          DD12-DD20  К561КП2          DA1        К140УД7   УЗЕЛ СОЕДИНИТЕЛЬНЫЙ  РЕЗИСТОРЫ          R1         МЛТ-0,25           3К3          R2         МЛТ-0,25           16К  ДИОДЫ          VD1, VD2   КД510А          VD3-VD8    Д2В  КНОПКИ          SB1-SB6    П2К                         С ФИКСА-                                                 ЦИЕЙ          SB7        П2К                         БЕЗ ФИК-                                                 САЦИИ 


ссылка на оригинал статьи https://habr.com/ru/articles/860944/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *