Николай Ситнов
Статья может оказаться интересной любителям ретро-электроники. В ней описывается устройство телеметрии, разработанное и созданное автором в конце восьмидесятых годов прошлого века. Устройство представляет собой аппаратно-программный комплекс, основой которого является микропроцессор КР580ВМ80А. Передача данных осуществлялась по телефонному каналу в виде частотно-модулированного сигнала, в коде МТК-2. Для визуализации принятых данных использовался телетайп.
Краткая история проекта
Создание устройства началось в 1987 году. В то время автор работал на предприятии, осуществляющем телевизионное вещание, где среди прочего оборудования имелись так называемые микроретрансляторы – небольшие приемопередатчики, устанавливаемые на границе зоны уверенного приема сигналов мощных станций. Работали они в необслуживаемом режиме. Появилась идея организовать дистанционный контроль их состояния.
Помимо этого, актуальной представлялась задача непрерывного автоматического мониторинга режимов работы различных узлов контролируемого оборудования с целью локализации «плавающих» неисправностей – то есть таких, которые проявляются в виде редких случайных отказов с последующим самовосстановлением. Подобные неисправности, зачастую, крайне трудно поддаются диагностике даже в лабораторных условиях. А уж тем более – тогда, когда объект расположен в десятках километров от центра обслуживания, и доступ к нему затруднен.
На создание устройства ушло более двух лет. Оно было разработано и изготовлено силами автора, в домашних условиях. Узнав о разработке, руководство предприятия проявило крайнюю заинтересованность в ней, пообещав всестороннее содействие и поддержку, в том числе – и при организации мелкосерийного производства. Однако, в то время промышленное изготовление печатных плат было слишком дорогостоящим делом, и выпуск даже небольшой серии не состоялся. Свою роль в снижении привлекательности проекта сыграла и слабая распространенность телефонной связи в местах расположения оборудования, которое предполагалось контролировать.
Тем не менее, один экземпляр устройства был внедрен, и проработал на объекте пять лет – до 1995 года. После этого оборудование перенесли в другое место, где возникли трудности с организацией телефонной связи. Устройство было выведено из эксплуатации и больше по назначению не использовалось.
При рассмотрении устройства нельзя не упомянуть и о приемной установке, которая применялась для получения от него данных. В состав установки входили пульт оператора, демодулятор и телетайп. Процесс приема данных предполагал участие человека. Пульт оператора имел выключатель телефонной линии, имитирующий снятие трубки, а также номеронабиратель. Телеграфный демодулятор был изготовлен по описанию из журнала «Радио» [1]. Сигнал с его выхода, посредством реле-повторителя, подавался на аппарат Т-63, либо РТА-80. Кроме того, был предусмотрен звуковой контроль процессов установления соединения и приема данных.
Технические характеристики устройства
Измеряемый параметр …………………………………. напряжение
Пределы измеряемого напряжения, В …………… –5 ÷ +5
Количество входов ……………………………………….. от 1 до 64
Выходной код ………………………………………………. МТК-2
Скорость, Бод ………………………………………………. 50
Вид модуляции выходного НЧ сигнала ………….. ЧМ, АМ
Частота сигнала, соответствующая 1, Гц ……….. 1126
Частота сигнала, соответствующая 0, Гц ……….. 1276
Напряжения питания, В ………………………………… +12, +5, –5, –15
Внешний вид устройства телеметрии показан на рис.1.
Устройство телеметрии (далее для краткости – устройство) предназначено для осуществления дистанционного контроля работы различной аппаратуры, а также для локализации неисправностей, проявляющихся в виде редких случайных сбоев в ее работе.
Устройство осуществляет:
-
Измерение напряжений и передачу их значений по телефонному каналу посредством НЧ-сигнала, модулированного телетайпным сигналом в коде МТК-2;
-
Анализ временной стабильности параметров в двух режимах и формирование специальной таблицы;
-
Передачу таблицы вышеуказанным способом;
-
Обмен данными с ЭВМ в параллельном коде.
Сеанс передачи данных начинается при поступлении на специальный вход сигнала «запрос передачи». Этот сигнал должен быть сформирован дополнительными средствами, состав и назначение которых зависит от конкретного применения устройства, а также от вида используемого канала связи. Например, в случае применения коммутируемого телефонного канала этот сигнал создается блоком сопряжения с АТС при поступлении от телефонной станции вызывного напряжения.
В ответ на «запрос передачи» устройство формирует сигнал «подтверждение передачи». В рассматриваемом случае он подается на блок сопряжения с АТС и вызывает имитацию поднятия трубки телефонного аппарата. Через некоторое время начинается передача данных, которая продолжается, пока они не будут переданы полностью. Состояние принимающей стороны (преждевременный отбой) при этом не контролируется. По окончании сеанса сигнал «подтверждение передачи» снимается, чем обеспечивается отбой телефонного соединения со стороны устройства.
В зависимости от конкретного применения, устройством могут быть задействованы от одного до шестидесяти четырех входов. Программа автоматически настраивается на используемое их количество. Для этого к последнему входу должен быть подключен источник заведомо ненулевого напряжения. Устройство содержит специальный источник напряжения –1 В, который дополнительно служит для контроля масштаба преобразования.
Имеется выход телетайпного сигнала (логические уровни ТТЛ). Существуют широкие возможности расширения системы.
Устройство состоит из следующих частей:
-
Процессорная плата,
-
Плата дополнительных элементов,
-
Соединительный узел,
-
Блок питания.
Процессорная плата представляет собой простейшую микро-ЭВМ и является функционально законченным блоком общего применения. Плата дополнительных элементов содержит входной коммутатор, АЦП, формирователи различных сигналов. Блок питания обеспечивает устройство напряжениями +12 В, +5 В, –5 В и –15 В и в данной статье рассматриваться не будет.
Процессорная плата имеет следующие технические характеристики:
Центральный процессор ……………………………….КР580ВМ80А
Емкость ОЗУ, кбайт ……………………………………….2
Емкость ПЗУ, кбайт ……………………………………….2
Частота тактовых сигналов, МГц ……………………2
Напряжения питания, В …………………………………+12, +5, –5
Принципиальная электрическая схема процессорной платы изображена на рисунке 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 соответственно.
В отличие от процессорной платы, плата дополнительных элементов является специфической для данного устройства и обеспечивает выполнение следующих функций:
-
формирование сигнала «сброс»,
-
выбор источника входного напряжения (коммутацию входных цепей),
-
обеспечение достаточно высокого сопротивления измерительных входов,
-
аналого-цифровое преобразование,
-
формирование тонального сигнала,
-
формирование телетайпного сигнала,
-
некоторые другие функции, рассмотренные далее, в процессе описания. Принципиальная электрическая схема платы дополнительных элементов представлена на рисунке 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.
Переключение режимов устройства осуществляется посредством шести кнопок с раздельной фиксацией, входящих в состав соединительного узла (рис. 8). По мере необходимости, программа устанавливает логический 0 на линии порта «B» ППА, соответствующей той или другой кнопке, и анализирует состояние нулевого разряда порта «C», к которому все кнопки подключены через диоды VD1–VD6. Порт «B» используется также для выдачи управляющих сигналов на коммутатор. Сигнал «запрос передачи» приходит на вход PC2. К нему подключена схема защиты от статических зарядов (VD7, VD8), расположенная также на соединительном узле. Для формирования этого сигнала достаточно соединить соответствующий вход устройства с общим проводом. Здесь же расположена и кнопка «сброс» (SB7).
Изображение соединительного узла приведено на рисунке 9. На рисунках 10, 11 и 12 показана конструкция устройства.
Программа, прошитая в ПЗУ DD6 процессорной платы, написана на языке ассемблера и задает весь функционал данного устройства. Алгоритм ее работы изображен на рисунке 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.
Но тестирование этого комплекса началось всего лишь за неделю до вывода устройства из эксплуатации по указанной ранее причине. Работы по данному направлению приостановились из-за отсутствия перспективы быстрого внедрения, а в дальнейшем – прекратились совсем.
Конечно же, по прошествии трех с половиной десятилетий с момента разработки устройства, оно едва ли может рассматриваться как нечто практически полезное для решения актуальных задач удаленного мониторинга. Но, возможно, найдутся любители электронной старины, желающие повторить рассмотренную конструкцию. Тем более, что необходимые для этого микросхемы до сих пор можно приобрести в магазинах. Автор желает им успехов в изготовлении данного устройства телеметрии.
Список источников
-
Демиденко А. Низкочастотный RTTY конвертер.— Радио, 1985, № 9, с. 19 — 22.
-
Зеленко Г., Панов В., Попов С. Микросхема КР580ВВ55.— Радио, 1983, № 6, с. 42-46.
-
Горшков Д., Зеленко Г., Озеров Ю., Попов С. Персональный радиолюбительский компьютер «Радио-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/
Добавить комментарий