Николай Ситнов
Статья может оказаться интересной любителям ретро-электроники. В ней описывается устройство телеметрии, разработанное и созданное автором в конце восьмидесятых годов прошлого века. Устройство представляет собой аппаратно-программный комплекс, основой которого является микропроцессор КР580ВМ80А. Передача данных осуществлялась по телефонному каналу в виде частотно-модулированного сигнала, в коде МТК-2. Для визуализации принятых данных использовался телетайп.
Краткая история проекта
Создание устройства началось в 1987 году. В то время автор работал на предприятии, осуществляющем телевизионное вещание, где среди прочего оборудования имелись так называемые микроретрансляторы – небольшие приемопередатчики, устанавливаемые на границе зоны уверенного приема сигналов мощных станций. Работали они в необслуживаемом режиме. Появилась идея организовать дистанционный контроль их состояния.
Помимо этого, актуальной представлялась задача непрерывного автоматического мониторинга режимов работы различных узлов контролируемого оборудования с целью локализации «плавающих» неисправностей – то есть таких, которые проявляются в виде редких случайных отказов с последующим самовосстановлением. Подобные неисправности, зачастую, крайне трудно поддаются диагностике даже в лабораторных условиях. А уж тем более – тогда, когда объект расположен в десятках километров от центра обслуживания, и доступ к нему затруднен.
На создание устройства ушло более двух лет. Оно было разработано и изготовлено силами автора, в домашних условиях. Узнав о разработке, руководство предприятия проявило крайнюю заинтересованность в ней, пообещав всестороннее содействие и поддержку, в том числе – и при организации мелкосерийного производства. Однако, в то время промышленное изготовление печатных плат было слишком дорогостоящим делом, и выпуск даже небольшой серии не состоялся. Свою роль в снижении привлекательности проекта сыграла и слабая распространенность телефонной связи в местах расположения оборудования, которое предполагалось контролировать.
Тем не менее, один экземпляр устройства был внедрен, и проработал на объекте пять лет – до 1995 года. После этого оборудование перенесли в другое место, где возникли трудности с организацией телефонной связи. Устройство было выведено из эксплуатации и больше по назначению не использовалось.
При рассмотрении устройства нельзя не упомянуть и о приемной установке, которая применялась для получения от него данных. В состав установки входили пульт оператора, демодулятор и телетайп. Процесс приема данных предполагал участие человека. Пульт оператора имел выключатель телефонной линии, имитирующий снятие трубки, а также номеронабиратель. Телеграфный демодулятор был изготовлен по описанию из журнала «Радио» [1]. Сигнал с его выхода, посредством реле-повторителя, подавался на аппарат Т-63, либо РТА-80. Кроме того, был предусмотрен звуковой контроль процессов установления соединения и приема данных.
Технические характеристики устройства
Измеряемый параметр ........................................ напряжение
Пределы измеряемого напряжения, В ............... –5 ÷ +5
Количество входов ............................................... от 1 до 64
Выходной код ....................................................... МТК-2
Скорость, Бод ....................................................... 50
Вид модуляции выходного НЧ сигнала .............. ЧМ, АМ
Частота сигнала, соответствующая 1, Гц ........... 1126
Частота сигнала, соответствующая 0, Гц ........... 1276
Напряжения питания, В ....................................... +12, +5, –5, –15
Внешний вид устройства телеметрии показан на рис.1.
Устройство телеметрии (далее для краткости – устройство) предназначено для осуществления дистанционного контроля работы различной аппаратуры, а также для локализации неисправностей, проявляющихся в виде редких случайных сбоев в ее работе.
Устройство осуществляет:
1. Измерение напряжений и передачу их значений по телефонному каналу посредством НЧ-сигнала, модулированного телетайпным сигналом в коде МТК-2;
2. Анализ временной стабильности параметров в двух режимах и формирование специальной таблицы;
3. Передачу таблицы вышеуказанным способом;
4. Обмен данными с ЭВМ в параллельном коде.
Сеанс передачи данных начинается при поступлении на специальный вход сигнала "запрос передачи". Этот сигнал должен быть сформирован дополнительными средствами, состав и назначение которых зависит от конкретного применения устройства, а также от вида используемого канала связи. Например, в случае применения коммутируемого телефонного канала этот сигнал создается блоком сопряжения с АТС при поступлении от телефонной станции вызывного напряжения.
В ответ на "запрос передачи" устройство формирует сигнал "подтверждение передачи". В рассматриваемом случае он подается на блок сопряжения с АТС и вызывает имитацию поднятия трубки телефонного аппарата. Через некоторое время начинается передача данных, которая продолжается, пока они не будут переданы полностью. Состояние принимающей стороны (преждевременный отбой) при этом не контролируется. По окончании сеанса сигнал "подтверждение передачи" снимается, чем обеспечивается отбой телефонного соединения со стороны устройства.
В зависимости от конкретного применения, устройством могут быть задействованы от одного до шестидесяти четырех входов. Программа автоматически настраивается на используемое их количество. Для этого к последнему входу должен быть подключен источник заведомо ненулевого напряжения. Устройство содержит специальный источник напряжения –1 В, который дополнительно служит для контроля масштаба преобразования.
Имеется выход телетайпного сигнала (логические уровни ТТЛ). Существуют широкие возможности расширения системы.
Устройство состоит из следующих частей:
1. Процессорная плата,
2. Плата дополнительных элементов,
3. Соединительный узел,
4. Блок питания.
Процессорная плата представляет собой простейшую микро-ЭВМ и является функционально законченным блоком общего применения. Плата дополнительных элементов содержит входной коммутатор, АЦП, формирователи различных сигналов. Блок питания обеспечивает устройство напряжениями +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К БЕЗ ФИК-
САЦИИ
Автор: NSitnov