Юный техник - для умелых рук 1989-02, страница 11

Юный техник - для умелых рук 1989-02, страница 11

мо нажать на кнопку «8», а затем ввести два параметра — начальный и конечный адрес области памяти, в которой находится контрольная сумма Так, можчо проверить ] 5У если задать начальный и конечный адрес МОНИТОРА контрольная сумма выводится на индикаторы HL и для М( 'Т)РЛ составляет 0181Ь (( D0H-01 №Н) и l8(T i[(020(i О F

Тептрь рассмотрим директи i ввода-вывода информации при работе с кассетным ма штофоном Желательно, чтобы магнитофон имел счетчик ленты по которому можно было бы найти нач-шо записи. Идентифицировать же запись можно по выводимой при записи и чтении на индикатор HL контрольной суммы информации Это как бы паспорт записи.

При записи данных на ленту нажимают khi тку «9», а затем вводят два параметра — начальный и конечный адреса данных После набора директивы перед вводом младшего байта конечного адреса вклю .ают на запись магнитофон и лишь затем вводят последний байт адреса. После этого начнется зе ni ь информации на ленту Скорость записи фиксированная — 1500 бит/сек. При выполнени i Э10Й дипективм та лешу последовательно записываются 256 байт 00 Е6 (байт синхронизации), младший бай. начального адреса, старший байт на! п., но го адреса, млад-шии байт конечног j адреса и старшцй байт конечного адреса. Завершение вь олнения директивы индицируется появлением н гчдикаторе HL контролг ой суммы

Чтение данных с магнитной ленты в ОЗУ производится п. директиве «А». Дирек 1 ива имеет один параметр — смещение. Если смещение равно 0000. то программа считается в адреса, из кото рых она была записана. Если запись считана верно то на индикаторах HL выводится контрольная сумма, котяра индицировалась при записи Итак, чтение записи с магнитофона начинают нажачием кногки «А» и вводом смещения Перед вводом последнего полубайта смещения мал штофон включается на воспроизведение, и с началом записи (однотонное звучание) вводится последний полубайт смещения Считывание записи завершается индикацией контрольной суммы данных, введенных в ОЗУ.

Директив запуска программ две. С помощ! ю , ирективы «6» осуществляется запуск программы с адреса C000H, а с помощью дипективы «7» программа может быть запущена с адреса, который вводится как г араметр директивы. Нажав кнопку «7». набирают адрес пуска программы, контролируя ввод побайтно на индикаторе А. При правильном вводе адрес пуска выводится на индикатор HL. Затем можно вводить параметры запущенной программы. Пользуясь директивой «7» mi «но применять вспо-iv гагельные подпрограм ы. входящие во вторую половину МОНИ и! )т 0Ж 'I до ( 3EFH.

С адреса 0200Н запускается программа копирования данных. Ее параметрами являются началь-'УЙ и конечный адрес исходной п. ограммы. а также начальный адрес копии Копирование с помощью этоп лрогра ,мы производится как вверх, i ак и вниз относительно исчидьой программы и даже на пеп впивающиеся области программ с затирс лием исходной npoi раммы в перекрывай хс ;™астях П южим л г збходимо скопи-р шъМОП TOjj с адреса 0100Н до 01201 з новые адреса ОЗУ с С100Н до С120Н В это .. случае должна соблюдаться следующая последовательность нажатия клавиш:

7 0-")0 0100 0120 С j 00

Копирование завершается с появ! ни ем двух единичек на индикаторе А. Это значит, что МОНИТОР ожидает ввода следующей директивы.

Проверить колчрование данных можно с помощью другой вспомогательной лрогр; ы сравнения данных двух областей. Ее пусковой адрес 0ЛВ2Н. У этой программы три параметра: начальный и конечный адреса исходной программы и нгчал'.ныи адг с копии. В продолжение примера <; копированием МОНИ ТОРА приведем последовательность нажатий на клавиши.

7 С 32 0 10 0120 С1' )

При совпадении исходной программы и копии на всех индикаторах появляются единички Пр' --есовпадении эталона и копии высвечивается адрес с ошибкой копии. При этом возможно ис травление ошибки и последующее сравнение данных.

Ч . обы скопированная программа moi ла быть запущена в новых адресах, ее нужно скоррс ктировать с помощью е томога-тельной программы-корректора. Ее пусковой а, эес 025FH. У про. раммы три параметра начальный и конечный адреса исходной рабочей программы и начальный адрес юрр актируемой с npoi раммы. Для нашего примера с МОНИТОРОМ это будет вы-1гядеть так:

7 025F 0100 0120 С100

Завершается работа программы появлением единичек на индикаторе А. Если скорректированная программ ' uyi с i использоваться на другом компьютере, например. <*МИКРп-80, в адресном прос. )анстве, которо отсутствует в микроЭВМ минимальной онфигурации, для подготовки такой про гр «мы используется суперторректор, запускаемый с адреса 02Е5Н Параметры супергорректора начальный, конечный адрес рабочей программы и нач? ьный адрес подготавливаемой программы. Пример с МОНИ'/ОРОГ* - рабочая программа подготавливается для работы в F100—F120H

7 02Е5 Я 00 С120 F100

Завершается работа программы появлением единичек на ин дикаторе А. При отладке программ может возни! ать необходимость вставки или удаления отдельных байтов Для этого мож но использовать несколько программ.

Программа вставки байта — пусковой адрес 035ЕН. Параметры программы: адрес того места программы, где необходимо вс.авить байт, и адрес к поограми ы Программа удаления байта —пуск( кой адрес 0388Н. Параметры программы: адрес удаляемого байта и адрес конца программы Программа завершается просмотром оставшейся части программы после адреса удаленного байта.

Программа замены адресов — пусковой адрес 0309Н. После пуска программы вводятся начальный и конечный адреса рабочей программы, а затем старый и но >ift адреса. Завершается исполнение программы выходом в МОНИТОР и появлением единичек на индикаторе А.

Завершим описание вспомогательных программ МОНИТОРА программой индикации регистров микропроцессора. Эта программа может использоваться при отла Л для чего в отлаживаемую программу с помощью триграммы вставки байта производится вставка трех байт CD DD03 После пуска отлаживаемой программы в требуемом месте программы происходит останов, а на индикаторах отображается содержимое регистров HL и ячейки памяти с адресом HL При нажатии на любую клавишу происходит индикация остальных регистров, обозначение которых выводится а щикатор А в "ледующей последовательности: AF, ВС, DE. Затем происходит исполнение отлаживаемой программы.

При нажатии кнопки «3» запускается директива тестирования дисплея микроЭВМ. После пуска директивы на всех ин циИто-рах дисплея выводятся последовательно все шестнадцатиричные цифры от 0 до РГ

Как 5 «е отмечалось, в МОНИТОР встроена программа часов, работающая в режиме прерывания, что позволяет привязывать программы к реальному времени.

Сигнала расскажем, что такое прерывание в микроЭВМ. Рассмотренные нами директивы МОНИТОРА исполняются в том порядке, в котором они расположены в памяти.ато значит, что никакое вмешательство пользователя не может воздействовать на ход выполнения программы, по которой уже начал работать процессор, кроме, конечно, сброса ми кроЭВМ в начальное положение. Система прерываний позволяет изменять ход выполнения программы на основании сигналов, поступающих в микропроцессор После поступления прерывания выполнениеоснов-ной программы прекращается и управление передается другой програм ме. Как только работа по другой программе завершится, будет осуществлен переход к прерванной программе и продолжится ее нормальное выполнение Сигнал прерывания, поступающие микропроцессор, асинхронный. В нашей микроЭВМ такими сигналами являются импульсы, поступающие каждуг "екунду от датчика времени, который выполнен на микросхеме К176ИЕ5, которая состоит из генератор? импульсов частотой 32768 Гц и делителя с коэффициентом деления 215.

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

1 Вывод 14 микропрот(ессораКР580ВМ80А перешел в сост ояние логической 1, что означает наличие запроса на прерывание.

2 Микропроцессор принял запрос на прерывание, и на его вывод^ 16 установился уровень логического нуля

Эти два события являются основными в рассматриваемой микроЭВМ.

Когда на выводе 16 кстанавливается логический ноль, микропроцессор игнорирует все запросы на прерывания, поступающие на его вход В системе команд микропроцессора есть две специальные команды: запрета прерываний DI и команда разрешения прерываний EI. С помощью этих команд можно менять состояние вывода 16 микропроцессора. После сброса микропроцессора в начальное состояние вывод 16 переводится в состояние логАеского 0. Это означает, что после начальной установки микропроцессор игнорирует все запросы на прерывания. Единственный способ разрешить прерывание — это заставить микропроцессор выполнить команду EI

После выполнения этой команды на выводе 16 появится логическая 1. Именно поэтому после начальной остановки одЕ^з первых в МОНИ ТОРЕ выполняется команда EI, разрешающая прерывание. После этого первый же секундный импульс установит уровень логического 0 на выводе 16 и микропроцессор не буг^ воспринимать запросы на прерывание В эгог же момент формируется из елква состояния управляющий сигИл «Пояцверждение прерывания» — ППР Однако поскольку не одно устройсЯЬ ввода-вывода и памяти не активМировано этим сигналом, то на шине данных будет действовать код команды FFH (команда RST7) и определит адрес перехода 0С38Н (подпрограмма прерывания) — программу часов Ь нашей микроЭВМ организовано лишь одноуровневое прерывание по -команде RST7.

Итак, по адресу 0038Н осущЖвляется переход на подпрограмму часов, в которой программно организованы счетчики секунд, минут и часов. Ячсики памяти, в ко рых организованы эти счетчики, имеют адреса C3FDH, C3FEH и C3FFH Завершается программа часов командой EI, и на выводе 16 микропроцессора снова устанавливается логическая 1 Прерванная программа продолжает работу

3 МОНИТОРЕ имеется директива начальной установки времени После нажатия кнопки «С» прерыва! я запрещаются. Затем следует набрать адрес ячейки памяти C3FDH и последова

11