Й.Янсен Курс цифровой электроники. Том 4. Микрокомпьютеры (1987) (1092084), страница 42
Текст из файла (страница 42)
Адреса и данные должны сохраняться в течение 1 мкс после прекращения действия импульса программатора. Необходимые задержки обеспечиваются в программах с помощью фиктивных передач (пустых команд). Загрузка СППЗУ заканчивается спустя 1Х1024Х100 мс-102 с, после чего можно начать проверку введенной информации с помощью программы, которая сравнивает байты, введенные в СППЗУ, с байтами, на. ходящимися в ЗУПВ, которое обеспечивает исходную информа цию. Стирание содержимого ИС 2708 производится с помоп1ью источника ультрафиолетового излучения с длиной волны 2537 А,. Для очистки СППЗУ имеются приборы, которые позволяют очн. Сввмы ввода и вывода св10!п перес (н) сь.
уа Лсп~ме ~'н Пмпулес пп Рис. 8.12. Временная диаграмма процесса программирования СППЗУ типа 2708. щать одновременно несколько СППЗУ. Возможен также вариант очистки с помощью кварцевой лампы, когда СППЗУ в течение нескольких часов освещается этим источником, расположенным от него на расстоянии 20 см. 5.6. Программа загрузки СППЗУ Программа загрузки СППЗУ, осуществляющая пересылку :информации, имеет дополнительные блоки, которые позволяют передавать через периферийный интерфейс как адреса, так и данные, а также обеспечивают необходимые временные сигналы, связанные с программными циклами.
Структурная схема программы ЗАГРУЗКА СППЗУ приведена на рис. 5.13. Текст программы помещен в табл. 5.1. Выполнение программы начинается с загрузки необходимых операторов, таких, как индекс цикла, начальный и конечный адреса для пересылки данных. Конечный адрес получается из начального адреса с помощью команды ПАП„которая прибавляет к нему 1024. После того как эти операторы заполнят соответствующие рабочие участки ЗУ переменной длины, происходит запуск управляющего регистра ИС 8255А.
почало Огп-ООО ого-апб О!О-Огг о!о- огг О!а- 00! ОIО - 002 огп-обг О!О -Обп о!о - обб ОIΠ— П2 ою- !г! о!и-ыг о!и -мг О!О- гбп Рнс. ЗДЗ. Структурная схема программы ЗАГРУЗКА СППЗУ. 0(а- ггг По команде МЧ1, А по адресу 010 027в загружается управляющее слово с информацией о режиме, 1000 00002, которое предписывает портам А, В и С в режиме 0 работать в качестве регистров вывода. При этом регистры А, В и С подготавливаются к передаче в ИС 2708 информации, относящейся к адресам и данным.
По адресу 010 0330 загружается 1ра -число, определяющее число циклов, которые должна выполнить программа для формирования требуемой длительности импульса 1ртг= 1 мс. Эту длительность можно изменить с помощью константы 0530 по адресу 010 0340. СоответствУюЩее 1р!О-число запоминается в оперативном ЗУ переменной длины в микроЭВМ, что позволяет производить затем определенные операции с ннм при выполнении цикла. Далее в А загружаются данные для первого адреса (010 0440) и этот байт запоминается в порте А ИС 8255А. Заметим, что этот порт указан во втором байте команды вывода по адресу 010 04бв с помощью битов П1,00=00.
Затем загружается младший адресный байт первого адреса из 1. в аккумулятор А мнк- 251 Схвмы ввода и вывода Таблица бЛ. Программа: загрузка СППЗУ '(с загрузкой начальных условий) Объснтнмй код Адрес ЗУ Опнсенне опере- пнкгкомментеряа Исходный код Метка сосем. 014 100 18 303 ЯМР 40 СЗ Переход в начало программы! 18 014 152 153 ХХХ ХХ 6А 6В ХХХ 154 ХХ 6С !55 156 ХХ ХХ ХХХ ХХХ 60 6Е Адрес оператив. ного ЗУ 157 !60 ХХХ ХХХ ХХ ХХ бР 70 Индекс цикла опе. ратипного ЗУ 161 71 ХХХ 040 014 ХХ 20 Начало стека ОС Указатель стека О!0 041 0 00 10 21 1.Х! Н Загрузить нндеко цикла 100ю ( 000 144е) 144 000 042 64 00 22 Переписать индекс цикла в оперативное ЗУ 5Н1.0 160 О!4 052 70 ОС 2А Загрузить начальный адрес !.НЫ) 5ТАКТ 150 014 353 7 010 1 68 ОС ЕВ 010 10 08 ХСНС Содержимое Н!.— «-ВЕ !О! !02 150 151 41 42 68 69 000 О!О ХХХ ХХХ 00 08 ХХ ХХ Ввести начальный адрео загружаемой программы! Ввестн конечный адрес ( на.
чальный адрес+ + 1024)! Число !ртт опера. тинного ЗУ Глава 5 252 лдр с вр шесте. посыл. 041 21 !Л1 Н 000 004 03! 00 04 19 ПАВ ЗНЕЭ 042 22 152 014 052 6А ОС 2А 7 0 20 1 10 010 !О 1.Н(.П 150 О!4 042 68 ОС 22 ЗН(.П 156 014 076 6Е ОС ЗЕ !О 80 О! 0 30 18 323 ПЗ 01)Т ! 0.000.011 ЬХ1 Н 203 041 83 2! 053 000 042 2В 00 22 3Н(.П 154 014 7 040 010 !О 20 ТЕАНЗРОЕТ Исходвый код МУ! А 10.000.000 Объектный код Продолжение Оппсеяве опереккв7коккептерпй Загрузить 1024 (1 Кбайт) в Н1.
Н1+ПЕ На. чальный адрей+ +1024 Переписать иоваоный адрес ( = начальный адрес+ 1024) Загрузить началь- ный адрес в НЕ Переписать начальный адрес в оперативное ЗУ Загрузить слово режима в А Загрузить слово режима в А Режим в 8255А А7=СЗ, 'А1Ао= Управление Загрузить число (гтт в Н1. 053е=1 мс Переписать чиало (ртт в оперативное ЗУ Слвмм ввода и вывода Оаъемтвеы сод адрес Зу Миха шесте. 052 2А 1.Н1Л) 156 014 176 6Е ОС 7Е МОЧА,Н 323 ОЗ Оуз'Т 200 175 80 7О 10.000.000 МОЧ (., А 10 28 010 050 323 01)Т 1)3 201 174 81 7С 10.000.001 МОЧ Н,А АН! 003 306 03 Сб 00.000.011 АО! 020 303 10 СЗ Ошнбна в тексте программы ЛМР 010 10 ЗО О!0 08 Исзсдяма вод Продолжение. Освсееве свере- цяятасммевтерва Загрузить началь- ный адрес ° Н1.
Загрузить содержимое начального адреса в А Переслать содер' жнмое А в ре. гистр А ЙС 8255А Загрузить в А содержимое 1. (младший байт адреса) Переслать содер" живое А в ре-. гистр В ИС. 8255А Загрузить в А са-. держнмое Н (старший байт. адреса) Операция И длн. А и Зз ( обиу. пенне О2 — О7) Прибавить 020ю к. содержимому А ( О4: устанав- ливается в со- стояние 1, т.е. 1)4 %Е) Глаза Ю Ислолома кол овсом. тесов. место. 306 Сб А01 040 323 00.100.000 01)Т 20 03 202 052 82 2А Загрузить число 1гтг в Н1. 6С 1НЫЭ ТР 1У 6С 2В 10 38 4)10 0СХ Н 042 22 ЗН1.0 МОЧА, 1.
376 РЕ СР1 0 00 С2 000 302 1О 40 010 МОЧ А,Н 6 7 070 !00 1 2 154 014 053 154 014 175 065 010 174 ОС ОС 70 35 08 7С Продолжение Оовсавоо ооора- цомасоммсвтороа Прибавить 040с и содержимому А (=05: устанавливается в со. стояние 1, т. е. 05=импульс программатора) Переслать содер. жимое А в регистр С ЙС 8255А Уменьшить содержимое НЕ на 1 Переписать уменьшенное число !рог в оперативное ЗУ Переслать содержимое !.
в А Сравнить содер. жимое А с нулем (проверка !т от = 07) Если 1гтгФО, переход по метке ТР!Ч Переслать содер. жимое Н в А Схемы ввода и вывода Ооьектныа код лкрес зр Метка шести. носим. шести. 376 СР1 0 000 302 00 С2 ЗНЕ 35 08 С! 6 7 !!О 065 010 301 010 10 РОР В 48 Р! Еб 361 346 РОР Р51Ч АН! 11.011.111 ОПТ РГ РЗ 337 323 1.Н1.Р 50 10 1ХХ Н 22 5Н1.Р 042 6Е ОС 156 014 5 6 7 120 1 Исхоинеж кол 202 052 156 О!4 043 82 2А 6Е ОС 23 Продолжение Описание ооерации?комментьрия Сравнить содержимое А о нулем (проверка !рш=О?) Если ГршФО, переход по метко ТРтт' Коррекция указателя стека (сброс в нуль) Операция И длш А и 337в (РГсе) Переслать содержимое А в ре.
гистр С ИС 8255А (сброс в. нуль С5; нм. пульс программатора заканчивается) Загрузить адрес Увеличить содержимое Н1. на 1 Переписать уие ииченнмй адрео. в оперативном ЗУ 256 Глава Ю Оаъсктиый код Адрес зу Метка шести. васам. шести. 072 ЭА (.РА 10 СМР Е 68 302 С2 1.РА СМР Н 302 С2 1О 140 г)10 1.Н(.Р РСХ Н БН1.Р 042 22 !О 68 Р30 014 70 ОС ! 50 1 б 7 130 Исаодиый код 152 О!4 275 033 010 072 153 014 274 033 010 052 160 014 053 6А ОС ВР !В 08 ЗА 6В ОС ВС 1В 08 2А 70 ОС 2В )уродолжение Описаииа опера. ции!коммситариа Загрузить началь. ный алрес+ -г!024 ( ко.
нечный адрес) в А (младший байт) Сравнить содержимое Е с содержимым А Если 1ФА, переход по метке ТЕАИЯРОКТ Загрузить начальный адрес+ 1024 (=конечный адрес) в А (старший байт) Сравнить содержимое Н и А Если Н~А, пере. ход по метке ТЕАХБРОЕТ Загрузить индекс цикла в НЕ Уменьшить содер. жимое Н1 на 1 Переписать умень. шеиный индекс цикла в оперативное ЗУ Схемы ввода и вывода лкрес ир Овъектнмй кок Метке косые. арсен.
МОЧА, Е 175 70 376 ЕЕ СР1 0 000 302 !О 70 МОЧА, Н 376 РЕ 000 302 00 С2 МЧ1 А 10 78 01)Т 202 166 82 76 НА1.Т Конец 010 2 00 10 80 0(/Т 323 ПЗ 202 82 6 7 1 60 4 5 6 7 010 !70 Искрянка код 006 010 174 006 О!О 076 000 323 06 08 7С 06 08 ЗЕ 00 ОЗ Продовскенив Опнсанне опера цнн/коннеатарнй Переслать содер. жимое Е в А Сравнить содер. жимое А с ну* лем Если А(Е)ФО, переход по метке 5ТАЕТ Переслать содер. жимое Н в А Сравнить содер.
жимое А о ну. лем Если А(Н)ФО, пе. реход по метке БТАЕТ Загрузить нуль в А Сбросить в нуль регистр С (8255А); деактн/' вирЕтется СЯ/ Установка СЗ/1ЧЕ в состояние 1 Глава б Продолжение ддр с з! Объектной код Описание операНни/комментарий Метка Исходнмй нод Операции дли получении времени задержки в 1О мкс 366 Р!18Н РБ % 301 303 061 О!О С! СЗ 3! 08 Р13ЯН В !МР Обратный переход роЭВМ и этот байт пересылается с помощью команды вывода в порт В ИС 8255А.
Порт В указан во втором байте команды вывода с помощью битов Р1,ПО=01 по адресу 010 051а. После этого загружается старший байт адреса из Н в аккумулятор А и по команде АХ1 выделяются два младших бита. Эти два бита используются как дополнение к 8-разрядному адресу в порте В, чтобы получить 10 бит для последующей выборки 1024=2'о ячеек СППЗУ, После этого к содержимому А в микроЭВМ добавляется число 020а, для того чтобы обеспечить значение 04=1.
Теперь требуется передать содержимое аккумулятора в порт С ИС 8255А, однако соответствующая команда была здесь по ошибке пропущена. Это обстоятельство обнаружилось в процессе тестирования программы, и недостающая команда была вставлена посредством программирования перехода по адресу 010 200а, чтобы затем можно было перейти в требуемую точку программы. С этой целью одновременно были выполнены две команды Р11БН Р5% и Р11ЬН В, в результате чего появилась возможность вставить команду перехода по адресу 010 057й. После коррекции осуществляется возврат в исходную программу по адресу 010 061а. Обе команды Р13БН использовались для обеспечения необходимой задержки в 10 мкс между сигналом СЗ/1УЕ и передним фронтом импульса программатора. После этой задержки к содержимому А добвляется 040а, при этом получается Обнн1.