Й.Янсен Курс цифровой электроники. Том 4. Микрокомпьютеры (1987) (1092084), страница 43
Текст из файла (страница 43)
Этот бнт после команды вывода используется для инициирования импульса программатора. Затем запускается программный цикл по 1рхн, который состоит из ряда команд. Прн каждом выполнении этого цикла величина 1рзн будет уменьшаться на 1 до тех пор, пока не станет равной О, после чего программа выйдет из цикла и будет про. Скеыы ввода и вывода должена. При этом по адресу 010 110, сначала будут выполнены две команды РОР, которые скомпенсируют воздействие предыдущих команд Р13ЯН на указатель стека; затем по команде АХ1 получается П5=0, в результате чего действие импульса программатора прекрашается.
Здесь команда АН1 производит удаление 1 из бита 05. Последующие команды увеличивают адрес на 1 и проверяют, произошла лн пересылка всех 1024 адресов. Если она не закончена, то по командам ЛЯЕ (адреса 010 131в и 010 140в) произойдут переходы в начало программы и цикл повторится, однако теперь уже с новым адресом и+1. Программа выполняется до тех пор, пока не будут переданы все 1024 адреса СППЗУ. Затем программа загружает индекс второго цикла (010 143в), уменьшает его на 1, проверяет, не равен ли этот индекс О, и если нет, то осуществляет переход на метку ВТАЩЕТ по адресу 010 006в, после чего снова все 1024 адреса с данными из ЗУПВ пересылаются в СППЗУ под управлением (иве, причем эта операция повторяется 100 раз.
Далее программа проходит через адрес 010 165в и по команде вывода сигнал СЗ~%Е деактивизируется, после чего выполняется команда НАСТ и программа заканчивается. 5.7. Программа проверки данных в СППЗУ При проверке данных в СППЗУ с помощью исходной программы, находящейся в ЗУПВ/ПЗУ-имитаторе микроЭВМ, регистр А используется в качестве порта ввода. Регистр В и часть регистра С продолжают работать в качестве адресного регистра, т. е. регистра вывода. Структурная схема программы проверки приведена на рис.
5.14, а текст ее находится в табл. 5.2. Из текста программы видно, что ее выполнение начинается с загрузки управляющего регистра; при этом регистр А используется в качестве входного порта, а регистры В и С вЂ” в качестве выходных портов (см. адрес 010 200в). Затем загружается первый адрес в регистры В и С. Далее с помощью команды ввода 151 байт данных считывается из первого адреса СППЗУ и пересылается в аккумулятор микроЭВМ (010 221в). Этот байт по команде СМР сравнивается с тем байтом, который находится по первому адресу ЗУПВ (см.
адрес 010 227в). Если эти байты не равны, то программа переходит к выполнению оператора НАСТ и по адресу 014 156/157в, используя пульт ручного управления, можно считать адрес с неверным содержимым. Если же соответствуюшие байты равны, то программа будет выполняться далее с переходом в подпрограмму «увеличение адреса на 1э (010 233в), после Глава в ресу 010 200а. Переход по адресу 000 000а выполняется в ППЗУ с помощью других подпрограмм и команд перехода, что позволяет обращаться во время прерываний к соответствующим сервисным программам. Рис.
ЗЛ4. Структурная схема программы проверки СППЗУ. чего происходит проверка запроса о том, не достигнут ли последний адрес СППЗУ. До тех пор пока этот адрес не достигнут, программа будет переходить на метку гхЕАП по адресу 010 212а и проверка содержимого байтов СППЗУ будет продолжаться. Этот процесс заканчивается на 1024-м адресе, после чего программа продолжается по адресу 010 257а вплоть до оператора НА1.Т (станов). Как программа загрузки СППЗУ (табл.
5.1), так и программа проверки СППЗУ (табл. 5.2) начинают выполняться с адреса 000000а после сброса в нуль или рестарта. По этому адресу постоянно находится команда ЛМР, которая передает управление команде по адресу 014 100а ячейки оперативного ЗУПВ, в которой с помощью пульта ручного управления записана команда перехода ()МР), передающая управление в требуемую программу. Как следует из табл. 5.1, в программе загрузки СППЗУ выполняется переход по адресу 010000а, а в программе проверки СППЗУ вЂ” переход по ад- 261 и вывода Схвмьс ввода Объекткый вод Ддрес зтг Оаксакке оаерацкя/ко»- мевтаркй Исходкый код Метка аосьм. шеста. шеста. ГЗ 80 08 ХХ ХХ 303 200 010 ХХХ ХХХ 18 40 41 42 68 69 ЛМР Переход в начало программы! О!4 1 00 !01 102 !50 15! 18 О! 44 Ввести начальный адрес проверяемой программы! Ввести конечный адрео (=начальный адрес+ +1024)! Адрес оперативного ЗУ; этот адрес при появлении ЙА(.Т указывает, какой адрес был считая с ошибками ХХ ХХ 152 153 6А 6В ХХХ ХХХ 1 56 15? 6Е 6Р ХХХ ХХХ ХХ ХХХ! О!4 МЧ1 А 0?6 ЗЕ 010 200 10 5ТАКТ Режим в регистре А ИС 8255Ас регистр А вход, регистры В и С выход 80 220 323 90 РЗ ОПТ Переслать содержимое А в ИС 8255А 203 052 83 2А Загрузить начальный ад.
рес в Н1. 1.Н1Л) 150 014 042 68 ОС 22 Переписать начальный адрес в оперативное ЗУ ЗН1.Р 156 014 175 010 210 1 2 6Е ОС 7Р !О Переслать в А содержимое 1. МОЧ А, 1. БЕАР 323 РЗ Переслать содержимое А в регистр В ИС 8255А О()Т 20! 174 8! 7С Переслать в А содержимое Н Операция И для А н 003, ( обнуление Р2 — Р7) МОЧ А, Н А)ь)1 Е6 346 003 373 03 РЗ 7 220 Переслать содержимое А в регистр С ЙС 8255А 010 90 ОПТ 10 202 82 Таблица 5.2. Программа: проверка СППЗУ (с загрузкой начальных условий) Глава 5 Продолжвиис Оаъектвый аад Ояасеаае ояезеааи~ком- меатезвй Исходяый код вссьм. еосьм. места.
333 06 Переслать содержимое регистра А ИС 8255А в А (аккумулатор 8085А) 200 052 80 2А 1.Н1.0 Загрузить начальный ад. рес в Н1. !56 О!4 276 ОЕ ОС ВЕ Сравнить содержимое ад- реса с содержимым А Если адресФА, переход по метке НА1.Т Ошибочный адрес счв- тываетси по адресу 014.156/157е( !86Е/ ЛЗбрге) СМР М 010 230 10 302 С2 260 О!О 052 ВО 08 2А Загрузить начальный ад. рес в Н1. 1.НЬ0 156 О!4 043 6Е ОС 23 15)Х Н 042 22 ЗН(.0 О!02 40 1 2 1О 156 О!4 072 АО 6Е ОС ЗА Загрузить начальный адрес+ 1024 (-конечный адрес) в А (младший байт) 10А 6А ОС 60 152 014 275 СМР 1 Сравнить содержимое с содержимым А Если (.~А, переход по метке (1ЕАО 302 С2 8А 08 ЗА 7 010 250 1 212 О!О 072 10 А8 1.0А Загрузить начальный адрес+1024 (=конечный адрес) в А (старшнй байт) 153 О!4 6В ОС Увеличить содержимое Н1.
на 1 Переписать увеличенный адрес в оперативное ЗУ Схемы ввода и вывода Продолакенив Исаолный код Объектный код Адрес Ву Оснсанне ооерацна7ком- ментарнй Метка носам. весте. 6С 274 Сравнить содержимое Н сА Если НеьА, переход по метке ГтЕА1а С74Р Н 302 6 7 О1 260 8А 08 76 212 010 166 1О Конец НА1.Т Если в программе используются прерывания, приходится следить за тем, чтобы во время прерывания, начиная с «сервисного» адреса в ППЗУ 10), происходил переход в ЗУПВ, а из ЗУП — в соответствующую сервисную программу.
5.8. Вывод данных на магнитную ленту Практика показывает, что прн обработке данных объем ЗУ довольно часто оказывается недостаточным для хранения используемых программ и данных. В предыдущем разделе было рассмотрено сменное СППЗУ в качестве фиксированного носителя информации, который заполняется системой с помощью соответствующей программы. Однако программы можно хранить и на магнитной ленте. Этот метод часто используется в персональных компьютерах, поскольку он не связан с большими затратами для хранения информации. В профессиональной сфере в основном применяются дисковые ЗУ; например, иа дисках хранятся программы для расчетов займов, кредитов и т. и.
Самым дешевым вариантом дискового ЗУ является гибкий диск (дискетка, или флоппи-диск). В качестве дешевого вспомогательного ЗУ часто используется кассетный магнитофон, Подобное применение представляет хорошую иллюстрацию того, как специальные периферийные схемы осуществляют ввод и вывод данных.
При выводе данных на ленту необходимо преобразовать параллельный набор битов в последовательный для того, чтобы затем можно было последовательно записать биты на ленте. Набор битов преобразуется в ЧМн-сигнал, который затем записывается на ленту. Здесь ЧМн — сокращение от слов частотная манипуляция, которая представляет собой одну нз форм частотной модуляции. Глава Б По сравнению с другими методами модуляции ЧМн имеет то преимущество, что к качеству кассетного магнитофона предьявляются довольно низкие требования. При использовании ЧМн-метода нуль обеспечивается сигналом, частота которого лежит ниже основной частоты, а единица в сигналом с частотой, превышающей основную.
ЧМн-сигнал можно генерировать или детектировать с помощью довольно простой схемы, а именно схемы с фазовой подстройкой частоты в интегральном исполнении, которая поставляется самыми разными фирмами-изготовителями. В рассматриваемой ниже разработке применена схема с фазовой подстройкой частоты типа 5!Е564, которую изготавливает также фирма 5!дпе!!сз. Преобразование параллельного набора битов в последовательный для байта, записываемого на ленту, и обратное преобразование при считывании данных с ленты производит схема УСАПП (ПЯАКТ) типа 8251А (118АцТ вЂ” е)п!чегза! 5упсйгопопз Азупс)1гопопз песе!нег Тгапзш!!!ег — универсальный синхронно-асинхронный приемопередатчик — УСАПП) '>.
Первоначально такие схемы были разработаны для телефонных систем последовательной связи. УСАПП типа 8251А располагается на кристалле и выполняет все функции, необходимые для реализации интерфейса между системой и модемом. При записи на ленту многие функции УСАПП являются лишними, в частности те, которые связаны с квитированием между соединяемыми станциями. Тем не менее эти функции также заслуживают рассмотрения хоти бы в форме краткого обзора для получения более полного представления о работе УСАПП. При выводе данных из микроЭВМ на магнитную ленту УСАПП обычно присоединяется к шипе данных микроЭВМ.
При передаче данных на ленту мы говорим о выводе информации, а при чтении данных с ленты — о вводе. Ввод и вывод данных осуществляют команды записи и чтения ЗУ, а это возможно в том случае, когда УСАПП представляет собой набор запоминающих элементов. При этом разрешение на ввод и вывод данных через УСАПП обеспечивает сигнал СБ.
Между УСАПП и кассетным магнитофоном находится ЧМнгенератор/демодулятор на ИС 5!Е564, и, кроме того, к схеме добавляется задающий генератор, который определяет скорость передачи данных на ленту, т. е. плотность записи информации иа магнитной ленте.
В рассмотренной разработке скорость передачи информации определяется частотой 400 Гц, при этом для ч Отечеетаенный функнноналаный аналог ММС КР580ИК51. — Прим. ред. Схвмы ввода и вывода вывода данных из ЗУПВ-1К8 на ленту требуется всего несколько минут. Скорость пересылки данных, равная 1000 бод (1 бод= =1 бит/с) в этом случае считается высокой. Более высокие скорости пересылки обеспечить трудно из-за ограничений, связанных с шириной ленты кассетного магнитофона. УСАПП преобразует параллельный набор битов в последовательный при передаче и последовательный — в параллельный при приеме информации.