Й.Янсен Курс цифровой электроники. Том 4. Микрокомпьютеры (1987) (1092084), страница 47
Текст из файла (страница 47)
носам. ЗН1.Р ПАТА МЧ! А !4 г8 063 33 062 32 612 370 1 ЗТА 1Н1О 160 70 014 ОС МОЧ А, М 16 00 613 000 ЗТА 114Х Н 1РА 152 6А О!4 ОС 16 08 613 010 ! 5 6 7 Схемы ввода и вывода 042 22 160 70 014 ОС 076 ЗЕ 000 00 300 СО 052 2А 176 7Е 062 32 000 00 200 80 043 23 ЗНЫ) 042 22 160 70 014 ОС 072 ЗА Продолженав Описание операции!комментарий Переписать в А2 Инструкция команды вА Инструкция команды в УСАПП Загрузить начальный адрес в НЕ Содержимое адреса вА Содержимое в УСАПП Увеличить содержимое НЕ на 1 Переписать увеличенный адрес в оперативное ЗУ нз адреса А2 Загрузить начальный адрес+ !024( конечный адрес) в А (младший байт) Глава б Обсентмыа ° од парсе ву Иснокмыа меа агеснм 60 275 СМР 1 302 С2 025 013 072 15 ОВ ЗА ЖА 6В ОС 6С 153 014 274 7 020 1 !О 16 013 СМР Н 312 СА 032 013 373 !А ОВ РВ Е! преры- 1.00Р 166 303 76 СЗ НА1.Т ЗМР метке !8 16 013 МЧ! А О1!Т 000 166 Конец НА1,Т 030 1 2 3 4 367 012 076 000 323 СЗ ОА ЗЕ 00 ВЗ Продолжение ОпнСенне опере.
Ммм/номментсрна Сравнить содержимое Ь с содержимым А Если АчьО, переход по метке 1.00Р; если А-О, то про- должать Загрузить начальный адрес+1024 ( конечный адрес) в А (старший байт) Сравнить содержимое Н о содержи. мым А Если А=О, то запись на ленту водготовлена, переход па метке Ег!Е Если АФО, то про- должать Разрешение ванин Ожидание Переход ао ПАТА Загрузить нуль а А Сброс триггера ввдвкатора загрузки Нацело 012-5!4 Режим УСАПП Режим УСЯПп 012-020 Команда УСАПП 012- 317 команда Услпп Раййй)е Уснпп О!2-З24 Осжансе р" =р+! 0!2 - 547 154 Т Нет 012- 042 012-550 да Остоное 012-074 и Да й572 ? О 12- 120 команда Услпп 012- 571 Команда УСАПП 012-153 ЗУПВ!л) — УСАПП 01З-000 Останов лн л+ ! 015- ООЛ Да О!З.О25 Данные ЗУПВ!л) О!2-170 питание -250 Конец О!5-035 Ряс 6.22. Структурная сяева вронедуры чтення)завясн дая кассетного ваю нятофона. лн-т-0 с Да Пере- Нет имка н 012-017 Нет Да йбТ2 2 йбТ! Да 1ОЕНТ Да Число Да Ядр ° 9 й5Т! Да Глава Ю ход сброс соответствующих триггеров в нуль заканчивается.
Для этого достаточно только обеспечить РО=О, так как именно этот бит переводит соответствующие триггеры в состояния 1 иО. После выполнения этих команд состояние тумблера «передача/прием» считывается по команде ввода (15!) в аккумулятор, и соответствующий байт маскируется, исключая бит РО. Далее с помощью СР!-команды проверяется, равен ли бит РО единице, и если Р0~1, то по адресу О!2017в происходит условный переход 32 в подпрограмму записи информации (адрес 012 300в).
Номер программы записывается в оперативное ЗУ. Далее 1 считывается в А и триггер индикатора загрузки переводится в состояние 1 с помощью команды вывода (012 310в), т. е. происходит переход в режим записи информации. Запись начинается с инициализации УСАПП.
Указывается инструкция режима, которая состоит из одних единиц, помещенных в соответствующем байте (377в по адресу 012 313в). Как следует из рис. 5.15, это означает, что планируется асинхронный режим пересылки данных и скорость пересылки будет определяться 1/64 частоты, задаваемой ТхС, т. е. в данном случае 6 кГц/64-400 Гц. Длина последовательного слова равна 8 бит, так как параллельный байт данных также содержит 8 бит. Далее будет получен бит четности (девятый) и, наконец, за байтом данных с битом четности последуют два стоп- бита. Команда с информацией о режиме загружается в управляющий регистр УСАПП по команде ЯТА (012314в).
В третьем байте этой команды биты Р7=Р6=1, т. е. в соответствии со схемой, показанной на рис. 5.21, будем иметь АВБ515=АВ(/814= =1 и поэтому получим С(Н)/Р(1.) =1 и СЗ(1) =О, что при активном сигнале %ц (1.) действительно приведет, как следует из рис. 5.16, к загрузке управляющего регистра информацией, необходимой для реализации пересылки данных. Теперь в аккумулятор А по команде МЧ! (012317«) загружается слово инструкции команды с содержимым 0011001!в (063в по адресу 012320«), т.
е. тем самым дается разрешение на пересылку, осуществляется сброс ошибок в нуль и выдается запрос на пересылку. Это позволяет использовать выходы РТЯ и КТЬ для управления кассетным магнитофоном, однако на последующих этапах такой режим работы не применялся из-за особенностей конкретного механизма магнитофона. В инструкции команды разрешение УСАПП на пересылку данных в магнитофон кодируется с помощью бита Р0=1.
После этого можно перейти к пересылке данных, которая начинается с загрузки идентификатора 307в (О!2 325в). Этот идентификатор представляет собой КЯТО, который в данной Скеиы ввода и вывода системе обработки данных с МП 8085А в качестве команды не применяется. Далее загружается идентификатор и записывается в УСАПП. Третий байт команды ЯТА по адресу 012330в заполняется числом 200е=10000000м в результате чего получаем АВ()515=1 и АВ13514=0, а это при наличии активного сигнала 1УК(Е) означает, что действительно данные записываются с шины данных в УСАПП (СЬ(Е) =О, С(Н)/Р(Е) =0 и %К(1) =О, см.
рис. 5.16). Затем дается разрешение микроЭВМ на прерывание с помощью команды Е1 (012 331в) и осуществляется переход в режим НАЕТ. Теперь УСАПП генерирует последовательный набор битов и посылает его через ЧМн-модулятор в кассетный магнитофон. По окончании этой операции УСАПП передает сигнал ТхКРУ, который заканчивает прерывание (1ИТЙ2). Далее микроЭВМ считывает вектор КЯТ2, передает управление по адресу 000 020в, считывает здесь команду перехода по адресу 014 043в (команда ЯЕТ) и снова передает управление в программу по адресу 012 (332+!)в (метка КЯТ2).
Следует отметить, что по адресу 000020в запрограммирована фиксированная команда перехода по адресу 014 043в. При выполнении указанных переходов в действительности ничего не происходит и они необходимы только для того, чтобы можно было снова вернуться в программу из режима НА1.Т, причем по адресу, превышающему иа 1 адрес ячейки, где находится команда НА1.Т. После этого инструкция команды снова загружается в аккумулятор А и переписывается в управляющий регистр УСАПП. Далее считывается номер программы (012 340в), который пересылается в кассетный магнитофон, причем эта операция повторяется до тех пор, пока не будет передана вся адресная информация для файла данных в целом.
После вывода этой адресной информации программа по команде условного перехода (ЗИЕ) выполняется, начиная с ячейки 020 356в, и продолжаются операции вывода данных байт за байтом, начиная с начального адреса, из ЗУ на ленту магнитофона. При выводе каждого байта данных (программный цикл) адрес увеличивается на 1 и производится проверка на достижение конечного адреса. Если конечный адрес не достигнут, то программа записи продолжается далее.
По адресу 013 026в микроЭВМ переходит при каждом сбросе в НА1.Т-режим, т. е. ждет до тех пор, пока УСАПП не закончит вывод соответствующего байта на магнитную ленту. По окончании этой операции УСАПП выдает сигнал ТхЮУ, который осуществляет переход к вектору КЯТ2 (013 027в). Для микроЭВМ это служит указанием начать выборку следующего байта данных из ЗУ в УСАПП для последующей пересылки на ленту. Глава в По достижении конечного адреса микроЭВМ переходит из ячейки 013 022в с командой условного перехода 32 в ячейку 013 032в, где в регистр А загружается нуль.
Команда вывода (01)Т), которая считывается по адресу 013 034в, сбрасывает в нуль триггер индикатора загрузки и соответствующий светодиод гаснет. После этого можно остановить кассетный магннто. фон, так как весь файл теперь находится на магнитной ленте. При работе в режиме чтения программа сначала устанавливает, что тумблер апередача/прием» не включен, т. е. находится в состоянии О, в результате чего условный переход ДЕп из ячейки 012 017в уже не происходит и программа выполняется далее, переходя в подпрограмму чтения.
Процесс чтения начинается с загрузки начального адреса РЕ-файла (РŠ— ошибка по четности) (014 300в), а затем выполняется команда по адресу 014156/157в. В случае обнаружения ошибок по четности в этот файл вводятся те адреса ЗУ, в которых были зафиксированы указанные ошибки. Затем в аккумулятор А вводится то же самое слово с описанием режима, что и в случае записи, и это слово передается в управляющий регистр УСАПП. При адресации команды записн биты Р7 и 06 в третьем байте должны быть равны 1 (см. команду в ячейке 012 032в).
После этого передается инструкция команды. Здесь бит 150~0 и тем самым в УСАПП сообщается, что можно принять байты данных с ленты кассетного магнитофона. Далее триггер разрешения прерывания в микроЭВМ переводится в состояние 1 и микроЭВМ переходит в НАЕТ-режнм (012043в). Теперь можно запустить кассетный магнитофон и УСАПП начинает собирать один байт из битов, поступающих с магнитной ленты. По окончании формирования байта происходит прерывание, при котором активируется вектор прерывания мЗТ1, и с помощью различных переходов команды мЕТ из ячейки 014 040в программа выполняется вплоть до адреса 012 044в (метка КЯТ1).
Обратный переход из НАЕТ-режима в программу происходит точно так же, как и в режиме записи байтов данных на ленту. Байт, сформированный в УСАПП, передается затем в аккумулятор А микроЭВМ, где он сравнивается с другим байтом, чтобы выяснить, не является ли он идентификатором.