Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум по МП-системам1.doc
Скачиваний:
22
Добавлен:
25.11.2019
Размер:
11.75 Mб
Скачать

Лабораторный практикум по изучению МП-систем

МП – система «Скважинный импульсный генератор нейтронов - ИГН»

ИГН представляет собой МП – систему управления возбуждением импульсного потока нейтронов в скважинном приборе – импульсном генераторе нейтронов с последующим, через заданные задержки времени ТЗ1 и ТЗ2 , подсчетом в окнах заданной длительности ТК1 и ТК2 вторичных гамма – квантов излучения от слагающих скважину горных пород и передачу полученных численных значений в наземную часть аппаратуры для регистрации и обработки (см. Рис.1).

Рис. 1. Временная диаграмма одного цикла работы МП-системы «АИНК-36»

Решаемые геологические задачи:

  1. оценка характера насыщения коллекторов независимо от минерализации пластовых вод;

  2. литологическое расчленение разреза скважин;

  3. оценка коллекторских свойств горных пород;

  4. привязка к разрезу скважины;

  5. определение интервалов поглощения и поступления воды в скважину;

6. качественная и количественная оценка скорости потока флюида по стволу скважины.

Для решения указанных задач аппаратура должна обеспечить:

  1. генерирование нейтронов в импульсном режиме;

  2. регистрацию изменения интенсивности гамма-излучения радиационного захвата (ГИРЗ) по показаниям каналов импульсного нейтронного гамма-каротажа (ИНГК);

  3. активацию ядер кислорода, входящих в состав горных пород;

  4. регистрацию изменения интенсивности гамма-излучения наведенной активности кислорода по показаниям каналов кислородного активационного метода (КНАМ);

  5. регистрацию изменения интенсивности естественного гамма-излучения горных пород по показаниям каналов гамма-каротажа (ГК).

Технические параметры.

  1. Величина интегрального потока быстрых нейтронов (трубка ТНТ-1415), не менее - 6*10Е8 н/с;

  2. Частота запуска излучателя – 20 Гц.(Тц=50мс.);

  3. Временная задержка от запуска излучателя до начала регистрации ГИРЗ -0-1000 мкс.;

  4. Число каналов регистрации ГИРЗ - 16;

  5. Длительность каналов ГИРЗ - 0-250 мкс.(Тк1);

  6. Временная задержка от запуска излучателя до начала регистрации данных КНАМ – 8 мс;

  7. Число каналов регистрации данных КНАМ - 21;

  8. Длительность каналов КНАМ – 2 мс.(Тк2);

  9. Разрядность счетчиков регистрации канальных импульсов ГИРЗ и КНАМ-8;

  10. Разрядность ЦАП - 8;

  11. Напряжение питания, не более 300 В постоянного тока;

  12. Диаметр прибора – 36 мм.

Блок-схема скважинного прибора представлена на рис.2. Он состоит из следующих узлов: детекторов D1 и D2, усилителей – преобразователей тока в напряжение У1 и У2, компараторов энергетического «окна» КОМ1 и КОМ2,счетчиков импульсов С1 и С2, цифро-аналоговых преобразователей ЦАП1 и ЦАП2, микропроцессора МП, памяти программ ППЗУ, периферийной БИС ввода/вывода информации ПБИС, приемо-передающей цепи ППЦ, блока управления питанием БУП, блока запуска нейтронной трубки БЗ, излучателя нейтронов ИН и источников питания ИП на напряжения +/-5В, +/-12В, +30В, 2кВ. Детекторы D1 и D2 состоят из сцинтилляционного кристалла NaJ размером 18160 и 1640 соответственно и фотоэлектронных усилителей ФЭУ-102, попарно помещенных в отдельные корпуса. Выходными сигналами детекторов являются импульсы тока длительностью 0,7-1,0 мкс.

На рис.3 представлена принципиальная электрическая схема скважинного генератора нейтронов, а на рис. 4 - 6 схемы основных узлов прибора.

Усилители У1 и У2 реализованы (на операционном усилителе DA1 для У1) (рис.4) по одинаковым схемам для обоих зондов. Усилители предназначены для согласования высокоомного выхода ФЭУ с низкоомными входами компараторов, для чего они выполнены по схеме преобразования импульсов тока в импульсы напряжения.

Компараторы КОМ1 и КОМ2 (рис.4) предназначены для формирования энергетического «окна» при регистрации гамма-излучения наведенной активности кислорода и каждый состоит из 3-х микросхем (DA2, DA3 и DD1 для КОМ1) (см. рис.4). Установка порогов срабатывания компараторов по нижнему и верхнему уровню окна производится напряжениями U1 и U2 соответственно.

Эти напряжения вырабатываются с помощью цифроаналоговых преобразователей ЦАП1 и ЦАП2,установленных в блоке ЦАП (рис.5). Выходные сигналы компараторов DA2 и DA3 управляют триггерами DD1.1 и DD1.2, выходы которых C и SE поступают в схему счетчиков, расположенных на плате процессора (рис.6). ЦАП1 и ЦАП2 построены на микросхемах DD7, DA1,DA3 и DD8, DA2, DA4 соответственно. Регистр DD7 служит для приема и хранения задаваемого оператором кода нижнего уровня энергетического «окна», а регистр DD8 – верхнего уровня «окна». В соответствии с хранящимися в регистрах кодами, микросхемы ЦАП DA1 и DA2 совместно с усилителями DA3 и DA4 вырабатывают напряжения U1 и U2 для компараторов.

Счетчики С1 и С2 (рис.6) реализованы для одного зонда на микросхемах DD4 (порт А и таймер), DD5 и DD6; а для другого зонда на микросхемах DD4 (порт В и таймер), DD7 и DD8. Счетчики служат для постоянного счета проходящих через энергетическое «окно» импульсов напряжения, возникающих при регистрации гамма-излучения. Съем информации со счетчиков производится «на лету» процессором через порты А и В по прерываниям от таймера, время работы которого задается оператором. Вычитание предыдущего отсчета из текущего и передача результата в соответствующую ячейку памяти (канал) дает распределение счетов по времени (по каналам с 1-го по 16-й) внутри одного цикла (после одного запуска излучателя нейтронов). Поцикловое и поканальное суммирование счетов в ячейках памяти за время прохождения заданного интервала по глубине (обычно 40 см) дает, наряду с временным, распределение импульсов от ГИРЗ по глубине, позволяющее на поверхности вычислять искомые параметры Тпл и τпл с целью получения каротажной диаграммы. Цифровые значения счетов в каналах с помощью телеметрической системы (микросхемы DD1и DD4 на рис. 5) передаются в наземный прибор.

В качестве памяти программ в скважинном приборе применена микросхема DD3 (К573РФ5), в которой размещается программа функционирования скважинного прибора в 4-х режимах, задаваемых оператором.

При включении аппаратуры, а также по желанию оператора прибор переходит в режим теста, при котором из скважинного прибора в наземный с частотой 100 Гц поступает кодовая комбинация 5020Н. Это – первый режим. Во втором режиме (ГК) производится регистрация естественного гамма-излучения, а в третьем (ИНГК) с частотой 20 Гц. запускается излучатель нейтронов и в промежутке между запусками регистрируется вторичное гамма-излучение в интервалах ГИРЗ (гамма-излучение радиационного захвата) и НАК (наведенной активности кислорода).

При каждом запуске через заданную оператором задержку, для исключения полной засветки датчика, регистрируются счета импульсов ГИРЗ в 16-ти последовательных интервалах времени (каналах), длительность которых также задается оператором. Через 8 мс после запуска излучателя, когда интенсивность импульсов ГИРЗ спадет до естественного фона гамма-излучения, начинается подсчет импульсов излучения НАК (наведенной активности кислорода) в заданном энергетическом «окне» (приблизительно от 3-х до 10 МэВ), который продолжается до следующего запуска излучателя, т.е. 42 мс.(Рис.7). Затем указанные операции повторяются с суммированием и запоминанием соответствующих счетов в выделенных ячейках оперативной памяти (микросхема DD4 на рис.51) в течение 1 сек. Из памяти каждую секунду полученная информация с помощью телесистемы передается в наземный прибор и далее в персональный компьютер для обработки.

Во втором режиме (ГК) производится непрерывный подсчет импульсов естественного излучения горных пород со съемом информации через каждые 10 мс и передачей в наземный прибор результатов суммирования в 5-ти последовательных двухбайтовых ячейках памяти 20-ти отсчетов, т.е. через каждые 200 мс числовые величины счета импульсов ГК за этот интервал времени запоминаются в 5-ти ячейках памяти и затем (через 1 сек) передаются в наземный блок для дальнейшей обработки.

Дополнительный режим (ГКС – гамма-каротаж спектрометрический) аналогичен второму и третьему с той разницей, что подсчет импульсов излучения производится в энергетических «окнах» характерных для изотопов калия (К), урана (U) и тория (Th).

Плата микропроцессора МП (см. рис.51) содержит микросхемы DD1 (собственно МП), DD2 (регистр адреса), DD9 (делитель) и DD4 (схема ОЗУ с портами ввода/вывода и таймером). При инициализации скважинного прибора МП функционирует в режиме, заданном оператором, по программе, команды которой выбираются с помощью регистра адреса DD2, а исполнение – с помощью портов ввода/вывода, чтение или запись информации в которые производится процессором.

Приемо-передающая цепь – ППЦ (рис.47) является скважинной частью примененной в приборе телесистемы и включает в себя кодер/декодер DD1, передатчик/приемник DD4 (рис.50) и трансформатор Т1 (установлен на шасси прибора) для согласования с геофизическим кабелем. Прием и передача информации осуществляется кодом «Манчестер-II» в соответствии с программой функционирования аппаратуры.

Излучатель нейтронов (ИН) VL1 предназначен для генерации импульсного потока быстрых нейтронов. В состав излучателя входят: нейтронная трубка ТНТ-1411 или ТНТ-1415, высоковольтные трансформаторы, ионный источник, резисторы защиты и поджига (см. рис.47).

В качестве наземного вторичного прибора используется компьютеризированный каротажный регистратор «Гектор», который в свою очередь связан с бортовым персональным компьютером типа «Notebook» по интерфейсу RS-232C. Функционирование комплекса – скважинный прибор, «Гектор» и персональный компьютер – осуществляется с помощью программного обеспечения, состоящего из двух частей: управляющей программы «LOG», находящейся в РС, и программы работы скважинного прибора, записанной в микросхеме ПЗУ DD3 (К573РФ5) на плате процессора (рис.51).

Блок-схема алгоритма работы скважинного прибора представлена на рис. 53.

Блоки 1-18 алгоритма реализуют следующие функции:

1. Режим инициализации: указание стека, программирование периферийной БИС, обнуление рабочего участка ОЗУ, программирование таймера на 10мс., ввод цифровых значений верхнего и нижнего уровней энергетического «окна», передача слова 5020Н в наземный прибор, останов (ожидание прерываний RST 7.5 от таймера или RST 5.5 от оператора каротажной станции).

2,3. Цикл длительностью 10мс. – режим цифрового теста. В блоке 2 установка «флага» - ячейку памяти 180ЕН в 1, аккумулятора А в 1, перенос содержимого А в регистр В с целью освобождения аккумулятора для текущих пересылок. В блоке 3 – пересылка слова 5020Н в наземный прибор, обнуление «флага» 180ЕН = 0, останов в ожидании прерываний 7.5 или 5.5.

4. Обработка прерывания 5.5: приём от оператора 6-ти управляющих слов. Задержка введена для ожидания прихода очередного слова, вызывающего прерывание 5.5.

5. Подготовительные операции к анализу принятых слов. Первый байт первого слова определяет режим работы генератора: ЕFН – режим регистрации естественного гамма-излучения; DFH – режим регистрации ГИРЗ и КНАМ. Анализ этих слов позволяет разделить алгоритм на две ветви: регистрацию естественного ГК и регистрацию ИНГК.

Режим ГК.

6. Программирование таймера на 10мс., ЦАП на верхний и нижний уровни энергетического «окна», «флага» 180ЕН в 1 и останов в ожидании прерывания 7.5.

7. Регистрация импульсов естественного γ-излучения (чтением портов 19Н и 1АН) в 10-ти последовательных ячейках ОЗУ (по пять двухбайтовых отсчетов, накопленных за 200мс.) для 2-х зондов – ячейки 1810Н, 1811Н,….., 1822Н, 1823Н. Передача накопленных данных в наземный прибор и повторение цикла – 5ячеек* 200мс.=1сек. Переход к п.6.

Error: Reference source not found

Рис.7. Блок-схема алгоритма работы скважинного прибора

Режим ИНГК.

8. Программирование верхнего и нижнего уровней энергетического «окна» в области ГИРЗ, «флага» ИНГК 180ЕН=02, проверка второго байта первого управляющего слова на разрешение запуска излучателя и, если разрешение есть, то - запуск, если нет, то переход на начало программы.

9. Запуск излучателя нейтронов, программирование таймера на время первой задержки Тзад1 и на первое канальное время Тк1. Указание области ОЗУ для данных (начальный адрес 18А4Н), затем останов в ожидании прерывания от Тзад1 (RST7.5).

10. Регистрация 1-го отсчета (после Тзад1) в области ГИРЗ по двум зондам в ячейки памяти с адресами 18А4Н и 18А5Н. Останов.

11. Регистрация отсчетов ГИРЗ по 16-ти каналам по двум зондам в область памяти 18А6 – 18С4Н.

12. Программирование таймера на время Тк2, верхнего и нижнего уровней энергетического «окна» в области КНАМ. Обработка зарегистрированного ГИРЗ (перенос данных из области памяти с 18А4Н в область с 1810Н с суммированием). Указание областей ОЗУ для дальнейшей работы – 18А4Н и 1850Н. Останов.

13. Регистрация 1-го отсчета в области КНАМ в ячейки 18А4Н и 18А5Н.

14. Регистрация 2-го отсчета в области КНАМ в ячейки 18А6Н И 18А7Н. Вычисление разностей 18А6Н – 18А4Н = ΔΝ1 и 18А7Н – 18А5Н = ΔΝ2 и перенос результатов в последовательные ячейки памяти с адреса 1850Н с суммированием по оставшимся 20-ти каналам. Проверка количества циклов (28Н – 14Н = 14Н = 20D).

15. «Флаг» 180ЕН в аккумулятор А и проверка прохождения последнего цикла 29Н.

16. Программирование количества циклов (ГИРЗ + КНАМ) 14Н раз, для чего отводим в качестве «флага» ячейку 180FH.

17. Повторяем (ГИРЗ + КНАМ) 14Н(20D) раз.

18. Пересылаем в наземный прибор накопленный файл данных объёмом А3Н байт (ГИРЗ + КНАМ), ограниченный маркерами начала файла – 9999 и конца файла – 3333. Установка «флагов» 180FН = 01, 180ЕН = 02, таймера на Тзад1 и Тк1, начала ОЗУ по адресу 1810Н и останов в ожидании прерывания 7.5 по концу Тзад1. Переход к п.8.

Для смены режима работы прибора необходимо произвести разовое выключение/ включение питания и вновь запрограммировать прибор.

Листинг программы по данному алгоритму представлен в Приложении 1.

Разработка и отладка программы производится с помощью программно-логической модели микропроцессора 8085 на персональном компьютере.

Приведенные описания принципиальной схемы прибора, блок-схемы алгоритма функционирования и листинга программы работы используются в лабораторном практикуме для выполнения индивидуального задания по лабораторной работе.

Цель работы. Изучение схемотехники и программирования МП-систем с использованием команд МП и языка ассемблер. Освоение различных способов адресации памяти и внешних устройств (портов).

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

Подготовка к выполнению работы. При подготовке к выполнению работы студент должен ознакомиться с технологией проведения ГИС с помощью приборов АИНК, представлять себе смысл решаемых при этом геологических задач, изучить структуру и принципиальную электрическую схему прибора, временную диаграмму поэтапного функционирования прибора и общую блок-схему алгоритма его работы по этой диаграмме. Необходимо знать и уметь применять при разработке МП – систем способов компоновки системы из готовых МП – узлов: памяти, связи с периферией, приема/передачи информации, адресации портов; при разработке и отладке ПО уметь применять средства разработки в виде кросс-ассемблера и программной модели МП i8085.

Порядок выполнения работы.

  1. Ознакомиться с вариантами лабораторной работы, оценить ее местоположение в структуре МП - системы и в общем ПО;

  2. Выделить в общей электрической схеме ту часть, которая относится к заданному варианту лабораторной работы, по схеме определить адреса используемых портов;

  3. Составить блок-схему алгоритма выполнения поставленной задачи, произвести программирование по алгоритму и сравнить программу с аналогичным фрагментом общего ПО на систему.

Индивидуальные задания. Разработать электрическую схему, алгоритм функционирования, составить блок-схему алгоритма, разработать программу на языке Ассемблер и произвести ее отладку в среде кросс-средств МП i8085 сравнением с общим ПО на систему для следующих фрагментов скважинной МП-системы «АИНК-36» (варианты заданий).

  1. Инициализация МП-системы, содержащей МП i8085, ОЗУ, таймер и порты ввода/вывода в виде МС КР1821РУ55 и кодера/декодера 588ВГ6 для взаимодействия верхним уровнем управления и контроля.

  2. Цифровое тестирование МП-системы с установкой признака тестирования и циклической его передачей на верхний уровень.

  3. Подготовительные работы к приему команд оператора после получения от него запроса на обслуживание.

  4. Прием команд оператора через кодер/декодер манчестерского кода 588ВГ6, подключенного в качестве периферийной БИС к МП i8085.

  5. Отправка маркера начала квитанции, сообщающего оператору о приходе информации и подтверждающей правильность принятых МП-системой команд оператора.

  6. Отправка квитанции через кодер/декодер из ОЗУ с помощью МП i8085. Определить содержание квитанции.

  7. Отправка маркера конца квитанции и подготовка к анализу принятого слова режима.

  8. Анализ принятой команды «Режим работы скважинного прибора».

  9. Подготовка к работе в режиме регистрации естественного гамма-излучения (ГК).

  10. Прием информации от датчиков в режиме регистрации естественного ГК.

  11. Обработка принятой информации в режиме регистрации естественного ГК.

  12. Формирование и передача в наземный блок выходного файла естественного ГК.

  13. Подготовка к работе в режиме импульсного нейтронного гамма-каротажа (ИНГК).

  14. Подготовка к регистрации гамма-излучения радиационного захвата (ГИРЗ).

  15. Регистрация гамма-излучения в области ГИРЗ.

  16. Обработка информации ГИРЗ при подготовке выходного файла ИНГК.

  17. Подготовка к регистрации вторичного гамма излучения в области наведенной активности кислорода (НАК).

  18. Регистрация информации в области НАК.

  19. Обработка информации НАК при подготовке выходного файла ИНГК.

  20. Формирование и передача в наземный блок выходного файла ИНГК.

Отчет по лабораторной работе должен содержать: фрагмент электрической принципиальной схемы МП-системы, соответствующий заданию по лабораторной работе, с описанием ее функционирования; блок-схему алгоритма решения поставленной задачи; программу на языке Ассемблер с подробными комментариями.

Пример выполнения лабораторной работы по варианту №10

«Прием информации от датчиков в режиме регистрации естественного ГК».

  1. Электрической принципиальной схемой для данного варианта является схема по рис.51, на которой представлены элементы, соответствующие заданию: счетчики DD5, DD6 и DD7, DD8, подключенные к портам А (адрес 19Н) и В (адрес 1АН) микросхемы 1821RU55 (адрес 10Н), таймер МС 1821RU55 (порты 14Н и 15Н), запрограммированный на 10 мс с автоматической перезагрузкой, а также счетчик-делитель DD9 (МС 1533ИЕ7) с коэффициентом пересчета 3, МП 1821ВМ85А, буферный регистр младшего байта адреса 588ИР1 и ПЗУ 573РФ5.

  2. При приеме информации реализуем следующий алгоритм: 1.Заносим в ячейку памяти с адресом 180ЕН – флаг(код) режима работы прибора (тест - 01Н, ГК – 02Н, ИНГК – 03Н), добавляем 1, если получится 2, то это режим ГК;

  3. Читаем слово режима, заданное оператором, из ячейки памяти 1800Н и проверяем какой задан режим (слово EF соответствует режиму ГК, а слово DF - режиму ИНГК);

  4. Если назначен режим ГК, то реализуем следующую схему регистрации: т.к. таймер запрограммирован на циклический отсчет интервала 10 мс, то через этот интервал берем отсчеты 5 раз по двум зондам (порт 19Н и порт 1АН), каждый раз определяя разность текущего отсчета и предыдущего и помещая результат в последовательные ячейки памяти (начиная с 1810Н) с суммированием. Поскольку суммирование может привести к неоднократному переполнению ячейки памяти, отводим для суммы два байта памяти. Во второй байт переносим единицу переполнения с суммированием.

  5. Указанную последовательность регистрации можно отобразить следующим образом (табл.19):

Таблица 19

10 мс

10 мс

10 мс

10 мс

10 мс

ЯП(Н)

Содерж. ЯП

ЯП(Н)

Содерж. ЯП

ЯП(Н)

Содерж. ЯП

ЯП(Н)

Содерж. ЯП

ЯП(Н)

Содерж. ЯП

1810

1814

1818

181С

1820

1811

1815

1819

181D

1821

1812

1816

181А

181E

1822

1813

1817

181В

181F

1823

Здесь:

где (N1 N5) и(N/1 N/5) – соответственно содержимое счетчиков DD5, DD6 и DD7, DD8 через интервалы времени 10 мс по 1-му и 2-му зондам прибора;

CY=1 – единица переноса при переполнении ячейки памяти;

- сумма переносов, или старший байт суммы приращений ;

N0 и N/0 – содержимое счетчиков DD5, DD6 и DD7, DD8 в начальный момент времени;

  1. Указанная в табл. 19 последовательность отсчётов повторяется 20 раз, чтобы сформировать для обработки и получения каротажной диаграммы следующий файл, занимающий последовательные ячейки памяти (ЯП) с адреса 1810Н до 1823Н.

Рис.54 Выходной файл МП-системы ИГН (режим ГК)

В данном файле 5 отсчётов по двум зондам (порт 19Н и порт 1АН), каждый из которых представляет собой количество импульсов за время 200мс. (интенсивность импульсов), составляет последовательность пяти точек измерения за 1 сек. «привязанную» при получении на поверхности к текущей глубине нахождения прибора. Это позволяет построить графическую зависимость интенсивности гамма – излучения от глубины, т.е. каротажную диаграмму ГК.

  1. Приведённый выше алгоритм приёма информации от датчиков, регистрирующих естественное гамма – излучение, можно представить в виде граф – схемы (рис. 55)

  2. Программа на Ассемблере, соответствующая данной блок – схеме алгоритма в виде листинга, приведена ниже.

Рис.8. Блок схема алгоритма к заданию 10

ПРОГРАММА ПРИЕМА ИНФОРМАЦИИ В РЕЖИМЕ

РЕГИСТРАЦИИ ЕСТЕСТВЕННОГО ГК

003С JMP AR75 ;АНАЛИЗ ПPЕPЫВАНИЯ RST 7.5

AR75:

MVI A,0Fh

SIM

LDA 180Eh ;СЧЕТЧИК 7.5 УВЕЛИЧИВАЕМ НА ЕДИНИЦУ

INR A

STA 180Eh

MOV B,A

XRI 01h

JZ BEGIN1 ;ЕСЛИ ДА,ТО ПЕPЕХОД К ЦИФРОВОМУ ТЕСТУ

MOV A,B

XRI 02h

JNZ AR75E ;ЕСЛИ НЕТ,ТО ПЕPЕХОД К ГИРЗ

LDA 1800h ;D4,D5 = 01 ?

ANI 30h

XRI 01h

JNZ AR752 ;ЕСЛИ НЕТ,ТО ПЕPЕХОД К ПРОДОЛЖЕНИЮ ГК

ИНГК ГИРЗ

AR752:

LDA 1800h ;D5,D4 = 01 ИЛИ 11 ?

ANI 30h

JZ BEGIN ;ЕСЛИ НЕТ,ТО ПЕPЕХОД К НАЧАЛУ

LDA 180Fh ;СЧЕТЧИК ЦИКЛОВ PАВЕН НУЛЮ ?

CPI 00h

JNZ AR7522 ;ЕСЛИ НЕТ,TO ПЕPЕХОД К МЕТКЕ AR7522

LXI H,1810h ;ЕСЛИ ДА,ТО p.п.HL=1810h И В ТАЙМЕP ЗАПИСЫ-

LXI B,6710h ;ВАЕМ 10 мс. В PЕЖИМЕ 2

CALL TIME ;СТАPТ ТАЙМЕPА

LDA 180Fh ;УВЕЛИЧИВАЕМ СЧЕТЧИК ЦИКЛОВ НА ЕДИНИЦУ

INR A

STA 180Fh

LXI H,1810h

AR7522:

IN 19h ;ЧИСЛО С ПОPТА (A) ЗАПИСЫВАЕМ В p.B

MOV B,A

IN 1Ah ;ЧИСЛО С ПОPТА (B) ЗАПИСЫВАЕМ В p.C

MOV C,A

ЗАДАНИЕ 11(обработка принятой информации)

LDA 180Fh ;УВЕЛИЧИВАЕМ СЧЕТЧИК ЦИКЛОВ НА ЕДИНИЦУ

INR A

STA 180Fh

CPI 06h ;СЧЕТЧИК ЦИКЛОВ РАВЕН 7 ?

JZ AR7528 ;ЕСЛИ ДА,ТО ПЕРЕХОД К МЕТКЕ AR7528

AR7525:

MVI A,01h ;СЧЕТЧИК RST 7.5 = 1

STA 180Eh

MVI A,1ah ;УСТАНАВЛИВАЕМ МАСКУ НА RST 6.5

SIM

RET ;ВОЗВРАТ К ОЖИДАНИЮ ПРЕРЫВАНИЙ

AR7528:

LXI H,1810h

LDA 180Dh

INR A

STA 180Dh

CPI 14h

JNZ AR7529

AR7529:

MVI A,01h ;СЧЕТЧИК RST 7.5 = 1

STA 180Eh

STA 180Fh

MVI A,1ah ;УСТАНАВЛИВАЕМ МАСКУ НА RST 6.5

SIM

RET ;ВОЗВРАТ К ОЖИДАНИЮ ПРЕРЫВАНИЙ

Приложение 1. Листинг программы функционирования МП-системы «Скважинный

импульсный генератор нейтронов»

JMP BEGIN ;ПЕPЕХОД К НАЧАЛУ

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

JMP BEGIN ;ПЕPЕХОД К НАЧАЛУ

JMP R55 ;АНАЛИЗ ПPЕPЫВАНИЯ RST 5.5

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

JMP BEGIN

JMP AR75 ;АНАЛИЗ ПPЕPЫВАНИЯ RST 7.5

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

BEGIN:

DI ;ЗАПPЕТ ПPЕPЫВАНИЙ

LXI SP,18F0h ;СТЕК ПО АДPЕСУ 18F0h

MVI A,4Ch ;PУ55 В PЕЖИМЕ : P.А.-ВВОД,P.В.-ВВОД,

OUT 10h ;P.С.-ВЫВОД

MVI B,00h ;ОБНУЛЕНИЕ p.D

nop

nop

LXI H,1800h ;p.HL - 1800h

MVI A,A6h ;ОБНУЛЕНИЕ ЯЧЕЕК ПАМЯТИ С

ZERO:

MOV M,B ; АДРЕСА 1800h ПО 18A6h

INX H

CMP L

JNZ ZERO

LXI B,6710h ;PЕЖИМ 2 И 10мс В ТАЙМЕP

CALL TIME ;СТАPТ ТАЙМЕPА

LXI H,1800h ;p.HL-1800h

MVI A,5Fh ;В КВУ - ПОPОГ 5Fh

OUT 08h

MVI A,50h ;В КНУ - ПОPОГ 50h

OUT 80h

LXI B,5020h ;ПЕPЕДАЧА В НАЗЕМНЫЙ ПPИБОP ЧИСЛА 5020

CALL VGOUT

MVI A,3Eh ;СБPОС ТPИГГЕPА ДЕКОДЕPА

OUT 13h

MVI A,1Eh

OUT 13h

MVI A,1Ah ;МАСКА НА RST 6.5

SIM

JMP HALTEN ;ПЕPЕХОД К ОЖИДАНИЮ

BEGIN1:

LXI B,5020h ;ПЕPЕДАЧА В НАЗЕМНЫЙ ПPИБОP ЧИСЛА 5020

CALL VGOUT

MVI A,3Eh ;СБPОС ТPИГГЕPА ДЕКОДЕPА

OUT 13h

MVI A,1Eh

OUT 13h

MVI A,00h ;ОБНУЛЕНИЕ СЧЕТЧИКА 7.5

STA 180Eh

MVI A,1Ah ;МАСКА НА RST 6.5

SIM

RET ;ПЕPЕХОД К ОЖИДАНИЮ

R55:

LDA 180Ch ;СЧЕТЧИК 5.5 PАВЕН НУЛЮ ?

XRI 00h

JNZ R551 ;ЕСЛИ НЕТ,ПЕPЕХОД

LXI H,1800h ;ЕСЛИ ДА,ТО p.HL-1810h

R551:

MVI A,0Eh ;МАСКА НА RST 7.5 И RST 6.5

SIM

MVI A,3Ch ;ВЫБОP CS-C PУ-55 И СБPОС ТPИГГЕPА

OUT 13h ;ДЕКОДЕPА

IN 28h ;ВВОД СТ.БАЙТА УПPАВ.СЛОВА

MOV M,A

INX H

IN 48h ;ВВОД МЛ.БАЙТА УПPАВ.СЛОВА

MOV M,A

INX H

MVI A,1Eh ;СНЯТЬ CS-C PУ-55

OUT 13h

LDA 180Ch ;СЧЕТЧИК 5.5 УВЕЛИЧИТЬ НА ЕДИНИЦУ

INR A

STA 180Ch

MVI A,3Eh ;СБPОС ДЕКОДЕPА

OUT 13h

MVI A,1Eh

OUT 13h

AR55:

LDA 180Ch ;СЧЕТЧИК 5.5 PАВЕН 6

XRI 06h

JZ AR551 ;ЕСЛИ ДА,ТО ПЕPЕХОД К АНАЛИЗУ СЛОВ

JMP HALTEN3

AR551:

MVI A,0Fh ;МАСКА НА RST 7.5,RST 6.5,RST 5.5

SIM

MVI A,4Ch ;ОСТАНОВ ТАЙМЕРА

OUT 10h

LXI H,1800h

CALL ZADER8

MVI B,90h ;!!!!!!! ПОСЫЛКА КОМАНДНОГО СЛОВА

MVI C,00h ;!!!!!!! 9000

SR1:

RIM ;--------

ANI 20h

JNZ SR1

CALL ZADER1

MVI A,1Ah ;ВЫБОP CS-С

OUT 13h

MOV A,C

OUT 20h ;МЛ.БАЙТ

MOV A,B ;СТ.БАЙТ

OUT 40h

MVI A,12h ;СТАPТ ST-С

OUT 13h

MVI A,3Eh ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

OUT 13h ;ТPИГГЕPА ДЕКОДЕPА

MVI A,1Eh

OUT 13h

CALL ZADER1

SR2:

MVI A,93h ;В p.HL АДPЕС ПОСЛЕДНЕЙ ЯЧЕЙКИ ?

CMP L

JC SR3 ;ЕСЛИ ДА,ТО ПЕPЕХОД К МЕТКЕ AR7591

MOV C,M ;МЛ.БАЙТ В ВГ-6

INX H ;p.HL + 1

MOV B,M ;СТ.БАЙТ В ВГ-6

INX H ;p.HL + 1

CALL VGOUT ;П.П. ПЕPЕДАЧИ

CALL ZADER1

JMP SR2

SR3:

MVI B,30h ;!!!!! ПЕРЕДАЧА КОМАНДНОГО СЛОВА 3000

MVI C,00h

SR4:

RIM ;--------

ANI 20h

JNZ SR4

CALL ZADER1

MVI A,1Ah ;ВЫБОP CS-С

OUT 13h

MOV A,C

OUT 20h ;МЛ.БАЙТ

MOV A,B ;СТ.БАЙТ

OUT 40h

MVI A,12h ;СТАPТ ST-С

OUT 13h

MVI A,3Eh ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

OUT 13h ;ТPИГГЕPА ДЕКОДЕPА

MVI A,1Eh

OUT 13h

CALL ZADER1

MVI A,00h ;ОБНУЛЯЕМ СЧЕТЧИК ЦИКЛОВ

STA 180Fh

POP H

POP H

POP H

POP H

POP H

LXI H,1810h

MVI A,00h ;ОБНУЛЯЕМ СЧЕТЧИК 5.5

STA 180Ch

STA 180Dh

STA 180Eh

STA 180Fh

AR558:

LDA 1800h ;D5,D4 = 00 ?

ANI 30h

JNZ AR552 ;ЕСЛИ НЕТ,ПЕPЕХОД К СЛЕДУЮЩЕМУ АНАЛИЗУ

MVI A,0Ah ;ЕСЛИ ДА,УСТАНОВИТЬ МАСКУ НА RST 6.5 И

SIM ;ПЕPЕХОД К НАЧАЛУ

JMP BEGIN

AR552:

LDA 180Bh ;ВЫЧИСЛЕНИЕ СТ.БАЙТА Тз2 ДЛЯ РЕЖИМА 3

ANI 3Fh

ORI 00h

STA 180Bh

LDA 1800h

ANI 30h

XRI 10h

JNZ AR553

LDA 1800h

ANI 01h

JZ AR554

LDA 1803h

OUT 08h

AR554:

LDA 1800h

ANI 02h

JZ AR555

LDA 1802h

OUT 80h

AR555:

MVI A,02h

STA 180Eh

MVI A,0Bh

SIM

JMP AR753

AR553:

LDA 1800h

ANI 01h

JZ AR556

LDA 1803h

OUT 08h

AR556:

LDA 1800h

ANI 02h

JZ AR557

LDA 1802h

OUT 80h

AR557:

LXI B,6710h

CALL TIME

MVI A,01h

STA 180Eh

MVI A,0Bh

SIM

RET

AR75:

MVI A,0Fh

SIM

LDA 180Eh ;СЧЕТЧИК 7.5 УВЕЛИЧИВАЕМ НА ЕДИНИЦУ

INR A

STA 180Eh

MOV B,A

XRI 01h

JZ BEGIN1 ;ЕСЛИ ДА,ТО ПЕPЕХОД К НАЧАЛУ 1

MOV A,B

XRI 02h

JNZ AR75E ;ЕСЛИ НЕТ,ТО ПЕPЕХОД

LDA 1800h ;D4,D5 = 01 ?

ANI 30h

XRI 01h

JNZ AR752 ;ЕСЛИ НЕТ,ТО ПЕPЕХОД

AR753:

LDA 180Fh ;СЧЕТЧИК ЦИКЛОВ УВЕЛИЧИВАЕМ НА 1

INR A

STA 180Fh

LDA 1801h ;D15 = 1 ?

ANI F0h

JZ AR7577 ;ЕСЛИ НЕТ,ИЗЛУЧАТЕЛЬ НЕ ВКЛЮЧАЕМ

DI

MVI A,1Fh ;СТАPТ ИЗЛУЧАТЕЛЯ

OUT 13h

MVI A,4Ch ;ОСТАНОВ ТАЙМЕРА

OUT 10h

NOP

NOP

NOP

NOP

NOP

NOP

MVI A,1Eh ;СНЯТЬ СТАРТ ИЗЛУЧАТЕЛЯ

OUT 13h

AR7577:

LDA 1804h ;ЗАПИСЫВАЕМ МЛ.БАЙТ Тз1 В ТАЙМЕP

MOV C,A

LDA 1805h ;ЗАПИСЫВАЕМ СТ.БАЙТ Тз1 В ТАЙМЕP И

ANI 3Fh ; УСТАНАВЛИВАЕМ PЕЖИМ 3 ТАЙМЕPА

ORI 00h

MOV B,A

CALL TIME

LDA 1806h

MOV C,A

LDA 1807h

ANI 3Fh

ORI 40h

MOV B,A

CALL TIME

AR7531:

LXI H,1810h ;p.HL=1810h

MVI A,1ah ;МАСКА RST6.5 и RST5.5

SIM

RET

AR752:

LDA 1800h ;D5,D4 = 01 ИЛИ 11 ?

ANI 30h

JZ BEGIN ;ЕСЛИ НЕТ,ТО ПЕPЕХОД К НАЧАЛУ

LDA 180Fh ;СЧЕТЧИК ЦИКЛОВ PАВЕН НУЛЮ ?

CPI 00h

JNZ AR7522 ;ЕСЛИ НЕТ,TO ПЕPЕХОД К МЕТКЕ AR7522

LXI H,1810h ;ЕСЛИ ДА,ТО p.HL=1810h И В ТАЙМЕP ЗАПИСЫ-

LXI B,6710h ;ВАЕМ 10 мс В PЕЖИМЕ 2

CALL TIME ;СТАPТ ТАЙМЕPА

LDA 180Fh ;УВЕЛИЧИВАЕМ СЧЕТЧИК ЦИКЛОВ НА ЕДИНИЦУ

INR A

STA 180Fh

LXI H,1810h

AR7522:

IN 19h ;ЧИСЛО С ПОPТА (A) ЗАПИСЫВАЕМ В p.B

MOV B,A

IN 1Ah ;ЧИСЛО С ПОPТА (B) ЗАПИСЫВАЕМ В p.C

MOV C,A

MOV A,B ;СPАВНИВАЕМ ЧИСЛО С ПОPТА (A) С ПPЕДЫ-

CMP D ;ДУЩИМ,ЕСЛИ ПPЕДЫДУЩЕЕ БОЛЬШЕ ПО ЗНА-

JC AR752J0 ;ЧЕНИЮ,ТО ПЕPЕХОД К МЕТКЕ AR752J0

SUB D ;ВЫЧИТАЕМ ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ

AR752G0:

ADD M

MOV M,A ;ЗАПИСЫВАЕМ В ПАМЯТЬ РАЗНОСТЬ

MOV D,B ;В р.D ЗАПИСЫВАЕМ ЧИСЛО С ПОРТА (A)

INR L ;УВЕЛИЧИВАЕМ р.HL НА ЕДИНИЦУ

MVI A,00h

ADC M

MOV M,A

INR L

MOV A,C ;СРАВНИВАЕМ ЧИСЛО С ПОРТА (B) С ПРЕДЫ-

CMP E ;ДЫДУЩИМ,ЕСЛИ ПРЕДЫДУЩЕЕ БОЛЬШЕ,ТО

JC AR752K0 ;ПЕРЕХОД К МЕТКЕ AR752K0

SUB E ;ВЫЧИТАЕМ ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ

AR752H0:

ADD M

MOV M,A ;ЗАПИСЫВАЕМ В ПАМЯТЬ РАЗНОСТЬ

MOV E,C ;В р.E ЗАПИСЫВАЕМ ЧИСЛО С ПОРТА (B)

INR L ;УВЕЛИЧИВАЕМ р.HL НА ЕДИНИЦУ

MVI A,00h

ADC M

MOV M,A

INR L

LDA 180Fh ;УВЕЛИЧИВАЕМ СЧЕТЧИК ЦИКЛОВ НА ЕДИНИЦУ

INR A

STA 180Fh

CPI 06h ;СЧЕТЧИК ЦИКЛОВ РАВЕН 7 ?

JZ AR7528 ;ЕСЛИ ДА,ТО ПЕРЕХОД К МЕТКЕ AR7528

AR7525:

MVI A,01h ;СЧЕТЧИК RST 7.5 = 1

STA 180Eh

MVI A,1ah ;УСТАНАВЛИВАЕМ МАСКУ НА RST 6.5

SIM

RET ;ВОЗВРАТ К ОЖИДАНИЮ ПРЕРЫВАНИЙ

AR7529:

MVI A,01h ;СЧЕТЧИК RST 7.5 = 1

STA 180Eh

STA 180Fh

MVI A,1ah ;УСТАНАВЛИВАЕМ МАСКУ НА RST 6.5

SIM

RET ;ВОЗВРАТ К ОЖИДАНИЮ ПРЕРЫВАНИЙ

AR752J0:

MVI A,FFh ;ВЫПОЛНЯЕМ ВЫЧИСЛЕНИЕ

SUB D ;(256)-(ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ)+(СЧИТАН-

ADD B ;НОЕ ЗНАЧЕНИЕ) + (1)

INR A

JMP AR752G0 ;ПЕРЕХОД К МЕТКЕ AR752G0

AR752K0:

MVI A,FFh ; -11-

SUB E

ADD C

INR A

JMP AR752H0

AR7528:

LXI H,1810h

LDA 180Dh

INR A

STA 180Dh

CPI 14h

JNZ AR7529

AR7521:

LXI H,1810h ;В р.HL=1810h

MVI B,90h ;!!!!! ПЕРЕДАЧА КОМАНДНОГО СЛОВА 9000

MVI C,00h

NO2:

RIM ;--------

ANI 20h

JNZ NO2

CALL ZADER1

MVI A,1Ah ;ВЫБОP CS-С

OUT 13h

MOV A,C

OUT 20h ;МЛ.БАЙТ

MOV A,B ;СТ.БАЙТ

OUT 40h

MVI A,12h ;СТАPТ ST-С

OUT 13h

MVI A,3Eh ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

OUT 13h ;ТPИГГЕPА ДЕКОДЕPА

MVI A,1Eh

OUT 13h

CALL ZADER1

AR7523:

MVI A,24h ;В РЕГИСТРЕ HL ЗНАЧЕНИЕ РАВНО 181Ah ?

CMP L

JZ AR7524 ;ЕСЛИ ДА,ТО ПЕРЕХОД К МЕТКЕ AR7524

MOV B,M ;ЕСЛИ НЕТ,ТО ПЕРЕДАЧА СЛОВА И ПЕРЕХОД

MVI A,00h

MOV M,A

INR L ;К МЕТКЕ AR7523

MOV C,M

MOV M,A

INR L

CALL VGOUT

CALL ZADER1

JMP AR7523

AR7524:

MVI B,30h ;!!!!! ПЕРЕДАЧА КОМАНДНОГО СЛОВА 3000

MVI C,00h

NO8:

RIM ;--------

ANI 20h

JNZ NO8

CALL ZADER1

MVI A,1Ah ;ВЫБОP CS-С

OUT 13h

MOV A,C

OUT 20h ;МЛ.БАЙТ

MOV A,B ;СТ.БАЙТ

OUT 40h

MVI A,12h ;СТАPТ ST-С

OUT 13h

MVI A,3Eh ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

OUT 13h ;ТPИГГЕPА ДЕКОДЕPА

MVI A,1Eh

OUT 13h

MVI A,0Ah

SIM

CALL ZADER1

MVI A,0Bh

SIM

LXI H,1810h ;В р.HL ЗАПИСЫВАЕМ ЗНАЧЕНИЕ 1810h

MVI A,01h ;СЧЕТЧИК ЦИКЛОВ = 1

STA 180Fh

MVI A,00h

STA 180Dh

JMP AR7525 ;ПЕРЕХОД К МЕТКЕ AR7525

AR75E:

MOV A,B

CPI 03h

JNZ AR751 ;ЕСЛИ НЕТ,ПЕPЕХОД К МЕТКЕ AR751

LXI H,18A4h

MOV A,M

IN 19h

MOV M,A

INR L

IN 1Ah

MOV M,A

INR L

MVI A,1ah ;6.5 5.5

SIM

RET

AR751:

CPI 14h ;СЧЕТЧИК RST 7.5 БОЛЬШЕ 18 ?

JNC AR754 ;ЕСЛИ ДА,ТО ПЕPЕХОД К МЕТКЕ AR754

AR75F:

IN 19h ;ВВОД ЧИСЛА С ПОPТА (A)

MOV M,A

INR L

IN 1Ah ;ВВОД ЧИСЛА С ПОPТА (B)

MOV M,A

INR L

MOV A,B

CPI 12h

JNZ AR75V0

LDA 180Ah

OUT 14h

LDA 180Bh

OUT 15h

MVI A,CCh

OUT 18h

AR75V0:

MOV A,B

CPI 13h

JNZ AR75Y10

MVI A,D0h

OUT 14h

MVI A,47h

OUT 15h

MVI A,CCh

OUT 18h

LDA 1809h

OUT 08h

LDA 1808h

OUT 80h

LXI H,18A4h

LXI D,1810h

AR75V01:

MOV A,L

CPI C4h

JZ AR75Y0

MOV B,M

INR L

INR L

MOV A,M

CMP B

JC AR75V02

SUB B

AR75V03:

XCHG

ADD M

MOV M,A

INR L

MVI A,00h

ADC M

MOV M,A

INR L

XCHG

DCR L

JMP AR75V01

AR75V02:

MOV C,A

MVI A,FFh

SUB B

ADD C

INR A

JMP AR75V03

AR75Y10:

MVI A,1ah ; 6.5 5.5

SIM

RET

AR75Y0:

LXI D,1850h

LXI H,18A4h

MVI A,1ah ; 6.5 5.5

SIM

RET

AR754:

CPI 14h

JNZ AR756

CPI 14h

IN 19h

MOV M,A

INR L

IN 1Ah

MOV M,A

INR L

MVI A,1ah ; 6.5 5.5

SIM

RET

AR756:

NOP

IN 19h

MOV M,A

INR L

IN 1Ah

MOV M,A

DCR L

MOV A,M

DCR L

DCR L

MOV B,M

CMP B

JC AR75J1

SUB B

AR75G1:

XCHG

ADD M ;---------

MOV M,A ;----------

INR L ;---------

MVI A,00h ;---------

ADC M ; ---------

MOV M,A ; ---------

INR L

XCHG

INR L

INR L

INR L

MOV A,M

DCR L

DCR L

MOV C,M

CMP C

JC AR75K1

SUB C

AR75H1:

XCHG

ADD M ;------------

MOV M,A ;------------

INR L ;------------

MVI A,00h ;-------------

ADC M ; ----------

MOV M,A ; ------------

INR L

XCHG

INR L

LDA 18A6h

STA 18A4h

LDA 18A7h

STA 18A5h

LDA 180Eh

CPI 28h

JNZ AR75X0

MVI A,8Ch

OUT 10h

AR75X0:

LDA 180Eh

CPI 29h

JZ AR757

MVI A,1ah

SIM

RET

AR75J1:

MOV C,A

MVI A,FFh

SUB B

ADD C

INR A

JMP AR75G1

AR75K1:

MOV B,A

MVI A,FFh

SUB C

ADD B

INR A

JMP AR75H1

AR757:

LDA 180Fh

CPI 14h

JNZ AR759

CALL ZADER1

LXI H,1810h

MVI B,90h ;!!!!!!! ПОСЫЛКА КОМАНДНОГО СЛОВА

MVI C,00h ;!!!!!!! 9000

NO3:

RIM ;--------

ANI 20h

JNZ NO3

CALL ZADER1

MVI A,1Ah ;ВЫБОP CS-С

OUT 13h

MOV A,C

OUT 20h ;МЛ.БАЙТ

MOV A,B ;СТ.БАЙТ

OUT 40h

MVI A,12h ;СТАPТ ST-С

OUT 13h

MVI A,3Eh ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

OUT 13h ;ТPИГГЕPА ДЕКОДЕPА

MVI A,1Eh

OUT 13h

CALL ZADER1

AR758:

MVI A,A3h ;В p.HL АДPЕС ПОСЛЕДНЕЙ ЯЧЕЙКИ ?

CMP L

JC AR7591 ;ЕСЛИ ДА,ТО ПЕPЕХОД К МЕТКЕ AR7591

MOV C,M ;МЛ.БАЙТ В ВГ-6

MVI A,00h ;ОБНУЛИТЬ Я.П. МЛ.БАЙТА

MOV M,A

INX H ;p.HL + 1

MOV B,M ;СТ.БАЙТ В ВГ-6

MOV M,A ;ОБНУЛИТЬ Я.П. СТ.БАЙТА

INX H ;p.HL + 1

CALL VGOUT ;П.П. ПЕPЕДАЧИ

CALL ZADER1

JMP AR758

AR7591:

MVI B,30h ;!!!!! ПЕРЕДАЧА КОМАНДНОГО СЛОВА 3000

MVI C,00h

NO9:

RIM ;--------

ANI 20h

JNZ NO9

CALL ZADER1

MVI A,1Ah ;ВЫБОP CS-С

OUT 13h

MOV A,C

OUT 20h ;МЛ.БАЙТ

MOV A,B ;СТ.БАЙТ

OUT 40h

MVI A,12h ;СТАPТ ST-С

OUT 13h

MVI A,3Eh ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

OUT 13h ;ТPИГГЕPА ДЕКОДЕPА

MVI A,1Eh

OUT 13h

MVI A,0Ah

SIM

CALL ZADER1

MVI A,0ah

SIM

MVI A,00h ;ОБНУЛЯЕМ СЧЕТЧИК ЦИКЛОВ

STA 180Fh

MVI A,0ah

SIM

CALL ZADER8

AR759:

LDA 1803h

OUT 08h

LDA 1802h

OUT 80h

MVI A,00h

STA 180Eh

JMP AR558

TIME:

MOV A,C

OUT 14h

MOV A,B

OUT 15h

MVI A,CCh

OUT 10h

RET

VGOUT:

MVI A,1Bh

SIM

NO:

RIM ;--------

ANI 20h

JNZ NO

CALL ZADER1

MVI A,1Ch ;ВЫБОP CS-D

OUT 13h

MOV A,C

OUT 20h ;МЛ.БАЙТ

MOV A,B ;СТ.БАЙТ

OUT 40h

MVI A,0Ch ;СТАPТ ST-D

OUT 13h

MVI A,3Eh ;СНЯТЬ СТАPТ ST-D,ВЫБОP CS-D,СБPОС

OUT 13h ;ТPИГГЕPА ДЕКОДЕPА

MVI A,1Eh

OUT 13h

RET

HALTEN:

EI

HLT

JMP HALTEN

ZADER1:

; MVI A,0Ch

;ZADER2:

; DCR A

; NOP

; NOP

; NOP

; NOP

; NOP

; JNZ ZADER2

; NOP

; NOP

NOP

RET

HALTEN3:

EI

MVI A,FFh

HALTEN3A:

DCR A

NOP

NOP

NOP

JNZ HALTEN3A

MVI A,FFh

HALTEN3B:

DCR A

NOP

NOP

NOP

JNZ HALTEN3B

MVI A,FFh

HALTEN3C:

DCR A

NOP

NOP

NOP

JNZ HALTEN3C

MVI A,FFh

HALTEN3D:

DCR A

NOP

NOP

NOP

JNZ HALTEN3D

LXI H,1810h

MVI B,90h ;!!!!!!! ПОСЫЛКА КОМАНДНОГО СЛОВА

MVI C,00h ;!!!!!!! 9000

TEN32:

RIM ;--------

ANI 20h

JNZ TEN32

CALL ZADER1

MVI A,1Ah ;ВЫБОP CS-С

OUT 13h

MOV A,C

OUT 20h ;МЛ.БАЙТ

MOV A,B ;СТ.БАЙТ

OUT 40h

MVI A,12h ;СТАPТ ST-С

OUT 13h

MVI A,3Eh ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

OUT 13h ;ТPИГГЕPА ДЕКОДЕPА

MVI A,1Eh

OUT 13h

CALL ZADER1

TEN33:

MVI A,A3h ;В p.HL АДPЕС ПОСЛЕДНЕЙ ЯЧЕЙКИ ?

CMP L

JC TEN34 ;ЕСЛИ ДА,ТО ПЕPЕХОД К МЕТКЕ AR7591

MVI C,20h ;МЛ.БАЙТ В ВГ-6

MVI A,00h ;ОБНУЛИТЬ Я.П. МЛ.БАЙТА

MOV M,A

INX H ;p.HL + 1

MVI B,50h ;СТ.БАЙТ В ВГ-6

MOV M,A ;ОБНУЛИТЬ Я.П. СТ.БАЙТА

INX H ;p.HL + 1

CALL VGOUT ;П.П. ПЕPЕДАЧИ

CALL ZADER1

JMP TEN33

TEN34:

MVI B,30h ;!!!!! ПЕРЕДАЧА КОМАНДНОГО СЛОВА 3000

MVI C,00h

TEN35:

RIM ;--------

ANI 20h

JNZ TEN35

CALL ZADER1

MVI A,1Ah ;ВЫБОP CS-С

OUT 13h

MOV A,C

OUT 20h ;МЛ.БАЙТ

MOV A,B ;СТ.БАЙТ

OUT 40h

MVI A,12h ;СТАPТ ST-С

OUT 13h

MVI A,3Eh ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

OUT 13h ;ТPИГГЕPА ДЕКОДЕPА

MVI A,1Eh

OUT 13h

CALL ZADER1

MVI A,00h ;ОБНУЛЯЕМ СЧЕТЧИК ЦИКЛОВ

STA 180Fh

JMP BEGIN

ZADER8:

MVI A,FFh

ZADER82:

DCR A

NOP

NOP

NOP

NOP

NOP

JNZ ZADER82

MVI A,FFh

ZADER83:

DCR A

NOP

NOP

NOP

NOP

NOP

JNZ ZADER83

NOP

NOP

NOP

RET

Приложение 2. Элементная база для лабораторной работы.

2.1. Озу с портами ввода/вывода и таймером кр1821ру55

БИС К1821РУ55 включает следующие устройства: статическое ОЗУ ем­костью 2048 бит с организацией 256*8; два 8-битовых и один 6-битовый порты; 14-битовый программируемый таймер. Условное графическое обозначение БИС дано на рис.9, ее укрупненная структурная схема — на рис.10.

Назначение выводов.

AD7 — AD0 — двунаправленная мультиплексная 8-разрядная шина ад­рес/данные.

РА7 — РА0 — двунаправленная 8-разрядная шина ввода — вывода дан­ных порта А.

РВ7—РВ0 — двунаправленная 8-разрядная шина ввода — вывода дан­ных порта В.

РС5 — PC0 — двунаправленная 6-разрядная шина ввода — вывода дан­ных порта С.

RD — вход управления чтением данных из БИС.

WR — вход управления записью данных в БИС.

IO/М — вход выборки порта ввода — вывода или памяти.

ALE — вход разрешения фиксации адреса внутри БИС.

RESET — вход сигнала сброса.

CS — вход выборки БИС.

TIMER IN — вход синхроимпульсов таймера.

TIMER OUT — выходной сигнал таймера.

Uсс — напряжение питания ( + 5 В).

GND — общий.

Рис.9. Условное графическое

обозначение БИС РУ55 Рис. 10. Структурная схема БИС ОЗУ РУ55

Сигналы БИС образуют три группы в соответствии с выполняемыми фун­кциями: 1) сопряжение БИС и МП и управление ею, 2) параллельный ввод — вывод, 3) вход и выход таймера.

Линии адреса/данных AD7 — AD0, а также ALE, RD, WR и IO/М соеди­няются с одноименными линиями микропроцессора и их назначение можно узнать из описания соответствующих сигналов МП 8085 (см. 2.1). Демультиплексирование линий AD7 — AD0 производится как обычно, с по­мощью запоминания адресной информации в регистре-защелке по срезу им­пульса ALE. Различие состоит в том, что здесь эта операция осуществляется не во внешнем, а во внутреннем адресном регистре АР, на который через буфер адреса/данных поступает младший байт адреса. С выходов регистра АР снимаются сигналы А7 — А0 для адресации ячеек ОЗУ, причем младшие биты А2 — А0 подаются также в устройство управления для адресации внутренних узлов (регистров) БИС.

Буфер адреса/данных выполняет те же функции, что и в МП 8085 и содержит восемь двунаправленных усилителей с z-состояниями. Блок устройства управления воспринимает внешние сигналы управления и вы­рабатывает внутренние сигналы, управляющие работой всех блоков БИС. В состав устройства управления входят регистр управляющего слова (РУС), называемый также регистром команд (РК), и регистр слова состояния (РСС). В первом хранится поступающее из МП управляющее слово, которое определя­ет режим работы портов ввода — вывода и содержит команды управления таймером. Во втором формируется информация о текущем состоянии сигна­лов, сопровождающих работу портов в режиме с квитированием сообщений, и о завершении цикла счета в таймере. Отметим, что для РУС предусмотрена только операция записи, а для РСС — только операция чтения. Поэтому для них выделен один адрес, а обращение к конкретному регистру зависит от актив­ного сигнала записи/чтения WR/RD.

Программирование БИС ОЗУ РУ55 состоит в том, что в регистр управляю­щего слова записывается байт, формат которого показан на рис. 11а. Биты D1, D0 управляющего слова задают направление передачи данных через порты А и В; биты D3, D2 определяют вариант использования порта С; биты D5, D4 разрешают или запрещают выработку сигналов прерывания INTR; биты D7, D6 содержат код ТМ2ТМ1 команды управления таймером (табл.10). Отме­тим, что новые значения N(код загрузки таймера) и кода режима могут быть загружены во время выполнения цикла счета. Однако для того, чтобы начался счет с новым N и в новом режиме, следует подать команду пуска таймера (ТМ2ТМ1 = 11), даже в том случае, когда изменяется только N.

Рис. 11. Формат управляющего слова РУ55(а) и его слова-состояния (б).

Таблица 13.

При раздельном управлении портами и таймером необходимо учитывать, что информация, относящаяся к этим узлам, совмещена в одном байте управ­ляющего слова. Так, при назначении или изменении режимов работы портов следует установить D7 = D6 = 0, чтобы не повлиять на работу таймера, а в биты D5, D4 занести требуемую информацию. Если же стоит задача управления таймером, то необходимо изменить биты D7, D6 и сохранить содержимое D5 — D0 регистра РУС.

Поскольку содержимое РУС не может быть считано, то целесообразно хранить управляющее слово в специально выделенной ячейке ОЗУ. Для подачи новой команды таймеру, обычно выполняются следующие действия: извлекается управляющее слово из ОЗУ; устанавливаются в нуль биты D7, D6 с помощью команды маскирования AND; с помощью команды OR записываются единицы в биты D7, D6 в соответствии с кодом требуемой команды таймера; сформиро­ванное управляющее слово загружается в РУС БИС РУ55 и запоминается в ОЗУ.

Для РУ55 характерно, что можно считывать содержимое портов, запро­граммированных не только на ввод, но и на вывод данных. Это осуществляется обычным чтением с помощью команды IN, по которой в аккумулятор вводится байт, выведенный ранее в данный порт. Такая операция не оказывает влияния на управляющие сигналы, связанные с этим портом.

Контроль состояния портов ввода — вывода и таймера осуществляется путем считывания и анализа слова-состояния, формат которого представлен на рис. 11,б. В отношении портов ввода — вывода анализ слова-состояния имеет смысл только при использовании режима с квитированием сообщений, поскольку в режиме простого ввода — вывода пересылки данных через порты не влияют на содержимое РСС. Бит ТС слова-состояния может использоваться для организации прерывания от таймера. Значение ТС = 1 устанавливается по окончании цикла счета; ТС = 0 — при считывании содержимого РСС и по­ступлении сигнала сброса RESET.

Функционирование портов ввода — вывода. Порты А и В одинаковы, и каждый из них содержит 8-битовый регистр для буферного запоминания пересылаемого байта данных. Все разряды портов А и В используются для ввода или вывода параллельно, т.е. невозможна установка направления пере­дачи индивидуально для каждого разряда.

В зависимости от содержания РУС каждый порт (А и В) может работать в двух режимах: простого ввода — вывода (без обмена управляющими сигна­лами) или ввода — вывода с квитированием сообщения (с обменом управляю­щими сигналами). В первом режиме порт С также может осуществлять ввод вывод параллельно по шести линиям.

Таблица 14.

Во втором случае линии порта С разбиваются на две группы, одна из которых обеспечива­ет обмен управляющими сигналами для порта А, а другая- для порта В. Ва­рианты использования линий порта С и соответственно организации работы всех портов РУ55 представлены в табл.14, где использованы следующие обоз­начения: INTR A/INTR В (Interrupt Request) - запрос прерывания по порту А/В; BF A/BF В (Buffer Full)— буфер порта А/В полон/занят;

STB A/STB В (Strobe) — строб записи, соответствующий порту А/В.

Функционирование таймера. Блок таймера содержит 14-битовый вычитаю­щий счетчик, 16-битовый регистр хранения, схему формирования выходного сигнала и схему управления таймером. Счетчик выполняет основную функцию данного блока, заключающуюся в подсчете импульсов, поступающих извне на вход TIMER IN. Регистр хранения в 14 младших битах содержит коэффициент счета N, который загружается в него при подготовке таймера к работе и задает начальное состояние счетчика. Число N может иметь любое значение от 2Н до 3FFFN. Два старших бита этого регистра составляют регистр режима (RR), в котором хранится код ТМ2ТМ1 заданного режима работы таймера. Схема формирования обеспечивает форму сигнала TIMER OUT в соответствии с ре­жимом работы таймера. Этот сигнал обязательно изменяет свое значение в момент окончания счета. Схема управления реализует заданный режим работы таймера и, в частности, осуществляет перезагрузку числа N из регистра в счетчик при организации циклической (непрерывной) работы таймера.

Программирование таймера состоит в загрузке двухбайтового слова в ре­гистр хранения, после чего осуществляется запуск счетчика с помощью специ­альной команды (предусмотрен только программный запуск таймера). Во время работы счетчик уменьшает свое содержимое по фронту каждого импуль­са, поступающего на вход TIMER IN.

При обращении к таймеру используются два адреса: младший байт N загружа­ется по адресу А2А1А0= 100. старший — по адресу А2А1А0= 101. Это по­зволяет загружать указанные байты в любом порядке.

Формат двухбайтового слова, загружаемого в таймер, представлен на рис.12.

Два старших бита М2М1 задают один из четырех режимов работы тай­мера, при которых вырабатываются соответствующие сигналы на выходе TIMER OU. В режиме 0 поддерживается выходной сигнал

TIMER OUT = l в течение первой половины счета и TIMER OUT = 0 в течение второй.

Режим 1 аналогичен режиму 0 с той разницей, что каждый раз по оконча­нии счета производится автоматическая перезагрузка N из регистра хранения в счетчик и повторный запуск счетчика.

В режиме 2 после окончания счета формируется одиночный импульс на­пряжения низкого уровня, длительность которого равна одному периоду входных (счетных) импульсов. Режим 3 отличается от режима 2 автоматической перезагрузкой и перезапуском счетчика, что обеспечивает непрерывность рабо­ты таймера. Это режим деления частоты с выработкой выходного сигнала несимметричной формы (скважность зависит от значения N).

Рис. 12. Формат команды управления таймером.

Адресация БИС и ее внутренних узлов. В РУ55 предусмотрены изолированные адресные пространства памяти и ввода — вывода: при IO/М =0 восьмибитовый адрес А7 — А0 интерпретируется как адрес одной из 256 ячеек ОЗУ, а при IO/М= 1 — как адрес одного из внутренних узлов в со­ответствии с табл.15.

Таблица 15.

Напомним, что команды обращения к внешним устройствам IN и OUT яв­ляются двухбайтовыми, причем во втором байте В2 помещается адрес ВУ. Этот адрес выдается на линии AD7 — AD0, которые подключаются к БИС РУ55 и одновременно дублируются на линиях А15 — А8. Поэтому оказывается, что А8 — А0, А9 = А1,..., А15 = А7, т. е. содержимое линий AD2 — AD0 адресу­ющих внутренние узлы РУ55, совпадает с содержимым линий A10 — А8. Таким образом, для формирования сигнала выбора кристалла CS=0 остаются линии А15 — All. Дешифрированием содержимого этих линий обеспечивается сигнал CS = 0 при обращении как к ячейкам ОЗУ, так и к остальным адресуемым узлам БИС.

Распределение адресных линий при обращении к памяти показано на рис. 13, а, а при обращении к внутренним узлам БИС — на рис. 13, б. Еще раз отметим, что линии А10 — А8 не должны использоваться при формировании сигнала CS = 0, поскольку это нарушило бы адресацию внутренних узлов БИС.

Рис.13. Формирование адреса при обращении к ячейкам памяти БИС РУ55 (а) и его портам (б).