Text
                    Practical Hardware Details
for 8080, 8085, Z80, and 6800
Microprocessor Systems
J ames W. Coffron
Prentice-Hall, lnc.,.
Eng\ewood Cliffs
1981


,ДЖ. КОФФРОt-1 ТЕХНИЧЕСКИЕ СРЕДGВА МИКРОПРОЦЕССОРНЬIХ СИGЕМ • ПРАКТИЧЕСКИЙ • КУРС Перевод с енrnнАскоrо кенд. техн. неук В. А.. &еnыберднна, кенд. техн. наук Л. В. Шабанове МОСКВА. «МИР» t983
ББК 32.973.2 К74 УДК 681.3 l(оффрон Дж. К74 Технические средства микропроцессорных систем: Прак­ тический курс. Пер. с англ.-М.: Мир, 1983. -344 с., ил. Кииr11 uмериканско~·о специа.писта представ.пяет собой руководство по проек­ тированию микронроцессориых систем иа базе стандартных наборов распростра­ ненных семейств микропроцессоров 8080, 8085,, Z80 и 6800. Дета.пьно ана.пнзнруются особенностн арх11тектуры н функционирования микропроцессоров н систем на их основе, обсуждаются преимущества и недостатки конкретных технических реше­ инl\. Г.павное внимание уде.пено комμоновке и испытаниям апщ1ратных средств. Из.пожение нJI.пюстрируется з'начнте.пьиым чнс.пом прнмеров построения реа.пьных микропроцессорных систем. Д.пя спецна.пистов, связанных с проектированием систем обработки данных на базе микропроцессоров. 2405000000-371 К 041(01)-83 158-83, ч. 1 Редакция· литературы по ·новой технике © 198t Ьу Prentice-Hall, Inc., Englewood Cliffs ББК 32.973.2 © Перевод на русский язык, сМир:., 1983 Дж. Коффрон ТЕХНИЧЕСКИЕ СРЕДСТВА МИКРОПРОЦЕССОРНЫХ СИСТЕМ Научиыl\ редактор Т. Н. Шестакова. Младший научный реДактор Е. П. Ор.пова. Худо~­ иик Г. М. Чеховский. Художествеищ,11\ редактор Л. Е. В&Эрученков. Технический редак­ тор Г. В. А.пю.пниа. Корректор Н. А. Гиря ИБ No 3741 Сдано в набор ОЗ.01.83. Подписано к печати 13.05.83 . Формат 60Х90 1/,., Бумага типограф• екая No 2. Объем 10,76 бум . .п. Гарнитура .пнтературная. Печать высокая. Ус.п. печ. 11. 21,5. Усл. ир. отт. 21,6. Уч.-нзд. Ji 21,43. Изд. No 2012110. Тираж 50 ООО (1 завод 1- 25 000) экз. Зщtаз 814. Цеиа 1 р. 30 к. , _ • ИЗДАТЕЛЬСТВО «МИР,., 129820, Москва, И-110, ГСП, 1-11 Рижский пер., 2. Мосиовска.я типография No 11 Союзпо.пнграфпрома прн Государственном комитете СССР по де.пам нздате.пьств; по.пнrрафин и книжной торгов.пи. Москва, 113105, ~аrатинская у.п., д. 1.
ПРЕДИСЛОВИЕ К РУССКОМУ ИЗДАНИЮ l ';1:шитие и распространение микропроцессоров, а также все..-­ "" 1можных устройств и систем на их основе стимулируют по­ ' 1оsrпно возрастающий интерес к микропроцессорной тематике· , ,1 стороны все боле~ широкого круга технических специали- , 1on: В последние годы в различных издательствах нашей стра~ 111,1 был выпущен ряд монографий советских и зарубежных ав- 1, 1ров, посвященных данной тематике. В этих работах нашел , 11·ражение круг вопросов, связанных с_ архитектурой микропро- 111•ссоров, структурой систем на их основе, возможностями и 11!'рспективами использования мщ<ропроцессориых устройств и , 11стем в различных сферах жизни и деятельности человека и 1 11. Можно полагать, что хотя спрос на литературу подобного ро;щ удовлетворен еще не в полной мере, знакомство читателей ,. основами построения, функционирования и использования ~1111<ропроцессорных систем уже состоялось. В этой связи стано- 1111тся понятной потребность в публикациях, которые давали бы , , 111сты на многие специальные вопросы, возникающие у прак. , 11•1сских работников в процессе проектирования и отладки кон- 1, рстной системы. Именно такую наiiр'авленность имеет настоя­ ща н книга. Главная ·особенность книги заключается в том, что основной .11щснт в ней смещен в сторону изложения практических вопро­ ' 11 1 1, с которыми сталкиваются разработчики непосредственно 11 11роцессе создания системы. Книга в известной степени может р:1ссматриваться как практическое руководство по проектиро- 11:111ию и отладке микропроцессорных систем. Другая особенность состоит в том, что при обсуждении во- 11 ~юсов технической реализации тех или _иных устройств автор, 1,.1к правило, не ограничивается ра-ссмотрением какого-то одно- ' , 1, пусть предпочтительного инженерного решения, но анализи­ р у<~т разлиrtнр1е подходы к решению, показывая их сильные и , .11абые стороны. Этому способствует проводимый автором ана­ ,111:1 возможностей при использовании каждого из рассматривае­ ~ 1 1,1 х типов микропроцессоров для реализации одних и тех же ,1,v11кций. Особо следует остановиться на предлагаемой методике от­ ,1.11lкИ технических средств системы, именуемой тестированием·· 111,средством статических сигналов. Она отличается простотой: 11 11аглядностью анализа коммуникационных процессов. -Такая ,1,· !'()Дика позволяет разработчику системы в полной мере ос­ ~11,1сJшть и прочувствовать все особенности взаимодействия мик­ р11111юцессора с устройствами памяти и ввода-~ывода. Можно надеяться, что книга окажется весьма полезн:ой для 11 р:1 пических работников, •связанных с проектированием и ~~~ ,,, ,.111,:юванием микропроцессорных устройств и систем самою· 1• 1 ,.11ичного назначения. В. А. Балыбердин
ПРЕДИСЛОВИЕ К РУССКОМУ ИЗДАНИЮ Развитие и распространение микропроцессоров, а также все-­ возможных устройств и систем на их основе стимулируют по­ стоянно возрастающий интерес к микропроцессорной тематике со стороны все более цшрокого круга технических специали­ стов, В последние годы в различных издательствах нашей стра­ ны был выпущен ряд монографий советских и зарубежных ав­ торов, посвященных _ данной тематике. В этих работах нашел \ - u отраж~ние круг вопросов, связанных с архитектурои микропро- цессоров, структурой систем на их основе, возможностя ми и перспективами использования микропроцессорных устройств и систем в различных сферах жизни и деятельности человека и т . п . Можно полагать, что хотя спрос на литературу подобного рода удовлетворен еще не в полной мере, знакомство читателей с основами построения, функционирования и использования микропроцессорных систем уже состоялось. В этой связи стано­ вится понятной потребность в публикациях, которые давали бы ответы на многие специальные вопросы, возникающие у прак­ тических работников в процессе проектирования и отладки кон­ кретной системы. Именно такую направленность имеет нас.тая- щая книга. • Главная особенность книги заключается в том, что основной акцент в ней смещен в сторону изложения практических вопро­ сов, с которыми сталкиваются разработчики непосредственно в процессе создания системы: Книга в известной степени может рассматриваться как практическое руководство по проектиро­ ванию и отладке микропроцессорных систем . Другая особенность . состоит в том, что при обсуждении во- . просов технической реализаций тех или иных устройств автор, как правило, не ограничивается рассмотрением какого-то одно­ го, пусть предпочтительного инженерного решения, но анализи- •рует различные подходы к решению, показывая их сильные и слабые стороны. Этому способствует проводимый автором ана­ лиз возможностей при использовании каждого из р.ассматривае~ мых типов микропроцессоров для реализации одних и тех же функций. Особо следует остановиться на предлагаемой методике от­ ладки технических средств системы, именуемой тестированием посредством ' стати.ческих сигналов. Она отличается простот9й · и наглядностью анализа коммуникационных процессов. Такая методика позволяет разработчику системы в полной мере ос­ мыслить и прочувствовать все особенности взаимодействия мик­ ропроцессора с устройствами памяти и ввода-вывода . Можно надеяться, что книга окажется весьма полезной для практических работников, связанных с проектированием и ис­ пользованием микропроцессорных устройств и систем самого различного назначения . В. А. Балыбердин
ПРЕДИСЛОВИЕ Если вам необходима подробная информация практического характера по микропроцессорным системам, то ее можно найти в новой книге Дж. Коффрона. Изложение материала начинается с описания обычной архи~ тектуры системы с тремя шинами для 8-разр~дных микропро­ цессоров. Это позволяет читателю хорошо усвоить организацию микропроцессорной системы, особенности ее функционирования и причины; по которым были выбраны те или иные технические решения. Книга написана простым языком, для нее характерна методически• последовательная компононка материала, что спо~ . собствует глубокому изучению каждой из затронутых тем н позволяет использовать ее в качестве учебного пособия. Книга является уникальной в том смысле, что в ней содер- • ?f<ИТСЯ описание полного набора схем для четырех широко рас­ пространенных ми~ропроцессорных семейств - 8080, 8085, Z80, 6800,- поясняется назначение каждого вывода в корпусах щ1- тегральных схем, приводятся спецификации, соответ.ствующие временнъrе диаграммы, даются необходимые ссылки. Большое место отводится вопросам последовательной отладки техничес­ ких средств системы, что обеспечивает их эффективное исполь­ зование. Предлагаемый материал поможет читателю определять возможные неисправности в существующих микропр·оцессорах. Эта книга-продолжение ранее изданной монографии Дж. Коф­ фрона «Устройство и отладка микропроцессоров», которая яв­ ляется своеобразным введением в микропроцессорные системы, предназначенным для специалистов по цифровой технике. Авто­ ру удалось заострить внимание на технических средствах мик­ ропроцессорных систем, что делает книгу весьма полезной: в практическом отношении. • Многие читатели~ вероятно, захотят приобрести эту книгу, чтобы использовать ее в качестве справочного пособия по тех­ ническим средствам ведущих микропроцессорных семейств. В. Ло11,г Профессор электроники Футхилл колледж Лос-Алтос Хил, Калифорния
ПРЕДИСЛОВИЕ АВТОРА . _ После завершения первого цикла занятий по микропроцессо• рам у студента обычно остается много неясного. Причина этого кроется в большом объеме изучаемого материала, освоение ко­ торого требует времени. Если по окончании . такого цикла обучающийся в целом хорошо представляет, каким обра,зом функционирует микропроцессорная система и как организуется взаимодействие технических и программных средств, то можно полагать, что обучение было успешным. Предметом настоящей: книги яв-ляется детальное изложение процесса работы микропроцессорной системы. В общем курсе по микропроцессорам обычно делают ссылки на многие частные аспекты этого процесса, предпочитая, как правило, .их не описы­ вать. В книге обсуждаются реальные системы, построенные на базе микропроцессоров. По мере ознакомления с конкретной системой подробно разбирается взаимодействие ее компонент. Рассматриваются схожие системы с вариацией лишь основной компоненты - микропроцессора, который выбирается из четырех основных типов - 8080, 8085, Z80, 6800. При этом система моди­ фицируется, чтобы учесть частные особенности выбранного мик­ ропроцессора, а ее основные функции остаются неизменными. Это позволяет провести сравнение отличий и сходных черт раз- . личных микропроцессоров. Основной акцент в книге сделан на технические средства. Программное обеспечение обсуждается лишь в той мере,-в :t<а­ кой это необходимо для освещения вопросов управления техни­ ческими ср·едствами. При~ы nрограммирования здесь не затра­ rиваются, поскольку составляют предмет отдельноrо изложе­ ния. Основная цель книги заключается в том, чтобы помочь чи­ тателю в использовании описанных микропроцессоров при по­ строении и отладке технических средств системы в целом. Все описанные в книге системы были реализованы и испы­ таны. Они используются на практике. Применяемые интеграль- • ные схемы являются стандартными изделиями, серийно выпус­ каемыми промышленностью, что обеспечивает возможность их· приобретения, проверки и использования. • • Определенное место отводится изложению вопросов отладки· различных микропроцессорных систем. Это необходимо, чтобы убедиться, что технические средства функционируют в соответ­ ствни с заложенными требованиями. Для поиска неисправностей применяется· методика, именуемая «Тестирование посредством статических сигналов». Также описана несложная техника и
8 Пред1о1словие автора -средства отладки, которые могут быть использованы для боль­ шинства систем. Необходимая справочная информация по интегральным схе­ мам .(ИС), используемым в различных устройствах, взята из до­ кументации фирм-изготовителей, так что читатель имеет все данные для проектирования. В книге описываются реальные схемы с реальными характеристиками. Выводы всех ИС про­ маркированы, а каЖдi!я схема детально описана. Характеристики рассматриваемых схем рассчитываются, что позволяет читателю глубже понять· возможности применения микропроцессоров, по мере ознакомления с которыми появляют­ ся настоящий интерес и ·желание реализовать полученные зна­ ния. Практическое воплощение при этом ограничивается .лишь способностями и воображением проектировщика либо наличны­ ми ресурсами. В будущем, возможно, появятся новые сферы применения микропроцессоров, о которых сегодня и не мечтают. Дж. Коффрон
Глава 1 ВВЕДЕНИЕ В АРХИТЕКТУРУ МАШИН С 3 ШИНАМИ В настоящей главе мы обсудим общую архитектуру микропро­ цессорных систем. Рассматриваемые системы представляют особый интерес для тех, кто только приступает к изучению мик­ ропроцессоров. После общего описания организации микропро­ цессорной системы мы покажем особенности реализации типич­ ной системы путем использования различных микропроцессо­ ров: 8080, 8085, 280 и 6800. По мере совершенствования технологии постепенно выраба­ тываются предпочтительные способы исполнения изделий. При этом на этапах проектирования, производства, испытаний, от-· падки, установки и использования издеJUlй применяются более или менее стандартные методы. То же относится и к микропро­ цессорам. Несмотря на относительную молодость J,t:икропроцес­ сорной техники и на постоянно расширяющееся · число микро­ про1\ессорных систем и их пользователей, в вопросах организа·­ ции, структуры и архитектуры систем, в методах обработки данных, в уровнях логических сигналов, в анализе отказов и в интерфейсе с устройствами ввода-вывода уже выработался ряд ст11ндартов. Поэтому назрела необходимость в одной кню:е рассмотреть устройства 8080, 8085, Z80, 6800. Начиная с описа­ ния единой архитектуры с 3 шинами, общие черты систем, по­ строенных на базе указанных микропроцессоров, последова-/ тельно обсуждаются во всех главах. • При рассмотрении реальных систем с микропроцессорамп мы опишем лишь те специальные интегральные схемы (ИС), предназначенные для использования с ·конкретными микропро­ цессорами, которые необходцмы для понимания общих принци­ пов работы системы. По мере возможностей будут использо­ ваться обычные широко распространенные ИС. Если мы будем понимать, каким образом работает микропроцессорная система~ построенная с помощью стандартных логических блоков, реали­ зация этой системы со специальными логическими блоками не составит большого труда. 1.1. Архитектура сметем с 3 шинами Архитектура с 3 шинами является наиболее общей для микро- процессорны~ систем. Шиной 5~9'~!! .§1.~~.! ! f !!9.!__ __физи~ ~руппу. ЛИНИИ переда ЧИ сигналов, ИМеЮЩИХ С~ОЖJ!е. Шi~i.КЦИНВ • . 1 -
!О Гnе■е Рис. 1.1 . Два примера физической реализации шины системы. а - шина специального исполнения, состо,ящая нз гибких п~оводов; б - шина, выпол· ненная в виде печатной схемы. рамках .си~ Например, некQторая группа линий м~жет 'ис­ пользоваться для передачи сигналов адреса памяти. Эту rруп­ пу линий можно назв·ать адресной шиной. На рис. 1.1 показа- .ны два примера различной физической реализации шин. Все три шины являются специализированными с точки зрения их функций. Эти шины именуются так:· 1. Адресная шина системы. 2. Шина данных системы. 3. Шина управления системы. Логическое состояние этих трех шин описывает коммуника­ ционный тракт системы в любой момент времени. Коммуника­ ционный тракт - это путь, который данные, представленные в виде электрических сигналов, проходят в системе от одной точ­ ки к другой. 1.2 . Адреснвя wннв системы По адресной шине системы передаются лишь выходные сигна­ лы, которые поступают с выводов в корпусе микропроцессара. Эта шина предназначена для того, чтобы открывать или выби-
Ваеденме а архитектуру с 3 wм11емн н рать правильный тракт для электричес~s:оrо соединения в преде- л ах микропроцессорной системы. . Для удобства будем в дальнейшем полагать, что все э.лект•­ рические соединения в микропроцессорной системе осуществля­ ются между микропроцессором и устройс-rвом, открытым с по­ мощью адресной шины. В качестве устройства' здесь выступает любая электрическая схема, принимающая данные от микро­ процессора либо. вырабатывающая данные для него. (Позднее· мы покажем, что это не всегда справедливо для систем, управ­ ляемых_ микропроцессором.) Для начинающих изучение микро­ процессорных систем подобное ограничение способствует лучше­ му пониманию материала. После того как поняrие описываемо­ го здесь коммуникационного тракта дано, легче объяснить осо­ бенности других коммуникационных трактов, имеющихся в мик­ ропроцессорной системе. . - Другой важной характеристикой адресной шины системы яв- ляется ее емкость. Емкость шины определяется числом входя­ щих в нее отдельных электрических пиний. Для микропроцес­ соров 8080, 8085, Z80, 6800 характерна 16-разрядная адресная шина. Это о;шачает, что адресная шина систем, построенных на базе этих микропроцессоров, компонуется из 16 физических пи­ ний. 1.3. Wинв двнных системь1 Шина данных системы является двунаправленной шиной. Это означ<).ет, что передача данных может производиться в обоих направлениях. В некоторых случаях данные генерируются мик­ ропроцессором и передаются от него к определенному устройст­ ву системы. Это устройство открываете.я с помощью заданного логического состояния линий адресной шины и поп·учзет данные с шины данных. _ В других случаях данные генерируются каким-то источником и передаются микропроцессору посредством шины данны~с В качестве источника выступает то устройство системы, которое открывается с помощью адресной шi;щы.· Подобный режим на­ зывается вводо;м данных в микропроцессор. Хотя передача данных по шине данных может производить­ ся в обоих направлениях, однако в каждый ·заданный момент, времени она осущестrшяется лишь в одном направлении. Это означает, чт.о для передачи данных в систему и их приема из системы •микропроцессор переводится в соответствующий ре­ жим. Более того, _по всем разрядам шины в каждый момент­ времени данные передаются лишь в одном направлении, t. е. в любой момент по всем пиниям шины они могут либо только. вводиться либо только выводиться. Для микропроцессороs 8080; 8085, Z80 и 6800 шина данных является 8-разряд1:10й. Поэтому говорят, что емкость ши.ны дан-
12 Глава 1 ных равна 8 разрядам и параллельно могут передаваться лишь 8 бит информации. По этой причине перечисленные микропро­ цессоры относят к классу 8-разрядных ми_кропроцессоров. 1.4 . Wинв упрввnения системы На шине управления действует 4 следующих типа сигналов: 1. Чтение из памяти активизировано. 2. Запись в память активизирована. 3. Чтение с устройства ввода активизировано. 4. Запись на устройство ввода активизирована. Микропро­ цессор Адресная шина Шина данных Шина управления 16 адресных линий Ao-A1s 8 линий шины данных Do-D1 4 линии шины управления: ЧТЕНИf ИЗ ПАМЯТИ, ЗАПИСЬ В ПАМЯТЬ, ЧТЕНИЕ С УСТРОЙСТ5А ВВОДА, ЗАПИСЬ НА УСТ­ РОЙСТВО ВЫВОДА Рис. 1.2 . Блок-схема системы с 3 шинами. По адресной шине и шине управ-. ления сигналы передаются лишь в одном направлении (однонаправлещ1ые шины). Шина - данных является двунаправленной, что показано стрелкой, имеющей два •направления. Позднее для этой шины мы введем некоторые добавочные сигналы. Однако для понимания существа процессов пока не­ обходимо ограничиться указанным списком_ сигналов. После то­ го как станут ясны функции этих четырех сигналов, будет лег­ че изучать функции других сигналов. Шина управления используется лишь длs~: вывода сигналов, ~ т. е. является однонаправленной и работает лишь в режиме вы­ вода. Напротив, шину данных мы рассматриваем как двуна- правленную. _ Термин «активизирован» означает, что при наступлении со~ бытия, запрашиваемого соответствующей линией щины управ,­ ления, эта линия имеет активный сигнал логического уровня 1 йли О. В микропроцессорных системах активное состояние ли­ ний шины управления может быть либо логической 1, либо ло-
Введение в архитектуру с 3 wинами . / ..1s гическим О. При этом различные линии системы могут быrь ак­ тивнымu при разных уровнях логического сигнала. Например, линия управления ЧТЕНИЕ ИЗ ПАМЯТИ может быть актив­ ной при логическом уровне 1, а линия управления ЗАПИСЬ' В ПАМЯТЬ - при уровне О. Распознавание и инициирование типа электрического сое.ди• пения для шины данных системы является' функцией сигнала шины управления. Необходимо заметить, что линия управле­ ния может быть активизированной и при уровне логической 1, и при уровне логического О. На рис. 1.2 архитектура систем с тремя шинами показана в виде блок-схемы, из которой видно, что стрелки, со­ ответствующие адресной шине и шине управления, указывают лишь на одно направление. Это говорит о том;, что эти шины однонаправленные. Для шины данных на рис. 1.2 стрелки ука­ зывают на два направления, что соответствует двунаправлен­ ной шине. Принятые нами. обозначения часто используются в литературе для описания этих шин. t .5. Испоnьэоввние архитектуры с 3 шинами Теперь мы обсудим общие принципы передачи информации в· микропроцессорной системе, имеющей архитектуру с 3 ·шинами. Прежде всего необходимо пояснить основные фуf(кции, реали~ •зуемые микропроцессорной системой. После этого можно будет перейти к рассмотрению особенностей их выполнения. Для первоначального знакомства с микропроцессорами дD4 статочно рассмотреть лишь пять • функций, описанных ниже; • позднее список этих функций может быть расширен. Такие фуикции хорошо отображают возможные операции, выполняе­ мые в микропроцессорной системе. К ним относятся: 1. Запись данных в память системы. 2. Чтение данных_ из памяти системы. 3. Запись данных в устройство ввода-вывода. 4. Чтение данных с устройства ввода-вывода. 5. Выполнение операций с содержимым внутренних регист­ ров микропроцессора. Указанные пять возможных тиriов функций микропроцессор­ ной системы позволяют создавать большое число разнообраз­ ных средств. Рассмотрим, каким образом эти функции могут быть ре_ализованы посредством архитектуры систем с 3 шинами. f.6 . Звnмсь данных• nвм11ть Чтобы понять, каким об_разом в микропроцессорной системе осу­ ществляется запись данных в память, необходимовыяснитьосо~ бенности передачи данных в память от любого янешнего источ•
14 Гnа■а 1 ника. С этой целью :мы приведем временную диаграмму общего процесса записи данных в полупроводниковую память 1 >, после рассмотрения которой будет легко показать особенности исполь­ зования системы с 3 шинами для выполнения этой операции. _ Послед ующее обсуждение относится к рис. 1.3. Отметим, что адресные входы памяти на рисунке маркируются как A6-An, Адресная ~'пина Ао-Ап =х----} Шина данных 0 0 -Dп ~Х v-} 1 ~ 11 1 1~ ~ 11 1 j : ,,il. Импульс j РАЗРЕШЕНИЕ/ ЗАПИСИ В 1 . - ПАМЯТЬ 1 / 1 время 1 1 :ДОСТУПА! ТWP 1 ' ПРИ .. ,,. :,,1 I ЗАПИСИ I J А, Do о, Адресt1ые Входы . данных памяти Рис. 1.3 . Упрощенная временная диаграмма трех сигналов, необходимых для реализации цикла ЗАПИСЬ В ПАМЯТЬ для цолупроводниховой памяти. где An характеризует максимальное число адресных линий, не­ обходимых для данного блока памяти. Например, если память организована как 1024XI, то для обеспечения доступа к любой· ячейке памяти необходимо 10 линий, и адресные линии будут обозначаться как Ao-Ag. , Линии данных маркируются как Do-Dn, где Dn характери­ зует максимальное число линий данных памяти. Например, если память организована как 256Х 4 бит, необходимо четыре линии данных. Линии данных такой памяти обозначаются Do-D.з. Заметим также, что как адресн~е входы._ так и входы дан­ ных должны быть активизированы после выдачи сигнала раз- 1> Для углубленного изучения функционирования полупроводниковой па-. мяти см. Coffron J. W ., Getting Started in Digltal TrouЬ!eshootiпg, Reston Pub- llshing Со., Reston, VА, 1979.
В■ едеttИе в архитектуру с 3 wннамк 15 решения записи. Термин «активизировать» здесь означает пода­ чу на адресные линии и линии данных .уровня напряжения, со­ ответствующего логическим 1 или,О и удовлетворяющего приня- . тым для используемого семейства логических схем параметрам. Например, если в системе используются схемы семейства TTL, то активизация логической I соответствует интервалу 2,4-5.О В, а логического 0-0,0-0;4 В. Интервал времени, в течение которого должны сохраняться активизированными адресные и информационные входы до вы­ дачи сигнала разрешения записи, для различных устройств раз­ ный. Например, для устройств памяти типа МОП (металл - окисел - полупроводник) этот интервал составляет 200 нс, а для памяти на схемах TTL - 30 нс. Для точного определения временных соотношений следует ознакомиться с технической документацией на соответствующие изделия. Анализируя рис. 1.3, важно подчеркнуть, что вне зависи­ мости от конкретных временных соотношений сигналов для за­ данного устройства памяти микропроцессорная система должна удовлетворять" всем существующим временным параметрам для устройства памяти данного типа. Если же эти временньrе соот­ ношения не соблюдаются, то надежной взаимосвязи между мик­ ропроцессором и памятью системы обеспечить не удастся. Для того чтобы успешно реализовать обработку сигнала записи в память в системе с 3 шинами, на шинах системы необ­ ходимо выполнить следующие действия: 1. На адресной шине А0-А 15 должен быть активизирован адрес памяти (т. е. адрес ячейки, куда записываются данные, генерируемые микропроцессором, с шины данных). 2. На шину данных D0-D1 доJiжны поступить данные из микропроцессор.а. (Эти данные необходимо записать в ячейку, адрес которой содержится на адресной шине.) 3. После осуществления действий I и 2 на линию запис1:1 в память шины управления должен поступить соответствующим образом синхронизированный импульс разрешения записи тре­ буемого уровня напряжен~я. При этом осуществляется переда­ ча данных. Таким образом, шина управления производит управ­ ление системой посредством соответствующим образом синхро­ ни:щрованных импульсов. Однако существует ряд дополнительных действий, которым также необходимо уделить внимание. Об этих действиях бvдет говориться ниже при реализации систем с 3 шинами на базе конкретных. микропроцессоров. Схемы, реализующие их, проще описывать при более детальном ознакомлении с системой. В на­ стоящей главе раскрываются лишь общие вопросы функциони­ рования микропроцессоров. При обсуждении. мы наме.ренно. опускаем частщ,1е детали. Это объясняется стремлением п0яснить общие принципы функ-
16 Гл11111 1 ционирования •микропроцессорньiх систем с 3 шинами прежде, чем рассматривать реальные системы. Из обсуждения рис. 1:3 ясно, каким образом си·гналы раз­ личного логического уровня на каждой из шин (адресной, дан­ ных, управления) взаимодействуют ~ежду собой при формиро­ вании необходимой входной информации при записи данных в память системы. Шины системы обеспечивают надежное соеди­ нение микропроцессора с памятью системы путем формирова­ ния необходимой комбинации сигналов па входах памяти. 1.7. Чтение двнных из пвмяти Покажем, каким о_бразом в системе с 3 шинами реализуется чтение данных из памяти. Кратко рассмотрим Ьсн9вные особен­ ности чтения данных из любой полупроводниковой памяти. На Алрссная 11н~на А 0- А n =х_______ 1 [ 11 Чтен11е данных ~Шина данных [\п-Dе___ .i :; .. _ Л1шия 1 управnения 1 1 ~· чтением из 1 - памяти 1 1 [ 1- 1,_ 1 т дсс I Данныt> из памяти подаютсн 1-<I <'---~с::_-~➔ 1 на ШIIHY данных по ИМПУ,ЛЬС) 1 1т1ни11 управле ння ЧТЕНИЕ tЛ ПАМЯТИ Рис. 1.4 . Типичная временная диаграмма цикла ЧТЕНИЕ ИЗ ПАМЯТИ. рис. 1.4 приведена типичная временная диаграмма RЫполнения операции чтения данных из пам,яти. Отметим, что в соответст­ вии с рис. 1.4 адресньrе линии A0-A .n должны быть активизи­ рованы с сохранением стабильного уровня сигнала до момецта времени, когда данные из памяти поступают на шину данных по сигналу соответствующей линии шины управле~ия. Вспом-. ним, что данные в си,стеме передаются из одного-устройства в другое посредством шины данных. Для выполнения этой опер'З.­ ции шина данных переводится в такой режим, при котором л.о­ гические уровни на этой шине соответствуют данным, хранимым в памяти. И наконец, сигнал шины управления определяет нуж­ ный момент выдачи данных из памяти на шину даннЬiх. Таким
'Введение в. архитектуру с 3 шинами 17 образом, чтобы реализовать операцию чтения данных из памя­ ти системы, необходимо выполнить сле.ду.ющие действия: 1. Обеспечение стабильных уровней сигналов на адресной шине Ao-An. • 2. Подготовка шины данных для приема данных (т. е. она переводится в режим приема· дашtых •в микропроцессор). 3. После реализации шагов 1 и 2 активизация шиной управ­ ления .т:щнии управления чтением из памяти. При этом данные из памяти поступают на шину данных и могут быть восприня~ ты микропроцессором. Как видим, реализация операции чте­ ния из памяти предполагает взаимодействие сигналов соответ­ ствующих логических уровней на всех трех шинах. 1.8 . Звnись мнных в устройство вывода В микропроцессорной системе слово «память» имеет вполне оп­ ределенное значение, а именно оно ассоциируется с некоторой схемой или множеством схем, с которыми можно легко связать. функции чтения и записи. Иначе обстоит дело с понятием «у_ст­ ройство вывода», оно определено не достаточно четко. Устройст­ вом вывода может быть и построчное печатающее устройство, и табло на светоизлучающих диодах, и электронно-лучевая труб­ ка (ЭЛТ), и кассетный накопитель, и гибкий диск и любое дру­ гое устройство микропроцессорной системы. В интересах после­ дующего изложения определим устройство вывода следующим образом: «~T,P-. Q!iCTBO !_3ЫВ()дса_-::::-_~;? - ~ I??()e. Jg,QО_йст~_g__пц,мя.r~ 1!0.ОWИНимающее_ дан1Jм~~---л~рrn~ае.мм~__Q .!. ..М~кропроцессора1 _Такой подход к определению устройства вывода позволяет-­ представлять ero в виде устройства, способного принимать от l до 8 бит в параллельном режиме. Причем .прием данных осу­ ществляется в том с.11учае, если на -шине управле~ия активизи... poi;Jaнa линия управления записью на устройство вывода. Функционирование устройства вывода, так же Ki}K и функ­ ционирование памяти, можно рассмотреть с позиции взаимодей­ ст~;Jия электрических сигналов. Отличие заключается Jiишь :в том, что устройство вывода осуществляет обработку сигнала уп­ равления, а память системы - нет. Так микропроцессор 680() одинаковым образом про·изводит запись данных в память и в. устройство вывода. Это справедливо для многих микропроцес­ соров. Системы, в которых реализуется подобное взаимодейст­ вие, иаз~вают системамlt -с организацией вывода по аналогии с обращением к памяти. Изложенное должно помочь начинаю­ щим изучение микропроцессорных систем понять, что отличие между организацией обмена с памятью и с устро~ствами вы.. _ вода в таких системах невелико. 2-814
18 Глава 1 Каждому устройству вывода приписан свой адрес, подобный адресу памяти системы. На рис. 1.5 показана в упрощенном ви­ де временная диаграмма записи в устройство вывода. Из рис.1.5 важно понять, что адрес устройства вывода и выводимые дан­ ные поступают на соответствующие шины до того, как шиной управления системы будет выдан импульс разрешения вывода. ,оnерация записи в устройство въшода выполняется путем реа­ .лизации следующей последовательности действий: • Адрес устройства ~ /вывода доступен Данные дл,1 устройства Do"-07 /ВЫВОда доступны ----v Импульс устройства вывода • РАЗРЕШ~НИЕ ЗАПИСИ\____/ - Рис. 1.5 . Упрощенная временная диаграмма операции ЗАПИ(;Ь В YCTPOFI- CTBO ВЫВОДА для системы с 3 шинами. 1. Обеспечение стабильных уровней сигналов А0-А15, соот­ ветствующих адресу устройства вывода. В некоторых системах для адресации устройства вывода используются не все. 16 ад­ ресных линий. Более подробно этот вопрос будет изложен позд­ нее, когда будет -рассматриваться система с 3 шинами на базе реального микропроцессора. 2. Обеспечение на шине данных D0-D7 стабильных уровней ·сигналов, соответствующих данньJм, которые должны быть за­ писаны в устройство вывода. 3. После выполнения шагов l и 2 подача на шину управле­ ния сигнала разрешения записи в устройство вывода. Рассмотренная выше операция зациси данных в устройство вывода выявляет функцию каждой шины системы. При реали­ зации этой операции все три шины фудкционируют во взаимо­ действии друг с другом. И используя их, система устанавливает надежную связь между микропроцессором и устройством вы­ вода.
Введен.не в •рхнтектiру: с 3 wннамн 1.9. Чтение двнных с устроЯствв ввода В качестве устройства ввода микропроцессорной системы мо­ жет р;з.ссматриваться любой источник, кроме 11амя'Ги системы,. способный передавать данные микропроцессору. А_анные И:! уст; ройства о а пе есылаютс • оп о ессо JJQ запросу по~ е н го. В качестве примера устройства ввода можно назв~ть. клавишный пульт терминала с ЭЛТ. Данные с пульта посту­ пают ~ микропроцессор по его запросам. А-А Адрес устройства ввода доступен ~-< ___ •______________ Данные поданы _0_0 -_о_7______-- ,. на шину данных _____ Импульс ЧТЕНИЕ С , УСТРОЙСТВА ВВОДА на линии управления Рис. 1.6 . Временна!f диаграмма цикла ЧТЕНИЕ С YCTPOFICTBA ВВОДА. показывающая основные сигналы шины. В некоторых системах микропроцессор не делает различия между чтением с устройства ввода и ·из памяти системы. Подоб­ ное замечание ранее было сделано относительно устройства вывода. Если микропроцессорная система не различает чтение данных из памяти. и с устройства ввода, то говорят, что в систе­ ме используется ввод данных по аналогии с обращением к па­ мяти. Архитектура системы подобного типа упоминалась в свя­ зи с записью данных на устройство вывода. Наиболее типичным примером системы, в которой ввод-вы­ вод данных реализуется по аналогии с обращением к памяти. является микропроцессор 6800. Более подробно этот вопрос будет изложен в последующих главах при рассмотрении прин­ ципов построения систем с 3 шинами на базе устройства 6800. На рис. 1.6 представлена временная диаграмма, показываю­ щая взаимосвязь между тремя шинами. Из этогорисункавидно, что адрес устройства ввода поступает на адресную шину до то­ го, как на шину' управления подается сигнал управления t~теци-
20 Глава 1 ем с устройства ввода. В течение промежутка времени, пока на шине управления сохраняется этот сигнал, данные с устройства ввода передаются на шину данных. Сравнивая рассмотренные до сих пор временные диаграммы, можно заметить,_ что синхронизация процессов при чтении дан­ ных из памяти и с устройства ввода схожа. То же самое отно­ сится и к синхронизацщ1 процессов при заnиси данных в память и на устройство вывода. Как уже упоминалось, с помощью боль­ шинства микропроце.ссоров можно строить системы, в которых нет различия между записью данных в память и на устройство вывода либо чтением данных из памяти и с устройства ввода, . . ' 1.1 О. Опервции с внутренними реrистрвми Операции с внутренними регистрами представляют собой пятую функцию из ряда основных, реализуемых •микропроцессорной системой. Примером такой операции может служить операция ADD, по которой содержимое внутреннего регистра микропро­ цессора складывается с содержимым аккумулятора. Для раз­ ных микропроцессоров существуют особенности вр1полнения этой_ операции, однако при этом все необходимые действия реа­ .лизуются внутри «единственного кристалла» микропроцессора, так что виешние шины сист~мы не используются. В начале нашего обсуждения мы установили,- что. пять irере­ Gисленных функций микропроцессора позволят начинающему читателю адекватным образом· описать _большинство ·процессов в микропроцессорной системе. Позднее мы обсудим некоторые· дополнительные функции, а пока основное внимание будет со­ -средоточено на пяти указанных, которые постоянно использу-_ ются вне зависимости от сложности программного обеспечения -системы. В качестве примера рассмотрим в общем виде выпол­ нение команд в микропроцессорной системе. После этого ста• .нет очевидной периодическая повторяемость nяти основных функций. 1.11 . Выпоnнение комвнд в системе с 3 шинами Основная последовательность действий: при выполнении любой команды такова: 1. Микропроцессор выдает в память адрес, по которому хра-: ;нится код операции команды. 2. Код операции читается из памяти и вводится в микро• nроцессор (функция 2). 3. Команда дешифрируется микроп·роцессором. 4. Микропроцессор «настраивается» на выполнение одной иэ пяти основных функций в соответствии с результатами дешиф~ рирования считанного кода операции.
Введение в архитектуру- с 3 wинами 21' 5. • Предцоложим, что бЫJiа считана команда с непосредст­ веtшыми данными. По этой команде в один из внутренних ре­ гистров микропроцессора загружается константа. Микропро­ цессор настраивается на чтение второго байта данных из памяти~ 6. Второй байт данных из· памяти загружаетсst во внутрен­ ний регистр микропроцессора (функция 5). Главное здесь з·аключается. в том·, что . вне зависим·ости от кода операции микропроцессор настраивается на выполнение одной из пяiи рас.смотренных выше функций.· Снова подчеркнем, что существуют и ·другие реализуемые· системой функции, например прерывание, прямой доступ к па­ мяти· (ПДП), ожидание. Эти функции будут обсуждаться в по­ следующих главах. Однако вполне возможно спроектировать управляемую микропроцессором систему, в которой не исполь­ зуются никакие дополнительные функции, за исключением пяти приведенных выше. Позднее рассмотрим проектирование таких систем. Однако чтобы не оказаться во власти заблужде­ ния, следует помнить, что приведенный здесь подход к проекти- . рованию имеет не только методологическое значение и оказы­ вается весьма эффективным при настройке, проектировании и . отладке многих систем, управляемых микропроцессорами. 1.11. Упрввnение синхрониэвцие~ сис,:емы При изучении различных временнь1х соотношений, соблюдение. которых необходимо для реализации пяти основных функций, возникает естественный вопрос: каким образом осуществлять правильную синхронизацию всех сигналов? Фундаментальная особенность использования микропроцессоров при проектирова­ нии систем заключается в следующ~м: синхронизация всех сиг­ налов в системе осуществляется схе~ами; входящими в •состав кристалла микропроцессора. При ,обработке микропроцессором программной команды чтения из памяти выработка и синхронизация необходимых сиг-. налов для фррмирования адреса, для выборки даиных и для управления осуществляются самим микропроцессором. " , Пользователи микропроцессора должны знать синхрониза­ цию всех его сигналов. Это способствуег правильному использо­ ванию временнь1х соотношений при проектировании системы. Такой несколько упрощенный .подход позволяет достаточно точ­ но представить функцищшрование большого числа существую· щих микропроцессоров. В дальнейшем этот подход будет использован при проекти­ ровании микропроцессQрных систем на базе устройств 8080. 8085, Z80, 6800. •
22 Глава 1 1.13. Выводы В настоящей главе была рассмотрена архитектура типичной микропроцессорной системы с 3 шинами. Эти три шины вклю ◄ чают: адресную шину; шину данных; шину управления. При реализации общих системных функций было также показано взаимодействие сигналов различного уровня, подавае◄ мых на эти шины. 1( этим функциям относятся: 1. Запись данных в память системы . . 2. Чтение данных из памяти системы. 3. Запись данных в устройство вьtвода системы. 4. Чтение данных с устройства ввода системы. 5. Выполнение операций с внутренними регистрами. Было показано, каким образом эти основные функции реа" лизуются в системе с 3 шинами. Основные положения настоящей главы применимы к l'!есьма широкому кругу микропроцессорных систем. В . последующих главах эти общие положения будут использованы при построе• нии реальных микропроцессорных систем. В гл. 2 определяется архитектура систем с 3 шинами на базе существующих схем микропроцессоров 8080, 8085, Z80 и 6800. В проектируемых уст• ройствах рассматриваемые в главе общие положения приобре• тают практический смысл.
Глава 2 ПОСТРОЕНИЕ СИСТЕМ С 3 ШИНАМИ НА БАЗЕ УСТРОЙСТВ 8080, 8085, Z80 и 6800 В настоящей главе будет рассмотрено, каким образом архи­ тектура систем с 3 шинами может быть реализована с исполь­ зованием реальных микропроцессоров. Одновременно будут об­ суждаться микропроцессоры 8080, 8085, Z80 и 6800, для каждо­ го из которых будут спроектированы шины ,адресная, данных и управления. В процессе проектирования этих шин будут рассмотрены осо­ бенности реализации шин для каждого микропроцессора. В гла­ ве приводятся реальные схемы. Они могут быть использованы в качестве центрального процессора (ЦП), построенного на лю­ бом из рассматриваемых микропроцессоров. После построения шин будут обсуждены вопросы интегрирования памя,ти, уст­ ройств ввода и вывода в рамках одной микропроцессорной сис­ темы. Эти вопросы поднимаются в настоящей и последующих главах. 2.1 . Пояснения к адресной шине системы При проектировании адресной шины прежде всего оценивают величину токовой. нагрузки, при которой каждая адресная шина работает удовлетворительно. Адресные линии в микропроцес­ сорной системе связаны cq множеством адресных входов, под­ ключенных параллельно, как это показано на рис. 2.С Если для адресной линии характерен ток, по величине превосходя­ щий допустимое значение на выходе микропроцессора, то такую линию необходимо буферировать. Под буферированием понимают такую/ процедуру, при кото­ рой адресная линия снабжается средствами «съема» избыточ­ ИРГО тока. Например, предположим, что адре~ные лин~и микро­ процессорной системы должны управлять адресными входами четырех блоков памяти и двух портов ввода-вывода, что пока­ зано на рис. 2.2 . Не будем обсуждать правомерность' приве~ен­ ных в схеме соед}!неций. Этот вопрос раскрывается в гл. 3. Просто допустим, что приведенные соединения возможны. Величина тока в адресной линии, управляющей блоками па­ мяти и устройствами ввода-вывода, равна сумме входных токов всех четырех блоков памяти и двух портов ввода-вывода. Пусть
Глава 2 в качестве памяти используется оперативное запоминающее уr:r­ ройство (ОЗУ) 1024Х4 бит типа 2114. По техническим характеристикам устройства 2114 видно, что нагрузка каждого входа равна 1О мкА и не зависит от логичес" кого состояния адресной линии. Это означает, что общая на" грузка от микропроцессора на адресной .чинии при работе с па" мятью есть 4Х10 нли 40 мкА. . _ Микропроцессор +5В Адресная шина -= -= -= Рис. 2.1 . Подсоединение к адресной •шине микропроцессора нескольких устройств (нагрузок). На схеме показаны четыре нагрузки. Далее допустим, что при построении входных портов рис. 2.2 используются устройства 74LS (маломощные устройства Шот­ тки). Это означает, что каждое устройство вывода системы соз­ дает на адресной линии нагрузку, соответствующую ~стандарт­ ной для 74LS. Согласно техническим характеристикам 74LS, эта нагрузка равна 20 мкА при сигнале логической 1 и 0,4 мА­ при логическом О. В табл. 2.l приведены значения суммарной нагрузки на адресной линии системы, показанной на рис. 2.2. Из табл. 2.1 видно, что максимальная нагрузка на адресной ли­ нии для состояния логической 1 равна 80 мкА, а для состояния логического 0-840 мкА. Тип памяти 2114 Таблица 2.1 Примерная нагрузка для адресной линии Ао (рис. 2.2) Нагрузка (мкА) Для одного блока 1О мкА ( логическая 1) Для всей памяти / Тип .УСТройсrва ввода- 10 мкА (логичес:кий О) Для каждого устройства 400 мкА (логический О) 20 мкА (логическая 1) 40 мкА (логическая 1) 40 мкА (логический О) Для всех устройств 800 мкА (логический О) 40 мкА (логическая 1) вывода 74LSXX Общая нагрузка 40 мкА+800 мкА=840 мкА (логический О) 40 мкА+ 40мкА= 80мкА (логическая 1)
Микропроцессор 4 кристалла памяти 2порта ввода-вывода Рис. 2.2 . Использование адресной линии А.о, исходящей из микропроцессора, для управления четырьмя линиями памяти и дву1;1я портами Е!!юда-выиода . (заземление на схеме не показано). Микропроцессорная • система Длинный кабель Устройство ввода-выв о~.­ например, построчно печ;: тающее устройство Рис. 2.3, Микропроцессорная сж:тема может использоваться с устро.lктвом вывода типа построчно печатающего устройства, которое может соединяться с системой посредством длинного кабеля. Такой кабель 'обладает большой емкостью, поэтому для передачи по нему сигнала необходимо использовать специальные схемы.
26 Глава 2 После того как на адресной линии приблизительно оценена максимальная нагрузка, сравним ее с допустимой, определяемой характеристиками используемого микропроцессора. Например, для микропроцессора 8080 максимальная допустимая нагрузка на адрес11ой JJИIIИИ в состоянии логического О есть 1,9 мА, а в состоянии JЮrической 1-150 мкА. Сравнивая эти данные, ви­ дим, что в обоих случаях (при логических 1 и О) рассчитанная нагрузка меньше допустимой. • ----J/1 1 1 1 1 1 ___,;/v = 1 1 1 Форма импульса на переда­ ·Lющем конце кабеля Искаженный·импульс на ~ приемном конце кабеля Рис. 2.4 . Небуферированиыii сигнал, передаваемый по длинному кабелю, мо­ жет искажаться. Искажение может оказаться настолько значительным, qто на приемном конце принимается ложный сигнал. В приведенном примере микропроцессор в состоянии непо­ средственно управлять памятью и устройствами вывода. В бо­ лее мощных системах он осуществить такое управление не сможет. Если нагрузка по току на адресных линиях превышает его возможности, возникает необходимость введения буферов. Однако при этом необходимо рассмотреть ряд дополнительных факторов. Введение буфера адреса требует тот факт, что адресные ли­ нии рассчитывались на большую емкостную нагрузку. Приме~ ром емкостной нагрузки является кабель очень большой длины, иными словами - устройство вывода, подсоединенное к систе­ ме с помощью длинного кабеля. Подобная ситуация показана на рис. 2.3. Здесь для поддержания электрических характери­ стик сигнала перед его передачей по кабелю для адресных ли~ ний необходим буфер. Причиной: этого служит большая емкост~ кабеля. При ограниченных возможностях по формированию то­ ка, как показано на рис. 2.4, сигнал, поJ1учаемый на приемном конце кабеля, будет искажен. . Другим примером, где, возможно, необходимо буферирова­ ние адреса, является система, в рамках которой адресные линии соединяются с различными платами. При этом микропроцессор монтируется на одной плате, а адресные линии проходят через·
Построение систем с 3 шинами Zl торцевой разъем и соединяются с другой платой в пределах од­ ной системы. Подобная ситуация иллюсrрируется схемой рис. 2.5 . Такая система характеризуется очень высокой емко­ стной нагрузкой на отдельных линиях, проходящих через тор­ цевые разъемы и заднюю поверхность основной платы. В случае когда целесообразность буферирования сомнитель­ на,. полезно помнить простые правила. Исп.ользуйте буферы ад­ реса: Плата :микропроцессора .Jыход адресных rт11ннй Печатная пщ~та 2 Печатная плата 3 . Адресные л~ Входы адресных линий Рис. 2.5. Блок-схема типичной системы, в которой адресные линии, начинаясь на одной печатной схеме, проходят на другую в пределах системы. Здесь необходимо использовать буферы адреса иа плате, откуда исходят адрес- ные линии. 1) если нагрузка по току для любой адресной линии приме­ няемого микропроцессора приблизительно равна или больше номинальной. 2) если адресные линии . соединены с какой-либо схемой, расположенной вие платы, на которой генерцруются соответст- вующие сигналы. • 2.2. Выбор требуемых буферов адреса После решения вопроса о необходимости буферирования сле­ дует выбрать подходящие буферы. При выборе буферов необ­ ходимо проанализировать большое число факторов. При этом многие проектировщики имеют склонность к тем или иным ycr• ройств1;1.м. Ниже приводятся правила, которые могут помочь в решении этой задачи. . 1. Используйте неинвертирующий буфер. Хо.тя это может по- • казаться очевидным, тем не l\feнee начинающие работать с мик-, роnроцессорными системами, до тех пор пока буфер не включен в ~хему, · ча-ето не предполагают, что он иивертирующи&. (ДRя некоторых микропр_оцессорных систем при проектировании пред­ полагается использование инвертирующих буферов адреса, так
28 Глава 2 что это правило не может быть строго -обязательным.) В общем случае начинающий облегчит себе задачу, если будет использо­ вать неинвертирующий буфер. 2. Используйте тот буфер, который по возможности обеспе­ чивает все требуемые в системе значения выходной нагрузки. Если, например, в системе необходима выходная нагрузка в 18 мА на адресной линии, то используемый буфер должен обес­ печить нагрузку 18 мА или более. Это будет способствовать снижению числа выводов в корпусе устройства. Если же ис­ пользу~тся буфер, обеспечивающий лишь часть требуемой на­ грузки, то для реализации оставшейся нагрузки потребуется еще один буфер. . 3. Убедитесь, чТ'о нагрузка по входу для выбранного буфера не превышает выходную нагрузку адресной линии микропроцес­ сора. Например, есл_и величина тока на входе буфера адреса при состоянии логического О составляет 2 мА, то микропроцес­ сор не сможет управдять этим буфером, еслй его выходной ток менее 2 мА. Позднее мы расширим этот набор правил. В качестве буфе­ ров адреса могут быть использованы, • например, следующие устройства: 1. 7407 (схема со свободным коллектором). 2.. 74LS367 шестивходовый буфер с тремя состояниями. 3. _7 4 LS 125 четырехвходовый буфер с тремя состояниями. Кристаллы многих микропроцессоров имеют специальные ин- тегральные схемы, предназначенные для буферирования_ адреса. Ниже приводится пример, в котором в качестве буфера ад­ реса будет использовано произвольно выбранное устройство 74LS367. ~• Буферирование адреса использовано для всех рассматривае­ мых адресных шин, хотя это не во всех случаях обязательно. 2.3 . Адресная шина мнкроnроцессора 8080 Рассмотрим проектирование адресцой шины для микропроцес­ сора 8080. Ниже будет показано назначение отдельных выводов и описаны конкретные устройства, используемые при постр<>е­ нии буферов адреса (т. е. сделано допущение, что в системе не­ обходимо буферирование адреса). Это позволит ознакомиться с использованием буферов адреса в реальной системе. • . Приведенные на рис. 2.6 спецификации для адресных выво­ дов микропроцессора 8080 показывают, что адресные выходы в_ состоянии логического О хар~ктеризуются током 1,9 мА, а в ер­ стоянии 1-током 150 мкА. Допустим, что управляемая сист_е~ ма- имеет нагрузку в 3 мА при логическом О и 200 мкА- пр~ логической 1. Эти параметры выбраны с целью задания уело~ вий, при которых адресные выходы микропроцессора требуют буферирования.
, Х а р а к т е р и с т и к и п о п о с т о я н н о м у т о к у Т л = О - 7 0 ° С , V D D = + 1 2 В ± 5 % , У с е = + 5 В ± 5 % , V в в = = - 5 В ± 5 % , V s s = 0 в , ' е с л и . н е о г о в о р е н о п р о т и в н о е \ З н а ч е н и е П а р а м е т р / с р е д н е е Е д и н и ц а У с л о в и я н с n ы т а н н l ! О б о з н а ч е ~ , н е м н н н м а л ь - м а к с н м а л ь - и з м е р е н и я н о е н о е 1 ' V 1 L C Н и з к и й у р о в е н ь т а к т о в о г о н а - V s s - 1 V s s + 0 , 8 в . n р я ж е н и я V i н c В ы с о к и й у р о в е н ь т а к т о в о г о н а - 9 , 0 V D D + l в V 1 L w ; я ж е и и я и з к и й у р о в е н ь в х о д н о г о н а - V s s - 1 V s s + 0 , 8 в 1 V ш n р я ж е и и я В ы с о к и й у р о в е н ь в х о д н о г о н а - , з , з V c c + l в n р я ж е и и я V o L Н и з к и й у р о в е н ь в ы х о д н о г о н а - 0 , 4 5 - В ) I o L = l , 9 м А н а в с е ~ в ы - п р я ж е и и я V о н В ы с о к и й у р о в е н ь в ы х о д н о г о . х о д а х , I о в = 1 5 0 м к А н а п р я ж е н и я З , 7 1 в С р е д н и й т о к п р и V D » 4 0 7 0 м А } Р е ж и м Т с у = = О , 3 2 м с l D D 6 0 8 0 м А I c c » » » У с е \ 0 , 0 1 1 м А I в в » » » V в в ± 1 0 м к А V s s E ; ; ; V 1 N E ; ; ; V c c I 1 L Т о к у т е ч к и н а в х о д е ± 1 0 м к А V 5 5 Е ; ; ; У т а к т E ; ; ; V D D I c L Т о к у т . н а в х . с и н х р о н и з а ц и и - 1 0 0 м к А V s 5 E ; ; ; V 1 н E ; ; ; V s s + 0 , 8 в l D i Т о к у т . н а ш и н е д а н н ы х в р е - - 2 , 0 м А V s s + 0 , 8 В Е ; ; ; V 1 н Е ; ; ; V с е ж и м е в в о д а + 1 0 У а д р е с / д а к в м е = = V с е l F L Т о к у т . н а а д р е с н о й ш н и е и - 1 0 0 м к А V а д р е с / д а н Н J • е = У s s + О , 4 5 В щ и к е д а н н ы х в I ! е ж и м е H O L D Р щ : . 2 , 6 , О т л е щ , Н I ! ! \ ! ~ п е ц и ф и к а ц и и д л я а д р е с н ы х в ы х о д о в м и к р о п р о ц е с с о р а 8 0 8 0 . Н а и б о л е е в а ж н ы е и з н и х в ы д е л е н ы ж и р н о й р а м к о й .
•,30 .. 2.4. Исnоn1tэ081ние буферов 1дрес1 В качестве буферов адреса выберем устройства 74LS367. Со -спецификациями этих устройств можно ознакомиться по техни- -ческой документации. Некоторые из этих спецификаций приве- .дены на рис. 2.7, откуда видно, что потребляемый на входе 74LS367 ток равен 0,3 мА в состоянии логического О и 20 мкА ,в состоянии логической 1. · Ток такой величины может быть "Обеспечен на адресных выходах микропроцессора 8080, что ил­ .люстрирует рис. 2.8 . Из спецификаций устройства 74LS367, приведенных на ;рис. 2.8, видно, что с выхода этого устройства поступает ток 2 мА в- состоянии логической 1 и 12 мА в состоянии логическо­ .rо О. Этого, более чем достаточно для выбранного применения. На рис. 2.9 показана полная адресная шина микропроцессора .8 0 80 с подсоединенными буферами 74LS367. Из риf. 2.9 видно, что выводы 15 и 1 устройства 74LS367 заземленьr непосредственно. Соединение такого рода характер- • но для многnх микропроцессорных систем, что позволяет от~ крывать буферы с тремя состояниями. Однако в некоторых си• туациях при прямом доступе к памяти может возникнуть необ­ ходимость в блокировании буфера с тремя состояниями. Осо­ бенности прямого доступа к памяти пока не раскрыты, и поэто­ му данный аспект адР,есования будет рассмотрен позднее. Пока достаточно лишь понять, что в случае, когда выводы 15. и 1 :устройства 74LS367 заземлены, или находятся в состоянии ло­ :гического О, буферы с тремя состояниями разблокированы. Далее из рис. 2.9 следует, что наименование сигналов меня­ ются после прохождения адресных линий через буфер. При по~ ,строении схемы системы очень важно, чтобы два различных сиг­ нала никогда не назывались одинаковым именем. В приведен­ ном примере адресные линии, исходящие из микропроцессора, обозначаются как A0-Ar5, а адресные линии на выходе устрой­ ства 74LS367- соответственно как BA0-BA1s, Это обозначение •говорит о том, что адресные линии Ао-А15 буферированы. Од­ нако важнее не выбор конкретного обозначения, а сам факт иного обозначения линий с различной величиной сигнала в пре­ делах системы. Важность хорошей документации трудно переоценить. При­ чина выбора единой всеобъемлющей системы обозначений ста- ( новится ясной при проведе.нии монтажа или поиска неисправ­ ностей. Монтаж С'истемы всегда затруднен, если из обозначений не ясно, какая линия должна соединяться с· заданной точкой. Небольшие начальные затраты времени на введение удобных обозначений сигналов позволят проектировщику и другим спе­ циалистам, связанным с разработкой системы, <;экономить мно~ го времени позднее.
; i : . ( / ) ( / ) w g ~ ~ ~ - ~ , 1 > - . . . , i : , . . . " ' - , ) : > : Г ' _ ( / ) _ _ 1 1 1 ~ " ' ~ O u 5 ~ t i : 1 ~ , . . _ 1 : 1 - - . : i : . Z 1 1 n " " - ! : : ' ' О ( / ) : , : ( 1 1 . . с : . . . m z g ~ I - , J m : , : i I Z : ~ ' О с п - а : , : ' < 1 3 Г ' 1 1 1 · ' t - : i o . f D g 1 » S : : 1 1 1 1 О - , ) ~ ( 1 1 s : : i z : - ' 1 1 1 1 1 t , ' s i > ( 1 1 g : = о = о c : , , : , : i : " ) о : , : о : , : r . t > " ' J : , 1 » " ' о i , Z ~ ~ l i ~ - 6 c n o : , : 1 1 1 1 1 1 r , , i : , . - . : : , = ( > ) : , ~ ~ : : ; с п : , : ~ ~ g « u 5 = z i : , - , i : , а : z t ~ g ; ~ ~ р : ~ i ; ! - . . . 1 ! : J : , R : с п c n ; i : . 1 » > e ' n z ~ " S : , : : . ~ : , а : , : 1 » . g g - - < ~ : , : о ' < : s : : : : • s : : i : , 1 1 1 1 1 : s : о - , ) 1 : , : : . е л = i , ! i ; ё x j . t i : 1 : ~ . . . , 6 ! g О \ , s : : > : , : i r g > 1 1 о : , : ( 1 1 1 - : ) ( 1 ) g ( 1 1 t ~ = i f g : , : i f ° ) s : : : , : " " " ' о с п - ~ 1 » . . , z = . : - : о ' s : : . g ~ " " i , o l l l l Г ' : , . . с : I Z : ( / ) t , ' = > С ' : , : 1 1 1 1 О - - . О " " J : , ( / ) , ! D : , : 1 » z = . . " ' - 1 : , а , j : > . : , : t ~ 1 ) ) 1 ! 1 - , ~ = g g ' r f l f 1 . . ' 1 . : 1 1 r в \ ш ю в Ь l с ш 1 ш ~ ы t : ф о р м и р о в а т е л и 3 6 7 Н с т ш с р 1 1 1 р о n ш ~ ' 1 1 1 , 1 с 1 ш ф о р , t а ­ ш 1 О 1 1 н ы с ' М Ы Х О l . 1 1 > 1 ; 4 - х J Ш Н С Й ­ I I Ы С 1 1 2 - х л и п с i н ~ ы с о п ш р а с ­ м ы с l i ' I 0 : 1 1 , 1 · , в i . 1 : . . 0 ; . i ь t с 3 C U S : I O Щ l l l l ! , \ 1 1 1 С . 2 S A 4 А 4 У ' S N 5 4 3 6 7 A ( J , W ) S N 7 4 3 6 7 A ( J , N ) Р и с . 2 . 7 . Ч а с т н ы е с п е ц и ф и ­ к а ц и и ш и н н ы х ф о р м и р о в а ­ т е л е й 7 4 L S 3 6 7 . Н а и б о л е е в а ж н ы м и с п е ц и ф и к а ц и f \ _ М И у с т р о й с т в а я в л я ю т с я з н а ч е ­ н и я у р о в н е й l и О т о к а н а в х о д е и в ы х о д е у с т р о й с т в а , а т а к ж е з н а ч е н и я у р о в ­ н е й 1 1 и О в ы х о д н о г о н а п р я ­ ж е н и я . ( С р а з р е ш е н и я ф и р - S N 5 4 L 3 3 6 7 A ( J , V I ) S N 7 , L S 3 6 7 A ( J , N ) м ы T e x a s I n s t r μ m e n t s . ) Э л е к т р и ч е с к и е _ х а р а к т е р и с т и к и д а н ы д л я с т а н д а р т н ы х т е м п е р а т у р н ы х у с л о в и й ( е с л и э т о н е о г о в о р е н о о с о б о ) щ С е р и я 5 4 l S " ' : s : С Е Р И Я 5 4 ~ " ' = П А Р А М Е Т Р : r : У С 1 O В 1 1 Я И С П Ы Т А I I И Й ' ) C E P I I Я 7 4 С е р и я 7 4 L S ' : : 1 = щ = " : , - 1 3 6 5 А , ' 3 6 6 А ' L S 3 6 c i д , ' L S 3 6 6 A : , : е - , r . = : ; ' з 6 7 д ; з в в д ' L S 3 6 7 A , ' L S 3 6 6 A " ' ~ : r : Щ : : м М и н , Т и п , 6 1 М а к с , М и н , Т и п , 6 J М а к с , V 1 н В х н а п р я ж е н . в ы с о к о _ ( О у р о в н я 1 , 2 2 2 в V 1 l В х о д н о е н а п р я ж е н 1 1 с 5 4 с е м е й с т в о 0 , 8 О 7 Н I I З К О Г О у р о в н я 1 , 2 7 4 с е м е й с т в о О 8 О 8 в У , . . . : В х . г р а ю 1 ч и о е н а h р я ж е н и е 3 V c c = Y c c , , н t н . 1 1 = с м , в ) - 1 , 5 - 1 , 5 в У о н В ы х о д н о е н а п р я ж е н и е 1 V , c = У с е ~ и н . У 1 н = 2 В 5 4 с е м е й с т в о 2 , 4 3 , 3 2 , 4 3 , 3 В Ы l . : О К О Г О у р о в н я V I L = У l l м а ~ . с . 1 о н = = l о н м а к с . 7 4 с е м е й с т в о 2 , 4 3 . 1 2 , 4 3 , 1 в V o L В ы х о д н о е 1 ш п р я Ж . с н 1 1 е V ц = У с е " " " · 1 1 - 1 5 4 с е м е й с т в о 0 , 4 0 , 2 5 0 , 4 . . ю t з к о r о у р о п 1 1 я 2 У , н = 2 В O L - O L м а к с , 7 4 с е м е й с т в о 0 , 4 0 , 3 5 0 , 5 l l V I L : ; : : : y l L " ' a i . c . 1 l o L - 2 ' 1 А С е р 1 1 я 7 4 L S 0 , 2 5 о ~ - , - - - т о к н а в ы х о . d е п р и о ч е н ь 1 9 V , : c = - Y c c м а к с . V 1 н = 2 В V 0 = 2 , 4 - В 4 0 2 0 ' м ~ . А l o z в ы с о к о м с о п р о т 1 ш л е ю 1 1 1 V 1 , _ = Y 1 L , 1 a " c . V 0 = 0 , 4 В - 4 0 - 2 0 1 , Т о к п р н м а к с и м а л ь н о м 4 _ У i ; c = У с е м а ~ . с . V 1 - 5 , 5 В 1 м А в х о д н о м и а л р я ж , е н и и V 1 - 7 В 0 , 1 I , н В ы с о к и й у р о в е н ь в х о д н о r о 4 У ~ с = - У с с м а к с . v , н 2 , 4 В 4 0 м к А т о к а V , u = 2 , 7 B 2 0 У с с = У с с м а к с . - v , = 0 , 5 B - 4 0 - 2 0 м к А 1 1 L Н ю к 1 1 й у р о в е н ь А - в ы - Н а п р я ж е н и е н а G - в х о д а х 2 В в х Q д н о r о т о к а х о д ы У с е = - У с е м а к с . У 1 . = 0 , 4 В - 1 , 6 - 0 , 4 ~ Н а п р я ж е н и е н а О - в х о д а х О , 4 В м А G - в х о д ы У ~ ~ = У с е м а к с . V , - 0 , 4 B - 1 , 6 , - 0 , 4 , 1 0 s Т о к н а в ы х . п р и к о р . з а м ь н ш н . r ) 6 У с е = = У с е м а к с . - 4 0 - 1 3 0 , ' - 4 0 - 2 2 5 м А l c c Т о к о т и с т о ч н и к а 7 y c c - V c c · · ~ . . c . м А
74l.S367 Буфер адреса I1,,О / ◄-- Aof------1 Мi1кропроuессор 8080 -~ 11N1 Буферированныfi вь;ход А0 в систе!ll!у Рис. 2.8 . Ток на выходе адресной линии микропроцессора должен быть со­ гласован по величине с током на входе буфера адреса. В приведенном при­ мере соответствующие значения тока составляют 0,4 мА для .состояния логи­ ческого О (IIN о) и 20 мкА для состоя1tия логической 1 (l1N 1). Направление Ао д, - А, Аз А• As Микропроцессор Аб 8080 А, Ав Аэ А,о А" А" А,з А" А" тока показано стрелками. 25 2 26 4 27 6 29 10 30 2 31 4 32 6 33 10 34 12 _35 14 1 2 40 4 37 6 38 10 39 12 36 14 74L5367 ~ 3 ~ 5 7 9 - - 1, 15 74L5367 -~ 3 5 7 9 11 13 - - 1, 15 74L5367 -- 3 5 .. 7 ~ 9 11 13 - _j' ВА0 ВА1 ВА2 ВА3 вд·, ВА5 ВА6 ВА1 ВА8 ВА9 Буф ерированные сные линии адре ВА 10 ВА 11 ВА12 )ВА1з ВА14 ВА15 Выводы I и 15 всех 367 устройств 74LS -- Рис. 2.9 . Полная схема адресной шины микродроцессора 8080 с устрой­ ством 74LS367, используемым в качестве буфера адресных линий.
Обоз- наче- ние V1LC VIНc V1L Viн VoL Vон Icc IL1 ILOH ILOL ILD Обоз-\яаче- ние V1LC VIНc V1L V1н VoL \lон Icc IL1 ILOH ILOL ILD Характеристики ЦП Z80 по nостоявному току Тл-О-70"С, Vcc-+5 В±5%, если не оговорено оеобо Значение Едвви- Параметр °VCJIOIIBЯ IICIJЬI• --,сред-/ макса- ца D• таввl вое вее~ uат.ное мереввя Низкий уронеиь тактово- -0,З 0,45 в ro напряжения Vc:c-0,6 Высокий уровень такто- Vcc+0,3 в воrо напряжения Низкий уровень входного -0,3 0,8 в напряжения 2,0 Высокий уровень входно- Vcc в го напряжения Низкий уровень выход- 0,4 в loL=l,8 мА ноrо напряжения 2,4 Высокий уровень выход- в Iон--250 мкА ноrо напряжения - Ток от источника 150 мА Ток утечки на входе 1О мкА V1н-O+Vcc Ток ут. на входе с тре- 10 мкА Vouт-2,4+Vcc мя состояниями ~ Ток ут. на выходе с тре- -10 мкА Vouт-0,4 В мя состояниями Ток: ут. на шине данных ±10 мкА 0~V1N~Vcc в режиме ввода Характеристики ЦП. Z80A по постоянному току Тл=О-70°С, Vcc= +5. В±5%, если не оговорено особо Значение Единв- Условия нспы- Параметр 11111111Маль-,сред-1 макси- цв из- таниА ное нее мальное мерения Низкий уровень тактово- -0,3 0,45 в го напряж~ия Vcc-0,6 Высокий уровень такто- Vcc+0,3 • в воrо ·напряжения Низкий уровень входного • ~о.з 0,8 в напряжения Высокий уровень вход.но- 2,0 Усе в го напряжения . Низкий уровень выходно- 0,4 в IoL=l,8 мА го напряжения 2,4 Высокий уровень выход- в loв= -250 мкА иого напряжения 90 Ток от источника 200 мА Ток утечки на входе 10 мкА V1н=0+Vcc Ток ут. на входе с тремя 10 мкА Vouт=2,4+Vcc состояниями Ток У,Т. на выходе с тре- - 10 мкА Vouт=0,4 В мя состояниями Ток ут. на шине данных ±10 .мкА О~V,м ~Voc в режные ввода - .. Рис. 2.10. Спецификации адресных выходов· микропроцессора Z80 и некото­ рые другие спецификации по постоянному току. Непр~жение на адреснuх выходах обозначено хаю Vщ и Vон. (С разрешения фирмы Zilog.) 3-814
34 Глава 2 2.5. Адресная wина Z80 Покажем, каким образом можно построить буферы для адрес­ ной шины микропроцессора 280. Спецификации адресных вхо­ дов Z80 приведены на рис. 2.1 О. Из этого рисунка видно, чт1> для адресных выходов 280 характерно наличие тока 150 мкА в состоянии логической 1 и 2 мА в состоянии логического О. До­ пустим, что адресная шина системы характеризуется нагрузкой 200 мкА в состоянии 1 и 3 мА - в состоянии О. Как видно, в этом случае микропроцессор Z80 не в состоянии управлять ад­ ресной шиной. Заметим, снова, что подобные условия выбраны с целью сделать необходимым введение буфера адреса. Выбер_ем в качестве буферов адреса устройства 74LS367. Полная схема соединений для буферированной адресной шины микропроцессора 280 приведена на рис. 2.11 . Ввиду простоты \ 30 Ао 2 А, 4 31 д, 6 ; 32 д, 10 h,, 33 ', д, 2 З4 А, 4 35 д, 6 Микропроцессор 36 д, 10 Z80 37 д, 12 38 д, 14 39 40 д" 2 1 А" 4 д" 6 2 д" 10 3 4 д" 12 д" 14 5 74LSЗ67 ,-- - 3 ВАо ~5 Вд, 7, вд, 1 1 1 9 вд, 1 1, 15 74LS367 3 Вд, 5 вдs 7 вд, ~! ВА 7~ 11 вд, 1 113 вд, 1 1 1 Буфериров 1 • 15 адресные анные шины 74LS367 3 ВА 10 5 ВА 11 7 ВА12 ) ~9 ВА1з 1 11 ВА 14 113 BA1s 1 1 1. 15 V ,,, Рис. 2.11 . Полная схема адресной шины микропроцессора Z80 с устройством 74LS367, используемым в качестве буфера адреса.
Построение систем с З шинами 35 интерфейса 280 с микропроцессорной системой дальнейшее рас­ -смотрение адресной шины Z8O нецелесообразно. Отметим, что .адресная шина 280, как и 8080, состоит из 16 линий (рис. 2.9). 2.6. Адресная wина 6800 Спецификации для выходных адресных линий микропроцессо­ ра 6800 приведены на рис. 2.12, из которого видно, что нагруз­ ка для этих линий составляет 2 мА для состояния логической 1 и 150 мкА для состояния логического О. Допустим, что нагруз­ ка по току в адресной шине проектируемой системы превышает возможности микропроцессора 6800, т. е. необходимо буфериро­ вание адресных выходов микропроцессора 6800. В качестве бу­ феров адреса снова используем устройство 74LS367. Полная схема буферированной адресной шины микропроцес­ -сора 6800 приведена на рис. 2.13. Из этой схемы видно, что ад~ ресная шина 6800, подобно шинам 8080 и 280, состоит из 16 .линий. 2.7 . Адресная wина микропроцессора 8085 Адресная шина микропроцессора 8085 по своему построению ,отличается от уже рассмотренных шин. Для адресных шин уст­ ройств 280, 8080, 6800 характерно то, что каждой линии шины -соответствует специат,ный вывод в корпусе микропроцессора. Это означает, что вне зависимости от состояния микропроцессо­ ра вывод АО всегда соответствует разряду адресной шины Ао, что упрощает формирование 16-разрядного адреса .. Здесь r1ро­ сто группируются 16 выводов микропроцессора, и эта группа QПределяется как адресная шина системы. В устройстве 8085 используется другой принцип, основанный на «временном мультиплексировании» функций выводов, когда Qдни и те же выводы в разн:ые моменты времени представляют разные функции. Это позволяет реализовать ряд доп0лнитель­ ных функций при тех же 40 выводах в корпусе микропроцес­ сора. Восемь мультиплексированных выводов устройства 8085 иг­ рают роль шины данных .либо младших разрядов адресной ши­ ны. В некоторые моменты эти восемь физических выводов це­ редают адрес, в другие моменты они используются для ввода или вывода данных. Как показано на рис. 2.14 выводы в мик­ ропроцессоре 8085 о.бозначаются как AD0-AD1 . .Из рис. 2.14 видно, что старшие восемь разрядов адресно~ шины системы А8-А15 соответствуют аналогичным. адресным выводам предыдущих микропроцессоров, т. е. каждый вывод предназначен лишь для реализации ссютвететвующего разряда адреса.
' .мс·~ ~не XAJ)UТellllCТJIIC (Усе"' 5,ОВ±50/о, Yss = О, Тл =О+ 70'С, если ие оговорено особо) Харахтеристики Обоз• Мин. Среднее Макс. Един. из" начения Мерения BыCOJ<иil уровень входного '•nряжсния Логика ·У1и У,,+2,0 - Усе в пост. ток ФI, ф2 уlНС Усс-0,3· - Усс+о,1 HизlCIIII уровень .входного напряжения Логика Y1L У,,-0,3 - Yss+o,s в пост. ток фl, ф2 Y1tc Yss - 0,1 - Yss +о,3 Положит. /отрицат. выброс тактового импу~са. Yos - в пост -Высокий уро веиь сигнала Усс-0,5 Усе+О,5 ток - Низкий уровень иа входе Ys,-0,5 - Yss + 0,5 Ток )'Течки на входе 1" мкА (Y,n = О+5,25В,Vсе = Vсе мщ) Логика•> !,О пост. - ток (Y1n = 0+5,25В, Усе= О,ОВ)_ фl,. ф2 - - 100 Ток на входе в отмюченном состоянпк D0-D7 Irs1 - 2,0 10 мкА пост. (Y1n = О,4+2,4В, Vсе ::= Vсе макс,} AO-AIS,R/W - - 100 ток В~1со1шй уровень выходиого 11апряжеиия Уои в пост, ,ток ( 205 μкА, усе= Усе мня.) Do-D7 Yss+2,4 - - (JL =- 145 -μkA, У се =Усе,....) АО-А15 R/W,VМA Yss+2,4 - - (IL =-lООмкА,Усс =Уссмян,) ВА Yss + 2,4 - - Низкий уровеиь выходного пап ряжения Yot - - Yss+ 0,4 в пост. ток (IL = 1,6мА, У се= Усе мин.) Потери '!ОЩНОСТН PD - 0,600 1,2 Емкость•> фl, ф'l. С11 ·80 120 160 пкФ (Y;n = 0,Тл "': 2S'C,f= IмГц) TSC - - 15 DВЕ - 7,0 10 , bO-D7 - 10 1~ ,5 Л<irнческне входы - --:- 6,5 АО -Al5,R/W, VМА с.., 12 nкФ Рабочая частота f О,! - 1,0 мГц ТактНроваиие Время цикла t., . 1,0 - 10 мкс Дднтельность тактового нмnут,са. РWФН нс (Измерено при Усе = - 0 ,3 В) ФI 430 - 4500 ф2 450 - 4500 . Общее дляфl и ф t,, 940 - - нс Время иарастаиия и спада фl; ф'l. tфr,фt 5,0 - 50 нс (Измерено между Уss + 0,3 В н Усе - 0,3 В) Время задержки или разделение по частоте t, о - 9100 нс (Измерено при Vov = Vss + 0,5 В) П родолжительиость выброса tos о - "40 нс а) За исключением IRQ и NМI. требу,оших соrласующихрезистооов сопротивлеиием 3к0м .для обеспечения нагрузочной способности точечного .ИЛИ-("оедннения в оптимальном режиме " б) Емкость периодически замеряется Рис. 2.12. Спецнфикацнн адресных выходов микропроцессора 6800. На адрес­ ных выходах дано напряжение высокого я низкого. уровня сигнала. (С раз­ .решения фирмы Motorola.)
Построение систем с 3 wиками З'l Ввиду того что в микропроцессоре 8085 использу,ются муль• типлексированные выводы для адреса и· данных, формйрование младших восьми разрядов адресной шины. пQ сравнению •с ра- - ,..=..--74LSЗ67 Ао' ·2 3 ВА0 9 Ч,. д, 4 5 вд, 10 Az 6 17 вд, 11 1 12: д, 10 1 - 9 ВА, 1 1, 15 74LS367, 13 А, 2 3 вд, - 14 д, 4 5 вд, Ми.кролроцессор As 6 7 вд, 6800 15 д, ~ 8А7 10 9 16 д; 12 111 B":\s 17 •1- д9 14 113 вд, 18 1 1 1, 15 74 LSЗ67 19, д,о 2 3 ВА 10 20 д" 4 5 В·А11 22 д" 6 7 ВА 12 23 А,з 10 -~ 9 ВА 13 24 А,, 12 , 1 11 ВА14 д" 14 1 13 вд,s 25 1 1 1, 15 - Рис. 2.13. Полная схема адресной шины микропроцессора 6800 с устрой-. ством 74LS367, используемым в качестве буфера адреса. нее рассмотренными микропроцессорами несколько усложняет.... ся. Главная особенность заключается в необходимости «фикса­ ции» логического состояния выводов AD 0-AD7 микропроцессо-­ ра 8085 в моменты, когда .они функционально представляют ад­ ресные разряды Ао-А1. Для этого необходимо точно зн~тъ•. когда на этих выводах отображается адресная информация. В корпусе 8085 существует специальный вывод (Nt 30), .обо- - зна~аемый ALE •(Address Latch ЕnаЫе) - открытие фиксатора_ адреса, сигнал на котором в нормальном состоянии соответст..__
З8 Глава 2 Рис. 2.14. Обозначения выводов для микропроцессора 8085. Отметим на­ личие выводов, обозначаемых ADo - AD1. Эти выводы относятся к шине данных с временным мультиплексиро­ ванием, а также служат для переда­ чи младшего байта адреса. С раз- решения фирмы Iпtel.) вует логическому О. Если информация на выводах 8085 AD 0- AD1 является адресной - А0-А7, то ALE переводится в состоя­ ние 1. При переходе ALE из состояния 1 в состояния О инфор­ мация на AD 0....: ..AD 7 должна быть зафиксирована. Это видно из временной диаграммы рис. 2.15. На рис. 2.16 показано, каким путем осуществляется фикса­ ция данных техническими средствами применительно к полной информации 16-разрядной адресной шины для микропроцессо­ ра 8085. Отметим, что необходимость в использовании ·буферов с тремя состояниями 74LS367 возникает лишь для старших разрядов адреса Aв-Ais, поскольку младшие разряды буфери­ руются с помощью фиксатора 74LS374. Устройство 74LS374, выполненное в виде одной интегральной схемы, является одно­ временно фиксатором и буфером. Сигнал ALE на рис. 2.16 инвертируется за счет использова­ ния фиксатора с импульсным запуском. В соответствии со спе­ цификациями 8085 адресные данные должны фиксироваться по заднему фронту сигнала ALE. С другой стороны, согласно спе­ цификациям 8-разрядного фиксатора 74LS374, это устройство фиксирует данные по переднему фронту тактового импульса. Поэтому необходимо инвертировать сигнал ALE, поступающий от микропроцессора. Это позволит осуществить физически фик­ сирование информации AD 0-AD7 в 8-разрядных фиксаторах 74LS374 по заднему фронту сигнала ALE. Фиксаторы другого типа, иногда используемые д,nя выпол­ нения этой функции, позволяют пропускать данные на выходы Q при состоянии. тактового импульса, соответствующем логи­ ческой 1. При состоянии же О тактового импульса данные на выходе устройства сохраняются. Примером такого устройства является фиксатор 74LS373, пропускающий адресную информа­ цию Ао-А1 по мере того, к~к она генерируется микропроцессо•
Адрес доступен ALE -Г?'---- Фиксация адреса Рис. 2:15. Временная диаграмма, определяющая взаимосвязь между сигна­ пом ALE и адресной информацией на выводах AD0-AD1 микропроцессо­ ра 8085. 19 дD, 18 вова19 Вд7 18 до, 17 70 7Q 16 ВА, 17 дD, 14 60 60 15 вд, дD, 13 16 505012 Вд, 15 дD, 8 9 ВА, 40 40 14 до, 7 30 за 6 ВА, 13 дD, 4 20 20 Вд, 12 дDо э ю2 Вд0 дLЕ 10 30 74LS04 1 2 ~ . "1...:.Г Рис. 2.16. Полная схема адресной шины микропроцессора 8085. При выдаче_ млалшего байта адреса используется вось_миразрядный фиксатор 74LSЗ74~
40 ром 8085. Различия во временньrх соотношениях для фиксато­ ров 74LS374 и 74LS373 показаны на рис. 2.17, Отметим, что для стробирования адресной информации от микропроцессора 8085 может быть использован любой фикса­ тор. Единственная предосторожность, которую необходимо со- ADo-AD 7 )( >С ALI: I\ f 1 1 1 1 i 1 Выход устройства ж 74LS374 1 f 1 1 1 1 1 1 1 Выход устройства 74LS373 Рис. 2.17 . Временная диаграмма, определяющая взаимосвязь сиrнапов при выдаче адреса, когда вместо устройства 74LS374 испопьзуется фикса­ тор 74LS373. блюдать при использовании фиксаторов разных тJJпов, заклю­ чается в согласовании нагрузки по току для входов фиксатора и выводов ADo-AD7 микропроцессора 8085 во избежание их перегрузки, т. •е необходимо убедиться, что ток на входе ис­ пользуемого фиксатора не является слишком большим: для мик­ ропроцессора 8085. 2.8 . Пояснения к wине данных системы Как уже было показано, шина данных является двунаправлен­ ной. Это означает, что в некоторые промежутки времени инфор­ мация вводится в микропроцессор (ко1·да последний функцио­ нирует в режиме ввода), в другие же промежутки времени мик­ ропроцессор генерирует информацию и затем выводит ее в си­ стему (работа в режиме вывода). Когда микропроцессор рабо-
Построение систем с -3 wннами • ' 41 тает в режиме вывода, шина данных часто соединяется .парап­ лельно со многими входами. При этом существует возможность того, что общая нагрузка от всех входов будет для шины дан­ ных чрезмерной. Эта ситуация подобна той, которую мы обсуж- Рис. 2.18. а - однонаправленный буфер данных. В этом случае дан­ ные могут передаваться лишь в одном направлении; б - двуна­ правленный буфер данных. Дан­ ные . передаются в обоих напра_в­ леннях. Направление передачи оп~ ределяется логическим состоянием сигнала управления передачей: в состояния О данные проходят через буфер А, в состояния 1 - через буфер В. Разрешенное направ­ ление передачи ----1[:>уфер д_;нных: •---------- Запрещеииое направление передачи данных Управление а направлением передачи А D 0 к микропроцессору В D0 к системе б дали при рассмотрении нагрузки на адресную шину. · Для ее предотвращения вновь можно организовать буферирование. Однако для случая шины данных необходимо рассмотреть дополнительный фактор, а именно; то, что эта шина данных в отличие от адресной шины не является однонаправленной. Она двунаправленная, и этот факт исключает возможность исполь­ зования техники буферирования, применяемой в случае адрес­ ной шины. Рассмотрим рис. 2.18, а. Из рис. 2.18, а видно, что рассмотренное выше бу_ферирова­ ние может быть использовано лишь в том случае, когда инфор­ мация по шине данных выдается в систему. Если же данные из системы будут передаваться в микропроцессор, они будут «блокированы:. и не достигнут входов микропроце~сора. На рис. .2 .18, б показана техника буферирования для двунаправлен­ ной шины, основанная· на использовании логических схем с тре­ мя состояниями. Отметим появление дополнительного cиrнaJta
42. Глава 2 управления, логическое состояние которого задает· направление буферированных данных. Например, при сигнале управления, соответствующем логической 1, разрешается передача данных из системы к выводам микропроцессора. В случае же, когда состояние этого сигнала соответствует логическому О, разреша­ ется передача данных от микропроцессора в систему через бу­ фер А. Если один буфер с тремя состояниями открыт, другой в это время закрыт. Схема рис. 2.18, 6 иллюстрирует общие принципы буфериро­ вания при двунаправленной передаче, которые могут быть ис~ пользованы применительно к шине данных микропроцессора. Обсудим, каким образом описанная техника буферирования может быть реализована для четырех рассматриваемых микро­ процессоров. Будем помнить, что буферирование при двуна­ правленной передаче требует сигнала управления для индика­ ции направления передачи. Ниже будет показано генерирова­ ние этого сигнала для различных микропроцессоров. • Таким образом, решение проблемы буферирования для двунаправлен­ ной шины показано на рис. 2.18, б. 2.9 . &уфернрованная WНН8 данных микропроцессора 8080 При использовании микропроцессора· 8080 буферирование ши­ ны данных не вызывает беспокойства. Этот микропроцессор предназначен для использования совместно со специ~льной ин- Строб состояния (от 8228) BUSEt -+ -DBo .,_D B1 ., _DB2 ._,.DВз В ., _DB4 20 -+ -DB5 .,_DВв 7 .+-DB7 Рис. 2.19. Схема соединения системиDГD контрDллера 8228 с микрDпрDцессD­ рDМ· 8080. (УстрDЙСТВD 8228 ВЫПDЛНЯеТ все функции буферирования ШИHl:il данных и управления направлением передачи.) (С разрешения фирмы Intel.)
Построение систем с 3 шинами 43 тегральной схемой, называемой «системный контроллер и ш~н- ный формирователь типа 8228:.. • Короче говоря, устройство 8228 осуществляет буферирова­ ние шины данных и автоматический контроль направления пе- _ редачи данных. Поэтому применяя микропроцессор 8080, жела­ тельно использовать и устройство 8228. На рис. 2.19 показано КОНФИГУРАЦИЯ выводов НАИМЕНОВАНИЯ ВЫВОДОВ DB 0-DBз Дву11апращ1с111шн ,шша данных____________ _ ['}I 0-D13 Ввод данных DOo-DOз Вывод данных DIE:N Уr1равле1ше направленнем передачн cs Выбор кристалла DI3 ЛОГИЧЕСКАЯ СХЕМА УСТРОЙСТВА e---oDBo - - -oDBs Рис. 2.20. Выводы и блок-схема устройства 8216. (С разрешения фирмы Intel.} совместное соединение шины данных системы. устройств 8228 и 8080 при-построении Обсудим теперь, каким образом можно построить буфери_ро­ ванную шину данных без использования устройства 8228. Это позволит лучше понять назначение различных сигналов управ­ ления в микропроцессорной системе на базе устройства 8080. Однако при использовании микропроцессора 8080 наиболее простым решением является применение системного контролле­ J}а и- шинного формирователя 8228. Поэтому настоящее обсуж­ дение вызвано лишь стремлением глубже разобраться в осо­ бенностях управления техническими средствами системы со сто­ роны микропроцессора 8080. Двунаправленные буферы для шины данных оформлены в виде двух отдельных интегральных схем, именуемых устройст~
Глава 2 вами 8216. Выводы такого устройства показаны на рис. 2.20. Видим, что это устройство состоит из формирователей с тремя состояниями, ~торые похожи на схемы, показанные . - н а рис. 2.18, б. Вывод CS (No 1) позволяет устройству функциониро­ вать в двунаправленном режиме, когда сигнал на этом выводе соответствует логическому О. • Допустим на время, что вывод CS всегда находится· в состо­ янии О. Существуют ситуации, когда необходимо отключить ши­ ну данных. Эти ситуации будут рассмотрены в последующих главах. Отметим на рис. 2.20 вывод DIEN (No 15), определяющий на­ правление передачи в устройстве. Сигнал, поступающий на этот вывод, эквивалентен сигналу управления направлением пере­ дачи данных, показанному на рис. 2.18. Если этот вывод нахо­ дится в состоянии логического О, то передача данных разреше­ на в направлении от DI к DB. При противоположном состоянии вывода (логическая 1) разрешается передача от DB к DO. Вы- воды DI и DO физически соединены вместе. • Подсоединим устройство к микропроцесс~О80, как это показано на рис. 2.21 . Очевидно~. на вывод DIEN устройства 8216 необходимо подать некоторый управляющий сигнал, гене­ рируемый микропроцессором. В случае микропроцессора 8080 при сигнале на выводе DBIN, соответствующем логической 1, ооуществляется ввод данных. Поэтому можно подать сигнал DВIN на линию DIEN устройства 8216. Однако при э.том необ­ ходимо убедиться, что выходная нагрузка для сигнала DBIN не превышена. Устройство 8216 потребляет ток не более 0,5 мА в состоянии логического О и не более 80 мкА в состоянии логи­ ческой 1. Выходной сигнал DВIN микропроцессора 8080 харак­ теризует9я 1,9 мА в состоянии О и 150 мкА в состоянии 1. От­ сюда ясно, что с помощью выходной линии DBIN возможно уп­ раuлять входом устройства 8216. Необходимо постоянно пом­ нить о максимальной допустимой· нагрузке для каждой линии в системе в любой заданный момент времени и не допускаrь превышения этой величины. Это особенно важно для начинаю­ щих. При вводе данных в микропроцессор 8,080 сигнал DВIN со­ ответствует состоянию логической I·. Это означает, что выводы DI, DO устройства 8216 должны быть соединены с шиной дан­ ных микропроцессора, что соответствует ранее приведенному объяснению процесса прохождения да·нных в устройстве 8216. На рис: 2.21 приведена полная схема буферирования шины дан" ных 8080 без использования системног9 контроллера 8228. Еще раз подчеркнем, что устройство 8228 отличается про­ стотой •применения, и этот фактор следует nрежде всего рас­ сматривать при использовании микропроцессора 8080. Устрой-
1 0 D o 9 о , 8 D 2 7 D з М и к р о п р о : J С с с о р 8 0 8 0 3 D 4 4 D s 5 D o 6 \ о , 7 4 L S 0 4 D B I N 1 7 . 1 2 1 К ф и к с а т о р у с о с т о я н и я Р и с . 2 . 2 1 . ф l B U S E N _ [ ' L - = - 2 , 4 Г - 5 , 7 Г 9 , 1 1 Г 1 2 , 1 4 Г - 2 , 4 Г 5 , 7 ' г - 9 , 1 1 Г 1 2 , 1 4 Г 7 4 0 4 - 2 8 2 1 6 D I E N c s 1 5 т 1 1 8 2 1 6 D J E N c s 1 5 Т 1 , J 1 3 D B 0 D B q в : D 8 3 1 i ~ 1 3 о в . D B s D 8 5 D 8 7 1 6 к а к б у - 8 О 8 О . Ш и н а д а н н ы х с и с т е м ы
46 Глава 2 ство 8228 позволяет снизить общее число выводов в системе, повысиТь ее надежность и уменьшить вероятность возникнове­ ния неполадок. 2.1 О. &уферированная wина данных микропроцессора ZSO Для буферирования шины данных микропроцессора Z80 будем использовать технику, подобную той, которая применялась n. случае микропроцессора 8080. Для Z80 отсутствует специальный системный· контроллер, подобный устройству 8228. Для реали­ зации соответствующего буферирования Z80 используем устрой• ство 74LS245. Для нашего рассмотрения это устройство откры­ вается путем подачи на вывод 19 сигнала уровня логического О~ На вывод DIR, определяющий направление передачи (вывод 1) устройства 74LS245, подадим управляющий сигнал RD с выво­ да 21 микропроцессора Z80. Все это показано на рис. 2.22 . Состояние логического О на RD определяет нахождение мик­ ропроцессора в режиме приема данных. В этом случае устрой­ ство 74LS245 должно разрешать передачу данных от систем~ на шину данных Z80. Вспомним, что в системе 8080 для управ· ления направлением передачи данных использовался . сигнал DBIN (активизирован при логической 1). Таким образом, для сигнала на прием данных от микропроцессора Z80 активное состояние соответствует логическому О, а от микралроцессора 8080- логической 1. 2.11 . &уферированная wина данных микропроцессора 6800 Для буферирования шины данных микропроцессора 6800 сно­ ва используем устройство 74LS245. (Отметим, что для этой це­ ли можно применить любую технику буферирования, приемле-. мую при двунаправленной передаче.) Использование 74LS245 мотивируется стремлением уменьшить число выводов в системе, но не следует думать, что это единственное устройство, подхо• дящее для этой цели. В рассматриваемом случае на вывод 19, открывающий уст­ ройство 74LS245, подается сигнал, соответствующий логическо­ му О, либо этот вывод заземляется. При этом 74LS245 остает­ ся открытым. Линия управления направлением передачи устройства 74LS245 соединяется с выводом R/W No 34 микропроцессора 6800, как это показано на рис. 2.23. Вывод R/W находится в состоянии логической 1, если режим микропроцессора соответ­ ствует вводу данных из системы. Отметим, что все рассматри-
j 74LS245 1 • 19 14 As Do 9 15 А, о, 8 о, 12 Ас 7 8 А:1 М ш:р()Пр()uессор Dз 6 7 А4 Z80 04 5 9 Аз- Ds 4 10 А2 D5 3 13 А, о, 2 DIR RD. 21 11 ' _j_ -=- Вв 11 BD0 в, BD1 12 13 Bs BD2 14 Bs BD3 в. BD4 15 16 Вз BD5 В2 во6 17 в, во, 18 Направление передачи данных 1 -ЧТЕНИЕ О-ЗАПИСЬ Буфери­ рованная шина - данных Рис. 2.22 . Полная схема буферирования шины данных микропроцессора Z80 с помощью устройства 74LS245. 74LS245 ЗЗ Do 32 D, 31 D, jв, 11 в, 12 в, 13 Микропроцессор D, 6800 301-"- - -~ 29 D4 в, 14 в, 15 28 Ds 27 D, 83 16 в, 17 D, 261----- ~ в, 1В DIR RIW 34 r--------' 9д, BD0 8д, BD, 7д, BD'2 6 д, BD3 5 д, BD4 4д, BD5 д, BD6 д, BD7 2 передачи данных 1 - ЧТЕНИЕ о- ЗАПИСЬ Рис. 2.23. Полная схема буферирования шины данных микропроце,ссора 6800. Отметим аналогию с рис. -2.22 в использовании устройства 74LS245.
48 Гnава 2 ваемые микропроцессоры характеризовались обменом с буфе­ рированием шины данных. Если для проектируемой системы такое буферирование не является необходимым, ~о соответст­ вующие схемы просто исключаются. Буферирование же _обсуж­ дается ё целью лучшего понимания особенностей передачи дан­ ных в :микропроцессорной системе, а также способов борьбы с перегрузкой. Не следует думать, что буферирование шины дан­ ных используется всегдщ в большинстве малых систем буфери­ рование шины данных или адресной шины может не требо­ ваться. 2.12. &уферирование wины .данных микропроцессора 8085 Как уже отмечалось, для микропроцессора 8085 при передаче данных и адреса характерно наличие мультиплексированной шины. Однако для буферирования данных это не имеет особо­ го значения. Поскольку активизированное состояние сигнала RD на выводе 32 микропроцессора 8085 соответствует низкому 74l ~:111r-, ADr, А в, во, 12 11 АО, А в, во, 13 12 1\1111,ропроuсссор 14 до, . Al, в,, ВО", 13 8085 дD:, А,, в, во, 10 14 Буферированная АО,1 А, в, В[),1 1G 1', шина данных AI),, А !'11 fШ,, 17 11, Д[),, л "·' Н') ., 18 1/ 19 Al)I л, 1ci ~. [~:11 RD На11р,шлевие J2 передачи данных 1 -злпись о- '{ТЕНИЕ Рис. 2.24 . Полиая схема буферирования mиив ааввнх микропроцессора 8085. уровню при работе микропроцессора в режиме приема данных из системы, то этот сигнал может быть подан на вход DIR уст­ ройства 74LS245. Полная схема буферирования шины данных 8085 приведена на рис. 2.24 . 2.t3. ПояснениSJ к wиие ynpuneни• системы До сих пор рассматривались две из тр·ех основнwх шин систе~ м·ы с 3 шинами - шина данных и адресная urина. Обратимся теперь к третьей - шине управления сие, емы.
Построение систем ~ 3 wинами 49 Вспомним, что по шине управления системы• передаются че• тыре сигнала, а именно: 1. ЧТЕНИЕ ИЗ ПАМЯТИ~ 2. ЗАПИСЬ В ПАМЯТЬ. 3. •ЧТЕНИЕ С УСТРОЙСТВА ВВОДА. 4. ЗАПИСЬ В УСТРОИСТВО ВЫВОДА. Покажем теперь, каким образом реализуются эти сигналы для каждого микропроцессора. 2.14 . Wина управпения системы на базе микропроцессора 8080 При рассмотрении шины данных микропроцессора 8080 было обнаружено, что буферирование шины данных и необходимое управление направлением передачи обеспечивались специаль- Запрос ва 1з HOLD ПДП ~испмы Запрос на прерывание Разрешение прерывания 14 INT 16 INTf: Рис; 2.25. Схема формирования шин управления на выходе системвоrо коитро.rrлера 8228. (С, разрешения фирмы Intel.) ным устрgйством - системным кщ1трол.1.1ером и шинным форми­ рователем 8228. Это же устройство генерирует в нужные _момен.­ ты времени четыре основных. сигнала управления, приведенных 4-814
50 Глава 2 выше, что показано на рис. 2.25, где упомянутые сигналы уп­ равления обозначаются как MEMW, МЕМR, 1/OR, 1/OW. Эти .сигналы являются· взаимно исключающими, а их активное со­ ,етоsrние соответствует уровню логического О. Таким образом·, никакие два из них не могут быть одновременно в состоянии О. При использовании микропроцессора 8080 в качестве конт­ роллера системы устройство 8228 позволяет значительно упро­ .стить проектирование системы. Однако с целью оценки разли11- ных альтернативных вариантов рассмотрим, каким образом че­ тыре сигнала управления могут быть сгенерированы с помощью дискретных цифровых устройств: Это поможет лучше поня_ть, как микропроцессор 8080 управляет техническими средствами системы. ___ :;_ ., 2.15. Фиксатор состояния микропроцессора 8080 Центральный процессор 8080 генерирует на выводы шины дан­ ных байт •информации, называемый словом состояния. Слово со­ оетояния генерируется .для того, чтобы оповестить технические средства системы о намерениях микропроцессора в течение пер­ "Вого Т -цикла М-цикла 1>. При переходе микропроцессора 8080 в состояние чтения данных из памяти вначале для индикации это­ то состоянця генерируется слово состояния. Это слово использу­ •ется системой, для установки правильного схемного соединения, кспользуемого микропроцессором. При выдаче слова состояния на шину данных микропроцес­ еор 8080 информирует об этом систему путем перевода в со­ .стояние логической 1 сигнала синхронизации на выводе .i\Jo 19. Этот сигнал используется системой для формирования строба, пропускающего данные с шины данных в фиксатор, называемый ,фиксатором состояния, что показано на рис. 2.26. После фиксации слова состояния определенные биты инфор­ мации состояния логически объединяются с сигналами DBIN и WR с целью формирования четырех сигналов шины управЛ'е- ния. Схематически это показано на рис. 2.27. - 1 Теперь шина управления системы в случае микропроцессора 8080 реализована с помощью схем цифровой логики. Необходи­ мо подчеркнуть, что шина управления должна обеспечивать уп­ равление всех соединенных с нею входов. Поэтому необходимо ,буферирование шины управлеция. Для этого можно использо­ вать контроллер 8228. Если шина управления построена с по­ мощью цифровых логических схе1'1, .как на рис. 2.27, то для ее. ,буферирования можно использовать стандартное устройство 7400. • н Подробнее см. Coffroп J. W ., Uпderstandiпg and TrouЫeshootiпg the Microprocessor, Prentice-Hall, Eпglewood Cliffs, N. J ., 1980.
Do D, D'2 Микропроuессор Dз 8080 D, о, D, о, 19 Строб-импульс / от тактового ___JL_ генератора 74LSЗ74 18 19 LD0 8D 80 17 7D 16 LD, 70 14 6D 60 15 LDz 13 5D 50 12 LD, Выходы фиксир1п 8 4D 40 9 LD, ванного слова 6 LD 5 состояния 3D 30 20 20 5 LD, 10 10 LD 7, 11 1 L-значит «фиксированный>>. ~ STST~ Рис. 2.26. Схема фиксации слова состояния с помощью схем дискретной ло­ гики. Фиксация слова состояния устройством 74LS374 осуществляется по уровню 1 синхронизирующего импульса. 74LSD4 74,14 2 7400 10 Do 18 цп9D1 17 8080 7400 8D2 14 7D1 13 ЗD4 8 9 4D5 5о. 4 6D1 3 19 11 Строб-импульс состояния o:r тalli товоrо генератора Рис. 2.27. Схема реализации шины управления системы на базе михропроцес- ' сора 8080 с помощью _схем дискретной лоrикн.
52 No 19 M.REQ 1 1 о о 2.16. Глава 2 ТаблtЩа 2.2 Логическке условии для выходов управляющих сигналов микропроцессора Z80. при указанных· функциях системы . No20 No21 No22 IORQ RD WR о. 1 1 IOR ) о о о IOW Сокращенное • обо- 1 1 1 MEMR значенке функций 1 о о MEMW' системы Шина управпения системы на базе Z80 Для управления в системе на базе микропроцессора 280 ис­ пользуются сигналы, обозначаемые MREQ, IORQ, RD, WR. Ло­ гическая комбинация этих четырех сигналов позволяет реали- М'ЧО 19 цп !ОАО 20 Z80 RD 21 l~R 22 ~ 1 з 5 l4CU 2 1 ,~- 4. t,' l3~.1 E:\lW 'l 5 G Шина управ­ ления си~т.е~1ы для 280 ~ Рис. 2.28. Полная схема реализации шины управления системы на базе мик- ропроцессора Z8o. с помощью схем дискретной логики. зовать шину управления системы. Возможные логические ком­ бинации указанных сигналов приведены в табл.- 2.2 . Пример­ ная реализация этих четырех сигналов управления показана схематически на рис. 2.28. 2.'17. Шина управпения системы ив базе 8085 Дnя построения шины управления микропроцессора '8085 Нс• пользуем управляющие выводы, обозначаемые как IO,iм (вы­ в'од 34), RD (вывод 32) и WR (вывод 31). В там. 2.3 приведе­ ны логические состояния сигналов на этих выводах соответст­ венно функциям шины управления.
Построение систем_с 3.wии.ми •5З TaбAUЦtJ Z.8 Логические условия для выводов управляющих сигналов мнкропроц.ессора 8085 прн указанных функциях системы No32 No 31 No34 RD WR l0/M о 1 l IOR Сокращенное обо- 1 о 1 IOW о l о MEMR ·] значение функций 1 о о MEMW системк Из табл. 2.3 видно, что при выполнении операций чтения или записи для устройства ввода-вывода (IOR и IOW) сиrна.11 на выводе 10/М (34) соответствует состоянию . логической 1. 7404 RD uп 7404 8085 VvR 7404 Ю/м \ Ю== 1в случае запроса на ВВО,1-ВЫВОД МЕМ= 1в случае обра­ щсн1iя к памя rн 7400 з 8iOR 6 вiow Рис. 2.29. Полная схема реализации шины управления системы на базе микро- ~роцессора 8085 с помоUU>ю схем •днсхретной логики. .. При выполнении же операций чтения и записи в память (MEMR и MEMW) этот сигнал соответствует состоянию О. . ..Лри р.еализации функций, соответствующих обозначениям этих выводов (чтение и запись), на выводы RD и WR (32 и 31) подается· сигнал О. Таким образом, при выполнении чтения ин• формации из памяти или с устройства ввода сигнал RD, соот• ветствует логическому О. При вып~нении же записи в память ипи на устройство вывода сигнал WR соответствует логическо• ч,у О. Логические схемы, необходимые для реализации упразпя­ ющих сигналов в системе н_а базе микропроцессора 8085, при• ведены иа рис. 2.29. •
54 Гл11ва 2 2.18. Шина управnения сисrемы на· базе 6800 Микропроцессоры 8080, 8085 и Z80 спроектированы таким об­ разом, что выполнение функций доступа к памяти и к устрой-­ ствам ввода-вывода осуществляется раздельно. Эти микропро­ цессоры имеют специальные команды, реализующие электр11чес-­ кую связь с памятью либо с устройствами ввода-вывода систе­ мы, что позволяет достаточно просто построить шину управле-­ ния системы. Было принято, что во всех трех микропроцессорах используется стандартная архитектура реализации операций: ввода-вывода. . • , В микропро-цессоре 6800 не существует специальных и;оманд~ устанавли~ающих электрическую связь либо с памятью, либо, с устройствами ввода-вывода. Этот микропроцессор не различа­ ет память и устройства ввода-вывода; т. е. не различает тип схем, осуществляющих прием или генерирование данных. Все передачи в системе обрабатываются как обращения к памяти. Архитектура ввода-вывода подобного рода известна как ввод­ вывод по аналогии с обращением к памяти. Для рассмотрения этой архитектуры введем специальный раздел с описанием ад­ ресного пространства памяти, используемого устройствами вво­ да-вывода. Адресное пространство микропроцессора 6800 включает 64К (216 ) адресов. Отведем часть из этих 64К адресов для ис;поль­ зования устройствами ввода-вывода. При конкретном распреде­ лении ячеек памяти полезно пользоваться так называемой таб­ лицей распределения памяти. С приобретением - достаточного, опыта в проектировании микропроцессорных систем распределе­ ние памяти осуществляется достаточно просто. Тем не меиее из соображений методического характера для микропроцессора 6800 вопросы распределения памяти целесообразно рассмотрет~ детально. 2.19. Расnредеnение nамяrи Распределением памяти называют разбиение имеющегося объе­ ма памяти в системе с целью реализации отдельных функций. Эта процедура характерна для любого микропроцессора. На распределение памяти влияет целый ряд факторов, некоторые из которых перечислены ниже: принятая архитектура ввода.­ вывода (линейная выборка, ввод-вывод по аналогии с обраще­ нием к памяти, стандартный ввод-вывод); используемые в сис­ теме типы постоянных и оперативных запоминающих устройств. (ПЗУ и ОЗУ); частные особенности функционирования микро-. процессора. Подробно распределение памяти в системе будет­ рассмотрено на примере проектирования небольшой системы" управляемой микропроцессором.
По.строение систем с 3 шинами 55 Прежде всего обсудим некоторые особенности микропроцес­ сора 6800 с це.Тiью обоснования конкретнЬго распределения па­ мяти. Вначале необходимо рассмотреть, каким образом микро­ процессор начинает работу. С подачей питания микропроцессор переводится в рабочий режим с передачей управления в зара­ :нее определенную ячейку памяти, соответствующую адресу FFFE. Микропроцессор читает данные :из ячеек FFFE и FFFF и формирует команду перехода по адресу, записанному в эти ячейки. После этого выполняется команда, расположенная по .адресу nерехода. Предположим для примера, что в ячейке FFFE записано число 08, а в ячейке FFFF - 00 . После считывания этих чисел управление передается в ячейку 0800 и начинается выполнение записанной там команды. Поскольку в описанной процедуре ис­ пользуются большие адреса, то область памяти, выделяемая для ввода-вывода, не должна располагаться в верхней части памяти. Отведем область памяти с адресами от 0400 до 07FF для использования в качестве адресов ввода-вывода. При этом воз­ никает необходимость в распознавании этого адресного прост­ ранства и генерировании соответствующего сигнала (10/М). Для формирования сигналов управления этот сигнал комбини­ руется с сигналом R/W микропроцессора. Описанная процедура IПОказана на схеме рис. 2.30 . На рис. 2.31 приведена полная схема реализации шины уп­ равления системы на базе микропроцессора 6800. Выбор ад­ ресноГQ пространства 0400-07FF в качестве адресов ввода-вы­ вода не является обязательным, а осуществлен лишь в иллюст­ ративных целях. На рис. 2.31 показан также сигнал VMA, используемый для формирования шины управления системы. Этот сигнал генери­ руется микропроцессором и называется сигналом достоверности .адреса памяти (Valid Memory Address). При выполнении ко­ манд на адресные линии может быть выдан несуществующий адрес. Если же сигнал VМА соответствует логической 1, то ад­ рес, выданный микропроцессором, соответствует реально суще­ .ствующей ячейке ПЗУ или ОЗУ. Поэтому во избежание ложной записи в память системы необходимо использовать генерируе­ мый микропроцессом сигнал VMA, уточняющий все сигналы на шине управления. ' Отметим также использование, при функционировании шины \ управления тактового сигнала фазы 2 ( Ф2). Из временньrх диаг­ рамм микропроцессора 6800 можно заключить, что процессы в -системе вбзбуждаются по заднему фронту импульса Ф2. Тем са- мым передача данных от микропроцессора в систему и на.обо- рот начинается по заднему фронту импульса Ф2. Поэтому им­ пульс Ф2 испощ,зуется для формирования сигналов шины уп- _
цп 68VO Схемы генерирования сигналов управления системы ~~~MEMR RIW VMA /'----- ~ Схемы дешифрирования управляiошеrо сигнала ввод-вывод/память 1 MEMW IOR row Ф2(ТТL) от тактового генератора ] Сиrиалы управления системы Рис. 2.30. Схема rеиерироваиия с помощью схем ~еmвфрвроваиии сигна­ ла IO/M в системе на базе микропроцессора 6800. Наличие этой схемы обусловлено архитектурой ввода-вывода 6800 по аналогии с обращением к памяти. 4 13 !~ 7404 BMEMR ;z: os "\О 4 в <:: 34 =os ~ ;z:8 !;. :;; ~ os~ В!ОR ., ЦП ;z: f,< )4()3 :,: 5 6800 6. s ,, 13 19 А,о вi6w А" 8 20 А" 22 15 -14 !_ 13 !0/М о ◄ 0400-0?F FJ Область 74LS42 памяти для ввода-вь1вода Рве. 2.31. ПОJJИая схема реапвзацвв limВH управления аетемs ■а базе ■п­ ропроцессора 6800 с помощью схем дискретной логики, построевиая на осио­ ве блок-схемы -рис. 2.30.
74LS367 30 Ао 2 3 ВАо А, 4 5 ВА1 31 7 ВА2~ А2 6 32 [> Аз 10 9 ВАз 33 А4 12 11 ВА4 34 35 -As 14 13 BAs •1 1, 15 :в 74LS367 :ё '-' Ав 2 3 ВАв с< 36 и А7 4 5 ВА7 :,: и 37 ВАв Ав 6 7 ro 38 [> :,: Ag 10 9 ВА9 :,: 39 3 А10 12 11 ВА10 40 "' А11 14 13 ВА11 ro :,: z80 и '-' Микроороцессор °' <1: < 2 А12 ВА12 А,з 4 5 ВА,з 3 ВА14 -А,. 6 7 4 [> А15 10 9 BA1s 5 •1 ::,; Оа 11 ВОа :ё 14 '-' о, 8 12 во, с<и 15 ВО2 :,: 02 7 13 и 12 >< 8Оз 6 14 ВОз ::,; Os 5 15 во. :,: 7 ' :,: 04 4 16 ВО5 1& 9 05 3 17 ВО5 os 10 :,: 2 18 ВО1 = 07 = 13 Направле- 22212019 ние.переда 1=- , WR Ro 1 0 MREQ D=- 1 7400 ВМЁмR ~ :::. Q1 7494 3 aJ f,< u 2 :,: u 3 4 "':,: :,: О> I 5 ~ "'os §< 9 ;,, . os 3 3 Рве. 2.З2а. Схема шин: адресной, давиых и управления для микропроцессо• ра Z80.
74LS367 9Ао 2 3 ВА0 10 А1 4 5 ВА1 11 А2 6 7 ВА2 12 Аз 10[>9ВАз 13 А4 12 11 ВА4 14 А5 13 ВА5 ::.. );1 Q) Ав ВА6 f,< 15 U· ВА1, .:S: А 4 5 ~ 16 Ав 6 J ВА8 ('$ 17 [> 111 Ag 10 9 ВА9 :,: 18 s А,о 12 11 ВА10 19 13 ВА11 ~ 20 А11 14 :,: u 6800 Q) Микропроцессор А12 ВА12 1 22 23 А1з 4 5 ВА1з 24 А14 6 7 ВА14 25 А15 10[>9 ВА15 •1 z 33 Do t D1 12 8 BD1 f,< 32 u BD2 :,: 31 D2 13 ., 7 u Dз 14 6 ВDз ~ 30 :;; 29 D4 15 5 8D4 :,: 28 D5 16 4 BDs 15 1:1: 27 Dв 17 3 ВDв ttt 18 8D7 :,: 26 D1 2 :,: s VMA 1 Направление 5 передачи 7420 1=- О=- l~ ,BMEMW u :,: u о: 1i!Q) BIOR !о. = ;,, . BIOW ~:,: ф2 (ПL) s • Рис. 2.326. Схема шин: адресной, данных и управления для мнкропроцессо-. ра 6800.·
74LS367 28 2-з А15 А15 27 4 5 ВА14 в ·А14 26 6 7 ВА1з· А1з 25 10[>9 ВА12 А12 24 12 11 ВА11 1\11 23 14 13 ВА10 А10 ' •1 1, 15 1, 15 Ag 22 2 3 ВА9 21 4 5 ВАв Ав [> ' 74LS04 -~ ALE 30 1 2 L...( ' 74LS374 ..гr:. 18_l AD7 19 19 BAt ADt; 18 17 16 ВАв Микро- ADs 17 14 15 BAs процессор 16 13 12 ВА4 8085 AD4 АDз 15 8 9 ВАз 14 7 6 ВА2 AD2 13 4 5 ВА1 AD1 ADo 12 3 2 ВАо 1 i4LS374 •1 19 2 18 В0 7• - ___]_ 17 ВDв ~16 BDs 5 15 во. ·• 6 14 ВDз 7· 13 8D2 8 12 BD1 9'11 BDo -- - 174LS245 l0/M WR RD 7404 Направление 343132 --2{) 4 передачи о=·- 1~- 7404 1 7409 ~ 1 3 ВМЕМ 2 w 7404 4 6 ~ 1 ВМЕМ 5 ;[У- 7404 BIOW 13 12 11 1D 10 R ~-Г12 11 BIOR \ \ 13 !в случае обращения I в случае запроса к памяти • • на ввод-вывод \ ro ;z: s Рис. 2.32в. Схема шин: адресной, данных и управления. для микропроцес­ сора 8085.
' 8080 икро- м пр оцессор 1 да А, А2 Аз Д4 As Ав А1 Ав· Ае А10 А11 А,2 А,з А14 А15 Do о, D2 Dз D4 D5 Dв D7 WR DBIN HLDA 25 26 27 29 30 31 32 33 34 35 - 1 40 37 38 39 36 10 9 8 7 3 4. 5 6 18 17 21 74C.S367 2-3 Вдо 4 5 ВА1 6 7 ВА2 10[>9 ВАз 12 11 ВА4 14 13 BAs ·1 1, 15 74LS367 2-3 ВАв 4 5 ВА7 6 7 ВАв 10[>9BAg 12 11 ВА10 14 1,! ВА 11 ,, 1,15 74LS367 2-3 ВА,2 4 5 ВА1з 6 7 ВА14 10 [> 9 13A,s ·1 1, 15 8228 15~ 13 ВO0 17 16 во, 12 11 BD2 10 9 ВDз 6 5 8D4 19 18 BDs 21 2D ВO6 8 7 8D7 3 4 224 BMEMR 26 BMEMW 25 B/OR 1 27 BIOW 22 sтsтв ·г Строб состояния спи ..,.. '---- :;; :ёQ) !-о<,; · = u >< :;; :,: :,: ""!С( ,:,1 :,: s =: } :,: 5:а "" ~t: :ё ;z: Q) =o,f -< =1 ~~ Рис. 2.32r. Схема шии: адресной, данных и управления для мвхропр~ сора 8080,
Построение сметем с 3 шинами· 61. равления, как это показано на рис. 2.31. Для любого из рас­ смотренных выше микропроцессоров мо:ц<но реализовать архи­ тектуру ввода-вывода по аналогии с обращением к памяти. Од­ нако для микропроцессора 6800 такая архитектура является­ обязательной. 2.20. Выводы Выше было показано, каким образом реализуется архитектура систем с 3 шинами на базе микропроцессоров 6800, Z80, 8085 и 8080. Управляющие сигналы микропроцессора использовались. для генерирования сигналов шины управления и определения_ направления передачи информации по шине данных. При этом нет необходимости беспокоиться о синхронизации сигналов уп­ равления микропроцессора. Последний контролирует логичес­ кие урощш и осуществляет синхронизацию сигналов, таких, как RD, WR, DBIN и R/W. Из проведенного обсуждения ясно, что реализация архитек­ туры системы с 3 шинами для рассмотренных микропроцессоров. достаточно проста. Здесь не обсуждались такие детали, как подключение памяти к системе или генерирование тактовых им­ пульсов. Эти вопросы вынесены .в последующие главы. В завершение главы приведем полные схемы четырех рас­ смотренных микропроцессоров, имеющих архитектуру систем с. 3 шинами. Эти схемы представлены на рис. 2.32а - 2.32г, где ясно видны три шины - адресная, данных и управления. Отме­ тим сходство построения всех трех шин для указанных микро- • процессоров. _ . Необходимо подчеркнуть, что рассмотренная схема построе­ ния шины управления не является обязательной. Конкретная реализация этой шины в большой степени зависит от .типа ~а­ мяти и других ИС, используемых --в системе. Выбор представ­ ленной выше реализации шины управления сдел~н лишь с целью иллюстрации схожих сторон четырех рассматриваемых микропроцессоров. Однако приведенная техника построения шины управления может быть использована на практике и спо­ собствует пониманию архитектуры систем с 3 шинами.
Глава 3 ГЕНЕРАТОРЫ ТАКТОВЫХ ИМПУЛЬСОВ И ИНТЕ,РФЕй,С ПАМЯТИ ДЛЯ МИКРОПРОЦЕССОРНЫХ СИСТЕМ С З ШИНАМИ Во второй главе бы.11а рассмотрена структура микропроцессор­ ной системы, в состав которой входят следующие три шины: адресная шина, шина данных и шина управления. Для каждого микропроце.ссора обсуждались требования, предъявляемые к ге­ нератору тактовых импульсов. Указывалось, что он определяет синхронизацию микропроцессорной системы. В этой главе рас­ •Смотрим вопросы генерации последовательности тактовых им­ пульсов, т. е. покажем, как обеспечить систему необходимым .генератором тактовых импульсов. , Также обсудим вопросы интерфейса памяти в системах с 3 шинами, в частности для каждого типа микропроцессора со­ тласование электрических характеристик при использовании раз­ .личных ОЗУ и ПЗУ. К:роме того, рассмотрим методы организа­ ции интерфейса в микропроцес~;орных системах для ОЗУ с об­ щим входом и выходом и для ОЗУ с раздельными входом и .выходом. 3.1. Генератор тактовых импульсов дпя микропроцессора 8080 Для микропроцессора 8080 требуются две высоковольтные • (12 В) последовательности тактовых импульсов. Эти последо­ вательности условно назовем: фаза 1 (Фl) и фаза 2 (Ф2). Вре­ менные соотношения последовательностей тактовых импульсов локазаны на временной диаграмме (рис. 3.1). Там же содер­ жится перечень их временнь1х характеристик, для которых в -таблице приведены ограничения. Временная диаграмма и ее характеристики показывают, что яолучение последовательностей тактовых импульсов, отвечаю­ щих заданным требованиям, представ.,яет собой отдельную и Jiелегкую техническую задачу. К: счастью, в рамках этой зада­ чи для микропроцессора 8080 ~ыла разработана специальная интегральная схема. Это генера'ГUJ) тактовых импульсов с щиф­ ром 8224. К:роме выработки тактовой последовательности им- 111ульсов для 8080, устройство 8224 может выполнять и другие функции. Это делает его применение в микропроцессоре Intel 8080 более удобным. Дополнительные возможности генератор4
Генераторы тактовых импульсов и интерфейс пам,~ти ф1 ф2 Обозначение \ tns Параметр Период следРвания импульсов Время переднего и время заднего фронта Ширина импульса Фl Ширина импульса Ф2 Временной интервал .между задним фронтом импульса Ф 1 и перед­ ним фронтом следующего им­ пульса Ф2 Временибй интервал между задним фронтом импульса 'Ф2 и перед­ ним фронтом следующего им­ пульса Ф 1 Задержка импульса Ф2 по отношению к импульсу Ф 1 101 Значение мин. 1 макс. 0,48 2,0 о50 60 220 о 70 80 Единица измерения мкс НС ИС- нс нс нс НС Примечание. Характеристики переменного тока: Тл=О -70°С, VDD=+l2 В±5%, Vcc- •+5 В±5%, V 88=5 В±5%, V55 =0 В, если ие оговаривается особо. Рис. 3.1. Временная диаграмма последовательностей Фl, Ф2 тактовых импульсов для м11кропроцессора 8080. Временные характеристики последова­ тельностей тактовых импульсов даны в таблице. (С разрешения фирмы lntel.) тактовых импульсов 8224 будут рассмотрены в следующих гла­ вах. Для проектировщика, использующего систему 8080 в каче­ стве ~азовой, разработка генератора тактовых импульсов не соста:вит труда. Если в качестве системного контроллера ис­ пользуется микропроцессор 8080, то генератором тактовых им­ пульсов в этом случае будет устройство 8224. Благодаря этому уменьшается объем оборудования и, конечно, увеличивается на-' дежность системы. Схема и спецификации генератора 8224 представлены на рис. З.2а и 3.2б. Для его работы необходимы лишь подача ~пи-
rлasa 3 Конфигурация выводов RESET Vсе RESIN XTAL1 RDY/N XTAL 2 READY TANK SYNC osc р2(ТТL) S Т.::,ТВ GND Voo Схема устроr.ства l!DXTAL 1 = -----, @>XTAL2 @>TANK Генератор тактовых +9 импульсов ФI @> Ф2 [!о> r------n<п~)!D @)SYNC ---+ --L/ JDRESIN • Вход триггера [D Шмитта RDYIN L__J-...._--RESETII) t---REAIJY{D RESIN Вход «Сброс» RESET Выход «Сброс» XTAL 1 { Выводы для подключенив, XTAL 2 кварцевого резон атора • Вход «Готов» TANK ' Используется для обе рт.он~ RDYIN кварцевого резонатора ·R E A DY Выход «Готов» osc Выход генератора SYNC Вход «Синхронизаия» 9'ЩТТL) Фазаф2 (ТТЛ - уровень) sтsтв Строб состояния Активный уровень-низкий Vc~ +58 ф1 1 8080 ф2 Въ1ходы с.инхроимпульсов для микропроцессора Voo +1213 - GND ов ' Рис. 3.2а. Схема и назначение выводов генератора тактовых им.пу~ 8224 при совместном использовании с 8080. (С разрешения фирмы Intel.) тания от источника постоянного тока .и подключение внещнеrо кварцевого резонатора. Требуемая частота колебаний кварце• вого резонатора в 9 раз больше, чем частота импульсов, соот­ ветствующая периоду tcy в последовательностях импульсов, Ф 1 и Ф2 для микропроцес.-сора 8080. Допустим,· например, что tcy, равен 1 мкс, что соответствует частоте в. 1 МГц. Частота коле­ баний резонатора должна быть равна 9 МГц, что соответ~твует периоду, равному де:вятой части tcy. • На рис. 3.3 показано, как ~енератор 8224 подключается ·1' микропроцессору 8080. В1?1ходной сигнал генератора .8224 на рисунке имеет обозначение STST,B. Этот сигнал упомЩiалtя. в rл. 2 как сигнал для стробирования слова состояния в фикс~~ торах состояний. Он подается, когда слово состояния поступаеж на ш_И:ну данных. Если у вас нет полного пред(?тавления о фув:~t,. циях этого стробирующего сигнала в системе, обратитесь 1t разд. 2.13, в котором рассматривается шина управления микро~ 1 '1 j., i
Генераторы тактовых импул~,сов и интерфейс памити 65 Характеристики генератора тактовых импульсов 8224 Преде.пы МШI, 1 тип. , макс, Eдmm- Обозначение .Параметр Ц8 ИЗ· Условие проверки мереиня lp Входной ток -0,25 мА Vp=0,45 В IR Входной ток утеч- 10 мкА VR=5,25 В ки Vc Входное прямое 1,0 в lc= -5мА напряжение захва- та V1L Низкий уровень 0,8 в Vcc=5,0 В входного напряже- ния V1н Высокий уровень 2,6 в Вход RESET входного напряже- 2,0 в Все другие входы ния V1н-V1L Напряжение входе REDIN на 0,25 мВ Vcc=5,0 В VoL Низкий уровень - 0,45 в (Фl, Ф2), READY выходного напря- RESET, STSTB жения IoL=2,5 мА О,45 в Все другие выход IoL= 15 мА ы Vон Высокий уровень выходного напря- 9,4 lон= -100 мкА жения Фl, Ф2 в READY, RESET 3,6 в lон= -100 мкА Все другие выходы 2,4 в lон=-1мА lsc Выходной ток ко- -10 -60 мВ Vo=0 В роткого замыкания (Все выходы низ- Vcc=5,0 В ковольтные) lcG Ток источника ПИ· 115 мА тания Inn Ток источника ПН· 12 мА тания Примечание: 1. Осторожно. Выходы устройства Фl, Ф2 не имеют защиты от короткого аамыкаиня. 2. Характеристики постоянного тока: Тл=О -70°С, Vcc=+5,0 В±5%, VDD-+12 В±5%. Рис. 3.2б. Спецнфнк,щии для генератора тактовых импульсов 8224. (С раз­ решения фирмы Iпtel.) процессорной системы 8080. Мы видели, что при использовании генератора тактовых импульсов 8224 для микропроцессора 8080 нет сколько-нибудь значительных затруднений в получении кор- 5-814
66 Глава 3 ректных последовательностей тактовых импульсов Ф 1 и Ф2. На­ стоятельно рекомендуем применять его для управления систе­ мой, разрабатываемой на базе микропроцессора 8080. 1:tо~~Ги "':а 11 "'о .... f-<N 10 "'"' "'"" f-< 4 о. "' 00 f-< u 1 "'"' о. с; <!J;,, 5 :,: t:: <!J;;, ~= /7- sтsтв 22 ф1 8080 15 ф2 23 READY 12 RESET 19 SYNC К системному контролеру 8228 или фиксатору «состояния» Рис. 3.3 Схема подключения гене­ ратора тактовых импульсов 8224 к микропроцессору 8080. Э.2. Генератор тактовых импульсов дпя микропроцессора 8085 Схема генератора тактовых импульсов микропроцессора 8085 полностью содержится в самом микропроцессоре. Достаточно просто подключить кварцевый резонатор к . выводам Х 1 (вы- 1-6 МГц х, 8085 Рис. 3.4 . Схема подключения кварце­ вого резонатора к микропроцессо­ ру 8085, предиазиаченного для ста­ билизации частоты следования так­ товых импульсов. Тактовая частота микропроцессора 8085 в два раза меньше частоты колебаний кварцево- го резонатора. вод 1) и Х2 (вывод 2) микропроцессора 8085. Кварцевый резо­ натор может иметь любую частоту колебаний в диапазоне от 1 до 6 МГц. Эта частота делится пополам и соответствующие импульсы с периодом tcy используются в микропроцессоре 8085. На рис. 3.4 показано, как путем подключения кварцевого резо­ натора обеспечивается синхронизация микроп_роцессора 8085.
Генераторы тактовых импульсов и интерфейс пам,~ти 67 Э.Э. Генератор тактовых импуnьсов дnя микропроцессора Z80 Для работы микропроцессора Z80 требуется одна последова­ тельность тактовых импульсов. Т 0 кая последовательность мо­ жет быть образована различными способами. На рис. 3.5 пока­ зана схема генерации синхронизирующих импульсов для мик­ ропроцессора Z80. Частота колебаний, как видно, определяется кварцевым резонатором Х1. Однако для того чтобы эта схема работала, произведение R1C 1 должно быть численно больше, Х1, (1МГц) ,-------101--------, R1 330 +5в. )0-----i ~ 6 Вход синхро­ 7404 7404 импульсов мик­ ропроцессора Z80 Рис. 3.5 . Схема генератора тактовых импульсов для микропроцессора Z80. Выход этого генератора несовместим с ТТЛ-схемами. С помощью согласую­ Щl!ГО резистора на 510 Ом напряжение на выходе генератора тактовых им­ пульсов увеличивается примерно до 5 В. Характеристики генератора такто- вых импульсов представлен_ы на рис. 3.6. чем период колебаний. Допустим, требуемая частота равна 1 МГц. Ей соответствует период в 1-10-6 с. Это означает, что величина произведения R1C1 до,лжна- быть больше, чем 1-10-6 . Величина сопротивления R1 должна оставаться постоянной и иметь значение приблизительно в 330 Ом. При этом значение С 1 должно быть больше или равно l •10-6 /330 Ф. Это же зна­ чение приблизительно равно 3000 пФ. Такая величина произве­ дения R 1C 1 обеспечивает необходимый фазовый сдвиг частоты колебаний. Спецификация характеристик генератора тактовых импульсов для микропроцессора Z80 дана на рис. 3.6 . Э.4. Генератор тактовых импульсов дnя микропроцессора 6800 Микропроцессор 6800 подобно микропроцессору 8080 требует для своей работы две последовательности тактовых импульсов, для образования которых должны использоваться схемы, от­ личные от ТТЛ-схем. Эти последовательности тактовых импуль-
Е с л и н е у к а з а н о о с о б о , и з м е р е н и я в с е х в р е м е н н ы х х а р а к т е р и с т и к в ы п о л н е н ы п р и с л ' е д у ю щ и х н а п р я · ж е н и я х : t c ф t w ( Ф L ) , . Т а к т . и м n . s ы х о ц в х а 1 1 Т д " ' О 0 С д о 7 0 ' C , V c c ~ + 5 В ± 5 % С и г н а л О б о з н а ч е н и е П а р а м е т р t c П е р и о д с л е д о в а н и я т а к т о в ы х и м п у л ь с о в Ш и р и н а и м п у л ь с а н а 4 ' t w ( Ф H ) в е р х н е м у р о в н е Ш и р и н а и м п у л ь с а н а н и ж н е м у р о в н е о V c c - 0 , 6 B 0 , 4 5 B 2 , 0 В 0 , 8 В 2 , 0 В О , 8 В Л V ~ О , 5 В М i п М а х Е д и н и ц ы и з м е р е н и я 0 , 4 [ 1 2 ) м к с 1 8 0 Н С 1 8 0 2 0 0 0 н с f w ( Ф L ) В р е м я п е р е д н е г о и з а д н е г о t г f ф р о н т а и м п у л ь с а 3 0 Н С У с л о в и е , п р о в е р к ! ' ! [ 1 2 ] l c = f w \ < P H ) + t w ( < P L f l г 1 - ! 1 1 ; Р н с . 3 . 6 . В р е м е н н а я д и а г р а м м а и о с н о в н ы е в р е м е н н ы е х а р а к т е р и с т и к и п о с л е д о в а т е л ь н о с т и т а к ­ т о в ы х и м п у л ь с о в д л я : м и к р о п р о ц е с с о р а Z 8 0 . ( С р а з р е ш е н и я ф и р м ы Z i l o g . )
Р а б о ч а я ч а с т о т а 0 , 1 1 - 1 1 , 0 1 Т а к т и р о в а н и е f c : W . c В р е м я ц и к л а 1 , 0 - 1 0 Д л и т е л ь н о с т ь т а к т о в о г о и м п у л ь с а р Ф Н ( и з м е р е н о п р и V с е - 0 , 3 В ) Ф 1 4 3 0 - 4 5 0 0 Ф а 4 5 0 - 4 5 0 0 О б щ е е д л я Ф l и ! 1 1 2 р а б о ч е е в р е м я t u t 9 4 0 - - В р е м я н а р а с т а н и я и с п а д а Ф 1 , Ф а t ф r , t ф f 5 , 0 - 5 0 ( и з м е р е н о м е ж д у V s s + 0 , 3 В и V c c - 0 , 3 В ) В р е м я з а д е р ж к и и л и р а з д е л е н и е п о ч а с т о т е t d о - 9 1 0 0 ( и з м е р е н о п р и V o v = V s s + 0 , 5 В ) П р о д о л ж и т е л ь н о с т ь в ы б р о с а t o s о - 4 0 Ф а з ы п о с л е д о в а т е л ь н о с т и т а к т о в ы х и м п у л ь с о в ф 1 и ; , 2 м и к р о п о ц е с с о р а Р W о 1 н ф 1 ф 2 V o v = V s s + 0 , 5 B = Т о ч к а и з м е р е н и я п е р е к р ы т и я и м п у л ь с о в ! с у с t u l Р W , , , н П о л о ж и т е л ь н ы й в ы б р о с V o s , • У V , н c m i n V o s V о з \ f " , V m a x I L C " ' V o s м Г ц м к с Н С н с н с Н С н с Р и с . 3 . 7 . В р е м е н н а я д и а г р а м м а и о с н о в н ы е х а р а к т е р и с т и к и п о с л е д о в а т е л ь н о с т е й ' r l i ~ T Q , ~ ; , ~ 1 о 1 п r л ь с о в д л я м и к р о п р о ц е с с о р а 6 8 0 0 . ( С р а з р е ш е н и я ф и р м ы M o t o r o l a . )
70 Гла-ва 3 сов имеют названия «фаза 1» и «фаза 2» соответственно. На рис. 3.7 показаны формы импульсQв и даны спецификации по­ следовательностей тактовых импульсов, предназначенных для микропроцессора 6800. Видно, что, как и для микропроцессора 8080, генерация тактовых импульсов такой формы представляет собой непростую техническую задачу. Фирма Motorola разрабо- +5-------. ---~ Чтение HOLD1 +5 памяти GNo GND 1 , 1 sземr1Я 20722 18 6871А ф() Модуль генера:rора 5 t------ 2 П L • тактовых импульсов 13 12. ф1 Ф2 3 37 36 ф1 Ф2 DBE Микро­ процессор 6800 Рис. 3.8. Схема подключения генератора 6871А к микропроцессору 6800. тала генератор тактовых импульсов, который пригоден для ис­ пользования совместно с микропроцессором 6800. Такой гене­ ратор, обозначаемый 6870А или 6871А, рекомендуется исполь­ зовать совместно с микропроцессором 6800 как основной компо­ нент системы управления. На рис. 3.8 показана схема подключе­ ния генератора тактовых импульсов к микропроцессору 6800. Отметим также, что для сигналов, передаваемых по шине управ­ ления, в микропроцессоре 6800 используется задний фронт син­ хронизирующего импульса из фазы 2. (EcJIИ вы плохо представ­ ляете себе о чем здесь идет речь, то обратитесь к соответствую- •щему разделу гл. 2, в котором рассматривается шина управле­ ния микропроцессора 6800.) Это означает, что последователь­ ность «фаза 2» должна подаваться на вход устройства с ТТЛ­ логикой. В микропроцессоре 6800 используется входной уровень •сигнала, отличающийся от принятого в ТТ Л-схемах. Поэтому
Генераторы тактовых импульсов и интерфейс памяти 71 нельзя подgвать на вход микропроцессора 6800 последователь­ ность «фаза 2», которая используется для ТТЛ-схем внутри си­ стемы, так как уровни напряжений сигналов в двух указанных последовательностях должны быть различными. Однако в гене­ раторах тактовых импульсов 6870А и 6871А для последова­ тельности Ф2 предусмотрен специальный уровень в.ыходных сиг­ палов, пригодный для схем с ТТЛ-логикой, который использует­ ся для ТТЛ-схем в микропроцессорной системе 6800. 3.5 . Выводы Для обеспечения функционирования микропроцессора Z80 тре­ буется одна последовательность тактовых импульсов, а для микропроцессоров 8080 и 6800 необходимы две несинхронизи­ рованные последовательности тактовых импульсов. МикропрЬ­ цессор не будет работать нормально, если генератор тактовых импульсов функционирует неправильно. Следует отметить, что при поиске неисправностей в микропроцессорной системе целе­ сообразно сначала убедиться в том, что все подаваемые уровни напряжения имеют требуемые значения и что все последова­ тельности тактовых импульсов имеют необходимые временные соотношения и номинальные уровни напряжения. 3.6 . Интерфейс памяти в микропроцессорных системах с 3 шинами В этом разделе обсуждаются вопросы подключения ПЗУ и ОЗУ в микропроцессорных системах с 3 шинами. Сначала рассмат­ ривается подача сигнала по линии выбора памяти, или линии разрешения доступа к памяти, а затем организация интерфей­ са обычных ПЗУ и ОЗУ в микропроцессорных системах. В ка­ честве ПЗУ выбрано устройство 2708, а в качестве ОЗУ -уст­ ройства 2102 и 2124. Выбор названных устройств обусловлен их широким распространением в настоящее время. Если знать, как подключаются эти устройства к микропроцессорной систе­ ме управления, то вполне будет понятно, каким образом под­ ключаются другие им подобные устройства. После того как выбрано подходящее для системы устройство памяти, составляется схема распределения памяти. О ней упо­ мина.11ось в гл. 2 при рассмотрении микропроцессора 6800. Те­ перь подробно разберем, что подразумевается под этим поня­ тием. Таблица распределения памяти - это присвоение областям физически доступного пространства памяти определенных функ­ ций. Например, можно использовать область памяти с адресами 0000-0ЗFF для ПЗУ, а область памяти с адресами 0400-0?FF для ОЗУ. На формирование таблицы распределения памяти ока-
72 Глава З зывают влияние такие факторы, как архитектура ввода-вывода и типы устройств ОЗУ и ПЗУ. В данном обсуждении будем счи­ тать, что способ организации ввода-вывода по аналогии с обра­ щением к памяти не используется; в качестве ПЗУ нашей -системы выбрано устройство 2708, в качестве ОЗУ -устройство 2102. Таблица распределения памяти системы в этом случае бу­ дет такой, как показано на рис. 3.9. На этом рисунке представ­ _лено распределение доступного пространства памяти с диапа- 0000-ОЗFF ПЗУ1 0400-07FF ПЗУ2 0800-0BFF ПЗУз OCOO-OFFF ПЗУ4 1000-lЗFF ОЗУ 1400-FFFF Не используется Рис. 3.9 . Пример распределения памяти системы. зоном адресов 0000-FFFF блоками в 1К: и для ОЗУ и для ПЗУ Размер блока 1 К: выбран из тех соображений, что физически память организуется так: 1 К:Х8ПЗУ и 1 К:Х 1 ОЗУ. Причем, чтобы получить ОЗУ объемом в 1 К: байт, параллельно подклю­ чаются 8 блоков ОЗУ по 1 к:. Об этом будет рассказано в дан­ ной главе ниже. В случае если в качестве ПЗУ нашей системы выбрано уст­ ройство 2716, то блоки памяти для ПЗУ будут иметь размер, равный 2 К:. Это объясняется тем, что устройство 2716 _представ­ ляет собой ППЗУ (перепрограммируемое постоянное зmюми­ нающее устройство) емкостью 2 К:Х8. Очевидно, что таблица распределения памяти служит справочником, содержащим ин­ формацию о распределении доступного пространства памяти микропроцессорной системы. Допустим, что нет необходимости использовать все прост­ ранство памяти, и поэтому для ПЗУ зарезервировано 4096 байт (или 4 К). Однако следует помнить, что, если резерв ока­ жется слишком маленьким, при возникновении потребност.и в дополнительном объеме памяти для реорганизации таблицы распределения памяти в уже действующей системе могут потре­ боваться значительные усилия. Таким образом, если адресное пространство памяти позволяет, жесткая экономия памяти не является необходимой. Всегда стоит предусмотреть место для возможного расширения. 3.7 . ПЗУ системы Теперь рассмотрим, как микропроцессор связывается с ПЗУ электрически. _ . К:огда микропроцессор подает на шину адреса адрес из диа­ пазона 0000-0ЗFF, то из таблицы распределения памяти ясно,
Генераторы тактовых импульсов и интерфейс naм,rrи 73- что для связи с ним будет открыто ПЗУ0. Аналогичное соответ­ с:гвие существует для ПЗУ 1 , ПЗУ2, ПЗУ3 : Из сказанного можно заключить, что в адресной схеме системы должен протекать не­ который процесс однозначного выбора, и он реализуется пода­ чей на линии адреса ВА 10 -ВА1з определенного кода выбора или сигнала разрешения доступа к памяти - к отдельному блоку памяти или к совокупности блоков. Например, если микропро- Двоичиые значения сигналов иа линиях шины адреса, соответствующие определенным областям адресного пространства памяти ВА1з ВА 12 ВА 11 ВА10 Диапазон адресов о о о о 0000-0ЗFF ПЗУо о о о l 040~07FF ПЗУ1 о о l о 0800-0BFF ПЗУ2 о о l l 0C00-0FFF ПЗУз. о l о о lOO~lЗFF ОЗУ Рис. 3.10. Двоичные значения сигналов на линиях шины адреса, соответствую,. щие определенным областям адресного пространства памяти. цессор был связан с ПЗУ 1 , то на линиях адреса ВА10-ВА 13 должны быть следующие двоичные значения 1000 соответствен­ но. На рис. 3.10 показаны двоичные значения состояний линий адреса ВА1 0-ВА 1 з для нескольких диапазонов адресов. Используя рис. 3.10, можно спроектировать комбинацион­ ную логическую схему, которая будет выдавать активный сиг­ нал, когда адрес памяти находится в определенных предела){. А именно, когда адрес памяти относится к одному из ее бло­ ков по 1 К:, на линии выбора памяти, соответствующей этому блоку, появится сигнал. К: счастью, эта проблема является классической, и она имеет простое решение. В частности, мож­ но использовать дешифратор, выполненный в виде ТТЛ-устрой­ ства среднего уровня интеграции, например двоично-десятичный дешифратор 7442 1>. На рис. 3.11 показано, как дешифратор 7442 используется в системе управления микропроцессора д,JJЯ дешифрирования ад­ реса и получения сигнала выбора памяти. Изготовители полу­ nро$одниковых устройств памяти часто разрабатывают свои со,бственные цифровые дешифраторы, предназначенные для при­ менения с определенными устройствами памяти. Фирма Iпtel, например, предлагает цифровой дешифратор 8205 «один из восьми». Его можно использовать для формирования сигналов на линиях выбора памяти. Теперь покажем, как используются линии выбора памяти, шина адреса, шина данных и шина управления для связи мик- ° Coffron J. W ., Gettiпg Started iп Digital TrouЫeshooting, Reston Pub- lishing Со., 1979,
74 Глава З ропроцессора и ПЗУ системы. Структурная схема связи памя­ ти ПЗУо-ПЗУз с шинами показана на рис. 3.12 . Ниже будет объясняться принцип действия представленной на этом рисун­ ке схемы. Отметим, что на схеме линии адреса ВА0-ВА9 соединяются с соответствующими адресными выводами А0-А9 четырех уст­ ройств ППЗУ типа 2708. Подобный способ соединения выводов С адресной ! шины микро- процессор.а ед,о 15 А ВА 11 14 в ВА 12 13 с ВА 13 12 D 7442 1 0000··0ЗFF 2 0400-07 FF 3~ 0800··0В FF Линии выбора памяти 4 5 6 0C00-0F FF 1000-13FF 1400-17FF [ Линии активны в состоянии логического О Рис. 3.11 . Схема образования сигналов на линиях выбора памяти, в которой используется просТi)Й дешифратор 7442. называют соединением в виде дейзи-цепочки. Также отметим, что выводы, используемые для выдачи данных четырех ПЗУ, связаны по принципу дейзи-цепочки с соответствующими ли­ ниями шины данных. Вследствие того что выводы ПЗУ связаны по принципу дей­ зи-цепочки, попытка вывода в одно и то же время данных более чем из одного ПЗУ привела бы к непоправимым ошибкам. Та­ кая ситуация известна как «конфликт на шине данных». «Кон­ фликг на шине данных» происходит, когда в некоторый момент времени на линии шины данных поступает более чем один на­ бор выходных сигналов. В действительности два выходных сигнала ра_зличных активных устройств поступают почти одно­ временно. Такая ситуация в системе является недопустимой. Для предотвращения конфликта на шине данных между че­ тырьмя модулями ПЗУ система в некоторый данный момент вре­ мени открывает только один модуль ПЗУ. Эта функция линии выбора памяти рассматривалась раньше. Для этой системы ли­ нии выбора памяти в активном состоянии имеют уровень логи­ ческого О. Однако для других систем могут быть приняты иные соглашения. Линии выбора памяти имеют обозначения MS0-MS3 . Сиг­ налы на этих линиях являются входными сигналами для двух-
Ш и н а д а н н ы х Ш и н а 1 5 1 3 А о В А , В А 2 В А з В А 4 В А 5 В А б В А 7 В д а Б А g П З У О 0 0 0 0 - 0 З F F 2 7 0 8 8 • д о А , А 2 А з А 4 D o Щ В D а v 1 W в о 1 А 7 В D з B D 4 B D 5 В D s B D 7 ; ; i . А а 2 2 A g _ 1 8 - = - c s " " " " w ё s о - 3 7 4 L S З , M S 1 M S 2 _ M S . : , А д р е с ~ ш и н а Р и с . 3 . 1 2 . И н т е р ф е й с ч е т ы р е х м о д у п е i j П З У J 0 4 0 0 - 0 7 F F 2 7 . Q ! L D o u ~ " · В А 1 6 А 1 В А 2 5 А 2 В А з 4 А 3 А , А 5 А В А 5 ~ 1 6 В А 7 - д 7 В А 8 B A g - ~ 2 0 ё s 1 - - 7 4 L S 3 2 1 . , - , J 5 П З У 2 0 8 0 0 - 0 B F F 2 7 0 8 2 0 C S 2 7 4 L S 3 2 П З У З 0 C 0 0 - 0 F F F 2 7 0 8 А о А 2 А з А 4 А 5 А в А 7 А в B D 1 О 1 1 1 1 J B D 2 B D 3 А 9 C S 1 8 2 0 ё s з А 7 1 1 А 5 7 4 L S 3 2 А с , А 4 д , 8 D 4 8 D 5 B D 5 B D 7 - = - К о н ф и г у р а ц и я в ы в о д о в П П З У 2 7 0 8 в м и к р о п р о ц е с с о р н о й с и с т е м е с 3 ш и н а м и . О б щ и й о б ъ е м П З У р а ­ в е н 4 0 9 6 Х 6 Q ! J T ,
76 Глава З входовых схем ИЛИ типа 74LS32, показанных на рис. 3.12 . Когда сигнал MEMR, подаваемый по шине управления, имеет логическое значение О, тогда на выходе схемы ИЛИ, на вход которой подается сигнал выбора памяти, имеющий логическое значение О, будет сформирован сигнал уровня логического О. Состояние логического О на выходе схемы ИЛИ теперь обеспе­ чивает сигнал выбора кристалла в выбранном ПЗУ. Когда вход­ ной сигнал выбора кристалла ПЗУ имеет значение логического О, выходные сигналы ПЗУ поступают на шину данных. Выхо­ ды других ПЗУ, на /входах которых сигналы вы-бора кристалла имеют логические значения, равные 1 (пассивное состояние), находятся в состоянии высокого сопротивления. Когда выход находится в состоянии высокого сопротивления, он не будет ока­ зывать влияния на какие-либо другие связанные с ним выходы. Используя вывод выбора кристалла на устройстве памяти, выходы устройств памяти можно соединять по принципу дейзи­ цепочки. Например, допустим, что микропроцессорная система выполняет операцию чтения из памяти по адресу 0409 16 . Де­ шифрирование сигналов, поступающих по шине адреса, приве­ дет к выбору ПЗУ. Линия выбора MS 1 - вывод 2 устройства 74LS42 на рис. 3.12 - примет значение логического О. Тем са­ мым будет установлено состояние логического О на выходе 4 схемы 74LS32. Только одна из четырех схем ИЛИ, а именно схема ИЛИ с выводом 4, имеет логическое значение О на этом выводе. Теперь лишь одна эта. схема подготовлена к отпира­ нию. Мы говорим, что <<схема подготовлена к отпираник»>, так как для ее отпирания должен быть подан соответствующий уп­ равляющий сигнал. Для отпирания схемы И.ПИ шина управле­ ния должна сформировать и подать на соответствующую схему ИЛИ сигнал управления чтением нз памяти. Микропроцессор • будет подавать сигнал управления чтением из памяти в соответ­ ствующий момент после истечения времени доступа к данным, находящимся в памяти. В это время на выводе 20 ПЗУ 1 уст- . ро й с т в а 2708 сигнал выбора кристалла будет иметь уровень логического О. Теперь выбранные из ПЗУ данные через внутрен­ ние логические схемы ППЗУ типа 2708 поступят на шину дан­ ных. После выполнения за· соответствующее время чтения дан­ ных из ПЗУ 1 типа 2708 микропроцессор переведет шину управ­ ления в «нерабочее состояние» путем подачи сигнала, имеюще­ го логическое значение 1, на линию управления чтением из па­ мяти. Подобные действия ·выполняются каждый раз, когда мик­ ропроцессор выполняет операцию чтения данных из ПЗУ. Когда мы рассматривали действия, связанные с процессом чтения дан­ ных из ПЗУ, стали очевидными некоторые особенности этого процесса. Рассмотрим их. При этом не будем касаться пробле­ мы получения всех синхронизирующих импульсов, так как мик-
Генераторы тактовых импульсов и интерфейс пам,~ти 77 ропроцессор сам обеспечивает синхронизацию при образовании адреса и формировании сигналов управления. При использова­ нии микропроцессоров с 3 шинами существует сложная пробле­ ма обеспечения корректной работы всех схем дешифраторов. Комбинационные логические схемы дешифрации сигналов, образуемые микропроцессором, должны предотвращать возмож­ ные появления конфликтов на шинах. Не исключено, что потре­ буется подключить микропроцессор к памяти, для которой вре­ мя доступа к даным больше, чем время, выделяемое для этого действия микропроцессором. Такую задачу можно решить. Од­ нако в большинстве случаев приходится использовать ПЗУ, для которых время доступа к данным меньше, чем время, выделяе­ мое для этого микропроцессором. В последнем случае задача проектирования состоит в разработке простого дешифратора с использованием статических комбинационных логических схем. В гл. 6 для каждого рассматриваемого микропроцессора будет изучаться интерфейс устройств памяти, которые требуют для доступа к данным больше времени, чем выделяемое для этого микропроцессором. После б,мее подробного ознакомления с вопросами интер­ фейса ПЗУ в микропроцессорных системах будут рассмотрены некоторые популярные методы решения задачи дешифрации. Тогда, применяя испытанные методы, мы будем в состоянии бы­ стро и уверенно проектировать простые микропроцессорные си­ стемы. Не следует думать, что методы дешифрации, изложен­ ные в этой книге, отражают современный уровень достижений в этой области. Представленные здесь методы будут способст­ вовать пониманию основных принципов. Эти методы пригодны для практического использовавия. Однако, уделив этой задаче больше внимания, с целью сокращения объема оборудования можно разработать другие рациональные методы дешифрации. 3.8 . Интерфейс ОЗУ Для выполнения различных функций в микропроцессорных сис­ темах используется несколько ОЗУ. В процессе выполнения программы ОЗУ используется для временного хранения данных и, когда используются подпрограммы, для временного сохране­ ния адресов возврата. Далее будем рассматривать интерфейс трех типов статических ОЗУ в микропроцессорных системах с 3 шинами. Известны два типа статических ОЗУ: ОЗУ с раздельными входом и выходом и ОЗУ с совмещенными входом и выходом. ОЗУ с раздельными входом и выходом имеют на устройстве два вывода-'--:- один для ввода данных, другой для вывода данных. ОЗУ с общим входом и выходом имеет один вывод для ввода и вывода данных. Сначала рассмотрим, как микропроцессор под-
78 Глава З ключается к ОЗУ с раздельными входом и выходом, затем об­ судим вопрос подключения микропроцессора к ОЗУ с общим входом и выходом. Интерфейс ОЗУ в микропроцессорных системах с 3 шинами опишем следующим образом. Сначала вспомним, что микро­ процессор должен иметь возможность записывать данные в па­ мять и выводить данные из памяти. Микропроцессор выдает данные, записываемые в память, на шину данных. Данные, под­ лежащие выводу из памяти, выводятся на шину данных с по­ мощью ОЗУ. Это означает, что шина данных должна иметь электрический тракт как для ввода данных в ОЗУ, так и для вывода данных из ОЗУ. Указанные связи показаны на рис. 3.13. В течение цикJiа записи в память входы ОЗУ связываются с шиной данных, а в течение цикла чтения из памяти выходы ОЗУ связываются с шиной данных. Заметим, что при такой схе­ ме подключения ОЗУ данные могут передаваться по не предназ­ наченному для них тракту, если он окажется открытым, и тог­ да возможна конфликтная ситуация на шине данных. Такая не­ приятная ситуация может произойти, потому что выходы ОЗУ соединены непосредственно с шиной данных и могут находить­ ся в активном состоянии, в то время как микропроцессор через соответствующие входы ОЗУ попытается выполнить запись дан­ ных в память. Это показано в общих чертах на пояснительном рис. 3.14 . При использовании памяти с раздельными входом и выхо­ дом для предотвращения возможного конфликта на шине- дан­ ных может быть использован следующий способ. (Заметим, од­ нако, что рассматриваемый ниже способ предотвращения кон­ фликта нет необходимости использовать, когда в качестве ОЗУ с раздельными входом и выходом выбраны устройства, имею­ щие внутренние схемы для реализации интерфейса ОЗУ с раз­ дельными входом и выходом в микропроцессорных системах с 3 шинами.) Если понять принципы подключения ОЗУ с раз­ дельными входом и выходом типа 2102 к микропроцессору в системе с 3 шинами, то подключение других аналогичных уст­ ройств памяти не вызовет затруднений. При использовании такого .устройства памяти, как ОЗУ 2102 на время записи дан­ ных в память, необходимо отключить выходы ОЗУ от шины дан­ ных. Для этого воспользуемся устройством, которое называют буфером с тремя состояниями. Его входы соединяются с 13Ыхо­ дами памяти, а выходы - с шиной данных. Схема включения буфера показана на рис. 3.15. . Дальнейшее обсуждение будем вести на примере буфера с тремя состояниями типа 74LS367, схема включения которого показана на рис. 3.16. Это не единственное устройство, способ­ ное выполнить требуемые функции. Оно выбрано для конкрет­ ности изложения. Буфер с тремя состояниями блокируется (пе-
Рис. 3.13. Схема связи шины дан­ ных с устройством памяти, имеющим раздельные вход и выход. Рис. 3.14. Схема связи устройства памяти с шиной данных, при которой возможен конфликт на шине дан­ ных. Кружком на схеме отмечена точка возникновения конфликта на шине данных. Рис. 3.15. Включение буфера с тре• мя состояниями на выходе ОЗУ. Когда шина данных управляется микропроцессором (запись данных в ОЗУ), выход ОЗУ отключается от шины данных. Это исключает воз­ можность возникновения конфликта на шине данных. Шина . данных Память с раздельными входом и выходом I - ! Данные в память '- Данные из памяти Память с раздельными входом и выходом \ I Вв~~:~~::о \ ---, 1 1 1 1 1 __________ _J \ Выходные данные Возможен конфликт на шине Память с раздельными входом и выходом .~;:,. Сп Вывод данных ' \ Буфер с тремя устойчивыми ~ состояниями Подача уровня логического О разрешает вывод данных из памяти иа шину данных
80 Глава З реходит в состояние высокого сопротивления), когда выводы 1 и 15 находятся в состоянии логической 1. К:огда микропроцес­ сор записывает данные в ОЗУ типа 2102, на выводы 1 и 15 бу- Шина данных микропроцессорной системы BD1 BD2 BD, BD, WE= о/ (активный уровень) Память 2102 Wt WE 74LS367 г----, 12 3 1BD0 i5 1BD1 1 1 1 1 7 1BD2 gIBD3 : 1 1 1 11 1804 13IBD5 1 1 1 1 5I8D7 1 15 ,,, Lg_j С шины управлс- : ния микропроuес - ЧТЕНИЕ =0 сорной системы ЗАПИСЬ =1 Рис. 3.16. Фрагмент схемы, обеспечивающий отключение выходов ОЗУ ти­ па 2102 с помощью схем с тремя устойчивыми состояниями типа 74LS367. фера с тремя состояниями подается сигнал уровня, соответст­ вующего логическому значению 1. Во время выполнения мик­ ропроцессором любой операции записи данных в память 2102 внешние аппаратные средства должны обеспечить на указан­ ных выводах состояние логической 1. В течение операции запи­ си микропроцессор будет выводить данные на системную шину данных. Перед этим микропроцессор через шину управления
\ Генераторы тактовых импульсов и интерфейс памяти 81 подает сигнал разрешения записи в память. Выход устройства 2102 на время выполнения операции запи.си с помощью буфера с тремя состояниями отключается от шины данных. Это необ- , ходимо для устранения возможности конфликта на шине дан­ ных. Отметим, что некоторые полупроводниковые устройства памяти с раздельными входом и выходом сами имеют буфер­ ные схемы, предназначенные для отключения их выходов от шины данных в течение операции записи в память. При исполь­ зовании устройств памяти такого типа достаточно соединить входной и выходной вывод устройства памяти и затем подклю­ чить их к шине данных. 3.9 . Чтение данных из ОЗУ При выполнении операции чтения данных из ОЗУ состояния ли­ ний шины данных определяются сигналами на выходах памяти. Линии данных микропроцессора должны находиться в режиме ввода данных. Вход ОЗУ не будет воздействовать на состояние Шина управления Линия импульса MEMR К выходам 1, 15 схемы 74LS367 Вывод разрешен 6 состоянии логического Q Линия выбора памяти Рис. 3.17. Схема формирования сигнала, подаваемого на выводы 1 и 15 устройства 74LS367 и обеспечивающего отпирание выходов блоков ОЗУ 2102. шины данных. Это объясняется тем, что сигналы на вход ОЗУ поступают от другого источника. Принципы функционирования ОЗУ в этом режиме почти совпадают с рассмотренными нами выше принципами действия ПЗУ. Для формирования сигнала выбора кристалла, подаваемого на соответствующий вывод ОЗУ, линия выбора памяти и линия шины управления подключаются в соответствии со схемой, по­ казанной на рис. 3.17. В течение времени чтение данных из ОЗУ на линии разрешения записи в ОЗУ 2102 (вывод 3) дол­ жен действовать сигнал с логическим значением 1.. Когда мо­ дуль ОЗУ 2102 выбран в соответствии с кодом адреса, установ­ ленным на шине адреса, а шина управления активизирует ли­ нию записи в память, буфер с тремя состояниями открывает­ ся сигналом, подаваемым на выводы 1 и 15. Когда буфер с тремя состояниями открыт, данные из ОЗУ 2102 поступают на шину данных. На стадии чтения данных выход блока 2102 свя­ зан с соответствующей л1:1нией шины данных. После того как микропроцессор выведет данные из ОЗУ 2102, линия чтения из 6-814
82 Глава 3 / / памяти в системной ши·не управления переводится в нерабочее состояние, а буфер с тремя состояниями 74LS367 переводится в состояние высокого сопротивления. Таким образом будет осу­ ществляться передача данных с шины данных в ОЗУ. Как ви­ дим, операция чтения данных из ОЗУ не отличается от опера­ ции чтения данных из системного ПЗУ. 3.1 О. Запис~. данных в ОЗУ Теперь рассмотрим порядок выполнения операции записи дан­ ных в память. Чтобы записать данные в устройство памяти ти­ па 2102, необходимо выполнить следующие действия: 1. Подать на адресные линии адрес памят:ы:. 2. Подать· данные на линии ввода данных ОЗУ. 3. На линию разрешения записи в память подать сигнал, устанавливающий на линии низкий уровень напряжения. Итак, адрес будет подан на шину адреса микропроцессорной системы; .·шния выбора памяти будет активизирована после дешифрирования_ кода адреса на адресной шине; микропроцес­ сор будет выдавать информацию на шину данных. Данные го­ товы для ввода в память. Однако ОЗУ на этой стадии не готово к выполнению опера­ ции, так как на линию выбора кристалла не подан соответству­ ющий сигнал. Чтобы записать данные в память, необходимо ее открыть. Но отпирание памяти фактически заключается в от­ пирании выходов памяти. Это обусловливает конфликт между данными на выходе микропроцессора, т. е. данными, записывае­ мыми в ОЗУ, и данными, выводимыми из ОЗУ. Чтобы предот­ вратить этот возможный конфликт, между выходными линиями памяти и шиной данных включается буфер с тремя состояниями типа 74LS367. Теперь, когда подан сигнал разрешения записи и память открыта, выход ее для избежания конфликта с пере­ даваемыми из микропроцессора в ОЗУ данными блокируется посредством устройства 74LS367. Соответствующая последова­ тельность действий показана на временной диаграмме (рис. 3.15). Ясно, что открыть ОЗУ необходимо перед выполнением операции чтения или записи данных. Однако линия разреше­ ния записи в память находится в рабочем состоянии только тогда, когда выполняется запись данных в ОЗУ. Логическая схема для формирования необходимых управляющих сигналов приведена на рис. 3.19. Мы рассмотрели, как для одного устройства памяти в мик­ ропроцессорных системах с 3 шинами выполняются операция чтения данных из памяти и операция записи данных в память. Но шина данных микропроцессорной системы имеет 8 разря-. дов. Это означает, что одновременно должно быть прочитано или записано 8 разрядов. Так как применяемые нами блоки па-
Генератор1о1 тактовых импульсов и интерфейс памяти _/ Адресная шина А 0 - А15 Сигнал выбора памяти активен Ввод данных в память Схема 74LS367 блокирована в память активен l_J;мпульсзаписи Высокий уровень импут,са чтения из памяти 83 'нс. 3.18. Временная диаграмма сигналов, испольэуемЬ1х системой во время выполнения операции записи в память. Импульс мыборJ 11Jмяп1 MEMR На вход выбора кристалла (вывод , -- - - 1З) устройства памяти 2102 На выводы 1,15 ._ ___ __ _ _. . схем 74LS367 >ис. 3.19. Использование линии выбора памяти и шины управления для по­ лучения сигналов управления ОЗУ. lfяти имеют одну входную линию и одну выходную линию, не­ )бходимо одновременно читать из восьми отдельных блоков ::>ЗУ и также одновременно записывать данные в восемь бло­ ков ОЗУ. Это достигается посредством синхронного выполнения зсех функций управления ОЗУ, т. е. подачи адреса, формирова­ ~ия сигналов разрешения записи и выбора кристалла. Все вы­ воды управления восьми отдельных модулей ОЗУ соединены в виде дейзи-цепочки. Линии ввода данных соединяются с соот­ ветствующими линиями шины данных. Выходы ОЗУ подклю­ чаются к буферу с тремя состояниями типа 74LS367. Выход бу­ фера 74LS367 подключается к входу, предназначенному для
И м п у л ь с з а п 1 1 с и в п а м я т ь ( M E M W ) Л 1 1 н н н ш и н ы а д р е с а А о - А • 3 4 R / \ ~ 5 R W 6 7 2 1 1 с Е 1 6 1 6 З l - - ~ 3 R / W й 1 3 1 5 1 5 3 0 3 1 3 С Е 1 3 1 3 D 0 - D 7 Ш и н а д а н н ы х И м п у л ь с : « В ы б о р M E M R 7 4 L S 3 2 9 7 4 0 8 И , 1 п у л ь с о т п и р а н и я п а м я т и д , 1 я ч т е н и я и ш 1 з а п и с и И м п у л ь с о т п н р а н и > I 7 4 L S 3 6 7 ( т о л ь к о д л я ч т е н и я н з п а м я т и ) 1 1 1 3 3 ~ 3 R W С Е 1 3 1 , 1 5 : _ _ J 1 3 1 1 , 1 5 L _ • , 3 Ш и н а д а н н ы х R / W 1 3 Р и с . 3 . 2 0 . С х е м а о р г а н и з а ц и и п а м я т и о б ъ е м о м 1 0 2 4 Х 8 б и т , с о с т а в л е н н о й и з в о с ь м и б л о к о в п а м я т и 2 1 0 2 .
Генераторы тактовых импульсов и интерфейс памяти 85 ввода данных, того же самого модуля ОЗУ. Таким образом ор­ ганизуется память в виде статического ОЗУ 1 КХ8. Функцио­ нальная схема такого ОЗУ показана на рис. 3.20. Э.11. Интерфейс ОЗУ с общим входом и выходом Интерфейс ОЗУ, имеющего общий вход и выход, подобен рас­ смотренному выше интерфейсу ОЗУ с разделенными входом и выходом. Однако ОЗУ с общим входом и выходом имеет один вывод, используемый и для ввода данных, и для вывода дан­ ных. Это не приводит к путанице внутри блока памяти, так как очевидно, что в один и тот же момент времени можно либо чи­ тать данные из памяти, либо вводить данные в память. Устрой­ ство памяти никогда не может выполнять эти две функции од­ новременно. Дальнейшее рассмотрение будем вести на примере статического ОЗУ 1 КХ4 с общим входом и выходом типа 2114. При выполнении записи данных в ОЗУ 2114 общий вывод ОЗУ действует как вход. В течение времени записи выходы ОЗУ 2114 блокируются посредством внутренних схем ОЗУ. На • рис. 3.21 представлены некоторые технические сведения об ОЗУ 2114. Прежде чем микропроцессор начнет подавать данные на общие выводы памяти, она должна быть подготовлена к работе, т. е. должен быть выбран соответствующий блок памяти. Что­ бы избежать конфликта на внутренних выходных линиях памя­ ти при вводе данных в ОЗУ, когда линия разрешения записи имеет уровень логического О, внутренние выводы ОЗУ блокиру­ ются с помощью внутренних схем. Указанные внутренние выхо­ ды переводятся при этом в состояние высокого сопротивления, что предотвращает возникновение какого-либо конфликта на шине данных. Это означает, что во время выполнения операции записи данных. в устройство памяти 2114 в состоянии логичес­ кого О должна находиться как линия разрешения записи, так и линия выбора кристалла. Это показз.но на временнбй диаг- рамме, изображенной на рис. 3.22. - При считывании данных из ОЗУ 2114 линия выбора кристал­ ла должна иметь состояние логического О, между тем как ли­ ния разрешения записи поддерживается в состоянии логичес­ кой 1. Это достигается с помощью внешних схем. Когда линия выбора кристалла переходит в состояние логического О, дан­ ные из ОЗУ подаются на общий вход-выход. (В течение вре­ мени выполнения операции чтения из памяти общие выводы устройства 2114 играtот роль выходов.) Соответствующая схе- . ма, предназначенная для формирования требуемых управляю-· щих сигналов, представлена на рис. 3.23. Схема организации памяти, построенной из модулей ОЗУ типа 2114 для микропро­ цессорной системы с 3 шинами, представлена на рис. 3.24. Как
Конфигурация в\.1водов Ав Vcc А5 А7 А4 Ав А3 Ag Ао 110, А1 1/02 А2 1103 cs 1/04 GND Обозначение на схемах Ао А1 110, А2 Аз 1/02 А4 А5 1/Оз Ав А7 Ав 1/04 Ag WE cs Назначение вы11одов Ао Ag Входь, адреса Vcc Питание WE Разрешение записи GND Земля cs Выбор кристалла 1/0 1-1/0 4 Ввод-вывод данных А5 (i) Ав-=------' A7@-':c-----J АВ -=®'------< Схема устройства ~-,_ 1 Массив памяти (64 ряда, 64 столбца) @ ~ Vcc ® ----GNO О Номера вь1водов Рис. 3.21. Структурная схема и назначение выводов модуля статического ОЗУ 1024Х4 типа 2114. (С разрешения фирмы Iпtel.) Рис. 3.22 . Временная диаграмма сигнала выбора кристалла и сиг­ нала разрешения записи. Чтобы избежать конфликта на шине дан­ ных при использовании ОЗУ с об­ щим входом и выходом, сиmал с логическим значением О должен одновременно подаваться на ли­ нию выбора кристалла и на линию разрешения записи.
Генераторы тактовых импульсов и интерфейс; памяти 87 видно, для реализации статической памяти 1 КХ8 требуются только два модуля типа 2114. Вспомним, что при использовании модулей статического ОЗУ типа 2102 для реализации ОЗУ объ- МЕМW Запись в ~з----------память L----if- -- -1 _ _ ___ ,,- (вывод IО Линия 4 выбора ___ .__ 5 "" памяти 7408 MEMR устройства 2114) 1, .: 3---- На вход «Выбор кристалла» (вывод 8 устройства 2114) Рис. 3.23. Схема формирования сигналов управления памятью с использова­ нием шины управления и линии выбора памяти. 2114 2114 5 Ао Ао 5 6 7 4 з 2 1 17 74LS32 16 11 1 8 10 cs WE Выбор з памяти Шина данных D11 - D7 Рис. 3.24. Схема ОЗУ 1024Х8 бит, содержащая два блока ОЗУ 2114. емом 1 КХ8 потребовалось 8 блоков памяти. Этим объясняется большая популярность модуля 2114 в небольших микропроцес­ сорных системах. 3.12 . Микроnр.оцессор как системный контроnnер Перечислим основные аппаратные средства обычных микро­ процессорных систем. К ним относятся: генератор тактовых им­ пульсов, ПЗУ и ОЗУ, шина адреса, шина управления, шина данных. Конечно, для управления системой необходимо доба -
88 Глава 3 вить некоторые устройства ввода и вывода, которые лишь до• полнят описанную нами основную систему. В гл. 4 подробно рассматриваются различные типы устройств ввода-вывода, слу­ жащих неотъемлемой частью типичных микропроцессорных систем. Теперь обсудим некоторые условия работы аппаратных средств, являющиеся необходимыми для корректной работы микропроцессора. Будем полагать, что в нормальном цикле ра­ боты микропроцессорной системы: 1) не возникают запросы на прерывания, 2) не используется режим прямого доступа к памяти, 3) не допускаются паузы и ожидания. Эти положения не внесут коренных изменений, _поскольку для многих микро­ процессорных систем работа в таком режиме является вполне обычной. Когда микропроцессор работает в таком режиме, он является системным контроллером. Причем он не прекратит вы­ полнение программы до тех пор, пока питание не будет выклю­ чено. В следующих разделах этой главы рассмотрим, каким обра­ зом должен быть подключен каждый и:сз четырех микропроцес­ соров, чтобы он работал в указанном режиме. 3.1 Э. Подготовка микропроцессора 8080 дnя работы в режиме системного контропnера Для подготовки микропроцессора 8080 к работе в режиме сиь­ темного контроллера необходимо вывод 13 (вход сигнала HOLD) соединить с корпусом, т. е. обеспечить на нем уровень напряжения, соответствующий логическому О. Это· исключит возможность использования в системе канала прямого доступа к памяти. Вход INT (вывод 14) также должен быть соединен с корпусом. Тем самым микропроцессор 8080 будет защищен от прерываний. Затем вход RDYIN генератора тактовых импуль­ сов необходимо соединить с источником питания так, чтобы на этом входе был уровень, соответствующий логическому значе­ нию 1. Это дает возможность избежать наступления пауз и ожиданий во время режима нормального функционирования микропроцессора. В итоге описанные действия приведут к то­ му, что микропроцессор будет работать с соблюдением сдеJiан­ ных выше оговорок. Этого удалось достигнуть, соединив вы- - воды, на которые обычно подаются сигналы разрешения рас­ смотренных функций, к выводам, на которых всегда поддержи­ ваются уровни напряжений, обеспечивающие блокировку соот­ ветствующих входов. 3.14 . Установка начального состояния микропроцессора 8080 После включения питания центральный процессор должен на­ чинать выполнение программы каждый раз с команды, распо­ ложенной в. ячейке с определенным адресом, а не в какой-либо
Генераторы тактовых импульсов и интерфеRс памяти 89 произвольной ячейке. Для этого нужно выполнить начальную установку микропроцессора. Такая начальн.ая установка осу­ ществляется при первом включении микропроцессора, а также в любое время, когда потребуется вернуть микропроцессор к началу выполнения системной программы, всегда с одной и той же определенной ячейки памяти. Чтобы выполнить функции начальной установки микропроцессора 8080, к входу RESIN (вывод 2) генератора тактовых импульсов 8224 подключаются Рис. 3.25. Схема отключения пита­ ния микропроцессора 8080, ис­ пользующего генератор тактовых 1N914 импульсов 8224. Ключ +5 R,= 8224 10 кОм t-----+-- -. d2 RESIN q элементы, соединенные в соответствии со схемой, показанной на рис. 3.25. После запуска микропроцессор 8080 начинает вы­ полнять программу с команды, имеющей адрес 0000. Тем са­ мым всегда можно принудительно нач!lть выполнение програм­ мы с некоторой фиксированной начальной команды. Из рис. 3.25 видно, что RС-цепочка обеспечит подачу сигна­ ла «сброса». Когда подается напряжение V се, конденсатор на­ ходится в разряженном состоянии. После приложения напря­ жения конденсатор будет заряжаться до напряжения Vcc через резистор R 1. Когда напряжеf{Ие достигнет некоторого опреде­ ленного значения, выполнение команды «сброс» завершится и система начнет выполнение программы с адреса 0000. Ключ, показанный на рис. 3.25, позволяет выполнять «сброс» системы в любое время. Нажатие ключа приводит к разрядке конденсатора, и. микропроцессор будет находиться в исходном состоянии до тех пор, пока напряжение на конденсаторе не достигнет требуемого значения. Устройство 8224- генератор тактовых импульсов - имеет на входе триггер Шмитта, который управляет напряжением между конденсатором и резистором и в то же самое время дает маленькую нагрузку RС-цепочке. На рис. 3.26 изображена полная микропроцессорная система 8080 -с обозначениями всех выводов и указанием необходимых межсоединений, которая позволит микропроцессору действо­ вать как системному контроллеру в соответствии с описанны­ ми выше предположениями.
Ао 2 8080 4 5 А, А2 6 7 Аз 10 9 11 9.ОМГц А4 As +5 4.7 кОм .. :,: Ф1 Ав :,;: 15 4 3 / 3 10 23 Ф2 А7 6 Ав "' ROYIN 84 REAOY "' 10 :,: 10кOм 1 RESET А9 u 19 12 .,, 5 А,о с. 2 SYNC "t Клю 14 13 < I1мкФ 7 1 А,2 А,з 4 5 13 6 7 14 HOLD А,4 10 9 INT A,s ,, 8228 ~Ро Оо 10 15 ·13 9 17 16 во, о, 8 12 11 ВО2 02 7 10 9 ВDз Dз3 6 5 во. 04 4 19 18 BD5 "' Os :,: 5 21 20 806 " Ов 3 6 8 7 ВО7. о, 18 WR 17 3 DBIN 4 "' 21 " HLDA BMEMR l :,: 2 .,, 24 "' BMEMW t ~ 26 с. BJOR "' 25 BJOW ;,. 27 "':,: 1 " sтsтв 22 3 Строб состояния из генератора 7 тактовых импульсов Рис. 3.26. Схема использования микропроцессора 8080 в качестве контролле­ ра системы.
Генераторы тактовых импульсов и интерфейс памяти 91 3.15. Педrотовкв микропроцессора 8085 дnя рвботы в режиме системноrо контроnnера Рассмотрим теперь, каким образом микропроцессор 8085 под­ .готавливается к работе в режиме системного контроллера. Для этого соединим вход HOLD (вывод 39) с корпусом. Это защи­ тит память от прямого доступа. Потом подадим на вход READY (вывод 35) напряжение уровня, соответствующего ло­ гической 1. Это предотвратит паузы во время нормального вы­ полнения программы. Наконец, соединим выводы TRAP (вы­ вод 6), RST 7.5 (вывод 7), RST 6.5 (вывод 8), RST 5.5 (вы­ вод 9) и INTR (вывод 1О) с корпусом. Это исключит возмож­ ность прерывания микропроцессора 8085 во время нормального выполнения программы. Названные режимы работы микропро­ цессора 8055 будут рассматриваться ниже при обсуждении спо­ собов организации прерываний для различных микропроцессо­ ров. Для обеспечения начальной установки микропроцессора 8085 к входу «сброс» (вывод 36) подключаются элементы, образую­ щие такую же схему, как и схема, подключаемая к входу -«сброс» генератора тактовых импульсов 8224. Включенный та­ ким способом микропроцессор будет работать как контроллер системы, в котором не допус·кается режим прямого доступа в память, запрещаются прерывания и состояния ожидания. Соот­ ветствующая полная схема системы 8085, организованной по рассмотренному способу, представлена на рис. 3.27. 3.16. Подrотовка микропроцессора Z80 дnя работы в режиме системноrо контроnn_ерв Рассмотрим микропроцессор Z80 с точки зрения использования его как системного ,контроллера. Чтобы исключить возмож­ ность прямого доступа в память, соединим вывод 25, на который подается сигнал BUSRQ, с источником питания и тем самым обеспечим на этом входе уровень напряжения, соответствую­ щий логической 1. Также обеспечим уровень, соответствующий логической 1, на выводе 24, который предназначен для приема входного сигнала WAIТ. Тем самым микропроцессор будет за­ щищен от пауз во время нормального выполнения программы. Наконец, на выводы 16 и 17, обозначенные через INT и NMI соответственно, подадим уровень логической 1. Это предотвра­ тит возможность наступления прерываний при работе микро­ процессора. 3.17 . Начаnьная установка микропроцессора Z80 Для установки начального состояния микропроцессора Z80 мо­ жет быть использована схема, представленная на рис. 3.28. Эта схема действует аналогично схеме начальной установки,
4,7 кОм 2,оМГц +5 10кOм SPST / i ~мкФ Схема откл/О'lения питания +5 '-------135 Тгар RST 7.5 б RST 6.5 7 - R-'S'-'T-5"-.5'---! 8 INTR g HOLD 10 39 8085 /0/М WR RD 343132 7404 7404 A,s 28 д,. 27 А,з 26 А,2 25 24 Att 23 А,о Ag 22 Ав 21 ALE 74LS04 "'"1...J:: 30 1 ~ \п_ 2 AD, 1- " 19:__________,, __= - 1 ADs t-1'-"8'----------<0--+-'-' -, AD51--" 17__ __ ____ _. , . _. .........,_ _ ~ AD• ._1~6'-------е-+-+-+-'"'--' АDз f-. : . .:15'- -------<>-1-- -1---1- -l-. . :: : . .i AD2 f-1'- 4:__ _ __,>--'1--1---1---1......;---'--4 AD-, t- ' -' 13:__-< ,- ..-jf---,i --1- --1-- -1- --I-- --I ADo ,_1~2'--'>->- -'f---,'-'- -- -< -- --<--'-- -"'- -1 2 6 4 10 Запрос ввода­ вывода =1 Запрос памяти = 1 С> 8D7 8D6 _ BD5 8D4 8D3 В02 во, В00 "' " " :3 передачи данных о=- 7400 1 =->+ - "':,: :,: :3 Рис. 3.27. Схема использования микропроцессора 8085 в качестве контролле­ ра системы.
Клю.ч +5 10 кОм Триггер ч·-· На !)ХОД «Сброс» микропроцессора ZBO Рис. 3.28. Схема отключения питания микропроцессора ZBO. 1МГц е3 74LS36T 30 Вдо 31 ВА1 2 32 ВА2 о,, мк 33 ВА3 7404 34 ВА4 •35 ВА5 +5 о! 4,7 хОм := 36 As ВА5 ,§ 37 А7 ВА7 38 А8 ВАа "' А "' 17 39 ВА9 " 40 А,о ВАю u А11 .,, 1 ВА11 ~ WATT 24 •1 ? А1 ВА12 +5 3 А1 ВА13 ,,. 4 ВА14 5 А1 BA1s ·• RESET 26 i ~ 14 Do BDo} "'; D 1.S BD1 12 D2 BD2 D BD3 =t вD4 Z60 7D5 BD4 l,,j 9D6 В05 $ 10 D7 :g~ s 1~ Рис. 3.29. Схема использования микропроцессора Z80 в качестве контрол- лера системы. •
94 Глава З предназначенной для микропроцессоров 8080 и 8085. Как и в случае указанных микропроцессоров,. Z80 после установки в начальное состояние начинает выполнять программу с коман­ ды, находящейся по адресу 0000. На рис. 3.29 представлена полная схема микропроцессорной системы 280, спроектирован­ ной для работы в качестве системного контроллера. 3.18. Подrотовка м-нкропроцессора 6800 дпя работы ц режиме снстемноrо кoн:rponnepa Теперь сосредоточим внимание на некоторых особенностях схе­ мы включения микропроцессора 6800 в качестве системного контроллера .. На вход HALТ (вывод 2) подадим уровень, соот­ ветствующий логическому значению 1. Это предотвратит воз­ можность выполнения операции прямого доступа в память. Обеспечим также уровень логической 1 на выводах 4 и 6, на которые подаются входные сигналы IRQ и NMI. Благодаря это­ му в микропроцессоре 6800 не будут возникать прерывания. В микропроцессоре 6800 не могут возникать паузы во время нормального выполнения программы. Это достигается благода­ ря «растягиванию» сигналов генератора тактовых импульсов. Более подробно рассмотрим этот вопрос в гл. 6. Подадим также вторую фазу тактовых импульсов на вход DBE (сигнал отпирания шины данных). Когда в последователь­ ности «фаза 2» появляется уровень логической 1, шина данных обеспечивает передачу данных в микропроцессорной системе. 3.19. Начаn~.ная установка мнкропроцессора 6800 Схема начальной установки микропроцессора 280, рассмотрен­ ная нами выше, может использоваться и для начальной уста­ новки микропроцессора 6800. В этом cJryчae она выглядит, как показано на рис. 3.30 . Напомним, что после выполнения началь­ ной установки микропроцессор 6800 не начинает выполнение программы с ячейки, имеющей адрес 0000. После выполнения начальной установки микропроцессор по­ дает на адресную шину адреса FFFE и FFFF. Содержи­ мое ячейки с адресом FFFE представляет собой млад­ шие восемь разрядов формируемого адреса. По адре­ су FFF'F находятся восемь старших разрядов формируемого адреса, которые рассматриваются микропроцессором как неко­ торые данные. Полный 16-разрядный адрес получается из с.1ов, содержащихся в указанных ячейках. Таким образом, ячейки памяти FFFE и FFFF содержат фактический адрес, с которого начинается выполнение программы посл~ начальной установки микропроцессора 6800.
101(0М Ключ +5 На вход RESET (вывод 40микро­ процессора 6800) Рис. 3.30. Схема отключения питания микропроцессора 6800 . ... .. ф2(ТТL) +5 ВА10 ВА11 ВА12 37 3 NMI 6 IRO Усе 4 RESET 40 тsс 39 -:- 6800 VMA 5 9 10 11 12 13 14 15 16 17 16 19 20 22 23 24 25 33 32 31 30 29 28 27 26 А· А1 А2 АЗ д4 А5 ВАо вд, ВА2 _8А3 Вд4 ВА5 ·1 "':,: = А6 А7 Ag А9 А,а А11 Вдв s Вд7 .. Вдg "':,: Вд9 u вд, jВд11 •1 А12 А13 А14 А1 DQ } ~ D1 о,! D2 1 :,: D3 2~ D4 3 i,i 4"' 5 5 !;! Ов D7 6s 7 пение чи х " = i'J ""' "'§' ;,- . "' !\ Рис. 3.31. Схема использования микропроцессора 6800 в качестве контрол­ лера системы.
96 Глава 3 Эта особенность микропроцессора 6800 обыкновенно ис­ пользуется для адресации в область старших адресов имеюще­ г~ся в распоряжении адресного пространства ПЗУ (64К). Теперь ясно, что в ПЗУ должен находиться адрес, который должен при запуске микропроцессора разместиться на шине. данных. Рас­ смотрим пример. Предположим, что в ячейке памяти с адресом FFFE содержится код 63, а в ячейке памяти с адресом FFFF- кoд 7F. Таким образом, когда микропроцессор устанавливается в начальное состояние, программа восстановления системы на­ чнет свое выполнение с адреса 7F63, тогда как другие микро­ процессоры после «сброса» начинают работать по программе, выбирая первую команду из ячейки с адресом 0000. Полная структурная схема микропроцессора 6800, исполь­ зуемого в качестве с'истемного контро.11лера, представлена на рис. 3.31. 3.20. Выводы В этой главе были рассмотрены некоторые детали реализации микропроцессорных систем с 3 шинами, построенных на микро­ процессорах 6800, 8080, 8085 и 280. Были показаны способы подключения ПЗУ и ОЗУ к микропроцессорам указанных ти­ пов. Наконец, были представлены полные системные проекты применения каждого из четырех типов микропроцессоров в ка­ честве контроллеров микропроцессорных систем. В оставшейся части книги будут рассмотрены· некоторые другие особенности микропроцессорных систем и вопросы усо­ вершенствования изученных нами типовых вариантов построения систем. Однако первый шаг уже сделан. Важно понимать прин­ цип по~троения типовых вариантов микропроцессорных систем, прежде чем приниматься за изучение более сложных дополни­ тельных схем и возможностей. Рассмотренное по существу яв­ ляется «скелетом» системы. Однако не следует впадать в за­ блуждение и считать такую систему бесполезной. В действи­ тельности справедливо обратное. Дело в том, что системы, построенные на основе таких ске­ летов, используются повсеместно. Иногда забывают, что для того чтобы оправдать применение микропроцессора в проекте системы, нет необходимости использовать все его возможности. Также иногда забывают, что используемые системы не нужда­ ются в приукрашивании. В настоящее время микропроцессор является очень дешевым устройством и в большинстве случаев делается по совершенно простому схемному проекту. Нет необ­ ходимости быть высококвалифицированным проектировщиком систем или инженером-проектировщиком, чтобы проектировать и эксплуатировать микропроцессорные системы:- Впервые при­ ступая к проектированию микропроцессорной системы, испыты-
Генераторы такtовь~)( импу111,сов и интерфейс памяти 97 ваешь естественную тревогу. В·, следующих главах будут проде- • монстрированы методы дальнейшего развития исходной тРI­ повой микропроцессорной системы. Эти методы могут быть предложены лицам, которые работаю-~: в - режиме экономии и которые не имеют тысяч долларов для расхода на разработку оборудования. Рассматриваемые нами м~тоды будут. инт~ресны для лиц, которые заняты- «кустарной» разработкой проекта мик­ ропроцессорной системы, и для спецйалистов, работающих в промышленности. В дальнейшем мы предполагаем обсудить фазу проекти­ рования ·небольшой системы и фактическое прохождение всех этапов nроектирования систем микропроцессорного управлеt~ия. Конечно, чтобы успешно решить поставленну..ю задачу,· необхо­ димо иметь· ясное представление о том, как микропроцессор связывается с другим оборудовани.ем системы. Эта глава со­ -держала начальные сведения; каждая следующая глава, по ме­ ре того как наши знания и понимание будут расти, будет рас­ крывать дополнительные подробности. . . Усвоив материал, содержащийся в этой главе, и рассмотрев . . 1 , детали, относящиеся к ча.стным системам, представленным в • следующей главе, мы добьемся твердого понимания основ. Таким образом, в указанных главах будет представлена инфор­ мация, которой ·необходимо овладеть, прежде чем изучать во­ просы прак;гического использования микропроцессоров, действу­ ющих в реальной обстановке. На протяжении этой книги для • пояснения принципов организации микропроцессорных .систем используются схемы устройств, наряду с которыми часто при­ водятся и их полные структурные схемы. Мы нигде не пола­ гаемся на воображение читателей. ·_ · 7-814
Глава 4 ИНТЕРФЕЙС УСWОЙСТЗ ВВОДА-ВЫВОДА В МИl{РОПРОЦЕССQРНЫХ СИСТЕМАХ С З ШИНАМИ . . В гл. 3 рассматривались аопросы реализации аппаратного обес­ печения микропроцессорных систем с 3 шинами, базирующихся на микропроцессорах 8080, 8085, 280 и 6800. В частности, там были представлены обычные микропроцессорные системы с ПЗУ и ОЗУ. Однако мы не касались вопросов применения в системе устройств ввода-вывода. . В данной главе в рамках систем с 3 шинами рассматривает"/ 1 ся Иf:!терфейс некоторых типичных устройств ввода-вывода. При изучении функционирования каждого из четырех микро­ процессоров в качестве контроллеров системы будут пред- 1 ставлены существующие аппаратные и· программные • средства, соответствующие рассматриваемым типам микропр.о: цессоров. И~ устройств ввода-вывода остановимся на двух сл-е­ дующих: 1) клавишный пульт; 2) цифровой индикатор. Эти уст- 1 ройства ввода-вывода выбраны потому, что им присущ~ наиба.. / лее типичные фуцкции и каждый, кто имеет дело с микропро- цессорами, неизбежно воспользуется ими. • .. Другим существенным основанием для выбора этих устройств , ввода-вывода является то, что некоторые читатели, возможно, за.хотят использовать излагаемые здесь идеи при конструирова­ нии небольших микропроцессорных систем. В частности, при конструировании микропроцессорной системы для конкретного применения клавишный пульт и цифровой индикатор могут быть включены в состав системы. В этом случае, даже если это· первая попытка проектирования и пр~менения микропроцессо- • ра в каЧ'естве контроллера, цифровой индикатор и простое на­ жатие на клавиши обеспечат вам взаимодействие с системой. Такое взаимодействие позволит выявить важные принципы, которые окажутся полезными в ряде других применений миJ<р~' процессорных систем. Материалы данной главы будем излагатt- в следующей последовательности: .- 1. Обсуждение основных принципов построения клавишного пульта. • • , _ 2. Вопросы реализации 25,клавишноrо пульта и соответст1оr•· ющего аппаратного обеспечения. (При необ1юдимости клаваа• тура может быть расширена.} •
Интерфейс 'устройств ввода-вывода 99 . / . 3 . . Обсуждение основных принципов построения цифрового индикатора. . - _ • 4. Вопросы реализации 6-разрядноrо цифрового индикатора • • и соответствующего аппаратного обеспечения. (Число раз-рядов индикатора может быть увеличено.) . 5. Покажем, как клавишный пульт и цифровой индикатор подключаются к микропроцессорной системе с трехшинной ар­ хитек-rурой. 6. Рассмотрим программу, обеспечивающую работу клавиш­ ного пульта и цифрового индикатора. Кроме фактически суще­ ствующего •программного обеспечения для микропроцессоров . 808 0, 8085, Z80 и .6800, бул:ут представлены схемы, соответству~ ющие изучаемым микропроцессорным системам. 4.1 . Проrраммное обеспечение кпавиwноrо пуn~.та Теперь обсудим принципы «программного обеспечения клавиш­ ного. пульта». Понятие «программное обеспечение клавишного пульта» используется потому, что выполнение действий, обус­ л(iвленных н-ажатиями клавиши, и управление осуществляются программными средствами. Этот тип клавишного пульта отли­ чается от клавиши.ого пульта, реализованного щшаратно, ког­ да цифровое логическое устройство управляет клавиатурой и выполняет определенные аппаратные функции, соответствую­ щие нажатой клавише. Сначала в общих чертах обсудим функцию клавишного устройства ввода. Часто клавишный пульт представляет собой матрицу из однополюсных нажимных нефиксируемых · кнопок, которые в нормальном положении разомкнуты и •пере­ ключаются мгновенно. Схематическое изображение ключа :га­ кого rипа показано на рис. 4.1 . -Ключи располагаются в виде матрицы, которая может иметь /IЮбой размер. Будем вести рас- •смотрение на примере матрицы 5Х5, представленной на рис. 4.2 . Очевидно, что каждый ключ однозначно определяется указани­ ем номера строки и !l.9Mepa столбца, на пересечении- которых на­ ходится -.выбранный ключ. Столбцам соответствуют обозначения Са-С1с, а строкам- Ra-R4• н~который ключ, имеющий опреде­ ленную позицию в пределах матрицы программно-управляемой клавиатуры, не снабжается специальными аппаратными сред- СТВ!J.МИ. . , Б.лагодаря 'надлежащему программированию микропроцессо- 1,ра можно программно определять позицию нажатой кнопки и потом выполнить раздел программы, однозначно соответствую­ щий частной позиции кно11ки (ключа) в матрице клавиатуры. Это означа~т, что функциональное назначение любой· кнопки • можно изменить посредством простого изменения программного обеспечения }{ИКропроцессора. Этот принцип иллюстрируется 'блок-схемой, показанной на рис. 4.3 . 7•
100 ' Глава 4 Понимая общие принципы реализации проrраммир-уемой ' клавиатуры, мы получаем. в распоряжение. «строительный блок», который пригоден для многих приложений микропроцес­ сор_ных систем. Рис. 4J. Схематическое изображение одцопqлюс• ного цормальцо _разомкнутого ключа. Рассмотрение_ принципов реализации клавишного пульт~ связано с решением следуrощих проблем: 1. Аппаратное обеспечение, требуемое для реализации кла­ вишного пульта. ,2. Программное обеспечение для управления клавишным пультом. 3. Программное обеспечение для определения замыкания ключа. 4. Программное обеспечение для определения размыкания ключа. 4.2 . Аппаратные средства, необходимые дпя реаnнзации кnавиwноrо пульта Основным предметом нашего ра~смотрения будут аппаратные средства, необходимые для реализации 5Х5-матрицы ключей клавишного устройства ввода. Эти аппаратнJ,>Iе средства _показа­ ны на схеме, представленной на рис. 4.4 . Для реализации дол­ жны выбираться такие интегральные схемы, которые обеспечк-­ вают минимальное общее число корпусов. Одн~ко в данной книге мы не будем придерживаться такого критерия. Нам пред­ ставляется более важным разобраться в основной идее, понять которую будет легче в процессе рассмотрения уже существую­ щих аппаратных средств. Одни и те же функции могут быть реализованы различными аппаратными средствами: Некоторые интегральные схемы, на которые ссылаются в учебниках, приоб­ рести трудно. Интегральные схемы, используемые для проекти­ рования в данной книге, в настоящее время широко распрост­ ранены. Тем не менее постоянно разрабатываются новые инте­ гральные схемы, обладающие новыми функциями. Поэтому необходимо все время следить / за сообщениями в литератур~. ч1:обы своевременно знать о появившихся интеrральнi;,1х схемсах.; Их использование позвоJ1ит увеличить надежность микропро~ . цессорных систем и приведет к уменьшению общего числа кар-- ; пу-еов. Еще раз подчеркнем, что прежде всего надо понимать / основные. принципы реализации, и, чтобы донести их до 1Iнтате­ J1Я, разберем характерные приме12ы.
с, с. R4 C0 R~C1 R4C2 R4C3 R4 __ ..._y_ _.у__у ___у - Рис. 4.2. Матрица 5Х_5 однополюсных нормально разомкнутых ключей. Переход к секuин n..роrраммы, со-', ответствующей этому кЛю-ч у Переход к секuии программы, соот­ ветствуюшей этому МЮЧУ Переход к секuии проrрЗ'ММЬlt со­ ответствующей этому ключу r:Je'pexoд к секuин программы, со от-• иетствуюшей этому ключу (Эта схема должна быть про.аолжена в соответствии с размерностью матриuы мавиатуры) • Рис. 4.3. Фрагмент блок-схемы алгоритма определения «кqордина~ замкну­ того ключа.
Ш 1 1 н а л а н 1 1 ы х в о , в о . в о , 1 в о , в о , 1 в о , : в о , В О 0 u , . . . . . . . В А , ~ - : . 7 4 L : ; 2 u в д . • 2 _ 6 в д , ~ В А 4 1 С 1 7 4 L S 3 2 В А 3 1 3 2 1 с 3 в д , 1 2 С х е м а / 1 0 В А 1 в ы б о р а п о р т а . в д , С и г н а л у р о в н я 7 4 L S 0 4 л о г и ч е с к о г о o . J 1 В Ю R I C 2 . К о д в ы б о l ? а " F E " ' Ш и н а у п р а в л е н и я • 5 • 5 + 5 + 5 + 5 R , u R , 4 / к О , 1 4 , 7 к О ~ 1 7 4 L S 3 6 7 k B D , I , " ' с , J R o п , , 1 ~ 1 2 1 R , , - , - - - - - . . , _ 1 ; 1 1 5 1 с , U - - П о р т R E A D 1 R , . ~ 4 L S 3 7 4 B D , : : : ~ : 1 8 0 1 R 1 8 0 [ 1 R 0 1 с , 1 3 ~ ! ! 1 2 L S 3 2 - & / _ П о р т W R I T E 1 R , 1 R , · - , У с т р о й с т в о в в о д а с к л а в и а т у р ы , Н о м е р п о р т а р а в е н " F E " Р и с . 4 . 4 , С х е м а с в я з и м а т р и ц ы к л ю ч е й 5 Х 5 ( ф р а г м е н т ) м и к р о п р о ц е с с о р н о й с и с т е м ы . \ R 0 C " R 1 C 4 R ' , c . R 4 C 4
Интерфейс усtройств ваода-вывода . Ссылаясь на рис. 4-А, рассмотрим функцию каждого компо­ нента системы ввода-вывода. Сначала оqратим внимание на - матрицу ключей. Ключи располагаются в матрице следующим, образом. Один вывод каждого ключа соединен с одной из вер­ тикалыiых линий С0-С4, другой вывод соединен с о.в.ной из го- •• ризонтальных линий R0-R4 . Горизонта.11ьные •.тшнии •R0 -R4 яв­ ляются входными линиями матрицы ключей клавишного пуль--~ та, Вертикальные линии являются выходными линиями матри-­ цы ключей. В каждый момент времени только одна из горизон.:.. тальных линий Ro-R4 может иметь уровень логического О, т. е;. когда на линии Ro, например, установлен уровень логическо~ го О, то на линиях R1, R2, Rз и R.i, должен быть уровень логи~ ческой 1. Таким взаимно исключающим способом выполняетсЯi установка уровня, соответствующего логическому О, для каж­ дой горизонтальной линии. Понятие «вз~:1имно исключающий. способ» означает,. что в .11юбой конкретный момент врем~ни только одна горизонтальная линия может иметь уровень логи- ческого О. • В то время как единственная горизонтальная линия имеет уровень логического О, вертикальные выходные линии матрицы клавишного пульта проверяются микропроцеGсорной системой. Если при этом обнаруживается замкнутый ключ, то соответст­ вующая ему вертикальная линия получает уровень логического О. Вертикальная выходная линия будет иметь уровень логиче­ ского О тогда и только тогда, когда замкнутый ключ соединяет ее с.входной линией, на которой будет установлен уровень логи­ ческого О. Чтобы подробнее рассмотреть этот вопрос, допустим, что в данный момент замкнут ключ, имеющий на схеме обозна­ чение R3C2 . Такое обозначение показывает, что соответствую­ щий ключ в положении «замкнуто» соединяет входную линию 3 и выходную линию 2. Во время «просмотра» клавиатуры с по­ мощью программных средств системы могут иметь место сле­ дующие события. Под термином «просмотр» мы понимаем, что­ система поочередно переводит каждую входную линию в со­ стояние логического О и анализирует состояние выходов мат- рицы. . Линия Ro устанавливается в состояние логического О. Все другие входные .линии при этом имеют уровень логической 1. Пока на горизонтальной линии Ro поддерживается уровень ло­ гического О, выходные линии анаJшзируются с помощью про­ граммного обеспечения системы. Ниже будет разъяснено, ка~ горизонтальные линии устанавливаются в состояние Jюгическо- , го О ц каким образом с помощью программного обеспечения про­ . веряются выходные линии. Если ключ RзС2 замкнут и на :вход­ : ной лИIJИИ Ro установлен уровень логического О, на всех выход­ :_ных линиях будет уровень логической 1. Это объясняется тем, , ~то на вертикальных линиях уровень напряжения доведен до
Гnава 4 +s ·в через согласующие резисторы PR1-PR5. Поскольку линия Ro не соедцнена с помощью к-лtоча ни с одной вертикальной ли­ \щей, ни на одной выходнqй линии не может быть уровня на- . пряже ния, соответствующего логическому О. • _ Ацалогично система рудет реагировать на установку уровня логического О на входных линиях ·Ro, R1, R2 и R4. Од.нако, когда на горизонтальной л-инии Rз будет установлен уровещ, логиче­ ского О, произойдет следующее. На выходной линии С2 также установится_ уровень логического О. Это объясняется н_аличием • электрического тракта через ключ R3C2. Он образован верти­ •кальной линией С 2, замкнутым ключом и горизонтальной лини­ ей R3. После того как система обнаруживает уровень логиче­ ского О на какой-нибудь вертикадьной .11инии, она опр.еделяет ключ, замыкание которого обусловило это событие. . Система определяет «координаты» замкнутого ключа путем . «электрического» запоминания номера горизонтальной линии, установленной в состояние логического О, и посредством логи­ ческого определения номера вертикальной линии, имеющей уро­ вень JJОгического О. Ниже в этой маве будут рассмотрены су­ ществующие программные средства, необходимые для выполне­ ния описанных действий. 4.3. Сиrнаnы rориэонтаnьных пиний Теперь рассмотрим, как на входных линиях по способу· взаим­ ного исключения устанавливаются уровни .логического 2- Для того чтобы на входных линиях установить уровень лог.ическо-. го- О, к клавишному устройству ввода подключается· восьмираз­ рядный фиксатор 74LS374, имеющий на рис. 4.4 обозначение_ IC5 . Сигналы на вход этого -фиксатора поступают с шины дан­ ных. Соответствующие входы обозначены на схеме через BD0- BD4: Между линиями шины данных и входными линиям.И мат­ рицы клавишного пульта установлено следующее соответствие: BDo-Ro, BD1-R1, BD2-:-R2, ВDз-Rз, BD4-R4. Микропро­ цессор формирует слово, логические значения разрядов которо­ го определят уровни сигналов на входах клавишного пульта, и записывает образованное слово через шину данных в фиксатор 74LS374. Запись прои.зводится, когда система . выполняет Gперацию вывода. Напомним, что при этом она производит следующие • действия: • 1. Адрес устройства вывода подается на адресную шину. 2. Выводимые данные подают_ся на шину данных. • 3. По шине управлеция подается сигнал BIOW. Расс~отрим, используя схему, представленную ца рис. 4А, как аппаратно реализуется каждое из трех указанных действи:й. i Сначала адрес устройства вывода устанавливается равным ·
Интерфейс ycтpoikrв ваода-аы~од• 100 • «FE»~· Схе ма дешифрирования адреса показана на рис. 4.5, ко• т0рыи является фрагме!iтом рис. 4.4 . Из ptlc. 4 .5 видно, что схе­ ма дешифратора адреса реализуется в виде простого комбина­ ционного логического блока, Ьбеспечивающеrо дешифрирование 8-рсtзрядного кода, поступающего с шины адреса. Ком.б1μ1nдf,i~ . ная схема конструируется для дешифрирования кода: f1Ji,~lt1» ". (FE); На выходе схемы 74LS32, показанной на рис. 4J5;'ypoвetfь· ед, ед. 2 ед, 4 Вд, вд,-----__;1.;..з◄.__:_:1с~, 12 Вд2 ___...;1О--1 Вд,---.;.;;..~- 74LS04 IC2 '·F" "Е" Сигнал выбора порта. Уровень логического О - активный. Код выбора порта "FE" Рис. 4.5 . Схема· дешифрирования кода выбора порта «FE» (фрагмент схемы, • . . представленной на рис. 4.4). логического О может быть только тогда, когда все восемь раз­ рядов кода на шине адреса совпадают с соответствующими раз­ рядами кода FE. Вывод 3 схемы IC3 называется линией выбора _!I~ На этой линии появляется уровень Jiогического О каждый раз, как только логичес~ая схема дешифрирования кода выбора порта обнаружuвает правильную комбинацию значений-двоич­ ных разрядов на ·восьми младших ЛИНИЯХ Ш}ШЫ адреса. }ja этом вопросе стоит сосредоточить внимание, так 1<ак .он иногда не. рассматривается в начальных курсах по микропроцесСОQНЫм с.~.мам. Дело в том, что линия выбора порта может быть ак­ тивоо даже тогда, когда система. не связана с устройством вы- вода; . в· подтве,рждеI:Iие сказанного рассмотрим следующий пример. Допустим, система читала данные из ячейки памяти с адресом FE.. Чтобы а:ктийизировать линию выбора порта «FE», ,щина адреса должна содержать правильную логическую комбинацию: По .этой• причине сббытия в микропроцессорной систеце долж­ ны «квалифицироваться»· шиной управления. Если же мя .ква~ ллфикации событий шина управления не используется, iro с!3Яё зat:ьcSI с выбранными устройствами в определенный момент не будет возможности. Этот факт важно учитывать, когда рассмат:-
106. Гnё!!ва 4 риваются логические сигналы в системах, управл.яемых микро­ процессором. Сигнал на линии выбора порта может появиться тогда, когда система связана с другими устройствами. Такая ситуация может показаться .непонятной, особенно если щ1блю­ дение ведется с помощью осциллографа и на его экране обна-· руживается; что линия выбора порта активизирована, хотя си­ стема, казалось бы, к,связи с устройством вывода не готовится. После дешифрирования кода, поступившего по шине адреса. а Ацрсс д0-д7;f ~ ~~-- ', ,tJ,анные п:одаютс11 на входы фиксатора 74LS374 6 ____,~------- в Сигнал управления BIOW (активный уровень- низкий~ Рис. 4.6 . Временная д_иаграмма сигналов, испо.ль::~уемых при запи­ си данных в порт «FE». уровень логического О устанавливается на линии ~ыбора порта и на выводе 13 схемы ИЛИ, обозначенной на рис. 4.4 через ]С 3 . Данные по шине данных поступают на входы 3, 4, _7, 8, 13 8-разрядного фиксатора 74LS374. Наконец, по шине управления подается сигнал BIOW. Это приводит к установлению на выво, де 11 схемы IC3 уровня логического О. Затем сигнал BIOW при­ нимает логическое значение 1. На этом этапе данные, имеющие­ ся на шине данных, запоминаются в 8-разрядном фиксаторе ]С 5 типа 74LS374. Соответствующая временная диаграмма представлена на рис. 4.6 . Итак:, рассмотрены все фактические события, обусловлеJ!нЫе различными логическими значениями сигналов, устацавливае­ мых микропроцессорной системой на входных линиях клавиш­ ного пульта. Кроме того, они аналогичны тем событиям, кото­ рые происходят в микропроцессорной системе при обычной5аа­ писи данных, и совершаются независимо· от микропроцессора, используемого в качеств.е системного контроллера. Форма пред­ ставления событий может быть различной, но последователь­ ность их наступления должна быть неизменной. Здесь мы не будем учитывать особенности конкретных микропроцессоров, -а рассмотрим события, имеющие отношение к микропроцессор­ ным _системам с 3 шинами. Такой подход позволит расширить наши общие представления о принципах пе>строения микропро­ цессорных систем с 3 шинами. ОчевиДiю, что можно спроекти-
Интерфейс устрой~тв ввоАа-JSывода 107 ровать ЦП, подходящий для работы в системах с 3 iпинами, Иi:• пользование которого облегчит проектирование устройств вво­ да-вывода. А.4. Расnознаванне снrнаnов на выходах кnавнwноrо nynыa Теперь •обсудим, каким образом микропроцессор анализирует состояние выходных линий клавишного пульта, показанных на рис. 4.4 . Из рис. 4.4 видно, что код выбора порта FE исполь­ зуется в качестве кода выбора при чтении вводимых данных. Он же применялся н для выбора порта записи выходных дан" ных. Таким образом, мы используем этот код как единый код выбора входного и выходного порта. Это вполне допустимо, так как событие, связанное с чтением вводимых данных, никог­ да не наступает одновременно с записью выводимых данных. Из этого следует, что аппаратные средства для формирова:ния сигнала выбора порта могут. быть использованы для двух раз­ личных целей, а именно для формирования сигнала выбора пор-. та ввода и сигнала выбора порта вывода. При этом сокращает• ся объем аппаратных средGтв системы. , Основная цдея осуществления опера,ции ввода данных с кла­ еишного пульта состоит в том, что после анализа состояния вы­ ходных линий клавишного пульта выполняется операция чтения данных с системного устройства ввода. Система будет выпол­ нять. чтение данных, а данные, вводимые в микропроцессор, бу­ дут определяться уровнями напряжения на выходных линиях клавишного пульта. Напомним, что операция чтения даннь1х в системе с 3 шцна­ ми выполняется в следующей последовательности: 1. Адрес выбора устройства ввода поступает на. адресную шину. . 2. Шина данных· подготавливается к выполнению операции ввода. (Это означает, что микропроцессор должен перевести входы данных в режим ввода, а не в режим вьrвода.) 3. Шина управления посылает сигнал BIOR. В рассматриваемом примере адрес порта ввода равен FE. Этот адрес дешифрируется точно таким же способом, как и рассмотренный выше способ дешифрирования адреса при вы-, полнении операции вывода. Это так, поскольку для деuшфри­ рования как кода выбора порта ввода, так и кода выбора пор~ та вывода применяется одно и то же оборудование. Когда обна­ ружцвается код выбора порта, на выводе 5 схемы IC:t рис. 4.4 появляется уровень логич:еского О.. Теперь по шине управления нодается •сигнал BIOR. Когда сигнал· ВIOR имеет логичесk:Ое значение О (рабочее состояние), на выводе 6 схемы IСз т·акже:
108 будет уровень логического О. Уровень логического О установит­ ся и на выводах 1, 15 буфера с тремя состояниями ·74LS367, имеющего на схеме обозначение IC4. Сигнал уровня догическо­ го О отпирает буфер 74LS367, подключая его выходы к шине данных: Логические значения сигналов 1:1а выходах. буфера 74LS367 определяются логическими состояниями выходных ли­ ний клавишного пульта (рис. 4.7). Микропроцессор будет вво­ дить данные, поступающие на шину данных из буфер;:~ 74LS367. Эти данные определяются логическими состояниями выходных / ~ • К шине\ данных системJ,1 - ВО0 з 2 во, 5 4 во, 1 6 во, 9 10 во, 11 12 ~~ 1, 15 Сигнал выбора f порта READ. -' - -- \ Г Активный уровень L---1 - низкий \ / Со с, с, с, с, Выходные сиrμалы клавматуры подаются на шинv панны": 1 Выходные сигналы клавиатуры Рис. 4.7 ..Схема, обеспечивающая считывание даииых с выходов клавиатуры (фрагмент схемы, представленной на рис.. 4.4). _ • линий матрицы клавишного пульта. Так данные передаются от устройства ввода к микропроцессору. Теперь на основе получен­ ных данных микропроцессор может «принимать_ решения». 4.5. , Выводы Мы рассмотрели подключение схем, обеспечивающих работу клавишного пульта, к микропроцессорной системе с 3 шинами, стараясь акцентировать внимание на общих представлениях. Также были представлены современные схемы, с помощью ко­ торых м9гут быть практически реализованы изложенные - идеи и методы. Если основные схемы обеспечения ввода-вывода по­ нятны и -если ясна идея связи с микропроцессорной сист~моji с 3 шинами, то примененйе изученных методов при цроект~рова­ нии других схем ввода и выщща окажется простой _ задачей. Ниже в этой главе обсуждаются методы програмМ1Iого управ­ ления портом ввuда и. вывода.
Интерфейс устройств ввода-аыаода • 109 4.6. Цифрово;i индикатор Будем рассматривать индикатор, имеющиц поле для отображе­ ния 6 шестнадцатеричных цифр. Примером такого индикатора может служить устройство P/N 5082-7340 фирмы Hewlett Pac- kard, выполненное на интегральных схемах. Этот индикатор содержит в себе необходимые схемы дешифрирования. В ин­ дикаторе имеется фиксатор, что позвоJ1яет JIОдключить его не­ посредственно к шине данных микропроцессорной ·системы. Бо­ лее общие методы фиксации данных в выходном порте систе­ мы мы разберем, не используя упомянутый индикатор. Струк­ турная с-хема подключения индикатора показана на рис. 4.8. Ссылаясь на· рисунок, разберем принцип действия этой схемы. Выходной индикатор, имеющий на схеме обозначения DP1-DP6, получает входные сигналы от 8-разрядных фиксаторов типа 74LS374, обозначенных на схеме через IC1-IC3 . Входы фик~ саторов ·подключаются к ;rшниям BD0 -BD7 . системной шины данных. flорты вывода, реализованные в виде 8-разрядных фик­ саторов, обозначенные на схеме IC1, IC 2 и IC3, имеют коды вы­ бора порта F21б, Fl15 и F016 соответственно. ~огда на адресных линиях ВА4-ВА7 появляетtя код 1111, на выходе элемента 7420, т. е. на выводе 6, устанавливается уровень логического О. Такой же уровень, очевидно, установи1·ся и на входе 1 схемы 74LS32 (IC4). Если при этом на адресной линии ВА3 будет уровень логического О, этот сигнал откроет схему 74LS42. Если схема 74LS_42 открыта, то на выходах 1, 2 и 3 появятся сигналы, значения· которых определены двоичными состояниями ад­ ресных линий ЦА0-ВА2~ Логические з~ачения сигналов на вы­ ходах схемы 74LS42 (IC5) показаны на рис. 4.9. На этом _ри­ сунке -также приведены соответствующие коды выбора порта, которые будут формироваться на выходах схемы .IC 5. Кроме того, из рис. :4.9 видно, что когда по адресным линиям поступа­ ет код FO, на в_ыходе 1 схемы IC5 появляется уровень логиче­ ского О. Очевидно, что и на входе 12 схемы IC4 установится уро­ вень логического О. Когда по системной шине управ.чения бу- дет подан сигнал ВIOW, выход 11 схемы JC4 74LS32 п~рейдет в состояние логического О. При переходе вывода 11 от состоя~ ция логического О к состоянию логичесrюй 1 данные, имеющие­ ся на шине данных, записываются в фиксатор 74LS374 (IC 3 ). Аналогично может быть описано функционирование 8-раз­ рядных фиксаторов IC 1 и IC 2. Запись в 8-разрядный фиксатор 1С 1 производится при появлении на адресных линиях ~ода F2, а в фиксатор IC2 - при появлении кода Fl. Микропроцессорная система может записывать данные в 8-разрядные-- фиксаторы одновременно по-8 разрядов. Это означает, что две· отображае­ мые на индикаторе цифры могут быть записаны параллельно. В функции программного .обеспечения системы входит регист- /
. n c e и 1 щ и к а т ь р м + 5 Н Р 5 0 8 2 - 7 3 4 0 + 5 + 5 + 5 + 5 + 5 I I 1 ! [ [ 1 6 . 5 4 1 1 7 6 5 4 О Р 2 3 2 1 в г I с 1 1 1 1 1 ь 6 5 4 1 7 6 5 4 О Р 3 О Р 4 2 1 В 3 2 1 8 • I C 2 8 1 4 1 - к о д 1 1 I 6 5 4 О Р 5 8 т I с , 7 6 1 9 i 6 1 5 1 2 в 6 5 2 1 9 1 6 1 5 1 2 8 6 5 1 6 1 5 ' 1 2 8 ' 6 5 7 4 L S 3 7 4 7 4 L S З 7 4 7 4 L S 3 7 4 1 8 1 J 1 4 · 1 3 9 7 4 1 7 1 4 1 3 9 7 4 1 7 1 4 1 3 9 7 4 в о , в о , в о , в о , 1 1 в о , в о , в о , в о , 1 1 в о , в о , В 0 5 В О 4 1 1 6 в 1 1 I C 4 / , c _ j • · f 2 ' ' ~ - е , • L : , 3 2 9 1 0 " F O " · · - : , 1 , 7 4 L S 4 2 I r c , 1 2 1 3 - 1 4 1 5 1 < 1 2 0 1 1 с , t В О 7 В О , в о , В 0 4 В 0 3 В 0 2 В О 1 В 0 0 B I O W С х е м а в ы х о 1 1 н о г о • и н д и к а т о р а . В А / B A l , В А 5 В А 4 В А з В А , В А , I В А о П о р т ы в ы в о д а ' ' F O " , " F l " , " F 2 " Р и с . 4 . 8 . • С х е м а и н : r е р ф е й с а т и п и ч н о г о 6 - р а з р я д н о г о и н д н к а т о р а м и к р о п р о ц е с с о р н о й с и с т е м ы .
Интерфейс устройств вводёr-выаода 111 • рация тракта, по которому должна обновляться или записы.. ваться цифра. Ниже в этоц главе будут ~ассмотрены вопросы программного управления·цифровым индикатором. Выходы устройства 74LS42 вывод 1 вывод 2 вывоn З Коды адреса о 1 ro,. о 1 f) IG о r2 16 Рис. 4.9. Логические значения сигналов на выводах схемы 74LS42, показанной на рис. 4.8, соответствующие различным кодам адреса. 4.7 . Проrраммное уnравnение кnавиwным nуn1атом В оставшейся части этой главы рассмотрим программное обес­ печение для управления работой клавишного пульта. Из клавиш­ ного пульта будет поступать информация о замыкании ключа. которая однозначно соответствует позиции • замкнутого ключа и должна быть зарегистрирована. Обсудим используемые на практике экономичные методы разработки и отладки програм­ много обеспечения. Наконец, рассмотрим программное обеспе~ чение, необходимое для функционирования системы, базирую­ щейся на одном из четырех типов микропроцессоров, представ­ ленных в этой книге, а именно 8080, 8085, Z80 и 6800. Системы, основанные на микропроцессорах 8080 и 8085, мо­ гут иметь идентичное программное обеспечение. Оно же может использоваться и для систем, основанных на микропроцессоре, Z80. Однако мы не приведем здесь программ, напис_анных с • использованием мнемоник микропроцессора Z80. Бол~ее важно уметь понимать суть взаимодействия рассматриваемых про­ граммных и аппаратных средств микропроцессорных систем управления. Программные средства будем разрабатывать не­ большими чае.тями, соответствующими отдельным функциям управления. Потом эти части объединим в функциональную программу программнаго обеспечения. По сравнению с попыт­ кой представить задачи в виде одной функции этот подход поз­ воляет легче решить общую задачу проектирования програм­ мных средств. Причем программное обеспечение в этом случае удобнее отлаживать. 4.8. Проrраммный метод формирования сиrнаnов на входах матрицы, кnuиwнoro nуnьта Рассмотрим. программные средства, необходимые для управле­ ния аппаратными средствами, выполняющими установку по способу взаимного ясключения на входных линиях_ клавишного пульта уровня,· соответствующего логическому О. Напомним, что только .одна входная линия клавишного пульта в о/боЦ
112 момент времени может находиться в состоянии логического О. Сначала рассмотрим блок-схему, определяющую поря.цок вы­ полнения указанных действий. Затем представим программное обеспечение, реализующее эту блок-схему, для микропроцес- соров 8080, 8085, Z80 и 6800. • • Отметим еще раз, что микропроцессорц 8080, 8085 и Z80 могут выполюпь программы, разработанные для \\ШКропроцес­ сора 8080. Поэтому. будем представлять программное обеспе­ чение только в мнемониках микропроцессоров 8080 и 6800. Мик­ ропроцессор Z80 может выполнять программы, разработанные для микропроцессора 8080, однако набор команд микропроцес.; сора Z80 шйре, чем .у микропроцессора 8080. Микропроцессор Z80 имеет свой собственныii набор мнемоник. Читателю долж.­ но быть понятно, что структура программного обеспечения для разных микропроцесt;оров может быть различной. Поэrому, ис­ пользуя микропроцессоры в качестве систем.ных контроллеров, следует обращаться к руководствам по их программному обес­ печению. Руководства содержат наборы мнемоник конкретных микропроцессоров. Однако общая структура программного обес­ печения микропроцессоров подобна структуре программного обеспечения каждого отдельно взятого микропроцессора. На рис. 4.10 показана блок-схема алгоритма генерации вход­ ных сигналов для клавишного пульта. Отметим, что формирова­ ние входных сигналов ос,уществляется с помощью подп·рограм­ мы. Начальное значение слова S 1 устанавливается при инициа­ лизации микропроцессорной системы. Ниже в этой главе_будет точно определено, что подразумевается nод термином ·«инициа­ лизация» микропроцессорной системы. Сейча,с же достаточно знать, что начальное значение слова S1 должно быть записано в память перед тем, как микропроцессор начнет работать по программе, блок-схема которой представлена на рис. 4.10. Это требование легко объясняется тем, что, судя по блок-схеме, про­ грамма должна приним ,1ть решение, зависящее от значения сло­ ва ·s 1. Значение этого слова должно быть устаноIJлено после включения питания, иначе оно буд.ет иметь некотор~ произ­ вольное значение, обус.1овленное случайным состоянием па­ мяти. Случайное значение S 1 приведет к тому, что · решение, принимаемое программой пос.1е анализа этого слова, окажется ошибочным. Программа, блок-схема которой дана. на рис. 4.10, сначала выбирает слово из памяти. Затем производится проверка на ра­ венство значения этого слова коду 101в- Если факт равенства устанавливается, то это означает, -что последняя входная л·иния уже имела уровень логического О и следующей линией, на ко­ торой должен устанавливаться уровень логического· О, является линия R0 . Если· текущее значение слова S1 не равно 101{;, то. программа просто сдвигает содержимое слов~ на один разряд
Интерфейс. устройств вsодо•вывод111 ' Шаг 1- Шаг 2 Шаг 2В Шаг3 ' Шаг 4 Шаr 5 Шаr 6 • Начало Запись данных об а~:rивной торизонталь• ной линии клав11атуры в ячеr,ку S1 Сдвиг данных в S1на _1 разряд вле110. 0 - ПОЗШ!ИЯ Do 0Зап.wсь значен11й данных D память l l 11Rcpп1poвa- 1111е RO\\1 Вывод RQW в порт "FE" Да s,= 00000001 ROW =: S1 Шаr 113 2А Рис. 4.10. Б-лок-схема программы гецерации входных сигналов матрицы кла-· вишного пульта. вл~в·о. ГJр·и выполнении этого сдвига в первой позиции слова должно появиться значение О. Подчеркиваем это, так как раз­ личные ми_кроrtроцессоры выполняют операцию сдвига слоsа различными сп.особами. Некоторые микропроцессоры, могут в· первый разряд сдвинутого слова помес·rить 1. Чтобы точно оп-· ределить, ка.к выпол!lяе~я сдвиг влево,_ необходимо обратйтJ>~si к руководству по\ программному обеспечению • используемого микропроцессора. • 8-814
114 Глава 4 Если. анализируемое слово оказывается равным 1015, ·ТО со­ ГJ1асно блок-схеме программы (см. рис. 4.10) будет уста1ювле­ но новое значение слова, равное Ol 15. После этого выполнение программы продолжае.тся с точки В, указанной на блок-сх~~е. • На этом шаге программа записывает новое слово в память. По- ОOOООIО0 Активная/ R2 rоризонталь­ н.~я ЛIIHIIЯ Инвертированнь1е данные D1 111 1О11 Запись данных в п9рт "F.E" Рис. 4.11 . Этот рисунок поясняет действия, выполняемые в шагах 3-5 блок­ схемы, показанной на рис. 4.10. Слово состояний входных линий матр1щы записывается в память. Затем оно инве_ртируется и записывается в порт вывода. Активной линии соответствует логическое значение О. мещенное в память слово будет анализироваться при следую­ щем обращении к этой п,рограмме. После записи нового значения слова в память слово, опре­ деляющее значения сигналов на горизонтальных линиях мат­ рицы· клавишного пульта, инвертируется. Это действие заклю­ чается в установке значения 1 во всех разрядах, за исключени­ ем разряда, соответствующего входной линии: подлежащей ак­ тивизации. Разряд, определяющий активизируемую линию, при­ нимает значение О. Описанные действия иллюстрируются рис. 4.11 . В конце концов, программа выведет сфu;,мированное слово в определенный порт вывода. . , Напомним, что на р~с. 4.4 порт вывода, связанный со вход­ ными линиями клавишного пульта,. адресовался кодом FE. На . рис. 4.12 представлен текст программы для микропроцессора 8080, соответствующий блок-схеме, приведенной на рис. 4.10. Следует учитывать, что эта программа представляет собой один из возможных вариантов реализации блок-схемы, представлен­ ной на рис. 4.10. Совершенно ясно, что существует много раз­ личных с_пособов программной реализации данной блок-схемы. Это аналогично большому разнообр.азию методов схемной реа- 1 лизащш каких-либо функций. 1• Какой бы вариант реализации программы ни был избран, программа всегда должна быть хорошо документирована. Ког-
Интерфейс устройств ввода-вывода llS да наступает время отладки программы или программное обес­ печение кому-либо передается, хорошая ·документация будет бесценной. В некоторых случаях стремление получить хорошую Э11 ООЕВ :Э12 ООЕВ :.J1.3 ООЕВ 314 ООЕВ 315 ООЕВ 316 ООЕВ :Э17 ООЕВ 318 ООЕВ 319 ООЕВ :Э20 ООЕВ 321 ООЕВ :Э22 ООЕВ :Э23 ООЕВ :Э24 ООЕВ 325 ООЕВ :Э-26 ООЕВ ***~*•••***•*****•************•*************************• .. * ПРОГРАММА WВОДА АНТИВНОГО НАБОРА НА ПУЛЬТ * * ИМЯ ЭТО~! ПРОГРАММЬI-ОRОW ... * ЭТО РИС,4,12 .. .. **********~**J*•****i***~*********J******~* ~******** ~ ~**• * * РИС,4,12-ПОДПРОГРАМll!А К РИС,4,10 В МНЕМОНИКЕ 8080 •· •**~*****•******~******** ~*****************•************* :Э27 ООЕВ 3А 04 10 OHOW LDA KROW 328 ООЕЕ * 3 29 ООЕЕ ****** (ШАГ 2) :Э30 ООЕЕ * :Э31 OOEF) FE 10 332 ooFo'C2 F~ 00 333 00F3 334 OOJi'3 335 OQF3 33 6 ooF'J :эЕ 01 337 OOF'5' С3 F9 00 .. CPI 1ОН JNZ OROW1 ****** (ШАГ 2А) * • МVI А.1,О1Н J.Щ> S:rJ :Э38 {)()Ji'8 * 339 OQF6 ******(ШАГ 28) :Э4О оо:1!'8 " :Э 41 ooF8 07 OROWI 1/LC :Э42 001''9 343 00F9 :Э44 OQF9 :Э45 001''9 32 04 :Э46 ,poFC :э47 ooFc :э4в ooFc 349 оо:ь'с 2F :э5о ooFD :э5t oo:F'D :)52 o·QFD :}53 OOFD DЭ .FE :Э54 OQFF 355 OOFF 356 ooFF :Э57 ooFF С9 358 0100 1 Э59 010() * ***"** (UIAГ 3) * 10 sт:э STA KROW * ****** (ШАГ 4) * СМА. * ****** (ШАГ 5) * ОUТ ОFЕН * *"****(ШАГ 6) * ПOBTOPlNd ВЫЗОВ АКТИВНОГО НАБОРА СКАНИРОВАНИЕ НАБОРА ЗАКОНЧЕНО??? ~ели НЕТ, то ШАГ 2В ПЕРЕМЕСТИТЬ АКТИВlNЙ НАБО1;1 ИДТИ НА ШАГ 3 СДВИНУТЬ ДАНNoЕ ,ВЛВВо I о В D0 СОХРАНИТЬ АКТИВНllЙ НАБОР ИНВЕРТИРОВАТЬ сщово.НАБОРА ВЫВЕСТИ: АКТИВНЫЙ НАБОР В ПОРТ FE Рис. 4.12 .. Программа на языке ассемблера микропроцессора 808Q, соответ­ ствующая блок-схеме, представленной на рис. 4.10. документацию сrимулирует исщ>Льзование простых приемов программирования и оправдывает прямолинейность в способах программной Rеализации блок-схем. • На рис. 4.~3 приведена программа, соответствующая блок­ схеме, показа ой на рис. 4.10; данная программа предназна­ чена для микр процессора 6800. В микропроцессоре 6800 при- 8•. '"
- LF41) Т=ОООО) IS ON ·сюооzо USING 00009 BLКS R=1410 '0001 -0002 0003 0004 PAGJ:: F412 .. TUE ост 02:27:04.13 NАМ 1''412 - Q005 00001 0006 00002 -0001 ·ооооэ 0008 00004 ·0009 00005 * ЭТА ПРОГРАМ14А-ВЕРСИЯ РИС.4.12 ДЛЯ 6800 00 1О 0000 6 ooou 0011 00007 0012 00008 ,оо Т 3 00009 •001 4 00010 0000 81 10 0015 00011 0002 26 05 0016 00012 0017 00013 \·001 B_QQO 14 0019 00015 0004 86 01 ·0 02U ООО 1б 0006 71': ОООА 0021 00017 - 0022 00018 - 0023 00019 0024 .00020 0009 48 - 0025 00021 - 0026 00022 0027 00023 * ORG soo * ******(ШАГ 2) * СМР А #S10 БNJ:: ST2B .. * **«*** (ШАГ 2А) - * * LDA А #S01 JМР $Т3 ****** (ШАГ 2В) * ST2B ASL А * 0028 00024 ОООА В7 1000 -ST) -0 029 00025. * STA А КROW -0030 00026 • 0031 00027 - 00 32 00028 000D 43 003) 00029 -оон 00030 0035 00031 0036 00032 ОООЕ 01 FE ООЗ7 00033 0038 00034 0039 00035 0040 00036 0010 39 - 0041 00037 ****** (ШАГ 4) * СОМ А * "**"**(ШАГ 5) * STA А #SOQFt * ****** (ШАГ 6) * RST * * СКАНИРОВАНИЕ НАБОРА ЗАКОНЧЕНО?? ЕСЛИ (ШТ, ТО ШАГ 2В , • ПЕРЕМЕСТИТЬ АКТИВШЙ НАБОР ИДТИ НА ШАГ 3 СДВИНУТЬ ВЛЕВО I О В D0 ИНВЕРТИРОВАТЬ СЛОВО НАБОРА ВЫВЕСТИ' АКТИВ. НАБОР В ПОРТ F.E WЙТИ ИЗ ПОДПРОГРААШЫ - 0 0(2 00038 0043 00039 0044 00040 -0 045 00041 "***** KQНl!JЦ этой ПРОГРАММЫ * • * РАЗМЕСТИТЬ ПЕРЕМЕННЫ,; В ПАМЯТИ * 0046 00042 - 0047 00043 {)048 00044 0049 00045 1ООО KROW iQU s1000 * - 0050 _1 RAGE 2 1''41 2 0051 -0052 0053 , 0054 KROW 1000 00043 0002_4 0055 ST2B 0009 00020 00011 0056 ST3 оооА 00024 0001 б END ПРЕДЛОЖЕНИЕ END АССЕ:ЛВЛЕРА TUE ОСТ 02,_1979 02:27:04.13 Рис. 4.13. Программа на языке ассемблера микропроцессора 6800, соответ­ стиующая блох-схеме, представленной на рис. 4.10.
Интерфейс устроiitств iiвода-вь1вода 117 меняется способ ооращещ~:я k у~тройствам ввода-вывода, ана­ Jiогичный способу обращения ·к· памяти. Микропроцессор 6800 не имеет команды типа OUT для записи данных во внешние устройства, которые условно считаются ячейками памяти. 4.9 . Onpoc выходных пиний кnниwноrо пуn1ата с помощ1а~о проrраммных средств .- Теперь рассмотрим метод программного управления аппарат­ ~ыми средствами с целью точного определения активной выход­ ной линии среди линий С0, С1, С2, С3, С4. Блок-схема алгоритма Шаг 1 Шаг 2 Шаг з Шаг 4 EC'IJ, активные колонки Шаг 5 Шаг·е Начало Установка флажка .колонокв".О. Ввод данных из порта "FE" Установка значений разрядов D5,D6, D7 = 1 Нет Инвертировани данных Фi1ажок колонок= данные Активных ко.qонок иет Да Возврат Шаг Рис. 4.14 . Блок-схема программы определения активных выходов матрицы клавиатуры.
118- Глава 4 определения активной выходной линии показана на_ рис. 4.14 . Сначала программно «флажку выходов» присваивается нуле­ вое значение. Этот_ флажок будет использоваться вызывающей программой для определения наличия активных выходных ли- • 278 OODB 279 OODB 200 ооDВ 281 OODB 282 OODB 28) OODB 28. ООDВ 0 285 ООDВ 286 OODB AF 287 OODC )2 01 2в0 ooDF 289 ooDF· 290 OODF 291 OODF DB FE 292 ООЕ1 29) ООЕ1 29• ООЕ1 .295 ООЕ1 Fб Ео 296 ООЕЗ - -297 ООЕ) 298 ООЕ) 299 ООЕ) }'Е :F'F )00 ООЕ5 СВ )01 ООЕб )02 ООЕб )О) ООЕб зо• ООЕб 2F )05 ООЕ7 )06 ООЕ7 )07 ООЕ7 )08 ОоЕ7 )2 01 )09 ООЕА С9 )10 ООЕВ * * * ЭТА ПОДПРОГРАММА-РИС,.,15 *******************************************~************* * 1 ****** (ШАГ 1) * СОLМ 10 XRA А STA _CFLAG 10 * ******(ШАГ 2) * IN оFЕН * ******(ШАГ)) * ORI ОЕОН CPI· ОFЕН RZ * **Н** (ШАГ 5) * СМА * ******(ШАГ б) * STA. CFLAG , RET * УСТАНОВИТЬ ФJI.UOK СТОJIБЦА=О ВХ:ОдныЕ_ДАНWЕ ИЗ ПОРТА FE УСТАНОВИТЬ ВИ'Вi Ц5, Dб, D7= 1 ШАГ (•А) ИНВЕРТИРОВАТЬ ДAНIIIE УСТАНОВИТЬ ФJIA:IO.I( СТОJIВЦА ВЫЙТИ ИЗ ЭТОЙ ПOДIIPOГPAlllli :- Рис. 4.15. Программа на языке ассемблера микропроцессора 8080 . соответ­ ствующая блок-схеме, представленной на рис. 4.14. ний. Затем вводятся данные из порта ввода клавиатуры. На третьем шаге в три старших разряда введенного слова записы­ ваются значения 1. Последнее действие выполняется потому, что входной порт, из которого были прочитаны данные, соеди­ нен только. с пятью младшими разрядами шины данных. Что­ бы неопределенность данных в старших трех разрядах введен• ного слова не повлияла на выполнение следующих шагов про­ граммы, целесообразно «маскировать» указанные разряды. . На четвертом шаге данные, полученные ·из порта ввода кла­ вишного пульта, анализируются. Если во всех разрядах обца• _ руживаются единицы, т. е. код FF, то среди выходных линий'
U'416 т=ооооэ. IS ON CRQ0020 USING OOJ09 BLКS R=Ц10 - 0001 i)Q02 ·ООО) 0004 0005 00001 ,0006 00002 PAGE TUE ост 02,1979 _01:59:27.45 NАМ F4.15 ооот 0000) 0008 00004 0009 00005 0010 00006 * ЭТО Ш:РСИЯ РИС.4.15 ДЛЯ 6800 001 1 0000 7 0000 0012 00006 * * * JRG 00 УСТАНОВИТЬ НАЧ.АДРЕС этой пror. \ 001) 00009 * УСТАНОВИТЬ ПОЛЕ ПЕРЕ~ННЫХ 0014 00010 0015 00011 0016 00012 , 0017 0001' ,0 018 оооц ,0 019 00015 •0020 0001 6 0021 00017 1001 CJ<LAG EQU S1001 * * НАЧАЛО IIPOГP.AAIW * * * (ШАГ 1) * t>022 00018 0000 86 00 СОLМ LDA А #SQQ STA А СОLМ 002) 00019 0002 97 00 0024 00020 0025 00021 0026 00022 0027 0002) 0004 96 FE 0028 00024 0029 00025 00)0 00026 0031 00027 0006 8А ЕО 00)2 00028 00)) -00029 оон 000)0 00)5 000)1 0036 000)2 00)7 0003) 00)8 00034 0039 000)5 0040 000)6 0008 81 ]<'].' ОООА 27 01 ооос 39 0041 оооэ7 oooD 43 0042 00038 0043 00039 оон 00040 0045 00041 ОООЕ В7 1001 0046 00042 0011 39 0047 0004) * (ШАГ 2) * LDA А SOOJ'E .. ******(ШАГ 3) * ОНА А #SJ;;Q .. ******(ШАГ 4) * Cll4P А #SQQ}F BEQ N1"XT RТS .. NEXT COil А * ****** (ШАГ 6) " * SТА А CFLAG RТS УСТАНОВИТЬ ФЛАЖОК СТОЛБЦА ВХОДНЬШ ДАНJШ ИЗ ПОРТА F.& УСТАНОВИТЬ БИТЫ D5 1 D6 1 D7=1 БСЛИ НОЛЬ I ТО Illi.'PEXOД !:UИ.ТИ ИЗ ЭТО!'l ПОДПРОГ. ЕСJ!И НЕ О ИНВЕРТИРОЕАТЬ ДАН!1⁄4lЕ УСТАНОвwrь ФЛАЖОК СТОЛБЦА ВЫУ,ТИ ИЗ ПОДПРОГР,...ШЫ 00<"3 00044 0049 00045 коm:ц ПОДПРОГРАММЫ .Do5o 00046 * 0051 00047 0052 1 PAGE 2 :J!·4 TUE 005) 0054 Оо55 • 0056 CFLAG 1001 00011 00041 005-7 COIJI 0000 00018 00019 0058 NEXT, oooD (){)Q)7 00032 iND ост ПРЕД}!ОЖЕН,tЕ tND АССЕМБЛЕРА 02,1979 01:59:2?.4 ~ Рис. 4.16. Программа иа языке ассемблера микропроцессора 6800, соответ- • ствующая блок-схеме, представленной на рис. 4.14.
120 'Глава 4 клавиатуры нет актцвиой (она должна находиться в состояиик лопrческого О). Это условие будет выrrолцяться в тех случаях, когда активизируемые входные линии ие соединены с какой-ли­ бо выходной линией матрицы клавиатуры. 1:сли условие вы- • полняется, то происходит выход из подпрограммы, а флажок выходов еохраняет нулевые значения своих разрядов. э,ю озна- чает, что активщ,rх выходов нет. • Если обнаруживается наличие активной выходной линии, то, данные, полученные из порта ввода, • инвертируются. Теперь. . флажок выходов приобретает значение, равное значению слова,,. полученного после выполнения инвертирования иа 5-м шаге, ала горитма. Наконец, происходит возвращение к вызвавUiей про­ грамме. Согласно рассмотренной блок-схеме написаны програм­ мы для микропроцессора 8080 (рис. 4.15) и' для микропроцес­ сора 6800 (рис. 4.16). 4.10. Вычнсnенне весового значення кnюча Каждому ключу в матрице клавиатуры ставится в 'Соответствие число из диапазона 0-N; так, первому ключу, обозначенному через R0Cg, соответствует число О, а последнему ключу R4C4 - число N- На рис. 4.17 показаны веса, соответствующие ключам матрицы клавиатуры. Функцию ключа на этой стадии опреде­ лять ие будем. Вес, приданный каждому ключу, позволяет _вы­ числить на . основании номера строки и номера столбца мат~ рицы клавиатуры, какой ключ был замкнут. На рис. 4.18 -нред­ ставлеиа блок-схема алгоритма вычисления веса определенного, замкнутого ключа. Рассматривая, блок-.схему, будем подразу­ мевать, что информация о номере активного ст9лбца хранится в памяти по адресу, обозначенному нами «флажок выходов»,· а информация о номере строки матрицы, иа пересечении которой с активным столбцом находится замкнутый ключ, находится в. памяти по адресу, обозначенному как «входное слово». Ссылаясь на блок-схему, подробно рассмотрим, как дейст­ :sует эта программа. Сначала из памяти выбирается значение «флажка выходов», содержащего иифе>рмацию о номере иско:­ мого столбца. «Флажок выходов» может иметь одио из СJrеду­ ющих пяти двоичных значений: 00000001 (0-й СТОJiбец); -' 00000010 (1-й столбец);· 00000100 (2-й столбец); 00001000 (3-й столбец); - 00010000 (4-й столбец). Затем, как в,идно из рис. 4.18, счетчик. Т1 принимает значение О.·. Потрм счетчик Т 1 станет равным значению О, 1, 2, 3 или 4, со­ 'ответствующему номеру активного выхода клавиатуры. Для выполнения этого программа будет сдвигать «флажок состоя-
Интерфейс устройств ввода-вывода 121 • ний» каждый раз {Ia один разряд вправ'о. Пос.ле первого сдвига в nозиции D1 появится зиачеиие О (рис. А:.19). Затем сдвину­ тое слово проверяется иа равенство нулю. Если все разряды слова -равны О, то активных выходов иет. В этом случае зиа­ чеиие счетчика Т 1 равно О. Если зиачеиие сдвинутого слова данных при проверке иа шаге 4 (рис. 4.18) окажется ие равным О, то зиачеиие счетчика со С1 С2Сэс4 1\х х х х х о 1 2 з 4 R, х х х х х 5 6/7 8 9 Рис. 4.17 . Десятичные значения ~х ·х х х х весов, соответствующие позициям в матрице 5Х5 к.11авишноrо пуль- 10 11 12-1:З 14 та. Rз· х х х х х 15 16 17 18 19 R4 х х х х х 20 21 22 2:З 24 Т 1 увеличивается на 1. Сдвиги и проверка слова «флажок выхо­ дов», сопровождаемые увеличением зиачеиия счетчика иа 1, продолжаются до тех пор, пока сдвщ·аемое слово данных ие ста­ нет равным О. На этой стадии значение счетчика Т 1 времеиио · записывается в память. • Теперь, согласно блок-схеме, изображеиiюй иа рцс. 4.18, подобные же действия выполняются иад значением «входного _слова». В данном случае используется счетчик Т2. Наконец, после того как в память по адресам Т2 и Т1 запи­ саны соответственно десятичные значения номера строки и но­ мера столбца, вес замкнутого ключ_а. вычисляется по формуле: Вес ключа= (5 Х номер столбца) + Номер строки. Вычисленный вес одцозначно определяет, какой ключ был замк­ нут. Теперь может .быть выпоJiнен переход к программной сек­ ции, которая соответствует конкретной функции ключа. Однако, прежде чем выцqлнить указанный перехо~ с:ледует _ убедиться в том, что ключ, которому соответствует вычисленное значение веса· ключа матрицы клавиатуры, действительно был замкнут. А .также до тех пор, пока ключ не будет разомкнут,
I 5 Начало Выборка Флажка колонок нз памяти 2 Очистить счетчик .т, з Сдвиг флажка колонок на Сдвиr 0-+Dт 1 разряд вправо Нет 6 Запись значения Т 1 7 Выборка нз памяти слова данных об активностц rорнзон тал~ной линии 8 Очистка счетчика Т2 9 Сдвиг на I разряд Нет вправо слова данных о ....... D 7 об активности гори зонтальных линий 11 Рис. 4.18. Блок-схема программы вычисления __ ___._ _ __ _ _ д есятичного значения ве• 12 Запись веса ключа в память 13 Возврат са нажатой клавиши.
Интерфейс устройств -ввода~вывода 123 никаких действий выполнять нельзя. В рас·сматриваемой систе­ ме -используются следующие критерии определения факта дей­ ствительного замыкания и факта действительного размыкания ключа: • Ключ считается действительно замкнутым, если микропро­ цессорная система вычислит один и тот же вес ключа 50 раз подряд. • Ключ считается действительно разомкнутым, если микропро­ цессорная система обнаружит его разомкнутым в течение D1 Do оооо ооо После сдвига вправо на 1 раз­ ряд в позиции D7 появляется значение О -оОООО1Оо- Рис. 4.19. Сдвиг слова данных вправо на один разряд. В позиции D7 появ­ ляется логическое значение О. 50 последовательных просмотров входной горизонтальной ли­ нии матрицы клавиатуры. Отметим, что выбор числа последовательных подтверждений факта нахождения ключа в определенном состоянии является субъективным. Благодаря последовате.11ы1ым подтверждениям устраняется влияние эффекта механической вибрации клавиши, существующего в_ клавишных устройствах. Интервал времени, в течение которого ключ находится в неопределенном состоянии, может быть различным для различных клавиатур. 4.11. Проrраммные средства учета-эффекта вибрации кnавиатуры Теперь рассмотрим программное обеспечение, используемое дщr учета эффекта вибрации клавиш. Разберем блок-схему, отра­ жающую последовательность происходящих в системе событий. Потом представим конкретную программу, необходимую для реализации этой блок-схемы. В задаче можно выделить две части. Первая заключается в разработке программы, обеспечи­ вающей 50-кратное последовательное подтверждение факта об­ наружения одного ключа в замкнутом состоянии. Вторая часть _задачи состоит в установлении того, чтсi в течение 50-кратного последовательного сканирования входных линий матрицы кла­ виатуры не обнаруживается активной выходной линии клавиа­ .туры. Эти частные задачи соответствуют вопросам определения фактов действительного нажатия и освобождения определен­ ной клавиши.
124 Глава4 • На рис. 4.20 представлена блок-схема, определяющая после• довательность дейсТВf!Й, ·выполняемых сйстемой при ввод~ ин­ формации о нажатии одной клавиши. Отметйм, что эта про• грамма использует рассмотренную выше подпрограмму, блок­ схема которой дана на рис. 4.10; эта подпрограмма использу- Активной колонки нет 2 Начало Вызов под­ программы, показанной на РИС.4.10 Вызов под­ программы определения веса ключа (см.рис.418) Вы зов под­ программы определения веса ключа (см. рис. 4.18) Рис. 4.20. Блок-схема програм­ мы ввода информации в мик­ ропроцессорную систему о на- жатии одной клавиши. ется для определения номера активизируемой входной линии матрицы клавиатуры. Кроме того, в данной программе исполь-:­ зуется подпрограмма обнаружения активной выходной_ линии клавиатуры. Если клавиша не нажата, то «флажок выход~в• имеет значение О. В этом случае -управление передается ; (рис. 4.20) подпрограмме активизации входных линий, которая установит на следующей входной линии уровень логического О. Этот цик.11 выполняется системой до тех пор, пока пользовате_ль не нажмет на клавишном пульте какую-либо клавишу. • Если на шаге 3 (рис. 4.20) обнаруживается значение «флаж­ ка: выходов», отличное от нуля, то данная программа вызовет подпрограмму вычисления веса ключа, принимающего значения
9 Иктерфейс устройав ваода-вь1аода Начало 1 Выборка нз памяти значения переменно КТIМЕ Разные ключи \ Нет Д-а 8 Да 3 КСОМР = KWGT 4 5 KROW = 00000001, KTI.ME = KTIME+1 Нет Да 11 6 Переход к программе, . представле иной 11ар11с.4.2() Переход к программе определения факта освобождения ключа Р·нс. 4.21. Блок-схема программы определения 50 последовательных под­ тверждений нажатия определенной клавиши. в диапазоне от О до 24. Программа записывает это число в па­ мять по адресу, t>бозначенному как K-WGT. Итак, допустим, система один раз обнаружила активный вы­ ход клавиатуры. ·Теперь должна быть выполнена 50-кратная проверка активности одиой и той же выходной лянии клавиа. туры, определяемой замыканием одного жлюча. Блок-схема со­ ответствующего алгоритма показана на рис. 4.21 . На данной
126 Глава 4 блок-схеме счетчи.к KTIME используется для регистрации чис­ ла последовательных поступлений в систему сигналов, соответ­ ствующих замыканию одного и того же ключа, и для проверки достижения этого числа заданному количеству подтверждений. Если счетчик КТIМЕ при проверке на шаге 2 (см. рис. 4.21) равен О, то значит, что от определенного ключа в систему посту­ пил первый сигнал. Так как сигнал поступил в первый раз,,необ­ ходимо запомнить соответствующее весовое значение ключа. -Это делается посредством присваивания переменной КСОМР весово­ го значения ключа, сигнал от которого поступил в систему. Ве­ совое значение этого ключа всегда запоминается в памяти по 1 адресу KWGT. После присваивания переменной КСОМР на 3-м шаге нового значения устанавливается значение счетчика КТIМЕ равным 1 и происходит переход к секции программы, обеспечивающей прием других сигналов от клавиатуры. Прежде чем перейти к этой секции программы, система восстанавлива­ ет значение счетчика активных входных линий клавиатуры KROW. Устанавливаемое начальное значение определяет, что теперь .уровень логического О должен подаваться на первую горизонтальную линию матрицы клавиатуры. Это действие вы­ полняется на 5-м шаге рассматриваемого алгоритма. Когда ин­ формация о замыкании ключа вводится в систему во второй раз, значение счетчика КТIМЕ не будет равно О. Поэтому после ша­ га 2 выполнится шаг 7; На 7-м шаге сравниваются значения пе­ ременных KWGT и КСОМР. Если сравниваемые значения не равны, то выполняется, согласно блок-схеме, переход к шагу 8. На 8-м шаге счетчику КТIМЕ присваивается значение О, и си­ стема будет снова пытаться получить 50 последовательных под­ тверждений факта нажатия определенной клавиши. Если зна­ чения переменных KWGT и КСОМР равны, то после выполне­ ния шага 7 будет выполняться шаг 9. На шаге 9 значение счет­ чика КТIМЕ увеличивается на 1. Тем самым учитывается. еще одно последовательное поступление информации о замыкании одного и того же ключа. Потом система проверяет значение счетчика КТIМЕ. Эта проверка выполняется на 10-м шаге алгоритма. На 10-м шаге фактически проверяется, было ли 50 раз подряд зафиксирован9 одно и то же значение веса кл10ча. Если значение счетчика КТIМЕ не равно 50, то система переходит к выполнению шага 5, назначение ~оторого было описано выше. Затем система снова возвращается к програм­ мной секции, обеспечивающей ввод информации о состояниях выходных линий клавишного пульта. Если на шаге 10 значение счетчика КТIМЕ равно 50, то си­ стема выполняет следующие действия. Сначала отмечается, что было зафиксировано действительное нажатие клавиши. Соот­ ветствующее весовое значение ключа запоминается в двух ячей­ ках памяти с адресами KWGT и КСОМР. Система использует
• Интерфейс устройств ввода-вь1вода 127 ячейки KWGT для сохранения веса действительно замкнутого ключа. После установления факта действительного нажатия кла~и­ ши система перейдет к программной секции, которая обеспечит определение факта отжатия клавиши по принципу 50sкратного подтверждения. До тех пор пока ключ остается в замкнутом со­ стоянии, функция, рпределяемая им, выполняться н.е должна. Отметим, что микро_процессорная система должна обладать та­ ким быстродействием, что при оценке общей производительно­ сти системы временем, которое тратится на подтверждение на­ хождения клавиши в том или ином состоянии, можно пренеб­ речь. А время выполнения функции соответствующей клавиши должно быть много, меньше, чем время, которое эта клавиша находится в нажатом состоянии. Если при полном сканировании входных линий матрицы клавиатуры не обнаруживается ни одной активной выходной линии, то фиксируется отсутствие нажатой клавиши. Блок-схема для реализации этой функции показана на рис. 4.22 . Сначала переменной KROW присваивается такое значение, которое обеспечит сканирование входных линий клавиатуры, начиная с. первой линии. Затем счетчику КТIМЕ присваивается значение О. В этой программной секции счетчик КТIМЕ используется для подсчета количества полных сканирований клавиатуры, во вре­ мя которых не обнаруживалось замкнутого ключа. Теперь си­ стема вызывает подпрограмму с именем ROW (шаг 3 на блок­ схеме). Эта подпрограмма готовит и выдает данные, опредеJiя­ ющие значения уровней на входных линиях клавиатуры. После этого система обращается к подпрограмме COL. Подпрограмма COL проверяет состояние выходных линий клавиатуры. Если активных выходных линий нет, то подпро­ грамма COL присваивает «флажку выходов» значение О. Если же активные выходные линии обнаруживаются, то управление передается в начальную точку программы, что показано на блок-схеме стрелкой, идущей от шага 5 к шагу 1. Если а!{тивных выходных линий не обнаружено, то «флажок выхо_дов» имеет значение О и система перейдет после шага 5 к шагу 9. На 9-м шаге значение счетчика NROW - увеличивается на 1. Счетчик NROW используется для регистрации количества последовательных выполнений подпрограммы COL, во время которых система не .обнаруживает активных выходных лиl'lий. Счетчик NROW_ фактически указывает, какая из горизонталь­ ных линий матрицы в· настоящее время активизирована. Когда значение NROW равно 5, пятая по счету горизонтальная линия матрицы была активизирована. Однако активных выходных ли­ ний система не обнаружила. В этом случае система, выполняя программу, представлен­ ную блок-схемой на рис. 4.22, перейдет от шага 10 к ш·агу б.
2 з 4 Начало· KROW =00000001 - NROW= О, КТ/МЕ "'О Вызов подпрограммы ROW Вызов подпрограммы COL Нет Да Переход к последующему ряду 9 NROW =NROW+1 Нет 6 KTIME = КТIМ-Е + 1 6а NROW "'О Нет Возврат Рис. 4.22. Блок-схема программы определения факта освобождения клави• • ши клавиатуры. •
Интерфейс устройств азода-вь1вода 129 На шаге 6 счетчик l(ТIME увеличивается на 1. Этот счетчик ре­ гистрирует количество полных сканирова1tий матрицы клавиату­ ры, в течение которых замыканий ключа не было обнаружено. Как только значение счетчика KTIME станет равным 50, завершится выполнение полной программы, обеспечивающей ввод и обработку информации в связи с нажатием одной кла­ виши. Видно, что· при этом в системе происходит много собы- Рис. 4.23. Блок-схема ооновнGй программы, вызывающей под­ программу ввода значения ключа. ~ (. Начало Основная лрограмма Вызов программ, лредставленных на рщ. 4.10, 4.14, 4.18, 4.20, 4.22 Переход к программе, соответствующей значению KWGT ~ тий. Когда система переходит от программы KREL, предназна­ ченной для определения факта освобождения клавиши, к ос­ новной программе, выполняется программная проверка значе­ ния введенного веса ключа и указывается точка входа в соот­ ветствующую системную программу. Эта системная программа используется при реализации функции, определяемой нажа­ той клавишей. На рис. 4.23 дана общая блок-схема основной программы, в которой используется подпрограмма KEYIN. Возвращение из подпрограммы KEYIN к основной программе осуществляется только после установления ею факта нажатия и последующего освобождения одной клавиши. То, что клавиша была действи­ тельно нажата, проверяется 50 раз подряд, ее освобождение констатируется также после 50-кратного подтверждения. Поэто­ му подпрограмма KEYIN не возвращает управление до тех пор, пока после нажатия клавиши не наступит ее действитель­ ное освобождение.
130 Глава 4 ' Затем основная программа, основываяс:о на значении пере- менной KWGT, установленном· подпрограмм-ой KEYIN, опреде­ ляет адрес перехода к программной секции, выполнение кото­ рой реализует функцию замкнутого ключа. - Мы видим, что, принципы программного управления клавиатурой обеспечивают универсальность ее применения. Функции клавиш легко изме­ няются посредством изменения программного обеспечения. В нашей системе каждой клавише было приписано соответст­ вующее значение веса К:WGТ, для отображения которого на, индикаторе используется два младших разряда. Это значит, что при нажатии клавиши, имеющей в матрице ключей обозначе­ ние R4C4, на индикаторе появятся цифры 000024, соответствую­ щие весу нажатой клавиши. С помощью этой программы мож­ но убедиться· в правильности работы подпрограммы KEYIN. После этого следует назначить клавишам фактические функ­ ции. 4.12 . Иннцнаnнэацня nроrраммы Перед тем как начать обсуждение программы выполнения об• щих системных функций, разберем вопрос инициализации си­ стемного программного обеспечения. Обычно эта программная­ секция выполняется только при включении питания системы или когда оператор нажмет кнопку начальной установки си­ стемы. Установка начального состояния микропроцессорных си­ стем рассмотрена в гл. 2. В секции инициализации программы определяются началь­ ные значения переменных, которые в дальнейшем потребуютсw при выполнении программы. Например, устанавливается на­ чальное значение указателя стека и маска прерываний. Мы еще не обсуждали вопросы обработки прерываний. Этому посвяще­ на гл. 6. Для нашей программы необходима начальная установка зна- чений следующих переменных: 1. Указатель стека. 2. KROW=0000000l. 3. NROW=0. 4. КТIМЕ=О. 5. COLFG=0 (флажок выходов,)'. 6. Индикатор= FF0000. • Выполнение пункта 6 обеспечит вывод на индикатор заранее из·­ вестного значения. Программа для выполнения всех функций· системы приведе­ на на рис. 4.24 . На этом рисунке представлена программа для микропроцессора 8080, а на рис. 4.25 даиа программа для мик­ ропроцессора 6800.
1 0000 2 0000 , 0000 4 0000 5 0000 6 0000 7 0000 В 0000 9 0000 10 0000 11 ::юоо 12000031FF13 1:} OOOJ AF 14 0004 F'В 15 0005 DЗ Fo 16 0007 DЭ F1 17 0009 DЭ F2 18 ооов :,2 00 10 19ОООЕJ20110 200011J20210 210014J2OJ10 22 0017 JC 230018JZ0410 : ПРОГРАММА ДЛЯ ВВОДА ДАННЫХ с КJ!АВИАТУFi,1. и ЗАПИСИ НА ;:щеп. :***** ПГОГРАММИСТ:д~;LИМ J\QФФРОН В-28-79 ***"*"'"*"*'*"•• * O:ZG 00 УСТАНОВИТЬ НАЧ, АДРЕС : СНАЧАЛА МЬi ДОЛЖНЫ ИНИl..;,ИАJ!ИЗИРОВАТЬ !3СЕ m:Р'ЕМЕН!-ЬlЕ LXI ХЧА 1'.:I оuт оuт оuт STA STA STA SТА IlЩ STA Sl', 1 )F1''Н А о}'он 0У1н OF'2H КТIМЕ Ш'LAG К\VGHT КС01ЛР А К,{0'1{ ИН'11.U1АЛИЗИРОВАТЬ УКАЗАТ!,;JJЬ СТЕКА НАЧ.ЗНАЧ, ФЛАЖНОВ,ОБНУЛ, АККУМУЛЯТОРА ВОЗМОЖНЫ. ПР~РЬlВАНИЯ шв~,;сти ноль НА .1щcruш,i УСТА!ЮВИТЬ ДИСПЛЕli=оооооо КТIМЕ=О CFLAG=u КWGHT=O КСОМl'=О АКi<УМУЛЯТОР= 1 24 001В * кю,v=ооооооо 1 25 ОО1В "'· 26 001В * ТЕПЕFЬ УСТАНОВИМ АДРЕСА ПЕРЕМ!!.'Н11,1.Х 27 ОО1В * 28 001в :ктrмь: EQU 29 001В CJ''JJAG EQU ЗО001В ,,•, КWGHT _i;QU J1ОО1В КСОМР :eQU :J2 001В КJ10W ЩU :JЭ 001 В N!-IOW EQU :J4 001В * 35 001В * 1ОООН КТIМЕ+1 Cl•LAG+1 КWGHT+1 Kl\JMP+1 K'!uW+1 :Jб 0018 ******* ДAJIEI,; НАЧИНАЬ:ТСЯ ПРОГРАММА****"**""**" .. **" *"***** 37 001В * :ЭВ ОО1В * НАЧАЛО РИСУНКА 4,20 :J9 001В _.. 40 001В CD ЕВ 00 SIOW 41ОО1ЕCDDB00 CALL ORaW CALL СОLМ LDA Cr'LAG CPI ООН JZ SROW CALL XEYW :ВЫВЕСТИ АКТИВНУЮ CТPQt{Y :ВЫЗВАТЬ ПОДПРОГ, ОБР, СТОЛБЦА НВОБХОДИМ:0 ПРОm:РИТЬ ФЛАЖОrt СТОЛБЦА ПРОВЕРИТЬ СТОЛБЕЦ НА АКТИВНОСТЬ СТОЛБЕЦ НЕ АКТИВЕН,ПРОI1⁄4РИТЬ ЦИКЛ СТОЛБЕЦ АКТИВЕН,l<АКОl'J ИМЕН!Ю??? 420021ЗА0110 43 0024 FE 00 440026СА1В00 450029CDВ100 46 ОО2С 47 002С 4В ОО2С .9 ОО2С 50 ОО2С 51 002С 52 002С 5J ОО2С 54 002С 55ОО2СЭА0010 56 002F 57 002F 5В OQ2F 59 002F '60 Оо2.1!' FE 00' * * Ю)НJЩ РИСУНrtА 4. 20 ·НАЧАЛО РИСУНКА 4 . 2 1 * *******'... И!,\ЕЕМ АКТИВНУЮ КЛАВИШУ **""Н**"~**""*'**'""""* * ""***""* (ШАГ 1) * LDA XTIME ПОВТОРШ~ IJ,l:30B КТП4Е из ПАWlТИ ... """*""'*(ШАГ .2) KTIМE=Q?? Рис. 4.24. Программа ввода .информации с клавиатуры и вывода ее на ин­ дикатор.
610031СА5В00 62 оон JZ KCL01 6) 00)4 64 00)4 65 00)4 66 оон 670034ЗА0210 68 оон 41'' •69ооз8ЗАаз10 .7000JBВ9 71ОО)ССА4600 72 00JF' 73 OO)F 74 оозF 75 00JF AF 760040)20010 77 0043 С) 66-ОО 78 0046 79 0046 80 0046 810046зл0010 82 0049 JC 83004АJ20010 84 004D 85 004D .86 004D 87 004D F,; З2 88 004J-' С2 66 00 89 0052 CD 61'' 00 900055CDА700 910058С)!В00 92 ОО5В 93 005В 94 0058 RE ПЕРЮИ РА-0 *. ******(ШАГ 7} * LDA КWGHT моv С,А LDA КСОШ' СМР с JZ KCLQ2 .. ******(ll!AГ 8) ,. ХНА А STA KTIME JiliP KCLOJ * ******(ШАГ 9) * LDA КТIМЕ: INR А STA KTIME * ******(ШАГ 10) * CPI 50 JNZ KCL(}J CALL K0J1N CAI,L КОUТ JMP SR0W * **** .. *(ШАГ З) * 95 ОО5В ЗА 02 to KCL01 96ОО5Е)2аз10 LDA КWGHT ИА ксоМР 97 0061 98 0061 99 0061 100 0061 JE 01 101 006) )2 00 10 102 0066 103 0066 104 0066 * MVI _А101 SТА .КТIМЕ *"**** (WАГ 5) * 105 0066 JE 01 КСLОЗ MVI STA А01 кfюw 106 0068 J2 04 10 107 006В 108 ОО6В 109 ОО6В 110 ОО6В С) 1В 00 111 006Е 112 ОО6Е * ****'*(ШАГ 6) * JМF sвow * * ДА I ЭТО ПЕРШЙ РАЗ КАКАЯ ЦИФРА ВЫЛА НАВРАНА??? РЕГИСТР С=КWGНТ РЕГИСТР А=КСОМР KCOMi'=КWGHT?Тl' дл,они РАВНЬI ! 11 ани НЕ РАВНЫ ПЕРЕЗАПИСАТЬ КТIМЕ :ИДТИ НА ПЕРЕЗАГРУЗКУ АКТИВ.НАВОРЛ Ji!ЫЗВАТЬ KTiщbl ,тз ПАМЯТИ KTIМE=KTIМill+1 КТI.МН:=КТIМd+-1' KTIME=50??? ЕЩЕ НЕ50 . ПРОВЕРИТЬ ГОТОВНОСТ1'ПУЛЪТА• ВЫДАТЬ НА ПУЛЬТ НАЗ'АД К НАЧАЛУ ХСОМР=КWGН!J!-. УСТАНОВИТЬ КТIМЕ=t УСТАНОВИТЬ АКТИВ.НАВОР=ОООО0001 :ИДТИ К IfAЧAJJY ПРОГР.Alv!l,l,l • 11:з оо6Е ............... *** ............ ., ...................... *......» ..........,* ..........****......11- .. 111'*1'- °tЦ ОО6Е * 115 ОО6Е НАЧАЛО ПРОГР .АМW 116 ОО6Е * 117 ОО6Е .... .... ..... . . ,. .... ..... .... ..... .... ..... . ******».. ** ~»***~**** .. *** .... ** ... . * . 118 оо6Е * 119 оо6Е * 120 00§.Е ..
121 ОО6Е 122 ОО6Е 123 ОО6Е 124 ОО6Е 1 25 ОО6Е 126 ОО6Е * ПРОГРАШlА подготовки шrлътл * . *****************************************,*'**************** * 127 ОО6Е ЗЕ 01 128 0070 )2 04 10 129 0073 ЗD 130 0074 )2 05 10 1)1 0077 1)2 0077 13) 0077 134 0077 З2 оо 10 ****"*СШАГ 1) * КОРN * MVI А,01 SТА КROW DCR А STA NR0W ******(ШАГ 2) * STA КТIМЕ 1)5 007А * 136 007А *"****<ШАГ 3) 1)7 ОО7А * 138 007А CD ЕВ 00 K0PN1 CALL 0R0W 1)9 007D * 140 007D ******(ШАГ 4) 141 007D * 142 007D CD DB 00 14) 0080 144 0080 145 0080 146 0080 ЗА 01 10 147 008) FE 00 148 0085 02 6Е 00 149 Q088 1 50 0088 151 0088 152 0088 )А 05 10 153 008g зс 154 ОО8С )2 05 10 155 0081!' 156 008F 157 0081'' 158 oo8F FE о5 159 0091 С2 7А 00 160 0094 161 0094 162 0094 163 0094 ЗА 00 10 1640097JC. 165 0098 )2 00 10 166 009В 47 167 0090 1бВ О09С 169 ОО9С 170 О09С AF 171 009D )2 05 10 172 ООАО 17) ООАО IH ООАО 175 ООАо JE )2 176 ООА2 В8 177 ООА) С2 7А 00 178 ООАб 179 ООА6 180 ооАб CALL СОLМ * ****"* (ШАГ 5) * * LDA C}'LAG CPI 00 JNZ K0PN ****** (ШАГ 9) * * LDA NR0W INR А STA NRQV{ ******(ШАГ 10) * * СР]: 05 JNZ K0PN.1 ****"*(ШАГ б) * * LDA КТIМЕ INR А STA КТIМЕ Моv в,А ******(ШАГ 6А) * XRA А STA NR0W * *****"(ШАГ 7) * * МVI А1 50 СМР. В JNZ K0PN1 ******(ШдГ 8) * KROW=ooooooo1 NRoW=oooooooa KTIME=Q ВЫВЕСТИ НАБОР ВВЕСТИ ДАНШЕ СТОЛБЦА. ВВЕСТИ CFLAG CFLAG=o?? ПУЛЬТ ЕЩЕ НЕ СВОБОДЕН ВВЕСТИ АКТИВНЫЙ НАВОР ЗАПИСАТЬ АКТИВНЫЙ НАБОР СКАНИРОВАНИЕ НЕ ЗАКОНЧЕНО~ РЕГИСТР Б=КТIМЕ ЗНАЧЕНИЕ НАВОРА=О КТIМЕ=5О??? НЕТ 1 СКАНИРОВАНИЕ ЕЩЕ РАЗ.
181 ООА6 С9 182 ООА7 18) ООА7 184 ООА7 185 ООА7 186 ООА7 187 ООА7 188 ООА7 189 ООА7 190 ООА7 191 ООА7 * 11ЕТ ШХОД ИЗ ПОДПРОГРАМW ПОДГОТОВКИ .. *********************************************************** * * ПОДПРОГРАIША КОUТ * : ЭТА ПОДIIРОГРАWА lf!ВЕДЕТ ДАННЫЕ С ПУЛЬТА НА ДИСПЛЕЙ *********************************************************** * 192 ООА7 )А 02 10 КОUТ 19) ООАА D) FQ LDA оuт оuт оuт RET КWGHT оFон QF1H О1''2Н ДАНЩЕ С ПУЛЬТА В АККУМУЛЯТОРЕ 194 ОоАС D) FI 195 ООАЕ D) F2 196 ООВО С9 197 ООВ1 198 00В1 * ************************************************************ 199 ООВ1 * 200 QOBI 201 ООВ1 ПОДПРОГРАММА КЕУW * 202 ООВ1 • ЭТА ПОДПРОГРАJ4Ш. УСТАЮВИТ ЗНАЧЕНИЕ НАЖАТОЙ !(ЛАВИJПИ 20) ООВ1 * 204 00В1 ,, 205 00В1 206 ООВ1 * •***** БЛОК-СХЕl,(А ЭТОЙ ПРОГРАММЫ НА РИС.4.18 207 00В1 208 0001 * ******(ШАГ 1) * 209 00В1 210 00В1 211 ООВ2 212 00В5 21) ООВ5 АУ КЕУW ХВА А ОБНУЛИТЬ ФЛАЖКИ И АККУМУЛЯТОР ПРИНЯТЬ ФЛАЖОК СТОЛБЦА ИЗ ПАМЯТИ )А0110 214 ООВ5 215 00В5 Об 00 216 00В7 217 00В7 218 ООВ7 219 00В7 1F 220 ООВS FE 00 221 ООВА 222 ООВА 22) ООВА 224 ООВА СА С1 00 225 OOBD 226 OOBD 227 ООБD 228 OOBD 04 229 ООВЕ СЗ В7 00 2)0 ООС1 2)1 ООС1 2)2 ООС1 LDA CFLAG * ******<ШАГ 2) * :М:VI В100 * ****** (ШАГ ) ) * КEYWt RAR CPI 00 * ******(ШАГ 4) * JZ КЕУW2 * ****** (ШАГ 5) * INR В JМР КEYWI * ******(ШАГ 7) * КЕУW2 XRA 2ЗЗ ООС1 AF 2)4 ООС2 )А 04 2)5 ООС5 10 LDA А кюw 2)6 ООС5 237 оос5 2)8 ООС5 0Е 00 2)9 ООС7 240 ООС7 * ******(ШАГ 8) * .МVI С100 * ******(ШАГ 9) ОБНУЛИТЬ СЧЕТЧИК СДВИНУТЬ ВПРАВО НА 1 ВИТ 10 В D7 FЕГИСТР В=о,1 ,2,э,4 (ШАГ 6) УБЕJ;ичить ЗНАЧ.СЧЕТ, и идти ш ПОВТОР ОБНУЛИТЬ ФЛАЖКИ IЗЬIЗВАТЬ АКТИВНЫЙ НАВОР ОВШ'JIИТЬ СЧЕ'ХЧИК Т2
24t 0007 242 0007 1F 2 4З 0008 Jl'E 00 244 ООСА 245 ООСА 246 ООСА 247 ООСА СА DI 00 248 OOCD • 249 OOCD 2~0 OOCD 251 OOCD ОС 252 ООСЕ CJ С7 00 25З OOD1 254 OOD1 2~5 OOD1 256 OOD1 AF 257 OOD2 78 258 OOD) 17 259 оощ 17 2 60 OOD5 8() 261 OOD6 81 262 OOD7 26J OOD7 2 64 OOD7 265 OOD7 )2 02 10 266 OODA 267 OODA 268 OODA 269 OODA 270 OODB 271 OODB 272 OODB 27) OODB 274- OODB 275 OODB 276 OODB 277 OODB 278 OODB 279 OODB 280 ооDв 281 OODB 282 OODB 28) OODB 284 OODB 285 OODB 286 OODB AF •287ObDCЗ20110 288 ooDF 289 OODP 290 OOD}' 291 OODF' DB FE 292 ООЕ1 293 ООЕ1 294 ООЕ1 295 ООЕ1 Fб ЕО 296 оо~з 297 OOEJ 298 OOEJ 299 ООЕ) FE 11' .i:~ )00 ООЕ5 СВ * КЕУWЗ RAR CPI 00 * ******(ШАГ 10) * JZ КЕУW4 * ******(ШАГ 14) * INR с JМР Ю:YWJ * ******(ШАГ 11) * КЕУW4 XRA А моv л,в :RAL ]Щ, ADD В· ADD о * **Н**(ШАГ 12) * STA КWGНТ * ******(ШАГ 1)) * RET * СДВИГ ВRРАВО НА 1 БИТ ,о В D7 ЕСЛИ О I ТО :ВЫПОЛНЕНО УВЕЛИЧИТЬ ЗНАЧЕНИЕ СЧЕТЧИКА, ИДТИ НА ПОВТОР ОБНУЛИТЬ ФЛАЖКИ АЮ<УМУЛНТОР=СЧЕИЧИК СТОЛБЦОВ (TI) В*2 В*4 В*5 (В*5)+с=О-24 ВЪlЙТИ ИЗ ЭТОЙ ПОДПРОГРАШЯ ******************************************************"*** * * ПОДПРОГРАММА СОLМ * * ЭТА ПОДПРОГРАММА ОПРЕДЕЛИТ АКТИВШЙ СТОЛБЕЦ, * ЕСЛИ ОН СУЩЕСТВУЕ':С * ********************·************************************** * * ЭТА ПоДПРоГРАММА-РИС.4 .1 5 * ********************************************************** * ******(ШАГ 1) * CQLM XRA А STA CFLAG УСТАНОВИТЬ ФЛАЖОК СТОJIБЦА=() * ·******(ШАГ 2) * IN оF1'Н ВХОДНЫЕ ДАННЫЕ ИЗ ПОРТА FE- * ******(ШАГ J) * ORI О}'ОН * ******(ШАГ 4) * CPI OJl'EЯ RZ ШАГ (4А)
,0 1 ООЕб ЗО2 ООЕб ЭОЗ ООЕб ЗО4 ооЕб 2F ЗО5 ООЕ7 ЭОб ООЕ7 ЗО7 00}!;7 ЗОВ ООЕ7 З2 01 10 ЗО9 00.ЕА С9 * ******(ШАГ 5) * СМ:А * ******(ШАГ б) * STA C:Ь'LAG ЛЕТ 310 ООЕВ * ИНВЕРТИРОВАТЬ ДАНН!:il.Е УСТАНОВИТЬ ФЛАЖОК СТОЛБЦА JШИТИ ИЗ ЭТОЙ ПОДПРОГРАММЬl З 11 ООЕВ ************************·***********************************• З12 ООЕВ * З 1J ООЕВ * ПОДПРОГРАММА ВЫВОДА .АКТИВНОГО НАБОР А НА ПУЛЬТ ЭЦ ООЕВ * З 15 ООЕВ * ИМЯ :ЭТОЙ ПОДПРОГР.АМW-ОRJW З16 ООЕВ * З 17 ООЕВ * ЭТО РИС,4.12 З18 ООЕВ * З19 ООЕВ **************"""**********"******************************* З20 ООЕВ ************************************************"********** З21 ООЕВ * )22 ООЕВ * РИС,4,12-ПОДПРQГР.АММА К РИС,4,10 В МНЕМОНИКЕ 8080 )2) ООЕВ * З24- ООЕВ *********·*******************·******************************** 325 ооЕе * З2б ОоЕВ * 327 ООЕВ ЭА 04 10 0ROW LDA KHOW )28 ОоЕЕ * З29 ООЕЕ ******(ШАГ 2) ЭЭО ООЕЕ * )J1 ООЕЕ FE 10 зз2 ooFo с2 Fз оо ЗЭЗ OQF) зн ооFэ ЗЭ5 OOF) ЗЭб 001<'3 ЭЕ 01 ЭЭ1 ooF5 С) F9 00 * CPI tон JNZ 0ROW1 ****** (ШАГ 2А) * мvr А,О1Н JJЛP ST) эзв ooFs * ЗЗ9 OOF8 ****** (ШАГ 2В) НО OQF8 * Ht ooFs 07 OIOW1 m,c З42 OOF9 * Э 43 ooF9 ****** (ШАГ З) 34-4 OOF9 * З45 00F9 )2 04 10 SТЗ STA KH0W З46 ooFC * З47 ooFC ******(ШАГ 4) 34s ooFc * )49 QOFC 2F СМА з5о ooFD )51 OQ}'D З52 ooFD З5Э ooFD D) FE 354 ooFF )55 ooFF )56 ooFF )57 ool!'F С9 З58 0100 З59 0100 Збо 0100 З6t 0100 Э62 0100 о .SRRORS * ******(ШАГ .5) * • ОUТ ОFЕН * ****** (ШАГ 6) * RET * END :22 ~У.МВОL." ПOBTOPIJ,l~ вызов АКТИВНого·НАБоРА СКАНИРОвАНИЕ: НАБОРА ЗАНОНЧЕНО??? ЕСЛ11 НЕТ, ТО _ШАГ 2В IТh"'РЕМЕСТИ'l'Ъ АКТИВННЙ НАБОР ИДТИ НА ШАГ Э СДВИНУТЬ ДAHIJ,IE ВЛЕВО,о В DO СОХРАНИТЬ АКТИВНЫЙ. НАБОР ИНВЕРТИРОВА,;'Ъ СЛОВО НАБОРА ШВЕСТИ .АКТИВНЫЙ НАБОР В ПОРЖ FE IХРЕДЛОЖЕНИЕ END АсСЕМВJ!ЕрА
LF426 0001 ООО 2 ООО) 0004- 000 5 0006 0007 0008 0009 0010 0011 0012 001) оон. 0015 0016 0017 0018 0019 0020 00 21 00 22 00 23 00 24- 00 25 00 26 00 27 00 28 00 29 0030 0031 00 32 ООЗJ со )4- 00 35 оо 36 0037 0038 0039 004-0 004-1 004-2 ООО ООЦ 004-5 0046 0047 0048 0049 00 50 00 51 00 52· 00 53 00 54- 00 55 00 56 00 5"( 00 58 Т=ООО') IS ON • CR00020 USING ООО 71, BLKS R:;:1410 } t PAGE 1 Ji'425 WED ОСТ ОЗ,1979 11:22:42.58 00001 0000 2 0000'3 00004- *************************************••*****~***** * * ПРОГРАММА ВВОДА С КЛАВИАТУРJl И ЗАПИСИ НА m:cп.iIEЯ * ДЛЯ 6800 . • ********** ПРОГРАММИСТ ДЖW,( КОФФJ.>ОН ************** 0000 5 00006 * . . 0000 7 0000 8 00009 FCOO ООО 10 * * NAM F425 ORG .SFCOO УСТАНОВИТЬ НАЧАЛЬНЫЙ АДРЕО В ПАМЯТИ 00001 ООО 12 00013 ООО 14 * ВО-ПЕРВЫХ ИНИЦИАЛизИРУЕМ ВСЕ ПЕРI::ЫЕННШ: * FCOO 8Е 1З FF ВEGIN LDS -#S 1 З FF ИНИЦИАЛИЗАЦИЯ УКАЗАТЕЛЯ СТЕКА FC03 86 00 LDA А -#SOO НАЧ. ЗНАЧЕЮIЯ ФЛАЖКОВ, ООО15FOO5О1 Ю 00016, FC07 О 1 F1 ООО17 FC09О1 F2 ООО 18 FCOB ВТ ЮОО ООО19 FCOE В7 100t ООО 20. FClt В7 100 2 ООО 21 FC14 В7 ЮС) ООО22FCI7 4-С 00023 FC18 Е7 1004 ООО 24- * ) STA А 11sro STA А 11SF1 STA А #SF2 .:,ТА А КТIМЕ STA А CFLAG STA А ПGНТ STA А КСО.МР INC А STA А КROW О БНУJ!ЕНИЕ Аl{.l{.У/ОЛЯТОРА ВЫВЕСТИ НОЛЬ НА ДИСПЛЕЙ УСТАНОВИТЬ т:сnлsй в ноль КТПIЕ=О CFLAG=O KWGHT=O КСОМР=О J,ККУМУЛЯТОР = 1 KRO W=OOOOOOO 1 ООО 25 * ооо 26 * '!ЕГЕРЬ УСТАНАВЛИВАЕlL АДРЕСА ПЕРЕNo!IНШ ООО 27 * ООО 28 1000 КТIМ& EQU ООО 29 100 i CFLAG EQU ООО JO 100.2 KWGHT EQU ООО 31 \00 3 КС')МР EQU ООО J2 100 4- КROW EQU ООО JJ 100 5 NROW EQU ооон ... 000)5 * S\000 КТП.!Е+t CFLAG+1 KWGHT+t КСОМР+1 KROW+1 00036 ***** ТЕПЕРЬ-СТАРТ ПРОГРАШШ ********************** ООО З7 * ООО J8 * ООО J9 * ООО 4-0 FC IВ BD FCF2 SROW 00041 FCIE BD FCDF 0004-2 FC2t lJ6 1001 ООО 4-З FC24 81 00 ОООН FC26 27 F) FC28 BD FCAD * * * *... НАЧАЛО IOIC~-4, 20 JSR ORoW ВЫВЕСТИ АКТИВНЫЙ НАВОР JSR СОШ ВЫЗВАТЬ ПОДПРОГРАМ!U СОLИ LDA А CFLAG НЕОВХОЩП.0 IJp,()J3iPИTЬ ФЛАЖОК С~Р А 11S00 ВЕQ SROW JSR КЕУW К~НЕЦ рис.4. 20 НАЧАЛО рис·,4 . 21 СТОЛБЦА ПРОВЕРИТЬ АКТИВНl)СТЬ СТОЛБЦА НЕ АКТИВН3.li СТОJIВSЦ ,ПОВl'ОРИ'IЪ ЦИ·КЛ 11ктивны11 стоJiв1щ 1клкоа и:.вш~оt ООО 4-5 00046 0004-7 0004-8 ООО 4-9 ООО 50 00051 ООО 52 ООО 53 ООО 5~ ***** ПУЛЬТ /IRТИВЕН "· *********************••··· '* . .. ******(ШГ 1) * Рис. 4.25. Программа иа языке ассемблера микропроцессора 6800, П}JеJU183И8- ченная J.JIЯ авод.а 11Иформацки с хпавиатуры II аwаод.а ее иа ивuкатор.
Q059 t PAGE 2 F425 WED ОСТ. ОЗ,1979 '0060 11:22:42.58 '0 061 0062 00 бЗ 00055 Fс2в Вб 1000 0064 00056 0065 00057 0066 00058 0067 00059 . 00 68 ООО 60 FC2E -81 -0() 0069 00061 Fсзо 21 25 ' 0 070 00062 ' 0 071 00063 0072 00064 0073 00065 оон 00066 • 0075 ООО 67 :l!'C:J2 Ffi 1002 0076 00068 FC35 В6 100) 0011 ооо 69 :l!'CJ8 11 0078 00070 FC39 27 08 0079 00071 • 0080 00072 10081 00073 · 0082 00014 Fсэв 86 оо 008) 00075 FC)D В7 1000 0084 00076 :l!'C40 ТЕ FC62 0085 00077 008 6 00078 0087 00079 LDA А КТП4Е * * ******(ШАГ 2) * C!ilP А #S00 БЕQ KCLOI * *** НЕ ПЕРWЙ РАЗ ****** (ШАГ 7) * * LDA В КWGНТ LDA А KCO/IIP СВА BEQ KCLC>2 ****** (ШАГ 8) * * LDA А #S00 STA А КТIМЕ JМР KCLC>3 ****** (ШАГ 9) * 0088 00080 FC43 В6 1000 KCL02 LDA А КТIМЕ 0089 00081 FC,16 40 INC А 0090 00082 FC47 Б7 1000 STA А "KTIME 0091 00083 0092 00084 009) 00085 0094 00086 FC4A 81 )2 0095 00081 Fc4c 26 ц 0096 00088 F:ЩЕ BD FC6A 0097 00089 FC51 BD :F'CA3 0098 00090 FC5 4 7Е :F'С1Б 0099 00091 0100 00092 0101 00093 * ******(ШАГ 10) * * СМР А #50 BNE KCL03 JSR К,JPN JSR КОUТ JМР SROW 0102 00094 FC57 Бб 1002 KCL01 LDA А кwант 010) 00095 :l!'C5A Б7 1003 STA А KCuMP 0104 00096 0105 00097 0106 00098 0107 00099 FC5D 86 01 0108 00100 FC5F В7 1000 * LDA А #S01 ST А А КТI.IIE 0109 00101 * 0110 00102 *"'****(ШАГ 5) 0111 00103 * . 0112 00104 FC62 86 01 KCI.()3 LDA А #SQ1 0113 00105 FC64 В7 1004 STA А КROW 01 ц 00106 * 0115 00107 ******(ШАГ 6) ПЕРЕЗАГРУЗИТЬ КТIМЕ ИЗ ПАМЯТ~ KTI}(E:;:QTT ДА,зто ПЕРШЙ РАЗ КАКАЯ ЦИФРА ВЫЛА НАВРАНА??? РЕГИСТР А=КСОМР СРАВНИТЬ ДВЕ ВЕЛИЧИШ ДА 1 ОНИ Plill!li ОНИ НЕ PAВ!J,I ПЕРЕЗАПИСАТЬ КТIМЕ ИДТИ НА ПЕРЕЗАГРУЗКУ АКТ.НАБОР.& ВЫЗВАТЬ КТIМЕ ИЗ ПАМЯТИ ктrМЕ=КТIМЕ+ 1 КТIМЕ=КТIМЕ+ 1 КТIМЕ=50?? ЕЩЕ: НЕ 50 ПРОВЕРИТЬ ГОТОВ!ЮСТЬ ПУЛЬТА ВЩАТЬ НА ПУЛЬТ НАЗАД I< НАЧАЛУ KCullll·=К:WGHT УСТАНОВИТЬ КТIМЕ=1 УСТАНОВИТЬ АКТ.НАВ.=00000001 0116 00108 * 0117 00109 FC67 7Е :l!'C1B JМР SROW ИДТИ НА НАЧАЛО ПРОГРАWШ 0118 1 PAGE 3 F425 WD ОСТ 03 1 1979 11:22:42,58
0119 0120 0121 01·22 00110 012J 00111 0124 00112 0125 0011J 0126 00114 0127 00115 0128 00116 0129 00117 0130 00118 01)1 00119 01J2 00120 01JJ 00121 0134 00122 0135 00123 0136 00124 01)7 00125 0138 00126 0139 00127 0140 00128 0141 00129 0142 00130 0143 00131 0144 00132 РСбА 86 }'С6С В7 }"C6F 4А }'С70 В7 01 1004 1005 0145 001J3 F'С7З В7 1000 0146 00134 0147 00135 0148 00136 0149 00137 :Е'С76 BD FC}2 0150 00138 0151 00139 0152 00140 0153 00141 Fc79 BD FCDF 0154 00142 0155 00143 0156 00144 0157 00145 о158 00146 0159 00147 016000148 0161 00149 01 62 00150 0163 00151 01 64 00152 0165 00153 01 66 00154 016700155 016800156 }'С7С В& 1001 }"С7}" 81 00 }СВ1 26 Е7 }"С83 В6 1005 }СВ6 4С 1''С8 7 В7 1005 0169 00157 FCBA Bi 05 0170 00158 FCBC 26 Е8 0171 00159 0172 00160 01 73 00161 0174 00162 0175 00163 0176 00164 FC8E В6 1000 FC91 4С F'C92 В7 1000 * * *** ** * * **** **·** * * ** *** * * *** ** ************ **** ****** . * ** .... * НАЧАЛО ПРОГРАММЫ *************'***************** * ..........* .. .****************************************** ~ * * РИСУНОК 4. 22 ПОДПРОГРАММА ПОДГОТОВКИ ПУЛЬТА .... *** **** * .. ****************************************• * •***** (ШАГ 1) .. KOPN LDA А #S01 STA А КROW DEC А S1'A А NROW STA А ктrм,,; * ******(ШАГ 3) * KOPNl JSR OROW . **''"(ШАГ 4) х Jc,H СОLМ • ***'**(ЫАГ 5) .. LDA А C~'LAG C!ilP А -#00 J3NE KOPN **** .. "(ШАГ 9) * LDA А NROW INC А STA А NFcOW •** .. **(ШАГ 10) * СМ!:' А #05 BN.I ,; KOPN1 * ******(ШАГ 6) * LDA А КТIМБ INC А Ш'А А KTIМi KROY,= 00000 001 NROW=oooooooo KTI!.li:=O ВЬiВiСТИ НАБОР вш,;сти ДАНШЕ СТОЛБЦА ВВЕСТИ спм; CF'LAG=O?? ПУЛЬТ Е!Щi: НЕ СВОБОДЕН ВВЕСТИ АКТИВНЫJl НАБОР ЗАПИСАТЬ АКТ.ИВНЫ~i НАБОР СКАНИРОВАНИЕ Ю: ЗАКОНЧЕНО 0177 1 PAG,,; 4 F425 WED ОСТ 03 1 197, 11:22:42,58 0178
0179 1()180 ' 0181 00165 FC95 F6 1000 •0182 00166 0183 00167 {)184 001 68 0185 00169 FC98 86 00 ,0186 00170 FC9A В7 1005 • 0187 00171 ()188 00172 0189 0017) 0190 00174 FC9D 86 32 0191 00175 Fc9F 11 0192 00176 FCAO 26 D4 019) 00177 0194 00178 0195 00179 0196 00180 FCA.2 Э9 • LDA В КТIМЕ * ******(ШАГ бА) * * LDA А #00 STA А NROW ****** (ШАГ 7) * * LDA А #50 СВА BNE KOPN1 ****** (ШАГ 8) * RTS 0197 00181 * 0198 00182 * РЕГИЩ'Р В=Кf!МЕ ЗНАЧЕНИЕ НАВОРА=О КТIМЕ=50?? НЕТ 1 СКАНИРОВАНИЕ ЕЩЕ РАЗ вы.ход из ПРоrРАМNo подrотовкн 0199 0018) ****""*"*"*"************""*************************** 0200 00184 * 0201 00185 1: * DОДПРОГРАММА КОUТ 0202 00186 * 0203 00187 * ЭТА ПОДПРОГРАММА ВЫ.ВОДИТ ДАННЬIЕ С ПУЛЬТА НА ДИСII.Л:Е:Й" {)204 00188 • * 0205 00189 *******"***"" *****~ ** .. . .. *• "*** "*** *""**"********""** 0206 00190 * 1 0207 00191 FСАЭ Б6 1002 КОUТ 0208 00192 FCA6 01 FO 0209 00193 FCA8 01 F1 0210 00194 FCAA 01 FZ 0211 00195 :Е'САС :,9 * LDA А КWGHT STA А #SFO STA А #SF1 STA А #SF'2 RTS ДАНШЕ С ПУЛЬТА В Ан.КУМУЛЯТОРi 0212 00196 021) 00197 0214 00198 *** ** **** Jt-lJE-** ** ** IJE-*JHt· *** Jt- *****·}НЕ·***•*********•*** **.1f * ::)215 00199 * ПОДПРОГРАМЫА КЕУW * 021 6 00200 021 7 00201 * ЭТА ПОДПРОГРАММА УСТАНОВИТ ЗНАЧЕНИЕ КЛАВИШИ 0218 00202 0219 0020) * ********К**•******•*•*********************•******** * 0220 00204 0221 00205 0222 00206 "***" влон-схr:МА этой ПОДПРОГРАММЫ НА РИС,4,18 * 022, 00207 0224 00208 0225 00209 FCAD 86 00 КЕУW LDA А #00 0226 00210 FCAF В6 1001 LDA А CFLAG 0227 00211 0228 00212 0229 00213 02)0 00214 FCB2 С6 00 02)1 00215 * 02)2 00216 **Н*"(ШАГ Э) 02ЭJ 00217 * 02)4 00218 FСВ4 47 КЕУW1 ASR А *****" (ШАГ 1) * * ******(ШАГ 2) * LDA В #00 НУЛЕВiЕ ФЛАЖКИ И АЮ<УМУЛЯТО~ ПРИНЯТЬ ФЛАЖОК СТ, ИЗ ПАМЯТИ ОБНУЛИТЬ СЧЕfЧИК СДВИНУТЬ ВПРАВО НА 1 ВИТ 1 ОВD7 02)5 0021!1 :Е'СВ5 81 00 СМР А #00 ·а2)6 1 ВА.GЕ 5 F425 WED ОСТ 0) 1 1979 11:22:42.58 0231 02)8
f()2J9 ·- ( )240 00220 1<'СВ7 J1 - 0241 00221 ()242 00222 {)24J 0022) Q244 00224 l'СВ8 27 05 0245 00225 0246 00226 FСВА JJ • 0247 00227 0248 00228 0249 00229 1''СВВ 5С 0250 оо,эо ~-:свс 7Е }'СВ4- 0251 002) 1 0252 002)2 025) 02JJ PSH в "******(ШАГ * 4} BiQ liliYW2 * PUL в _.,.,.,.,.*(ШАГ 5) * INC в JJ.!J:' IШYWI * ******(ШАГ 7) * 0254 002)4 FCBF 86 00 КЕУW2 LDA А #00 0255 002)5 Fcc1 В6 1004- LDA А KROW 0256 002)6 * 0257 002)7 *<Н**(ШАГ 8) 0258 002)8 * 0259 002J9 J!'CC4, Сб 00 0260 00240 0261 00241 0262 00242 :026J 0024) FССб 47 0264 00244 FCC7 81 00 0265 00245 1''СС9 J7 0266 00246 0267 00247 :0268 00248 0269 00249 FCCA 27 05 0270 00250 0271 00251 1-ССС JJ 0272 00252 0273 0025J 0274 00254 FCCD 5С 0275 00255 1'"ССЕ 7:Ь: }'СС6 Ю276 00256 - 0277 00257 0278 00258 0279 00259 FCD1 JJ {)280 00260 J,'CD2 J2 :0281 00261 FCDJ J7 .Q282 00262 FCD4 J6 028) 0026J FCD5 48 Q284 00264 FCD6 48 ,0285 002 65 FCD7 JJ 0286 00266 FCD8 1В 0287 00267 FCD9 JJ - 0288 002 68 FCDA 1В 0289 002 69 • 0290 00270 0291 00271 0292 00272 FCDB В7 1002 LDA В 4/0Q KEYWJ ASR А СМР А #00 PSH В * *"""**(ШАГ 10) * BEQ КЕУW4- * PUL li •"" •(ШАГ 14) ' INC в JMl- ' КJ::YWJ " "*''*'*(ШАГ 11) * КJ::YW4 PUL в PUL А PSH в PSH А ASL А ASL А. PUL в АВА PUL 11 АВА * ***""" (IIAГ 12) * S.TA А КWСJНТ * *"*11** (ШАГ 1)) B:R~G=011,21J14(ШAГ 6) УВЕЛИЧИТЬ ЗНАЧ,СЧ, И ИДТИ: Я1 ПОВТОР ОБНУЛИТЬ ФЛАЖКИ ВЬI.ЗВАТЬ АКТИВНЫЙ НАБОР ОБНУЛИТJ. СЧЕТЧИН Т2 СДВИГ ВПРАВО НА 1 ВИТ10 В DT ЕСЛИ О I ТО ВЫПОЛНЕНО УВ,;JIИЧИТЬ ЗНАЧЕНИЕ СЧЕТЧИКА ИДТИ НА ПОВТОР РЕГИСТР В=Т2 АККУМУЛНТОР=СЧЕТЧИК СТОЛВЦОВ/rI/ Т1*2 Т1*4- Т1* 5 (TI*5)+Т2 029) 0027J - «)294 00274- 0295 1 FAGi 6 1'42? WE) ОСТ 0J,1979 11:22:Н,58 ~296
0299 00275 0300 00276 FCDE 39 0301 00277 0302 00278 030) 00279 0)04 ()Q280 0)05 00281 OJ06 00282 0)07 0028) 0)08 00284 0)09 00285 0)10 00286 0)11 00287 0)12 00288 0)1) 00289 О) 14 00290 0315 00291 0)16 00292 0)17 0029) FCDF 86 00 0)18 00294 FCE1 В7 1001 ОЭ 19 00295 0)20 00296 0)21 00297 0)22 00298 FCE4 86 FE 0)23 002 99 0)24 00)00 0325 00)01 0)26 00)02 FCE6 8А ЕО 0)27 00)03 0)28 00)04 0)29 00)05 03)0 00)06 1"СЕ8 81 FF 03)1 00)07 FCEA 26 01 0))2 ОUЗО8 FCEC 39 03)) 00)09 О)Н 00)10 0335 00)11 0))6 00312 FCED 43 0)37 00) 1) 0))8 00)14 03)9 00315 0340 00316 FCEE В7 1001 0341 00)17 FCF1 )9 0)42 00)18 034) 00)19 0)44 00)20 0345 00)21 0346 00)22 0)47 00)2) 0)48 00324 0349 00)25 0350 00326 0351 00327 0352 00328 0)53 00329 0354 1 0355 0)~6 0357 03~8 003)0 FAGE 7 * RTS * а~йти из этой ПОдпРОГРАIОll *************************************************** * * * ПОДПРОГРАJОIА COIJ( * ЭТА ПОДПРОГРАММА ОПРЕДЕЛИТ АКТИВНЬIЙ СТОЛБЕЦ, * ЕСЛИ ОН ЕСТЬ• * *************************************************** * * * *************************************************** * ****** (ШАГ 1) * СОLМ * LDA А 41ОО STA А CFLAG *****"(ШАГ 2) * . LDA А #SJo'E * **'"*' (ШАГ J} " ОНА А ,и,SЕО " **..,.""(ШАГ 4) * * см:р А ,и,SFF BNE N!!iXT RТS ******(ШАГ 5) * NEXT СОМ А • ******(ШАГ 6) * STA А CFLAG RTS * УСТАНОВИТЬ ФЛАЖОК СТОЛБЦА=() ВВЕСТИ ДАН!НЕ ИЗ ПОРТА FE УСТАНОВИТЬ БИТЫ D5 1 D6,D7=1 ШАГ ( 4А) ИНВЕРТИРОВАТЬ ДАIП!ЫЕ УСТАЮВИТЬ ФЛАЖОК СТОЛБЦА ШЙ ТИ ИЗ ПОДПРОГР АЫ111l ***********************"************************~ * * ПОДПРОГРА!JW.1 В.ВОДА АКТИВНОГО НАБОРА НА ПУЛЬТ * * ИМЯ ЭТОЙ ПОДПРОГРАММЫ OROW * * * ************************************************• ************************************************• '11- WED ост 03,1979 11:22:42,58 * ВЕРСИЯ РИС.4.10 ДЛЯ 680()
юз 59 00:и:1 ·ОЗ 60 00332 0)61 00333 0362 00334 " **•*****....'*•***•***.« ***** * ~ ** *** ** * * *** *** ********--•• * " 0363 ООЗJ 5 FCF2 В6 1004 OROIV LDA А КЮW !ШЗВАТЬ АКТИВ!liЙ НАБОР 0)64 00336 * OJ65 00337 0)66 00))8 0367 00))9 FCF5 81 10 03 68 00340 1''CF7 2 6 05 0369 00)41 0)70 00)42 0371 0034) 0372 00344 FC}'9 86 01 • 0 3 73 003 45 FC]'B 7Е F'C}'J;" ,0 374 00)46 0375 00)47 0376 00)48 ·0 377 00349 Jo'C}'E 48 0)78 00)50 0379 OOJ51 0380 00) 52 * ШАГ ·2 СМР А ,и,s10 БNЕ СЖОW1 * ШАГ 2А * LDA А ,и,SQt JШ' STJ * * ШАГ 2В " OR0'11 ASL А " *ШАГЗ * 0)81 00)53 }'CFF В7 1004 ST) STA А KROW .О)В2 00)54 " 03В) 00)55 0)84 00)56 0)85 00357 FDQ2 43 0386 00)5В - 0)87 00)59 OJBB 00)60 OJB9 00)61 FDQ) 01 FE 0)90 00)62 0)91 00)6) 0)92 00364 0393 00)65 FDQ5 39 * Ш·АГ 4 * СОМ А * ШАГ 5 STA А ,и,SF}' * * ШАГ 6 RTS СltАНИРОВАНИЕ НАБОРА ЗАКОНЧЕНО ЕСЛИ НЕТ I ТО 11АГ 2В ПЕРЕIIЕСТИТЬ АКТИВWЙ НАБОР ИДТИ НА ШАГ З СДВИНУТЬ ДАШШЕ ВЛЕВО 1 0 В DO СОХРАНИТЬ АКТ.НАБОР В IШ4ЯТИ ИНВЕРТИРОВАТЬ СЛОВО НАБОР А ВЬ!ВЕСТИ АКТИВ!ШЙ НАБОР В ПОРТFЕ 0394 00) 66 OJ95 00)67 0)96 0036В УСТАНОВИЫ ВЕКТОР ПОВТОРЮГО СТАРТА 0)97 00369 FFFE 0)98 00)70 FFFE Fcoo 0)99 00)71 * * ORG t'DB SJ,И'I!' BEGIN ****~************************************** .. ****** 0400 00)72 0401 OOJ7J 0402 00)74 040) 00)75 ,()404OOJ76 END ПРЕДЛОЖЕНИЕ ЕВР ACCEIIБJIEPA 0405 1 PAGE В 1''425 WED ОСТ ОЗ, 1979 11: 22:42,58 0406 ЩО7 '040В 0409 BEGIN Fcoo 0001) 00)70 0410 CFLAG 1001 00029 00316 00294 OO'Z10 00145 0004'Z 000)0 00019 0411 СОLМ FCDJ<' 0029) 00141 00041 {)412 KCL01 FC57 00094 00061 ·0413 KCL02 FC4) 00080 00070 0414 KCL03 FC62 00104 00087 00076 0415 КСОМF 1ООЗ 00031 00095 00068 0003Z 00021 Щ 16 КЕУW FCAD 00209 00045 0417 КЕУW1 FСВ4 00218 002)0 0418 КEYWZ FCВF 002)4 00224
144 Глава 4 0419 KEYWJ Fссб 0024) 00255 0420 КЕУW4 J,'CD1 ·00259 00249 0421 K0PN FСбА 00126 00147 00088 0422 K0PN1 FC76 00137 00176 00158 042) КОUТ F'CAJ 00191 00089 0424 KROW~ 1004 00032 00)53 00335 00235 00127 ooto5 000JJ 0002 0044~65 КТIМЕ 1000 00028 00165 00164 00162 00IJJ 00100 00082 00006 00075 ООО"'" 00029 00018 ~~ 0427 K~GHT 1002 0OOJQ 00272 00191 00094 00067 00031 00020 04 28 NExr }'CED 00312 0030 7 0429 NR0W 1005 000JJ 00170 0015J 00151 0012!} 0430 0RO\V PCF2 00JJ5 001 J7 00040 0431 0I!Q\V1 }CJ,'E 00)49 ООНО 04)2 SR0VI Fс1в 00040 00109 00090 00044, 04JJ STJ FCFF ООJ5Э 00)~5 4.13. Выводы В этой главе рассмотрены принципы ввода данных с клавиш­ ного пульта и вывода информации на цифровой индика1'ор. Рассмотренная нами микропроцессорная система не ориентиро­ валась на выполнение какой-либо практической задачи. Одна­ ко если принципы работы системы понятны, то к средствам проектирования добавилось еще одно, которое можно использо­ вать при проектировании небольших микропроцессорных си­ стем. В гл. 8 будет показано, как применять рассмотренные здесь принципы проектирования для решения практической за-. дачи- автоматического программирования ППЗУ. При этом будут использоваться клавишный пульт и индикатор, рассмот­ ренные в данной главе. Конечно, придется добавить· как- про­ граммные, так и аппаратные средства. Однако общие принципы организации функционирования клавишного пульта и индикато­ ра будут непосредственно применяться при проектировании, В гл. 5 нам предстоит рассмотреть методы отладки небольших микропроцессорных систем и методы поиска неисправностей в отказавшем оборудовании. Прежде чем переходить к изучению материала следующей главы, следует хорошо разобраться в вопросах, изложенных в данной главе.
Глава 5 ПРИМЕНЕНИЕ МЕТОДА ТЕСТИРОВАНИЯ СТАТИЧЕСКИМИ СИГНАЛАМИ ДЛЯ ОТЛАДКИ АППАРАТНЫХ СРЕДСТВ МИКРОПРОЦЕССОРНЫХ СИСТЕМ В настоящей главе рассматривается метод отладки аппаратных средств микропроцессорных систем. Этот метод может с одина­ ковым успехом применяться и для отладки опытных образцов только что сконструированных систем, и для систем, которые были в эксплуатации, но по каким-либо причинам утратили ра­ ботоспособность. Метод, используемый для отладки аппаратных средств, но­ сит название «тестирование статическими сигналами». Этот ме- · тод разработан автором. Идея его впервые была изложена в книге Understaпding and TrouЫeshooting the Microprocessor, Prentice Hall, 1980. Рассмотрим, как используется метод тести­ рования статическими сигналами для поиска неисправностей в аппаратных средствах микропроцессорных систем. 5.1 . Идея метода тестирования статическими сиrнаnами В первых четыре?( главах книги рассматривались различные во­ просы построения •микропроцессорных систем. В гл. 4 факти­ чески вьщолнялось проектирование системного программног0: обеспечения для систем, работающих под управлением микро­ процессора._. Основываясь на материалах указанных глав, точно· укажем состав технических средств микропроцессорных систем. В микропроцессорные системы входит восемь следующих ос- новных элементов: 1. Микропроцессор. 2. Адресная шина. 3. Двунаправленная шина данных. 4. Шина управления с логическими схемами и буферами~ 5. ПЗУ. 6. ОЗУ~ 7. Устройства ввода. 8. Устройства вывода. Отметим, Ч'l"О элементы 2-8 работают под управпеивеи микропроцессора. Действительно, микропроцессор генерирует' уnравляющие ••rналы, которые используются для управ.11еи~ц ра-боrо~ ЦЗУ, QЭУ и, усtрой~тв ввода-вывода. Буферн шин. 11-814
146 Глава 5 лишь временно сохраняют двоичную информацию, появляющую­ ·-СЯ на выходах микропроцессора. Все это является основанием к применению такого мощного средства отладки аппаратных -средств, как метод тестирования статическими сигналами. Теперь рассмотрим характеристики основных блоков аппа­ ратных средств. Все эти блоки имеют статическую природу, т. е. ,они не требуют периодического обновления в них информации с помощью специального механизма. Системные ОЗУ, которые предполагается использовать, являются статическими, а не ди­ намическими. Во многих небольших микропроцессорных систе­ м ах применяются статические ОЗУ. Приведем здесь два положения, касающиеся аппаратных средств, которые полезно знать: 1. Все периферийные аппаратные средства, такие, как ПЗУ, ОЗУ и устройства ввода-вывода, управляются микропроцессо­ ром. 2. Природа всех управляемых блоков аппаратных средств статическая. Рассмотрим, какую роль играют эти два положения при от­ ладке аппаратных средств с помощью устройства тестирования статическими сигналами. В качестве примера разберем поря­ док выполнения операции чтения данных из ПЗУ. Чтобы про­ читать данные из ПЗУ, микропроце<::сор должен выполнить сле­ дующие четыре действия: 1. Подать адрес на адресную шину. 2. Подготовить шину данных к приему данных. 3. Подать сигнал ЧТЕНИЕ и сигнал выбора кристалла. 4. Снять сигнал ЧТЕНИЕ и сигнал выбора кристалла. Проведем подробный анализ каждого из перечисленных дей- ·ствий. В ходе анализа постараемся выявить, насколько оправ­ дано использование тестирования статическими сигналами. Выше указывалось, что, выполняя операцию чтения данных из ПЗУ, микропроцессор должен подать на адресную шину оп­ ределенный адрес. Как используется этот адрес? Он служит и для выбора модуля ПЗУ, и для указания ячейки в выбранном модуле, в которой содержится нужное 8-р азрядное слово дан­ ных. Как же выполняют аппаратные средства указанf!ЫЙ про­ цесс выборки? Некоторые адресные линии подключены к де­ шифратору адреса, который обеспечивает формирование сиг­ нала выбора памяти. Другие адресные линии непосредственно связаны с линиями ввода адреса памяти ПЗУ. Напомним, что выбор кристалла памяти в системе и выбор адреса ячейки в кристалле осуществляются дешифраторами, выполненными в виде комбинационных логических схем. На ад­ ресные линии можно подать некоторый адрес и оставить его неизменным в течение продолжительного периода времени. При этом дешифратор адреса будет всегда вырабатывать один 11
Применение метода тестирования статическими сигналами 147 тот же выходной сигнал. По существу дешифрирование адреса представляет собой не зависящую от времени функцию. Сигна­ лы управления, используемые для подготовки шины данных ~ приему данных, применяются и для подачи сигнала чтения из­ памяти. И в этом случае сигналы шины управления образовы­ ваются с помощью дешифрирования определенных выходных. сигналов микропроцессора. Здесь сигналы управления образо• вываются аналогично тому, как формируются сигналы выбора, памяти, которые получались посредством дешифрирования ко­ дов, поступающих по определенным адресным линиям. Сигналы шины управления формируются путем дешифрирования опреде­ ленных сигналов управления, вырабатываемых микропроцессо• ром. Существенно, что сигналы управления на выходах микро" процессора можно сохранять в определенном состоянии в тече­ ние длительного промежутка времени, а сигналы шины управ­ ления при этом будут оставаться неизменно правильными. Снятие сигнала ЧТЕНИЕ и сигнала выбора памяти-четвер­ тое основное действие, которым завершается операция чтения­ данных из ПЗУ. При выполнении его, так же щак и при выпол­ нении 3-го действия, шина данных используется для передачи сигналов управления, генерируемых микропроцессором~ Из проведенного анализа следует, что микропроцессор дей­ ствительно является контроллером системы, который способен очень быстро выполнять статические операции. Поскольку каж­ дая статическая операция протекает очень быстро, мы обычно. забываем о статической природе систем, управляемых микро­ процессором. Благодаря статическому характеру систем для от­ ладки аппаратных. средств можно использовать очень эффектив­ ный метод - тестирование статическими сигналами. 5.2 . Аппаратные средства устройства тестнровання статнческнмн снrнаnамн В общем виде наши рассуждения подчинены схеме, выражае­ мой следующими словами: «Если мы сделаем это в систем.е, то­ произойдет следующее ... » Если мы подадим адреса и сигналы управления на определенные схемы системы, то мь1 сможем выполнить отладку системы. Рассмотрим подробно, какие ап­ паратные средства требуются для образования сигналов, не­ обходимых ,в;ля выполнения тестирования. Рассматриваемы~ здесь тип ввода сигналов подобен способу, который применяет­ ся при отладке аналоговых схем. 5.3. ААРеснwе nиннм Сначала обсу.D.RИ, каким образом могут быть использованы ад­ ,~сные лин11J1 • с'Истеме. Если удалить микропроцессор из с:к... стемы, то можr~:о подключить JСабель к разъему, предназна1Jенио,.. 10•
Микропроuес:сор отключается, н подключается штепсельный .разъем к~~еля л ,с,оо",м .ео>оро~"~ Тестируемая система Это устройство заменяет микропроцессор Устройство тестирования статнческими сигналами Рис. 5.1 . Схема подключения устройства тестирования статическими сиrвапа• ltи к проверяемой микропроцессорной систе,ме. +5 1:!] = r,7к0м .. .,. о ,._ N C\J cf ф ;:' ф а: cr: сЕ cr: cr: Рнс. 5.2 . Схема включения адресных тумблеров устройства тестирования ста• тическими сигналами. •
Применение метода тестирования статическими сигналами •149 м у для подключения микропроцессора (рис. 5.1). Тогда к друго­ м у концу этого кабеля можно подключить· группу тумблеров. Каждый тумблер будет соответствовать определенной линии ад­ реса микропроцессора. На рис. 5.2 представлена схема подклю­ •1сния тумблеров ко всем адресным линиям. S.4 . Сиrнаnы управления )Lля имитации сигналов управления микропроцессора можно воспользоваться группой тумблеров, подобных тумблерам ад­ ресных линий. Таких тумблеров в группе должно быть ровно Hs 1С2 SW7 06 Ю/М R• 1С1 sw6 Об SYNC/ALE Рис. 5.3. Схема генерации сиrиалов управления. Аз iC1 sw" 06 WR R2 1С2 06 DBIN/RO R1 4 столько, сколько используется выходов микропроцессора дпя подачи сигналов управления. Все особенности данного вопроса будут раскры:гы при проектировании устройства тестирования
150 Глава 5 статическими сигналами, предназначенного для микропроцес­ соров 8080 и 8085. Схема генерации сигналов управления пред­ ставлена на рис. 5.3. 5.5 . . Линии wины данных Задача формирования сигналов устройством тестирования ста­ тическими сигналами для шины данных отличается от задачи формирования сигналов для адресной шины и шины управле­ ния. Отличие обусловлено тем, что шина данных является дву­ направленной, а не однонаправленной. Таким образом, необхо­ димо иметь схему для генерации данных, подаваемых на шину данных, и, кроме того, следует предусмотреть дополнительную схему, обеспечивающую управление размещением данных на шине данных, которое осуществляется другим источником. Эти две различные функции точно соответствуют тем, которые при­ сущи микропроцессору при взаимодействии с шиной данных. В различных микропроцессорах для определения режима использования шины данных - ввод данных или вывод дан­ ных- применяются различные линии. Например, микропроцес­ сорная система 8080 работает в режиме чтения данных, когда сигнал DBIN имеет логическое значение 1. В системе 8085 уста­ навливается режим чтения, когда сигнал RD принимает логиче­ ское значение О. Таким образом, для различных типов микро­ процессорных систем необходимо по-разному реализовывать аппаратные средства тестирования статическими сигна;11ами. На рис. 5.4 приведены схемы, соответствующие различным режи­ мам использования шины данных. На рис. 5.5 изображена схе­ ма аппаратной реализации функций двунаправленной шины дан­ ных в устройстве тестирования статическ:ими сигналами. Пояс­ ним принцип действия этой схемы. Когда сигнал управления бу­ дет иметь логическое значение О, данные, определяемые поло­ жениями тумблеров и индицируемые светоизлучающими диода­ ми, будут поданы на шину данных. В этом режиме устройство тестирования или микропроцессор выводят данные на шину дан­ ных микропроцессорной системы. Если на вход сигнала управ­ ления подается уровень логической 1, то данные, индицируе­ мые светоизлучающими диодами, поступа~рт на шину данных от какого-либо блока системы. В этом режиме устройство тести­ рования, имитирующее микропроцессор, вводит данные. Такой режим аналогичен рабочему режиму, в котором микропроцессор запрашивает данные из памяти или от устройств ввода-вывода. На рис. 5.6 представлена схема устройства тестирования стати­ ческими сигналами, предназначенного для проверки микропро­ цессорных систем 8080_ и 8085. Она являет собой реальный пример аппаратуры, которая действительно необходима для реализации тестирования статическими свгяаламв.
Микропроцессор или устройство тестирования а Микропроцессор или Буфер данных Система ____ данные, поступающие в систему устройство Буфер данных Система тестирования ь Рис. 5.4 . Схема потоков данных, входящих в устройство тестирования и вы­ ходящих из него. Эта схема ничем не отличается от схемы потоков данных в си_стеме, работающей под управлением микропроцессо~,а, \:i~ 8 • Rз2 7 • ~ 6~--{"e'r- • --i---, "' -. 15 {•] D,, j "'- . 14 l•r r~;•/{ ,+_,,_ :J {•} --- 1 6 7 10 9 2 3 14 ICi 13 1 :'JJbl 4 5 1? 11 •1 Do 1, 15 «Заперто)) SWз 1, 15 [линия сигнала упрuлення 2 rc, 3 о, 12 LS367 11 Do t,7 R;o Rз~-4 в=~70 Ом 6 ~ 6 5 rc, 8 07 9 8 9 2 Ds ~3 12 13 3 4 3 Dз IC7 10 _1с, 07 11 L04 11 5 6 5 9 8 9 о.., +$ Рис. 5.5 . Схема реализации двунаправленных буферов данных в устройстве тестироваи11я.
3 6 \ 3 7 \ 3 8 \ 3 9 / 4 0 ! 1 1 3 5 1 3 4 \ 3 3 ! 3 2 1 3 1 \ 3 0 ! 2 . : 1 , ~ 1 ~ 1 ; ; 1 ~ , ~ , 1 ' ! 1 : с , E r l ! [ ' " l = t : i = t : i = t : i = i : i r a : J \ J ' I J I J \ i ' l c i ' \ l 1 ~ r n Р и с . 5 . 6 . С х а м а у с т р о й с r в а r е с т и р о в а 1 щ я 8 0 8 5 , 2 8 \ 2 7 \ 2 6 \ 2 5 \ 2 4 \ 2 3 l 2 2 \ 2 1 . f \ J I J ' \ J ' \ . I \ 1 1 : 1 « П р и м е ч а н и я : J , В с е р е з и с т о р ы и м е ю т м о щ н о с т ь 0 , 2 5 В т , 5 " 7 о 2 , [ ! ) Р е з и с т о р ы R 1 - R 3 2 и м е ю т с о п р о т и в л е н и е 4 , 7 к О м 3 , Р е з и с т о р ы R 3 3 - R 4 0 и м е ю т с о п р о т и в л е н и е 2 7 0 О м + s в с т а т и ч е с к и м и с и г н а J i а м и , п р е д н а з н а ч е и н о r о д . п я м и к р о п р о ц е с с о р о в 8 0 8 0 и 8 0 8 5 .
Г!рименение метода тестирования статическими сигналами 153 5.6. Применение устройства тестирования ста,тическими сиrнаnами На рис. 5.7 показана схема подключения устройства тестирова• ния статическими сигналами к микропроцессору Z80. Устройст­ во тестирования будет использоваться для контроля и отладки аппаратных средств системы, описанной в гл. 4. Схема этой си­ етемы изображена на рис. 5.8а-5.8в. Используя устройство тестирования статическими сигналами, пробник, осциллограф или вольтметр, можно систематически и эффективно проверять работоспособность каждой секции аппаратных средств систе­ мы. Представляемые здесь методы использовались на практи­ ке в промышленности и оказались эффективными. Рассматриваемые методы отладки являются основополагаю­ щими. Они весьма полезны для начинающих, так как экономич­ ны и просты. 5.7 . Выбор точки начаnа контроnя Независимо от типа используемого микропроцессора система всегда предъявляет определенные требования к источнику пита­ ния. Поэтому контроль системы целесообразно начать именно с источника питания. Чтобы убедиться, что все уровни напря­ жений питания находятся в допустимых пределах, следует из­ мерить их с помощью вольтметра. Удостоверившись в том, что питающие напряжения отвечают требованиям, следует присту­ пить к проверке генератора тактовых импульсов. Если в систе­ ме использованы системные генераторы тактовых импульсов, то, чтобы определить, удовлетворяют ли их характеристики специ­ фикациям, следует воспользоваться осциллографом. Специфика­ ции определяют верхние и нижние границы для всех временных и амплитудных характеристик генераторов тактовых импульсов. Удостоверившись, что все временнь1е и амплитудные характери­ стики генератора тактовых импульсов удовлетворяют специфи­ кациям, можно продолжить контроль. При выполнении очеред­ ных шагов контроля всегда должна существовать уверенность, что на соответствующие входы микропроцессора подаются но­ минальные напряжения питания и правильные последователь­ ности синхронизирующих импульсов. Следующий шаг в микропроцессорах разного типа может выполняться по-разному. Рассмотрим особенности его выполне­ ния для микропроцессора Z80. После детального обсуждения принципов и порядка контроля этого микропроцессора будет не трудно приспособиться к особенностям других микропроцессо­ ров. Рассмотрим, как будет функционировать контролируемая система. Мы знаем, что микропроцессор будет работать как си­ стемный контроллер, т. е. он будет непрерывно выполнять про"
М и к р о п р о ц е с с о р Z 8 0 2 9 5 4 3 2 1 4 0 3 9 3 8 3 7 3 6 3 5 3 4 3 3 3 2 3 1 3 0 1 3 1 0 9 7 8 1 2 1 5 1 4 2 1 2 2 2 0 1 9 1 1 ~ ! Q J · 1 • \ , l . \ u J u . ц К L 1 , ~ 1 1 ~ I \ ~ ~ W 2 W 1 A i ~ • 1 • 1 • 1 • 1 • 1 • \ А в A ; I . 1 • 1 • 1 • I A 2 \ A 1 l д o : 0 1 1 • 1 • 1 • 1 • 1 ° 2 1 ° , \ D o = - 1 = « З а п е р т о » = - Р и с . 5 . 7 . С х е м а п о д к J i ю ч е и и я у с т р о й с т в а т е с т и р о в а н и я к м и к р о п р о ц е с с о р у Z 8 0 .
+ 5 4 , 7 к О м 2 9 · ~ ~ 2 4 N T 1 6 - 1 7 J J _ V J ; В . • 2 5 + ? Z 8 0 + 5 1 4 , 7 к О м - - : - J я е s Г т S 2 6 1 ' + 2 0 ~ I 0 R D 2 1 А О 2 2 W R 1 9 M R E Q ф б 7 4 0 4 7 4 0 4 7 4 L S 3 6 7 Ш и н а д а н н ы х о - 1 1 - - - - - А L S 1 2 5 J C 7 В с е О З У - 2 1 1 9 В с е П З У - 2 7 0 8 • l З Y l 2 7 0 8 0 4 0 0 - 0 ? F ' I C 1 r 1 4 0 0 - 1 7 F F . В А 0 " ' 1 4 B D o B A - ; j 6 5 > , 1 3 B D ; ' " ' в о · 7 0 1 2 8 D 2 4 1 1 3 2 i - ' - - t - - ' - - - 1 1 \ 1 6 1 5 I C 2 0 , 0 0 - 1 7 F F B M E M R S E L ; B M E M W Р и с . 5 . 8 а . Ф у и к ц и о и а J i ь и а я с х е м а Ц П м и к р о п р о ц е с с о р н о й с и с т е м ы Z 8 0 .
г - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - , i + 5 1 + 5 - 1 - 5 + 5 + 5 1 1 1 1 R , R , R s 1 1 1 , , 4 , 7 к О м 4 , 7 к O м 4 1 7 к O м 1 1 1 Ш и н а д а н н ы х 1 1 1 1 7 4 L S 3 6 7 1 1 в о , B D 4 3 2 с , 1 / 1 B D 6 В D з 5 4 С з R 0 C 4 . J B D 5 1 1 1 B D 4 1 1 1 B D 3 1 1 B D 2 1 1 / R 1 C 0 j / R , C , I I R , C ; 1 / R 1 C 3 j / R 1 C 4 1 B D 1 , 1 r c , 1 R 1 B D 0 В ! О ~ 6 1 , 1 5 - & - . . п о р т R Е А D В А 7 • ! С з R , 1 / R 2 C 0 1 / R 2 C , 1 / R 2 C 2 1 / R 2 C 3 1 / R 2 C 4 2 В А 6 - 4 I C 4 - с - В А 5 5 1 7 4 L S 3 7 4 1 1 В А 4 1 7 4 L S 3 2 B D 4 R , R з С , 1 1 1 3 1 2 R 3 1 B D 3 9 R з 1 3 2 . . . _ _ _ - 8 1 6 R , 1 В А 3 1 2 7 1 В А 2 5 R , 1 1 0 1 В А 1 2 R o R , R 4 C 4 j В А 0 К о д в ы б о р а 1 п о р т а " F E " 1 1 1 1 1 с , k - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - · - - - - - - d 7 4 L S 0 4 ( а к т и в н о е К л а в и а т у р а у с т - в а В / I ! • • • • I C 2 С О С Т О I I Н И е . : , . . . _ 0 ) 1 1 Н о м е р п о р т а " F E ; " 8 I O R 1⁄2 / ' П о р т W R I T E 1 Н Н J V V I З I O W ' \ . . Ш и н а у п р а в л е н и я 1 Р и с . 5 . 8 б . Ф у н к ц и о н а л ь н а я с х е м а и н т е р ф е й с а к л а в и ш н о г о у с т р о й с т в а в в о д а м и к р о п р о ц е с с о р н о й с н с т е м Ь J ~ - - - - '
4 5 + 5 + 5 + l i + 5 + 6 7 ' 1 с , 1 с , 1 с ; 1 9 1 6 1 5 1 2 в 6 5 2 1 9 1 6 1 5 1 2 8 6 5 2 1 9 1 6 1 5 1 2 в 6 5 2 7 4 L S 3 7 4 7 4 L S 3 7 4 7 4 L S 3 7 4 1 8 1 7 1 4 1 3 9 7 1 1 о . о C , N Q Q . , . , " ' . , . , 1 В 1 7 1 4 1 3 g 7 4 3 1 1 с , м Q N Q Q o . , . , . , . , 1 8 1 7 1 4 1 3 9 7 4 3 . - 1 1 - l a r l ~ l f i ] · 1 1 1 J ; 1 M i f i J N J g - J f i ] Q 0 l 0 ф l 0 I P ~ m с а m m 6 8 1 1 " F A " ' ' f ' ' ' " F O " ; с , 1 Q 1 2 I C 5 t ! P 1 B D 6 в D , B D ~ ~ D 3 В Р , В 0 1 B D o ~ 1 8 А 1 В А 6 В д , В д , В д 3 В д 2 в д 1 М 0 P f l g , q . ~ ~ - Ф r ю щ и о t 1 а щ , и а я с х е м ! ! и н т е р ф е й с а в ь щ щ н о r 9 щ щ и к а т о р а м и к р о п р о ц е с с о р н Q й с н с т ~ 1 , щ .
Гла11а 5 грамму без прерываний или перехода в состояние ожидания. !(роме того, в состав системы не входят устройства, работающие .в режиме прямого доступа к памяти. Входы микропроцессора, соответствующие перечисленным режимам, заблокированы, т. е. .они находятся в нерабочем состоянии, однако на этих входах необходимо проверить уровни напряжений. Напомним, что на :выводы 24, 16, 17 и 25 микропроцессора Z80 должен подавать­ ·СЯ уровень, соответствующий логическому значению 1. Когда ключ сброса системы, т. е. установки системы в на­ чальное состояние, включен, на входе «сброс» - в микропро­ цессоре Z80 ему соответствует вывод 26 - должен быть уровень .логического О. Необходимо убедиться, что при переключении ;ключа сброса системы на входе «сброс» устанавливается как ,состояние логического О, так и состояние логической 1. В нор­ :м альном режиме работы микропроцессора, когда он работает по программе, на входе «сброс» (вывод 26) должно быть со­ ,стояние логической 1. У различных микропроцессоров имеется разное число выхо• дов сигналов управления и по-разному определены логические состояния на этих выходах. Необходимо хорошо знать назначе­ ,ние выводов и логические значения сигналов управления, вы­ рабатываемых каждым микропроцессором. Итак, мы установили, что в системе созданы все условия .для нормальной работы микропроцессора. Теперь микропро­ •цессор можно удалить из системы. Но удалять из системы ло­ гические блоки без предварительного выключения питания-нель­ зя. Если питание не выключено, интегральные схемы могут быть - ,повреждены. В этом случае поиск неисправностей или процесс ,отладки вряд ли завершится успешно. После удаления микропроцессора на его место в соответст­ ,вии со схемой; показанной на рис. 5.1, подключается устройство ·тестирования. Теперь, когда устройство тестирования статическими сигна­ лами подключено к системе, можно приступить к проверке си­ •стемы. Ниже рассмотрим методику пошагового тестирования ап­ паратных средств микропроцессорных систем. 5.8. Проверка .адресноR wины Проверяя адресную ·шину, нужно убедиться, что вс~ адресные линии соединяются с теми точками системы, с которыми долж­ ны быть соединены. Далее проверим правильность работы де­ шифрирующих схем, т. е. убедимся в том, что при дешифриро- 1Вании не возникает ошибок ни из-за возможных дефектов в ап­ паратных средствах, ни из-за оплошностей при проектировании .системы. Адресная информация поступает в систему с выходов !Микропроцессора, •к ,которым подключается шина адреса. Сле-
Применение метода тестирования статическими сигналами 159' дующая процедура является основной для контроля шины адре­ са. Размеры этой процедуры и ее трудоемк.ость велики. Но она будет проверять всю адресную шину. Причем время выполне­ ния этой процедуры уменьшится после приобретения определен­ ных навыков; Процедура: 1. Установить с помощью адресных тумблеров устройства тестирования статическими сигналами состояние логического 01 на всех адресных линиях. - 2. Установить тумблер адресной линии Ао иа устройстве те­ стирования в состояние логической 1. Тем самым будет установ­ лено состояние логической 1 на выводе No 30 панели микропро­ цессора Z80. 3. Проверить состояние вывода 13 схемы 74LS367, обозна­ ченной на рис. 5.8а через IC 1• Эта схема является буфером ад­ реса. На указанном выходе должно быть состояние логиче­ ской 1. 4. После обнаружения на 13-м выводе схемы 74LS367 со­ стояния логической 1 следует установить адресный тумблер Ао в состояние логического О и снова проверить состояние выво­ да 13, на котором сейчас должен быть уровень логического О. Успешное выполнение указанных проверок позволяет убедиться в правильности реакции вывода 13 на изменения логического• состояния адресного тумблера Ао. 5. Если вывод 13 схемы IC 1 правильно реагирует на измене­ ния логического состояния адресного тумблера А0, то можно• заключить, что схема 74LS367 работает исправно и что соеди­ нение микропроцессора с системой выполнено правильно. Те­ перь можно переходить прямо к шагу 7. 6. Если на выходе схемы IC1 74LS367 в ответ на изменение· положения адресного тумблера А0 не устанавливается ожидае­ мое логическое состояние, то нельзя уверенно сказать, дефект­ на ли схема IC 1 74LS376 или ее выход перегружен. Вспомним,. что сигналы по шине адреса параллельно идут к нескольким· точкам системы. Любая из этих точек может обусловить пере­ грузку рассматриваемого нами выхода схемы IC1. 6а. Если при тестировании на выходе схемы IC 1 обнаружи­ ваются неправильные логические состояния, то следует прове­ рить правильнос.ть изменения логических уровней на входе (вы-­ вод 14) схемы IC1 при изменениях логических состояний на вы-­ воде 30 микропроцессора. 6б. Если на входе схемы IC 1 (вывод 1;4) зафиксированы пра­ вильные логические состояния, а на выходе (вывод 13) - оши-­ бочные, т. е. не соответствующие логическим состояниям выво­ да 30, то для определения причины неисправности можно исполь--
100 .Глава 5 зовать стандартные методы поиска неисправностей в цифровых -ехемах 1 >. 7. Допустим, что на выводе 13 схемы IC1 при тестировании были зафиксированы ожидаемые логические состояния. Далее следует выполнить проверки, аналогичные описанным выше во -всех точках системы, соединенных с этим выходом. Таким об.. разом мы убедимся, что выход буфера адреса ВАо корректно связан со всеми определенными точками системы. 7а. В микропроцессорной системе Z8O, снова применяя устройство тестирования статическими сигналами, тепереь нуж­ но проверить правильность подачи сигнала на адресные входы ВА0 всех ПЗУ и ОЗУ системы. Переключая тумблер А0 на устройстве тестирования, следует убедиться, что на адресном входе ВА0 ГIЗУо (вывод 8, IC14), ПЗУ 1 (вывод 8, IC1s), ОЗУ (вывод 5, IC11, IC 18, IC1 9 и IC20) устанавливаются логические .еостояния, соответствующие положениям тумблера А0. 7б. На этом шаге будем проверять адресные входы устройств ввода-вывода. Адресный вход ВА0 клавишного пульта свя­ зан с выводом 1 схемы IC 2 (см. рис. 5.8б). Убедимся, что этот адресный вход будет реагировать корректно на изменения вы­ ходного сигнала устройства тестирования статическими сигна• лами. Адресный вход ВА0 индикатора связан с выводом 15 схе• мы IC 5 (см. рис. 5.8в). И снова убеждаемся в том, что логиче­ екие состояния в контролируемой точке правильно изменяются 11ри изменениях сигнала на выходе устройства тестирования. 8. Шаги 2-7 следует повторить для всех выходов а;1:1.ресных линий микропроцессора Z8O. Теперь, по-видимому, стало ясно, что при использовании устройства тестирования статическими сигналами для отладки еложных микропроцессорных систем могут быть применены стандартные методы поиска неисправностей в цифровых схемах. Мы не обогатили искусство поиска неисправностей новыми прие• мами, а лишь рассмотрели новые приложения старых методов. 9. Приступим к проверке линий выбора памяти. Сигналы вы­ -бора памяти формируются схемой 74LS42, имеющей на рис. 5,8а обозначение IC 11. Входами этой схемы являются адресные ли­ нии ВА10, ВА11, ВА12 и ВА1з- На выходах схемы 74LS42 обра" зуются сигналы выбора памяти ПЗУ и ОЗУ. В системе Z8O ис" пользуются ПЗУ объемом в 2К, однако допускается расширение ПЗУ до 4К. Кроме того, используется ОЗУ объемом в 2К. Объ- ем ОЗУ можно довести до ЗК. Схема распределения памяти по" ,казана на рис. 5.9. Используя схему распределения памяти, ·можно легко определить правильность выбора памяти. 1) Coffron J. W ., Getting ·Staтted in Ш_gita] TrouЫeshooting, Reston Pub- 1lishing Со., Reston, V А, 1979.
Применение метода тестироеани,~ стетическими сигнаnамн - 161 10. Установить с помощью адресных к.цючей А10-:--А1а КОАЫ, показанные на -рис. 5.9, и проверить состояния выходов 1, 2, 3, 4, 5, 6, 7 схемы 74LS42. Эта проверка осуществляется с целью определения правильнGсти реакции выходов на изменения кодов Диапазон адресов 0000-0ЗFF 0400-07FF 0800-0BFF OCOO-0FFF 1000-lЗFF l400-17FF l800-1IBFF Функция ПЗУ0 ПЗУ1 ПЗУ2 Не использована ПЗУ3 Не использована ОЗУ1 ОЗУ2 ОЗУз Не использована Рис. 5.9 . Схема распределения памяти тестируемой микропроцессориой си­ стемы. адреса. В правильности логических состояний выходов схемы IC!t можно убедиться с помощью таблицы соответствия входных и выходных сигналов, представленной на рис. 5.1 О. Выход схемы IC11 ВА1з ВА12 ВА11 ВА1е 1234567 о111111 о о о о 1оl 1111 о о о 1 1 о1111 о о о о 1 1о111 о о о 1 1 1 о11 о 1 1 о 111 1о1 о 1 1 111 1 о о о Рис. 5.1 О. Логические состояния выходов системы IC11, соответствующие ло­ tическим состояниям выходов ВАн,, ВА11, ВА12 и ВА1з буфера адреса. l la. Выходы дешифратора выбора блока памяти связаны в системе с различными точками. Например, выход 1, на котором образуется сигнал выбора ПЗУО, связан с выводом 1 схемы 1Ci6, - Необходимо убедиться, что лоrическое состояние выво­ да 1 схемы IC 16 совпадает с логическим состоянием вывода 1 схемы IC11. 116. Проверить все линии выбора блоков памяти и их оконеч­ ные _точки на правильность соединения и функционирования. 12. После завершения шага 11 можно сделать вывод о пра- вильности соединения и отсутствии перегрузок всех линий адрес­ ной шины. 5.9. Проверка wины управnения Теперь можно приступить к проверке правильности функциони­ рования шины управления. Для осуществления этого можно вы­ полнить следующую процедуру. Отметим, что эту процедуру 11-814
162 Глава 5 нужно рассматривать как базовую; ее можно модифицировать с: целью приспособления к каким-либо специфическим услоц_иям. Процедура проверки шины управления состоит из следующих шагов. 1. Установить тумблеры управления на устройстве тестирова­ ния статическими сигналами в состояние логической 1. 2. Если все тумблеры управления установлены в состояние­ логической 1, то и на каждой линии шины управления в систе­ ме должно быть состояние логической 1. При этом ни одна ли­ ния управления не будет активной. Сигналы управления микропроцессора Z80 ,Функция IORQ MREQ RD WR о 1 1 о IOW о 1 о 1 IOR о о MEMW о о MEMR Рис. _5 .11 . Сигналы управления и соответствующие им функции системы. 3. Теперь тумблеры управления на устройстве тестирования устанавливаются в положения, соответствующие определенным _ функциям управления. Таких функций всего 4; эти функции и значения соответствующих сигналов управления представлены на рис. 5.11. 4. Установить с помощью тумблеров управления на_устрой­ стве тестирования комбинации, определяющие функции управ­ ления, и убедиться в том, что на линиях шины управления по­ являются правильные сигналы управления. Если на выходах шины управления обнаруживаются неправильные логические со­ стояния, то нужно проверить корректность состояний на всех входах. • 5. Если сигналы на входах шины управления правильны, од­ нако на выходах шины управления устанавливаются ошибочные логические состояния, то, может быть, выходы оказались пере­ груженными. Снова целесообразно использовать стандартные методы 'отыскания неисправностей в цифровых схемах с целью опреде.]{ения причины обнаруженной ошибки в работе с~емы. : 6. Выходы шины управления связаны с несколькими точками системы. Необходимо убедиться в правильности установления логических состояний во всех точках системы, в которые парал­ лельно подается сигнал управления. 7а. Например, сигнал шины управления BMEMR подается на входы различных логических схем. Одной из точек, в кото- • рую поступает этот сигнал, является вывод 2 схемы IC12 (см. рис. 5.8а). Установим тумблеры управления на устройстве те-
Применение метода' тестирования статическими сигналами 113 стирования в состояния, соответствующие сигналу чтения из па­ мяти. Выполнив это, проверим вывод 2 схемы IC 12 , чтобы убе­ диться в правильности реакции в этой точке на подачу сигнала ·BMEMR. • 7б. Выполнить аналогичные проверки в каждой точке систе­ мы, соединенной с выходом шины управления. 8; Проверка функционирования шины управления заверша­ ется после проведения контроля правильности действия всех сиг­ налов управления, передаваемых по шине управления. • 5. tO. Проверка прааиnьности подачи сиrнаnов выбора кристаnnов и сиrнаnов разрешения записи в память Теперь требуется проверить, что каждый модуль ПЗУ и ОЗУ правильно воспринимает адреса, поступающие по шине адреса, и правильно реагирует на сигналы управления, подаваемые по шине управления. Сначала проверим правильность подачи сиг­ нала выбора кристалла ПЗУО. Как показано на схеме, пред­ ставленной на рис. 5.8а, вывод 20 схемы lC14, представляющей собой ППЗУ типа 2708, является входом выбора кристалла. Этот вывод связан с выводом 3 схемы IC16 74LS32; Когда на выводе 3 - на выходе схемы IC 16 -устанавливается состояние логического О, выходы данных ПЗУО (ППЗУ 2708) связываются с шиной данных. После того как на дешифратор шины адреса будет подан правильный адрес ПЗУО и по шине управления поступит сиг­ нал BMEMR, ПЗУО типа 2708 будет переведено в рабочее со­ стояние. Это обеспечивается сигналом, который формируется на выходе схемы ИЛИ, и на рис. 5,8а обозначается IС 1в, Когда и сигнал выбора памяти SEL0 , поступающий на вывод 1 схемы IC16 , _и управляющий сигнал BMEMR, nоступающий на вывод 2 той же самой схемы, имеют логические значения О, на выводе· 20 схемы IC14 установится состояние логического О. Чтобы сформировать сигнал выбора ПЗУО, необходимо все адресные тумблеры А10-А 13 на устройстве тестирования уста­ новить в состояние логического О. Тумблеры управления нуж­ но установить в положения, соответствующие сигналу чтения из памяти, т. е. должны быть установлены следующие значения сигналов управления: МREQ=0, RD=0, Отметим также, что, поскольку сигнал RD = О, светоизлуча­ ющие диоды, находящиеся в устройстве тестирования, буду-и индицировать данные, поступившие на шину данных .. 11•
164 Глава 5 Если ПЗУ подключить к системе, светоизлучающие диоды будут отображать данные, хранимые в ПЗУ по адресу, опреде­ ляемому пqложениями тумблеров А0-А9 . Но если ПЗУ отклю­ чить от системы, то появится_ возможность выполнять некоторые интересные проверки. Когда ПЗУ удалено из системы, то на всех светоизлучаю­ щих диодах устройства тестирования будет наблюдаться свече­ ние. И если теперь с помощью куска провода поочередно за­ землять выводы пан-ели, на которой установлено ПЗУ, обнару­ .жим, что светоизлучающий диод, соответствующий проаеряемо• му разряду шины данных, перестает светиться. Этот способ дает возможность убедиться в корректности соединения всех линий шины данных с выводами_ ПЗУ. Например, после выполнения установки сr,rгналов на шине адреса и на шине управления и после соединения с помощью куска провода вывода 9 панели для установки ПЗУО с «землей» мы должны увидеть, что све­ тоизлучающий диод Do перестал светиться. Повторим выполне­ ние процедуры для выводов 9, 10, 11, 13, 14, 15, 16 и 17. Та­ ким способом убеждаемся в правильном соединении всех рас­ сматриваемых выводов данных. Кроме того, мы установили, что при определенных состояниях линий шины адреса и шины управления выбор ПЗУ осуществляется правильно. Рассмотренную процедуру необходимо выполнить для всех кодов выбора ПЗУ и для всех кодов выбора ОЗУ. При пр0-­ верке ОЗУ также требуется подавать сигнал выбора кристалла в режиме чтения. Правильность подачи сигнала разрешения записи для ОЗУ контролируется процедурой, которая подобна процедуре конт­ роля ПЗУ. Основное отличие состоит в том, что по шине управ- ления будет подаваться сигнал BMEMW, а не сигнал BMEMR. Теперь рассмотрим, каким образом проверяется правильность дешифрирования всех сигналов выбора кристалла и сигналов разрешения записи в память. Рассмотрим также способ опреде­ ления правильности физического соединения выходов данных ОЗУ и ПЗУ с линиями данных микропроцессора. . Отметим, что с помощью устройства тестирования статиче­ скими сигналами можно записывать данные ОЗУ и читать дан­ ные из ОЗУ. Указанные действия можно выполнить с помощью следующей процедуры: l. У становить с помощью адресных тумблеров некоторый до­ пустимый адрес ОЗУ. 2. С помощью тумблеров 0 0-D1 на устройстве тестирования на-брать код, определяющий данные, которые нужно записать по указанному адресу. 3. Установить тумблер, соответствующий сигналу упраме­ иия MREQ, в положение О.
Применение метода тестирования статическими сиrналами 1·6Б 4. Установить тумблер, соответствующий сигналу управле­ ния WR, в положение О. При этом активизируется линия пода­ чи сигнала разрешения з.аписи в память. 5. Переключить тумблер, соответствующий сигналу управ- ления WR в положение 1. Тем самым снимается сигнал разре­ шения записи в память. Данные помещены в память. Операция записи· данных в ОЗУ выполнена точно так, как ее выполнил бы микропроцес­ сор Z80, работая по программе. Теперь, чтобы определить пра­ вильность выполнения операции записи, прочитаем данные, на­ ходящиеся в ОЗУ по заданному адресу. Для этого необходимо: 6. Установить все тумблеры на устройстве тестирования, оп­ ределяющие подаваемые в систему. данные, в состояние О. 7. Установить тумблер, определяющий значение сигнала RD, в положение О. После подачи этого сигнала будет активизиро­ вана линия выбора кристалла ОЗУ. 8. Светоизлучающие диоды устройства тестирования будут индицировать данные, которые были записаны в память при . выполнении шагов 1-5 . Отметим, что операция чтения данных из ОЗУ с помощью устройства тестирования выполняется так же, как это делается при нормальной работе микропроцессор­ ной системы Z80. Рассмотренные приемы записи данных в ОЗУ и чтения дан­ ных из ОЗУ окажутся полезными при выявлении дефектов в ячейках или в кристалле ОЗУ. Так как мы можем подать на шииу адреса любой адрес и действительно выполнить запись данных в ОЗУ, а затем прочитать данные из ОЗУ, проверка подозреваемых ·ячеек памяти окажется простым делом. 5.11 . Запись и чтение данных иэ устройств ввода-вывода Операции в.вода-вывода для некоторых внешних устройств вы-' полняются так же, как и операция записи: и операция чтения данных из памяти. Для иллюстрации этого рассмотрим порядок записи данных в системный индикатор, схема которого пред­ ставлена на рис. 5.8в. Порты выхода в р.ассматриваемой схеме имеют коды FO, Fl и F2. Каждому указанному порту соответствует пара раз-;­ рядов отображаемого числа - младшие, средние и старшие раз­ ряды соответственно. Прuнцип работы этого индикатора по­ дробно дан в гл. 4. Записывая данные на индищатор, можно проверить правильность его функционирования. Если при вы­ воде информации на индикатор обнаруживается ошибка, то можно приостановить выдачу информации на индикатор и «за-
166 rпава s морозить» систему в некотором состоянии. Когда система нахо­ дится в статическом режиме, легко установить, какая схема дешифрирования в устройстве вывода неисправна. Будем записывать на системный индикатор следующие чис­ ла: 1, 2, 3, 4, 5 и 6. При таком порядке записи цифра 1 будет записана в старший разряд, а цифра 6- в младший разряд ин­ дикатора. Запись выполняется в соответствии со следующей процедурой: 1. Установить с помощью адресных тумблеров адрес старших двух разрядов, т. е. адрес 00F21 6• 2. Установить с помощью тумблеров, используемых для оп­ ределения вводимых д~нных, число 121 6 • Напомним, что при за­ писи данны~ на индикатор одновременно записываются две цифры. Разряды D0-D3 шины данных используются для пере­ дачи одной цифры, а разряды •D4-D1 - для передачи другой . цифры. 3. Установить тумблер управления, соответствующий сигна­ лу IORQ, в положение О. Этот сигнал переведет систему u ре­ жим ·запроса ввода-вывода. 4. Установить тумблер управления, соответствующий сигна-· лу WR, в положение О. Этот сигнал разрешает выполнение за­ писи данных на внешние устройства. 5. УстановJiть тумблер управления, соответствующий сигна­ лу WR, в положение. 1. Тем самым сигнал управления записью на устройстве ввода-вывода: будет снят. Когда сигнал WR при­ мет значение лqгической 1, в старшие два разряда индикатора будут записаны цифры, определяемые положениями тумбле­ ров D0-D1 на устройстве тестирования. Если данные не записываются на индикатор, то, нарушив обычную последовательность проверки, можно выполнить де­ тальный пошаговый контроль соответствующих аппаратных, средств. Например, можно установить адрес 00F2 16 и проверить, перешла ли в активное состояние линия вь1бора порта F2. Ког­ да сигнал WR примет логическое значение О, на выводе 1 схемы IC1 типа 74LS374, предназначенном для подачи синхронизирую­ щих импульсов, установится уровень логического О. Короче говоря, при тестировании можно проверить правиль- ' ность установления состояний в различных точках системы, обу­ словленных определенным типом передачи данных, генерируе­ мых устройством тестирования статическими сигналами. Шаги 1-5 рассмотреннной процедуры нужно повторить два раза для :записи еще четырех цифр. Выполняя с помощью устройства те­ -стирования описанный выше контроль, мы убедимся, что все схемы и все соединения в выходном индикаторе функциониру­ ют правильно.
Применение метода тестирования статическими сигналами 167 5.12 . Проверка функционирования схемы кnавиwкоrо пут.та с помощь~о устроiiетва. тестироаания Теперь обсудим методы быстрого определения правильности функционирования клавишного пульта. Рассматриваемая про­ цедура позволит нам убедиться· в том, что все логические схемы работоспособны и все клавиши действуют нормально. Для установки в состояние логического О одной из горизон­ тальных входных линий Ro-R4 клавишного пульта необходимо выполнить операцию ЗАПИСЬ. Затем должна быть выполнена операция ЧТЕНИЕ. После этого следует поочередно нажимать клавиши единственного на данный момент активного ряда. При этом будем следить за состояниями светоизлучающих диодов устройства тестирования. Светоизлучающий диод, соответству­ ющий нажатой клавише, а значит, и определенной вертикаль­ ной линии матрицы клавиатуры, перестанет светиться. Мы опи­ сали идею построения процедуры проверки клавишного пульта. Полная же процедура будет состоять из следующих шагов: •1. Установить с помощью адресных тумблеров устройства тестирования код OOFE. Этот адрес будет использоваться и при выполнении операции ЗАПИСЬ, и при выполнении операции ЧТЕНИЕ. 2. Установить тумблер управления, соответствующий сигна- лу {ORQ, в положение О. 3. Набрать с помощью тумблеров D0-D1 код FE. В соответ­ ствии с этим кодом в активное состояние будет переведена ли- ния Ro- • 4. Установить тумблер управления, соответствующий управ- ляющему сигналу WR, в положение О. _ , 5. Установить тумблер управления, соответствующий сиг­ налу WR, в положение 1. Теперь фиксатор, вы,ходы которого соединены с горизонтальными линиями матрицы клавиатуры, будет содержать корректные данные. 6. Переключить тумблер соответствующий сигналу управ- ления RD, в положение О. 6а. Все светоизлучающие диоды должны светиться, так как в данный момент нет ни одной нажатой клавиши. Заметим, что не следует принимать во внимание диоды .0 5 , D6иD 7 , так как в клавиатуре эти разряды не используются. В программе, описан­ ной в гл. 4, было предусмотрено маскирование этих разрядов. 7. Теперь надо поочередно нажимать клавиши первого ряда клавиатуры. Эти клавиши имеют следующие обозначения: RoCo, RoC1, RoC2, RоСз. ,~0С4. Пока клавиша нажата, убеждаемся в том, что соответствующий светоизлучающий диод перестает светиться. Например, при нажатии клавиши RoCa должен «по­ гаснуть» <;ветоизлучающий диод 0 0 •
,168 Гnааа 5 7а. Если вопреки ожиданиям диод продолжает светиться, то для отыскания неисправности следует использовать стандарт­ ные методы поиска неисправностей в цифровых схемах. . 8. Шаги 3-7 надо выполнить для каждой горизонтальной линии клавиатуры. При этом ка?Кдый раз надо вводить данные, определяющие активность следующей горизонтальной линии клавиатуры. 9. После проверки клавиш некоторrо ряда следует пере­ ключить тумблер управления, соответствующий сигналу RD, в положение 1. Эта процедура проверки функционирования клавишного пульта очень эффективна. После ее выполнения можно быть уверенным в правильности работы клавишного пульта систе­ мы. Если при проверке кл:авиатуры обнаруживается неисправ­ ность, то ее локализация в системе проводится рассмотрен­ ными нами методами тестирования статическими сигналами. 5.13. Выводы М.ы рассмотрели метод полной отладки аппаратных средств мик­ ропроцессорной системы Z80. Он получил название «метод те­ стирования статическими сигналами». Были представлены ме­ тодики проверки всех системных шин, памяти и устройств вво­ да-вывода. Применение метода тестирования статическими сигна,лами не ограничено новыми системами, которые еще не работали. Он может эффективно использоваться для поиска неисправностей в системах, которые были в эксплуатации и отказали. Метод тестирования статическими сигналами также· можно использо• вать для отладки интерфейса новых устройств ввода-вывода, которые могли быть спроектированы в дополнение к уже суще­ ствующей системе. Можно предположить, что, поскольку метод •статического тестирования проверяет систему только в статическом режиме, нельзя гарантировать правильность работы системы при ее но­ минальной скорости. Было установлено экспериментально, что системы, выдержавшие статическое тестирование, с большой ве­ роятностью будут нормально работать и при номинально.й си­ стемной скорости. Этот вывод прежде всего относится к систе­ мам, которые уже работали, ·но по каким-либо причинам отка­ зали. В новых проектах микропроцессорных систем отказы могут -возникать из-за разнообразных причин, в частности из-за шумо­ .вых помех, источниками которых могут быть линии питания. В таких случаях метод тестирования статическими сигналами не nриrоден, и поэтому приходится применять другие методы поис­ ка неисправностей.
Применение метода тестироваНJ1я статическими сигналами 169 Можно с уверенностью говорить, что .если при тестировании в системе обнаруживаются неисправности, то она определенн() не будет работать при номинальной скорости. Устройство те­ стирования статическими сигналами особенно полезно для оп-· ределения правильности работы логических схем системы. Оно, позволяет «заморозить» систему в некоторый момент времени" что облегчает выполнение поиска некоторых неисправностей-. В настоящей главе приведен достаточный материал для тех, кто только начал применять устройство тестирования статиче­ скими сигналами. По мере приобретения опыта использования устройства тестирования статическими сигналами оно будет становиться все более полезным инструментом, пригодным для решения многих проблем поиска неисправностей в .аппаратных. средствах микропр·оцессорных систем.
Глава 6 ПРЕРЫВАНИЯ, РЕЖИМ ОЖИДАНИЯ И РЕЖИМ ПРЯМОГО ДОСТУПА К ПАМЯТИ В МИКРОПРОЦЕССОР АХ 8080, 8085, 6800 и Z80 В настоящей главе рассматриваются вопросы организации пре­ рываний, режима ожидания и режима прямого доступа к па­ мяти в микvопроцессорах 8080, 8085, 6800 и Z80. Сначала об­ судим каждый из указанных вопросов, а затем рассмотрим ме­ тоды реализации аппаратных средств, применяемых для обеспе­ qения этих режимов в обсуждаемых микропроцессорах. Будем также рассматривать некоторые специальные команды и прин• ципы построения программного обеспечения, используемые для осуществления трех указанных режимов. Изложение вопросов программного и аппаратного обеспечени,я прерываний, режима ожидания н режима прямого доступа к памяти будет носить ос­ новополагающий характер. Разобравшись, как реализуются эти режимы в простых микропроцессорных системах, будет легко адаптировать их к микропроцессорным системам с более слож- ной архитектурой. _ По каждому из трех рассматриваемых режимов изложение будет проводиться в следующей последовательности. Мы будем описывать основные идеи программного и аппаратного обеспе­ чения рассматриваемых режимов н демонстрировать примеры их реализации в распространенных типах микропроцессорных си­ стем; Затем будем рассматривать особенности реализации ука­ занных режимов в каждом из четырех обсуждаемых нами мик­ ропроцессоров. Принципы реализации сравниваются между со• бой. Изучив материалы настоящей главы, вы сможете ис~оль­ зовать микропроцессорные системы, в архитектуре которых реализованы рассмотренные здесь режимы. 6.1. Основные представnения о прерываниях Сначала дадим общие представления о том, что такое преры­ вание. В рассматриваемых нами системах микропроцессор дей­ ствовал как системный контроллер, т. е. он всегда выполнял команды программы в том порядке, в котором они были распо­ ложены в памяти. Это значит, что никакое вмешательство поль- \ u • зователя не могло, воздеиствовать на ход выполнения прог.рам- мы, по которой у.же начал работать процессор. Система пре­ рываний позволяет ~зменять ход выполнения программы на ос-
Прерывания, режим -ОЖИДtlНИЯ И прямой доступ К памяти 171 новании сигналов, поступающих в микропроцессор. Рис. ·6.1 дает наглядное представление о возникновеН11и прерывання про­ граммы. Рис. 6.1, а соответствует случаю непрерывного последо­ вательного выполнения четырех шагов программы. Рнс. 6.1, б показывает, что первые два шага программы выполняются так же, как и при непрерывном последовательном ее выполненни. Шаг 1 Шаг 2 Шаr 3 Шаr 4 а Шаг 2 '-.. Произошло nрерыван_ие '--.. , Шаr 3 Шаr4 Шаг 1 ь Рис. 6.1. Схема последовательного выполнения четырех шагов программы (а); схема, демонстрирующая появление запроса иа прерывание после выполве-­ ния 1-го и 2-го шагов программы (6). Вследствие прерывщшя последователь­ ное выполнение программы прекращается до тех пор, пока не выполвятс,r шаги 2а и 26. После выполнения этих шагов продолжается нормальное ВJr полнение прерванной программы. Затем в микропроцессор поступает сигнал прерывания. После IJаступления прерывания выполнение программы прекращается и управление передается другой программной секции. Как TOJJI:,,- кo работа этой программной секции завершится, будет осуще'­ ствлеи переход к прерванной программе и продолжится ее нор,­ мальное выполнение. На рис. 6.1, б показано, что, когда появляется· сигнал пре- / рывания, нормальный ход программы нарушается. Прерывание происходнт между 2-м и 3-м шагами программы. Однако OHOI могло произойти и между другими шагами. Вообще, сигнал прерывания, поступающий в микропроцессор, является асин-· хронным, а это значит, что он может прийти на любом этапе работы программы.' В рассматриваемом примере прерывание программы могло бы произойти и между шагами :3 и 4. Для си­ стемы не имеет значения, когда оно наступает, так как обработ- ка прерываний всегда одинакова. В литературе по микропро1. цессорам такой принцип обработки прерываний называется прерывание по вектору.
172 . Глава 6 В данном случае понятие вектор разнозначно понятию ука­ з~;rеля. Этот вектор показывает микропроцессору, какой .адрес нужно использовать, ч:rобы вызвать соответствующую програм­ му обработки прерывания в момент его возникновения. Та­ ким образом, понятие «вектор» зд.есь означает лишь только ад­ рес памяти. Понятие «прерывание по вектору» ознаttает, что в системе будут происходить прерывания, а вектор - это адрес .начала программы обработки прерываний. И если мы определим прерывание как вынужденный пере­ ход микропроцессора на выполнение определенной программы в :момент поступления сигнала прерывания - это будет вполне ()Правдано. _Значит, независимо от того, какую программную секцию выполняет микропроцессор, при наступлении прерыва­ ния он начнет выполнять другую программную секцию, после выполнения которой вернется к прерванной задаче. В некоторых микропроцессорах и, в частности, в каждом из 'Четырех микропроцессоров, рассматриваемых нами, используют­ ся два типа прерываний: 1) не маскируемые прерывания и 2) маскируемые прерывания. Если прерывание не маскировано, то-микропроцессор будет реагировать на поступление соответст­ ~ующего сигнала прерывания. Всякий раз, когда во время вы­ полнения программы наступает немаскированное прерывание, микропроцессор должен среагировать на него. Принцип маскирования прерываний состоит в том, что реак­ ция микропроцессора .на сигналы прерывания может быть раз­ решена или запрещена программным путем. Маскируемые пре­ рывания могут эффективно отключаться программными сред­ ствами. Мы не будем обсуждать многочисленные вопросы, свя­ занные с применением маскируемых и -немаскируемых преры­ ваний в микропроцессорных системах. Мы лщпь покажем, как nрерывания этих типов реализуются в каждом из четырех рас­ сматриваемых микропроцессоров. Начнем с изучения системы nрерываний для микропроцессора 8080. 6.1. Прерывания в микропроцессоре 8080 Для осуществления прерываний могут использоваться раЗJIИЧ· ные аппаратные средства, в частности схема, показанная на рис. 6.2 . С помощью этой схемы сигнал прерывания может быть noдal! на любой из рассматриваемр1х нами микропроцессоров. Рассмотрев эту схему, мы сможем понять, как каждый процес­ сор реагирует на запрос прерывания, поступающий от внешних :аппаратных средств. Микропроцессор определенным образом связывается со схемой, представленной на рис. 6.2 . На данном рисунке эта связь показана стрелкой, идущей от микропроцес­ сора на вход сброса триггера 74LS74.
\\- . \ ' Прерыван~ режим ОЖ1'1дания и прямой доступ к памяти 173 \• - . \ Кратко .изложим принцип действия схемы, представленно~. на· рис. 6_. 2. Слева на рксунке изображена схема, устраняющая влияиие эффекта «дребез.жания» ключа. Она состоит из двух инверторов с открытым коллектором и однополюсного двух­ ходового кнопочного переключателя. Когда ключ S1 находится в состоянии покоя (NC), его цент­ ральный вывод соединен с нормально за·мкнутым полюсом. Нор- •8 LГ .+5 INT К микро­ процессор)' tNT· - ,-( Из микроrtроцессор~:. l~' 1 Рис. 6.2. Схема устройства, вырабатывающего сиrNал прерывания микро­ процессора. мально замкнутый полюс соединяется с выводом 3 схемы IC1_ На этом выводе будет уровень логического О. Вывод 4 схемы IC 1 будет находиться в ·состоянии логической 1.1 На входе «синх­ роимпульсы» TP.Иrrepa '74LS74 также будет установлен уровень логической 1. Схема 74LS74 представляет собой триггер, за­ пускаемый фронтом импульса. Когда на входе «синхроимпуль­ сы» схемы 74LS74 происходит переход от уровня логического О к уровню логической 1, данные со входа D будут переданы на выходы Q и Q. Исходя из ·рис. 6.2, можно предположить, что когда ключ находится в· нормальном положении, на входе «синхронизация» триггера 74LS74 должен быть уровень логиче­ ской 1. Если нажать кнопку S1, _то центральный вывод S1 соеди­ нится с нормально разомкнутым выводом переключателя. При этом установится уровень логического О на выводе 1 схемы ICt и уровень логической 1 на выводе 2 этой схемы. Следователь­ но, когда кнопка S1 нажата, на входе «синхроимпульсы» схемы 74LS74 установится состояние логического О. При этом состоя• ние триггера не изменнтся. ; Если теперь отпустить кнопку S1, то на входе «сцнхроцм­ пульсы» схемы 74LS74 произойдет переход от состоянм, логи­ ческого О к состоянию логической 1. Таким образом. посредст­ вом кратковременного нажатия кнопки S1 •обеспечивается пере- дача данных со входа D на выходы Q и Q. Временная _диаграм-
174 Глава 6 I/ ма этого процесса представлена на рис. /~. 3. На вход D и вход установки триггера, которым в схеме ~4LS74 соответствуют вы­ воды 2 и 4, через резистор с сопротивлением 4,7 кОм подается напряжение +5 В. Таким образом на входах D и S триггера 74LS74 всегда поддер,живается уровень логической 1. Данные передаются во время нарастания переднего фронта импульса на входе «синхроимпульсы»: выход Q всегда переходит в состоя- ние логической 1, а выход Q- в состояние логического О. Так формируется сигнал прерывания микропроцессора. S, S1 нажата S1 отпущена в нормальном -------------- -- -- пqложении ---- ------.. ---- Вывод 4 схемы IC 1 Данные со входа D Выход Q схемы 74LS74 --- -' -! -- -- -- ~ передаются на еевыходь~QнQ Рис. 6,3. Временная диаграмма сигнала на выходе Q, определяемого поло­ жением кнопки .S 1. Когда кнопка отпускается, на выходе Q устанавливается состояние логuческой 1, а на выхО.!(е Q- состояние логического О, После поступления сигнала прерывания микропроцессор дол­ жен в ответ послать сигнал, имеющий логическое значение о. на вход «сброс» триггера 74LS74. Это обеспечит переход выхо- да Q в состояние логического О, а выхода Q - в состояние ло­ гической 1. Так микропроцессор выполняет «сброс» запроса прерывания, выработанного внешними аппаратными средст­ вами. Используя рассмотренную схему, можно формировать и асинхронно подавать на определенные входы микропроцессора сигналы прерывания. Микропроцессор может выполнять про­ грамму, а мы, нажимая в некоторый момент времени на кноп­ ку S 1, посылаем сигнал прерывания. Когда будут рассматри­ ватьсg специфические вопросы обработки прерываний в мик­ ропроцессора~, мы снова обратимся к схеме, представленной на рис. 6.2, чтобы более подробно разобраться в том, почему для генерации запроса на прерывание необходимо использовать триггер. (Сейчас этот вопрос рассматривать преждевремеJ!:НО. В нем будет легче разобраться после подробного рассмотрения системы прерываний в мнкропроцессор.е 8080.)
175 На рис. 6.4 показащ схема подключен.ия аппаратных средств, обеспечивающих форми),ование запроса на прерывание (см. рис. 6.2), к микропроцесЪQру 8080. Этот интерфейс, очевидно, очень прост. Линия, по коq:орой в микропроцессор поступает запрос на nрерывание, имеет\обозначение INT. Она подводится к выводу 14 микропроцессора 8080. Этот микропроцессор име­ ет специальный выход INTE (вывод 16), который используется для подачи сигнала на вход «Сброс» схемы 74LS74. :В процессе обработки прерывания, запрос на которое уже, предпо;11ожим, поступил, можно выделить следующие два этапа: с,. Выход Q INT 8 Г-:--:----:;-',-;-;::-;;-;--:...:...:....~ 114 :d схемы 74LS74 §~ О.с, _в:::-х_оп___,«С"67"р"'"'ос,.,.»_,_1,.,_NТ~Еа....1,в &"' схемы 74LS74 ~ i !Рис. 6.4 . Блочная схема подключения формирователя сигнала прерывания, схема которого дана на рис. 6.2, к микропроцессору 8080. 1. Вход INT (вывод 14 микропроцессора 8080)' перешел в ,состояние логической 1. Это означает, что прерывание запра­ шивается внешними аппаратными средствами. 2. Микропроцессор 8080 принял запрос на прерывание, по­ -ступцвший на вывод 14, на выходе INTE. (вывод 16) будет уста­ новлен уровень ·логического О. Эти два события являются основными в рассматриваемом интерфейсе. Однако имеются и другие аппаратные средства, ис• пользуемые в микропроцессоре 8080 для обработки прерываний. Пока мы только рассмотрели, как образуются запросы на пре­ рывания и как выполняется «сброс» запроса на прерывание. Когда вывод 16 микропроцессора 8080 находится в состоянии логической 1; микропроцессор находится в режиме приема за­ проса на прерывание от внешнего оборудования. Если на вы­ ходе INTE (вывод 16) устанавливается состояние логического О, микропроцессор игнорирует все запросы на прерывания, посту­ пающие на вход INT (вывод 14). В микропроцессоре 8080 ис­ пользуются только маскируемые прерывания. В системе команд микропроцессора 8080 есть две специаль­ ные команды: команда запрещения прерываний DI и команда разрешения прерываний EI. С помощью этих двух команд мож­ но изменять состояние выхода INTE. Например, когда выпол• няется начальная установка микропроцессора ,8080, выход INTE переводится в состояние логического О. Это значит, что непосредственно после установки начального состояния микро•
176 r'лава 6 процессора, он будет игнорировать все просы на прерывание. поступающие от внешних аппаратных средств. _Действительно, микропроцессор 8080 будет работать в режиме запрета преры­ ваний. Единственный способ, котоР, й позволяет перевести вы­ ход INTE в состояние логической l состоит в применении коман­ ды разрешения прерываний EJ:,. После выполнения команды разрешения прерывания выход 'INTE окажется в состоянии ло­ гической 1. 1' Если на выходе INTE состояние логической l, то и на вхо­ де «сброс» триггера 74LS74 будет состояние логической l. Тем самым допускается возмож!fость передачи запроса прерывания со входа D иа выход Q схемы 74LS74. Пр_едположим теперь. что извне поступил запрос на прерывание. К:оrда запрос на пре­ рывание воспринят, с помощью внутренних аппаратных средств микропроцессора выход INTE снова перейдет в состояние ло­ гического О. Что же произойдет, когда микропроцессор снова будет пе­ ревед~н в режим запрета прерываний? Единственный способ раз­ решить прерывания в микропроцессоре 8080 - это выполнить команду EI. Таким образом, выход INTE может быть переведен в состояние логического О либо с помощью аппаратных, либо с помощью программных средств микропроцессора 8080. Одна­ ко в состояние логической 1 этот выход можно перевести толь­ ко программно. Указанная особенность требует специального рассмотрения. Отметим прежде всего, что программное обеспечение миi<ропро­ цессора 8080 должно содержать специальную программу, на­ значение которой разрешать прерывания в некоторые точно оп­ ределенные моменты времени. Это значит, что после выполне­ нйя программы прерывания возможность прерывания должна быть снова восстановлена. Действительно, во время выполнения программы прерывания микроnроцессор 8080 не может вос­ принимать другие запросы на прерывания. Так будет до тех пор, пока выполнение этой .программной секции не ·завершит­ ся. Блок-схема, отражающая последовательность событий, про­ исходящих в системе после возникновения прерывания, пред­ ставлена на рис. 6.5 . Рассмотрим эту блок~схему. • Запрос на прерывание поступает на вывод 14 микропроцес:. сора 8080. Микропроцессор устанавливает уровень логическ9rо О на выходе INТE (вывод 16). После этого система приступает к выполнению специальной программы. Пока не будем обсуж­ дать, каким образом система получает начальный адрес этой программы. Допустим, .что система каким-либо образом еГ() получила и начала выполнение программы, во время котороr() на- выходе INTE будет состщ1ние логического О. Следовательно, микропроцессор 8080 не будет воспринимать запросы на пре· рывания. Однако программа прерывания завершается командой
,· П реры вани режим: ожидания и пр.ямой доступ к памяти 17Т EI и на выходе INТ снова устанавливается уровень логиче• ской 1. Кроме того, пр~ванная программа продолжит работу" Подробное рассмотрение 'voro, как возобновляется выполнение- прерванной программы, буNoт сделано ниже. , Измененный вариант рас~отренной нами блок-схемы пред­ ставлен на рис. 6.6 . В новом варианте блок-схемы после пере- Рис. 6.5 . Блок-схема после­ довательности действий, вы­ полняемых в , системе 8080 после возиикиовеиня преры- вания. Заnрос Вывод 14 на nрерыва1111с микроnроцессора 8080 = лог'ическая J Сигнал INTE nринимает значение логического О· ,---. ,, , --~ _,,,=,-. , Выnолпяется программа Система 8080 обработки прерываншr выnолияет сnеuиальную системную, программу Последуюшие заnрось1 на прерывания не воспринимаются ..--- .. . .. .. .-- -- . Сигнал JNTE (вывод 16) nереходит в состояние Вь~nолняется логической 1 "' команда EI Продолжается нормальное выnолиение проr аммы Теnерь заnросы на , прерывания разрешены_ вода выхода INTE в состояние логического О,. осуществляемог~ аппаратными средствами, воспринявшим запрос на прерыва­ ние, выполняется команда разрешения прерывания. Когда вы­ полнится команда EI, вывод INТE перейдет в состояние логи-­ ческой 1. Теперь микропроцессор 8080 может воспринимать но-­ вые запросы на прерывание. Система начнет выполнять программу обработки прерыва­ ния. При этом она запросит память, необходимую для выполне­ ния этой- программQ!. Однако программа обработки прерыва,ния: может быть снова прервана тогда, когда появится другой за­ прос на прерывание. В функции программного обеспечения вхо­ дит определение того, может ли прерываться процесс выполне­ ния программы обработки прерывания или он должен завер­ шиться до того, как начнут восприниматься последующие за- 12-814
!78 Глава 6 просы на прерывания. Указанная особе ость организации си­ <:темы прерываний характерна для бо ьшинства микропроцес­ еоров. Теперь рассмотрим, как запрос а прерывание вводится в микропроцессор 8080 и каким об азом микропроцессор реаги­ руе'I' на этот запрос. Сначала ост новнмся на вопросе организ~- Запрос Внешние аппаратиые средства на прерывание устанавливают на выводе 14 '-----~ --- -' микропроцессора· 8080 уровень логической 1 ыполняется команда Еl.Микро­ процессор 8080 вы­ полияет специалъ - ную программу обработки nреры­ -вания Продолжается нормальное выполнение программы Программа обработки прерывания может быть прервана при появлении запроса на прерывание Рис. 6.6. Блок-схема последовательности действий, выполняемых в систе­ ме 8080 после появления запроса на прерывание в случае, когда допускается прерывание программы обработки прерывания. ции обращения системы к программе обработки прерываний, ко­ -горая вызывается после наступления прерывания. Внешние ап­ паратные средства должны в определенное время обеспечить ввод в микропроцессор адреса или вектора, определяющего точ­ ку входа в программу обработки наступившего -прерывания. • К: четырем известным нам сигналам управления (ЗАПИСЬ В ПАМЯТЬ, ЧТЕНИЕ ИЗ ПАМЯТИ, ЗАПИСЬ В УСТРОЙСТВО ВЫВОДА и ЧТЕНИЕ ИЗ УСТРОЙСТВА ВВОДА), передавае­ мым по .шине управления, нужно добавить новый сигнал, кото­ рый будет называться сигналом ПОДТВЕРЖДЕНИЯ ПРЕРЫ­ ВАНИЯ. Он будет иметь обозна_чение INTA. К:огда подается -сигнал управления INTА с логическим значением О, внешние ~шпаратные средства системы должны поместить на шину дан-
\\ Прерывани режим ожидания и пр.ямой доступ к памяти ных вектор прерыван я. Соответствующая последовательность. действий представлена ,блок-схемой~ при,в,_еденной на рис. 6.7 . Анализируя блок-схеidr, мы видим, что после поступлениs~ запроса на прерывание на выводе INТ~ устанавливается состоя­ ние лоrичеекого О, затем подается сигнал INТA с логическии значением, равным О. Теперь с помощью определенных аппарат­ ных средств должен обеспечиваться ввод вектора прерываиий в Рис. 6.7 . Блок-схема последова­ тельности действий, выполняемых внешнимц аппаратными средства­ ми системы 8080, после поступле­ ния сигнала внешнего прерыва- ния. INT=1 INTE- О Вектор прерывания помещается на шину данных апуск программы обработки преры­ вания, .. указ"иной вектором прерываиия Прерывание запрщuено Прерывание запрещено Подтверждение: прерыванn микропроцессор. В системе 8080 имеется восемь векторов пре­ рываний, что позволяет системе начинать выполнение програм­ мы прерывания с одной из восьми определенных ячеек памя­ ти. Векторы и соответствующие им адреса памяти представле­ ны .на рис. 6.8 . В системе 8080 векторы прерываний называют также век­ торами рестарта, а для их обозначения используется аббревиа­ тура RST. Таким образом, векторы рестарта будут иметь сле­ дующие обозначения: RSTo, RST1, RST2, RSTз, RST4, RSTs" RSTв и RST1. При этом вектору RST0 соответствует адрес О, век­ тору RST 1 соответствует адрес 8 и т. д. Если, например, в мик­ ропроцессор вводится вектор RST3, то на шину данных поступит слово данных, соответствующее вводимому вектору. ' На рис. 6.9 представлена схема, обеспечивающая подачу­ вектора рестарта на. шиuу данных. Подачу вектора рестарта на шину данных называют также· «вклиниванием» вектора рестар­ та. Видно, что эта операция подобна чтению данных из памяти 12"-
180. Глава 6 :илн чтению данны·х из устройства ввода Единственное отличие ~стоит в том, что функция ввода д ны.х в микропроцессор ,8080 имеет другое назначение. ·Реализация аппаратных средст для выполнения прерыва- 1шя не вызовет трудностИ-. Однакq, относительно <:>дной из nяти nеречисленных нами особенностё'й, связанной с выполнением ЦП ввода данных, находящихся на системной шине данных, .заметим, что синхронизацию этого процесса осуществляет ми~­ ропроцессор. При обработке прерываний микропроцессор осво­ бождает нас от учета всех временных ограничений. Достаточно -голько декодировать определенные данные и -в течение опреде­ .ленноrо периода времени поместить нх на шину данных. '- Вектор рестарта Разряды слова данных Адрес памяти Имя D1 Do ~ STo 11ооо 1 0,s ~sт, оо 8,s ~ST_2 о о 10,s ~SТз о11 1 18,s ~ST4 оо 20,е RST5 о1 28,s RSTв о 30,s RST1 38,s Рис. 6.8 . Соответствие между именами, разрядами слова даниьi:х и -адресами памяти векторов рестарта. Теперь рассмотрим, как осуществляется ввод запроса на прерывание и как запускается особая программа обработки прерывания. Потом мы обсудим, каким образом после завер­ шения программы обработки прерывания возобновляется вы­ nолнение прерванной программы. Для достижения указанной целн необходимо рассмотреть ту часть программного обеспече­ ния системы 8080, которая используется в процессе обработки прерывания. На рис. 6.10 представлена последовательность событий, •происходящих в системе 8080 после поступления запроса на пре­ рывание от внешних аппаратных средств системы. Мы видим, что, после того как произошло прерцвание, на выводе INTE устанавливается уровень логического О. Затем вырабатывается еигиал шины управления, и в это время вектор рестарта вво­ дится в микропроцессор. Наконец, адрес возврата помещается в системный стек. Подобная последо.вательность действий осуществляется, ког­ да при выполнении некоторой программы реализуется вызов подпрограммы. I(огда в_ системе 8080 происходит обращение к
Прерыванйе, режмм 'ожидания и прямой доступ к п~яти 181 \. \ подпрограмме, микропроцессор помещает в стек системы адрес возврата. При желании вернуться к основной программе пос­ .ле выполнения подпрограммы необходимо просто выполнить комаиду возврата (RET). При· выполнении команды 1 RET ад­ рес возврата извлекается из·стека, и стек снова может исполь­ зоваться для хранения адресов возврата. Рис. 6.9. Схема подачи вектора рестарта иа шину даииых за за­ данное время. Схема соответству- ет вектору рестарта RST 5. \g t: o:s :i:: ... = u о00 о 00 o:s о. о u u ~ ::::1 о о. с: о о. ~ = ::!: х ::;; :i:: :i:: o:s 1::! о:! :i:: = 3 +5 74LS367 4,7 кОм 1 1 1 :4 1 1 Jб 1 1 . 1 1 ~ g l:10 1 1 1 1 - 1 1 - о, 111 :12 1 1 1 114 1 1 j4 1 1 L___ .J Такая же временная последовательность событий происхо­ дит и при обработке прерываний. Микропроцессор помещает ад­ рес возврата в системный стек. Когда после обработки преры­ вания возникнет необходимость возвращения к основной про­ грамме, в программе обработки прерывания должна быть вы­ полнена команда возврата RET. При выполнении команды RET из стека будет выбран адрес, который был помещен туда перед началом выпоJцtекяя программы обработки прерывания. Ис­ пользуя иэвле1tенный рз стека адрес, микропроцессор приступа­ ет к выnолиению прерванной программы. Рассмотрим теперь другие вопросы, связанные с обработкой прерываний в микропроцессоре 8080. После наступления преры- • вания микропроцессор 8080 переходит к выполнению специаль-
182 ной щюцраммы, находящейся в памяти оо определенному адре­ су. Вспомним, что запрос на прерываnие может поступить в произвольный )У:Омент времени. Это значит, что МИJфопроцес- t Поступленне запроса на прерыванне t Установка на выходе INTE сост9яния логнческого О t. Подача сигнала подтверждения прерывания INTA t Подача вектора рестарта на шнну данных микропроцессора . t Пересылка адреса возврата в стек 8080 t Выполнение программы, указанной вектором рестарта Рис. 6.10. Последовательность действий, выполняемых мнкроироцессором 8080~ сор должен обеспечить быстрое принятие решения, основываясь. на состоянии некоторых внутренних флажков. Так как во время выполнения программы обработки прерываний содержимое этих флажков или регистров может быть разрушено, иеобхо,. 1 PUSH PSW PUSH Н PUSH D PUSH В $111$ } Сохранение состояння регистров Программа обработки прерывания $111$ РОР В РОР D РОР Н РОР PSW EI RET } Восстановление состояния регвстров Рис. 6.1'1. Фрагмент программы, нллюстрирующий, как сохраниетси н вос­ станавливается «состоянне снстемы:.. димо «сохранить» их состояния. Это можно осуществить по­ средством записи GОдержимого регистров в стек сразу посла входа в программу обработки прерываний. А потом, непосредст­ венно перед выходом из программы обработки прерываний~ нужно будет восстановить их состояния. Рассмотренная идея иллюстрируется программой, представленной на рис. 6.11. Подведем итоги обсуждения вопроса организации прерыва· • ний в микропроцессорной системе 8080. Запрос на прерывание
Прерывания, режим ожидания и прямой доступ к памяти 183 поступает от внешних аппаратных средств. Последующие за­ просы на прерывания могут быть разр'ешены или запрещены программно. Подачей сигнала шины управления INТA обеспе­ чивается помещеtше на шину данных вектора прерывания. Век­ тор прерывания является адресом· или указателем, определяю­ щим некоторую точку входа в программу обработки прерыва­ ний. Прежде чем приступить к выполнению программы обработ- 1ш прерывания, начало которой определяется вектором преры­ вания, в стек помещается адрес возврата. Последнее действие выполняется подобно тому, как это делается при обращении к подпрограмме. Для возвращения в прерванную программу по­ ,следней в программе обработки прерываtшй должна выполнять­ ся команда RET. ~ .3. Прерывания в микр()процессоре 8085 Прерывания в микропроцессоре 8085 могут осуществляться не­ сколькими способами. Один из них полностью совпадает с рас­ смотренным нами способом организации прерываний в микро­ процессоре 8080. Вход микропроцессора 8085, на который по- Рис. 6.12 . Схема, демонстрирующая выводы микропроцессора 8085, ис­ пользуемые для подачи запроса на прерывание и для выдачи сигнала • подтверждения. • 10 \..._ Запрос на INT R1-----прерывание Используется для подачи INТд:,-11____ вектора ре- Микро­ процессор 8085 --., старта на ~ шину данных дается запрос на прерывание, имеет обозначение INТR. Этому входу соответствует вывод 10. Сигнал подтверждения прерыва­ ния INТА (вывод 11 микропроцессора 8085) фактиtrески явля­ ется сигналом разрешения подачи вектора рестарта на шину данных. Упомянутые выводы и соответствующие им сигналы показаны на рис. 6.12. На рисунке показано, что когда подается сигнал подтверждения прерывания INТA, т. е. когда на выво­ де 11 уровень напряжения понижается, вектор рестарта подает­ ся на шину данных и микропроцессор начинает выполнять про­ грамму обработки прерывания, соответствующую полученному вектору рестарта. В дafIHOM случае векторам рестарта постав­ лены в соответствие точно такие же адреса памяти, каl{ и в рас­ смотренной нами системе прерываний для микропроцессора 8080 (см. рис. 6.8). В отличие от микропроцессора 8080 в мик• процессоре 8085 не предусмотрен сигнал INТE. Это означает.
184 что для выдачи сигнала сброса запроса на прерывание нужно, использовать. порт вывода. Согласно схеме, представленной на рис. 6.13, после поступления запроса на прерывание, выраба• тываемого триггером типа-:D (см. схему на рис. 6.2), для сбро­ са запроса на прерывание необходимо подать сигнал на вход «Сброс» триггера типа D. На рис. 6.13 показана линия сброса D-триггера, началом которой является выход порта вывода. / Сброс запрJСа н11 'прерывание Шина адреса Порт вывода Рис. 6.13. Схема формирования сигнала сброса запроса на прерывание, в ко­ торой используется специальный порт вывода. Чтобы снять запрос на прерывание, микропроцессор- 8085 дол­ жен записать определеииое слово данных •в порт вывода. В микропроцессоре 8085 также предусмотрен вход TRAP (вывод 6), предназначенный для подачи запросов на прерыва­ ние, которые не могут маскироваться. Это значит, что запросы на прерывание, подаваемые на вход TRAP, иикогда не могут быть запрещены программно. Запросам на прерывание по вхо­ ду TRAP присвоен самый высокий приоритет по отношению ко всем другим прерываниям. Если в один и тот же момент вре­ мени поступят хотя бы два запроса на прерывание, то запрос прерывания, поступивший на вход TRAP, будет иметь приему­ щество над всеми др.угими. При использовании прерываний по входу TRAP нет необходимости подавать вектор рестарта на шииу данных. Этот вектор рестарта автоматически формируется и выдается микропроцессором 8085. Ему соответствует адрес рестарта 241 6• Для подачи ·запроса. на прерывание на вход TRAP может быть использована схема, показанная на рис. 6.14 .·· Отметим, что в данной схеме отсутст~зует триггер типа 1D. Вход TRAP является чувствительным как к фронту, так и к уровню сигнала. Сигнал на входе TRAP должен иметь уровень логиче­ ской 1 в течение времени, которое требуется для его ввода. в микропроцессор 8085. Однако микропроцессор устанавливает
Прерь1вания, режим ожидания и прямой доступ к памJ11ти 185 появпение сигнала на этом входе топько тогда, когда на нем происходит переход к уровню логического О и обратно куров­ ню логической 1. Для этого кнопочный переключатель, обозна­ ченный на рис. 6.14 ч~р.ез S 1, нужно на~ать и отпустить. 45 NC V\ s, ~ОС) NO о. 6 ос., TRAP с., С1.1 _г ::i о 4 17кOм о. i::: о о. ~ +5 :s: ::Е Рис. 6.14 . Схема формирования сигнала прерывания TRAP в мнкропроцессо- . ре 8085, В микропроцессоре 8085 предусмотрено еще три входа для подачи запросов на прерывания. Эти входы имеют следующие обозначения: RST 7.5, RST 6.5, RST 5.5 . Им соответствуют вы­ воды 7, 8 н 9 микропроцессора 8085 . .При поступлении запросов на прерывание ,иа указанные входы нет необходимости обес­ печивать подачу адресов рестарта на шину даниых - мнкропро- Вход прерыванйя 5.5 6.5 7.5 Вектор рестарта 5 6 7 Адрес памяти 2С 18 3411 3С1е Адрес памяти 2811 3011 3811 Рис. 6.15. Адреса памяти векторов рестарта. Отметим, что адрес вектора рестарта 6.5 расположен между адресами векторов рестарта RST 6 и RST 7. цессор определяет их автоматически. Адреса для векторов ре­ старта даны на рис. 6.15. Отметим, что адреса векторов пре­ рываний 5.5, 6.5 н 7.5 физически расположены между вектора­ ми рестарта. В микропроцессоре 8085 сигналы рестарта 5,5 и 6.5 имеют такие же временные характеристики, как и сигнал прерывания
186 Гnава 6 INТR. Сигнал RST 7.5 имеет некоторые отличия. Сигнал RST 7~5 является активным, нарастающим, чувствительным к фроиту запросом на прерывание. Для осуществления запроса на пре­ рывание требуется подать единственный импульс. Это означает" что запрос на прерывание RST 7.5 производится просто .подачей импульса на вывод RST 7.5 микропроцессора 8085. Этот им­ пульсный сигнал будет «запоминаться» до тех пор, пока за­ прос на прерывание система не обработает или не сбросит. \ Импульс запроса на прерывание RST 7,5 Рис. 6.16. Временная диаграмма сигнала запроса на преры­ вание RST 7.5 . Временная диаграмма, представленная на рис. 6.16, иллюстри­ рует некоторые особенности сигнала RST 7.5. Наряду с отличиями в аппаратных средствах, используемых для организации прерываний в микропроцессорах 8080 и 8085 ► имеются также отличия и в соответствующем программном обеспечении. Основное отличие обусловлено тем, что в системе команд мик­ ропроцессора 8085 есть команды «установка маски прерываний» (SIM). С помощью этой комаfнды могут б1;,1ть разблокированы только определенные линии запросов на прерывания. Э,;rо зна• чит, что прерывания RST 5,5, RST 6.5 и RST 7.5 могут блокиро­ ваться так же, как запрос прерывания INТR. Единственным за­ просом на прерывание, который нельзя блокировать програм­ мно, является запрос на прерывание TRAP. Прерывание по вхо­ ду TRAP не может маскироваться и будет обрабатываться всегда. MVI А, 18Н SIM EI Рис. 6.17 . Фрагмент программы для микропроцессора 8085, обеспечивающий установку маски прерываний. Код 18 1 в опре­ деляет, что 4-му и 3-му разряду маскн прерываний прнсван- вается значение 1. • На рис. 6.17 представлен небольшой фрагмент программы для микропроцессора· 8085, демонстрирующий применение ко­ манды установки маски прерываний SIM. Этот фрагмент обыч­ но используют в начале программы и, кроме того, при обработке запросов на прерывания. Назllачение разрядов маски прерыва­ ний· опиеано в руководстве по программному обеспечению си­ стемы 8085.
Прерыванмя, режмм ожмданмя м прямой доступ к памятм 187 6.4. Прерываю•• в микроnроцессоре zao •ЦП Z80 имеет два входа, предназиаченные для приема запро­ ,сов на прерываиие: «запрос на прерывание» (INТ, вывод 16) и «запрос на немаскируемое прерывание» (NMI, вывод 17). Сигиал· запроса на прерывание INТ является маскируемым, т. е. это прерывание может программным путем разрешаться или запрещаться. Немаскируемое прерывание будет воспринимать­ ся ЦП Z80 все время. Немаскируемое прерывание имеет век­ тор рестарта, равный 66 16 . Это значит, что, когда произойдет Рис. 6.18. Схема подачн за­ проса на прерывание н фор­ мирования снгнала подтвер­ ждения прерывания в МНI{· ропроцессоре Z80. 16 Микропро- цессор Z80 20 27 INTERRUPT REQUEST Схема, !NT IORQ 1 м 2 представ- _г ленная на рис. 6.2 l __J Сигнал «Сброс» из порта ввода- вывода 74LS32 з -Сигнал 1 используе для разре аив NTA, МЫЙ шения пол ч ектора рестарта иа шину даннr1х немаскируемое прерывание, ЦП начнет выполнение той про­ граммы обработки прерывания, первая команда которой нахо­ дится по адресу 661в- В микропроцессоре Z80 предусмотрено три различных спо­ соба обработки запросов на прерывания, поступающих на вход маскируемых прерываний, т. е. на вывод 16. ПеQвЫй способ аналогичен реализованному в микропроцессоре 8080. Когда происходит прерывание, один из векторов рестарта RST0- RST1 помещается на шину данных. Схема, иллюстрирующая описаииые действия, приведена на рис. 6.18. Заметим, что для формирования сигнала INТA используются сигналы М1 и IORQ, вырабатываемые ЦП Z80. Сброс запроса на прерывание в дан­ ном случае выполняется так же, как и в микропроцессоре 8085. Для этого может быть использован особый порт вывода. Когда выполняется установка начального состояния микропроцессо­ ра Z80, сбрасывается и вход «запрос на прерывание» (вы­ вод 16). Подтверждение поступления запроса на прерывание осуществляется способом, рассмотренным нами выше. Второй способ реакции ЦП Z80 на прерывание состоит в следующем. Программным путем система может быть подго­ товлена к обработке прерыващ1я так, что, когда аппаратные средства инициируют запрос на прерывание, автоматически бу-
188 Гnава 6 дет устщювлеи вектор рестарта 3816. -Этот ·способ обработк·и за• проса на прерывание идентичен способу обработки запросов на прерьiвания RST 6.5 или RST 5.5 в микропроцессоре 8085, за исключением того, что в ЦП Z80 используется другой адрес ре­ старта. Подчеркнем, что выбор этого способа обработки пре- ръmаний осуществляется программно. .. Рассмотрим теперь третий способ реакции микропроцесеора Z80 на прерывания. В память системы можно записать таблицу t (1) Заполнение В-разрядного внутреннего регистра программным­ путем (2) (3) (4) (5) (6) t Запрос на прерывание t М1 и ЮRQ=логический О t Байт данных подается на шнну данных (8 разрядов); раз.­ ряд Do игнорируется t Адрес памяти формируется из · значения определенного иа шаге (!) и на шаге (4) t Переход системы по сформированному адресу для. обработки запроса на прерывание - Рис. 6.19. Блок-схема последовательностн действий, выполняемых в систе­ ме ZBO прн возникновения запроса на прерывание. Восемь разрядов адреса подается на шину данных. Этот байт сцепляется с содержимым 8-разрядноr() внутреннего регистра, н такнм образом формируется адрес программы об- работки прерывания. 16-разрядиых адресов памяти или указателей, которые соответст­ вуют адресам программ обработки прерываний. Когда произой­ дет прерывание, внешние аппаратные средства должны поместить. на системную шину данных младшие восемь разрядов опреде­ ленного указателя, содержащегося в· таблице. Старшие восемь разрядов этого, указателя запоминаются во внутреннем р_еги­ стре ЦП Z80. Объедин~я указанные В-разрядные коды, ЦП формирует слово. Это слово используется в качестве адре~а па­ мяти, по которому хранится указатель программы обработки прерывания. В зависимости от значений введенных младших разрядов формируемого слова система определит некоторый ад­ рес 3FXX ячейки памяти. Сказанное выше иллюстрируется схе­ мой на рис. 6.1{9. Предположим, что на шину данных поступил В-разрядный код В6н1• Тогда будет сформирован указатель
Прерывания, режим ожмданмя м прямо!. доступ к памятм 3FB6, который и будет использован ЦП в качестве 16-разряд­ ного адреса, указывающего местополо~е!'!ие прогр~ммы обра­ ботки прерывания. 6.5. Прерывания в микропроцессоре 6800 Микропроцессор 6800 имеет два входа (IRQ, вывод 4 и NMI,.. вывод 6), предназначенные для ввода запросов на прерывания,.. IRQ является входом маскируемых запросов на прерывания ... Схема распределения памяти для векторов прерывания Адрес Комментарий FFFF Младшие 8 разрядов адреса RESTART FFFE . Старщне 8 разрядов адреса FFFD Младшие 8 разрядов адреса NMI I;FFC Старшие 8 разрядов адреса FFFB Младшие 8 разрядов адреса SOFTWARE INТ FFFA Старшие 8 разрядов адреса FFF9 INТ FFFB Младшне 8 разрядов адреса Старшие 8 разрядов адреса Рис. 6.20. Схема распределения памяти для векторов прерываний микропро- цессора 6800. а NMI предназначен для немаскируемых запросов на прерыва­ ния. Прерывание NMI не может быть запрещено программно..: К:огда поступает· запрос на прерывание, микропроцессор обра­ щается к особой ячейке памяти д.дя получения адреса вектора, рестарта, который будет использоваться для запуска програм­ мы обработки прерывания. Адреса рестарта привед_ены на, рис. 6.20. Аппаратные средства для выдачи немаскируемого запроса на, прерывание микропроцессора 6800 представлены блочной схе­ мой, изображеннной на рис. 6.21 . Они подобны тем, которые­ использовались для выработки запроса на прерывание в мик-­ ропроцессорах 8085 и Z80. в· микропроцессоре 6800 нет выхода. INTE, который мог бы использоваться для выдачи сигнала сбро­ са запроса на прерывание, поступившего от периферийного обо­ рудования. Чтобы сбросить запрос на прерывание, необходимо» записать в порт вывода определенную информацию. Теперь об­ ратимся к. рис. 6.20 и пре:цположим, что ячейка памяти с адре­ сом FFF8 содержит код 0016, а ячейка с адресом FFF9 - ко~ ~J5,в, Вектор рестарта и.1щ адрес, равный 0035 16, будет сформиро­ ван, когда от периферийного оборудования поступит запрос на~ 11рерывание.
190 Гnава & Мы обсудили; как с помощью аппаратных средств выраба- 1.'Ываются запросы f}a прерывания в каждом из четырех рас­ .сматриваемых нами микропроцессоров. Способы выработки аппа­ ратными средствами запросов на прерывания в рассматривае­ мых микропроцессорах одинаковы, поэтому легко разобраться в .сходствах и отличиях соответствующих систем обработки пре­ :рываний. В реальных системах аппаратные средства для выда­ "ЧИ запросов на прерывания могут быть реализованы различиы­ ~и способами. При ознакомлении с какой-либо конкретной си- 8 INTERRUPT RE UEST 00 = \О :,: ·с. С!) о ~ u "' u "' " ... ::! <.> о Рнс. 6.21. Схема подключеиня <С! с. "'"' е: формирователя запроса на пре- s::,.. 8. t:"' <iu " рыванне, схема которого пред- :,: :.:,;: :,: Сброс ~ ставлена на рис. 6.2, к мнкро- "с. :,: "' тригrера процессору 6800. U:c _г Порт вывода -стемой прерываний прежде всего следует разобраться в аппа­ ;ратных средствах микропроцессора, обеспечивающих разреше- .ние и выполнение прерываний. _ Надо помнить, что в микропроцессоре 8080 после наступле­ ния прерывания на шину данных необходимо подать ве:ктор !Рестарта. Аналогичную операцию приходится выполнять и в .одном из режимов обработки прерываний микропроцессора Z80. ·точное время, затрачиваемое микропроцессором на выполнение -:прерывания, дается в перечне технических характеристик микро- процессора. Целью настоящего обсуждения было ознакомление с внешними аппаратными средствами, которые необходимы для •Формирования запросов и обработки прерываний. Большую ромощь в изучении вопросов обработки прерыва­ •ний оказывают имеющиеся в описании спецификаций микропро­ цессора временньrе диаграммы. - 6.6. Способы реапизации режима ссОЖИДАНИЕ)) Теперь рассмотрим различные методы обеспечения режима ·ОЖИДАНИЕ в оборудовании микропроцессорных систем. Бу­ _дем использовать термин «ожидание» для обозначения иеко- 1.'орого периода времени, необходимого для выполнения опера­ :~u,ий чтения или записи в память иди для выполнения операций
Прерывания, режим ожидания и прямой доступ к памяти ввода-вывода. К:огда время ответа (реакции) памяти и~и устройств ввода-вывода больше, чем время цикла команды~ цикл команды должен быть увеличен. Период ожидания дол~ жен быть достаточным для срабатывания устройства памяти, 1t устройств ввода-вывода. Сказанное иллюстрирует временнаst Рнс. 6.22. Временная днаграмма, де­ монстрнрующая прннцнп rенерацнн пернода ожндания в мнкропроцессо­ ре. Запрос памятн реалнзуется во время пернода ожндання. Ао~---­ Из микμопроцессора r.1EMR Из микропроцессора\ 1 ~, ! Период ох~идания диаграмма, приведенная на pilC. 6.22 . В следующем разделе-­ обсудим аппар·атные средства, используемые для генерации со­ стояния ожидания в каждом из четырех рассматриваемых мик­ ропроцессоров. 6.7. Перевод в состояние ожидания микропроцессоров 8080, 8085 и Z80 Аппаратные средства, предназначенные для перевода в состоя­ ние ожидания микропроцессоров 8080, 8085 и Z80, имеют боль~ шое сходство. Рассматриваемая нами схема применима для­ каждого из этих микропроцессоров; отличаются лишь способы подключения ее к .выводам микропроцессора. Сначала обсудим" как осуществляется переход микропроцессора в состояние ожи­ дания, а затем остановимся на рассмотрении интерфейса схем,. обеспечивающих переход в режим ожидания, и микропроцессора. Запрос на ОЖИДАНИЕ сигнал (WAIТREQ) инициируется памятью системы или устройствами ввода-вывода. В рассматри­ ваемом примере предполагается, что память системы имеет вре­ мя доступа слишком большое, чтобы записывать или считывать данные на нормальной рабочей скорости микроцессора. По­ этому, когда микропроцессор должен читать данные из памяти или записывать данные в память, время цикла ЦП должно­ быть увеличено. Это будет согласование времени доступа· с мед­ лениодействующей памятью. Таким образом, память может иметь. секции, работающие с разным быстродействием. В частности, некоторые секции памяти будут обладать быстродействием, до- статочным для работы на системной скорости. В этом случае ;·, потребуется «замедлять» микропроцессор только тогда,. когда: происходит обращение к медленнодействующей секции памяти., Для выработки запроса на ожидание будут дешифрировать--
192 Гnава 6 -ся :старшие разряды адреса, передаваемого по адресной шине. К:оrда эти разряды адреса будут соответствовать низкоскоро­ -стной секции памяти, тогда произойдет выдача сигнала WAIТ- - REQ. Этот сигнал вырабатывается путем дешифрирования стар-, 1ШИХ разрядов адреса с помощью комбинационных логических ,схем, принцип его формирования иллюстрируется блочной схе­ мой, представленной на рис. 6.23. Мы видим, что адрес посту­ тrает на комбинационный логический блок, который дешифри­ i>УеТ адрес и вырабатывает сигнал WAIТREQ, когда код адре- ·логическая схема Шин<1 адреса 1 Ао-А15 Рис. 6.23. Схема образования сигна­ ла запроса ожидании. При появле­ нии определенной ·логической ком­ бинации на шине адреса логическая схема вырабатывает сигнал запроса ожидания. ,,са соответствует медленнодействующей части памяти. Появ­ .Jiение этого сигнала отмечается переходом напряжения на вы­ ходе комбинационной логической схемы от высокого уровня к 'НИЗКОМУ уровню. Сигнал запроса на ожидание используется ){ругими схема­ ми, которые и вырабатывают сигнал, вызывающий переход ЦП ~В состояние ожидания. - • Схема, предназначенная для генерации сигнала запроса на -<>жидание, представлена на рис. 6.24. Это обобщенная схема, ..которую путем расширения можно приспособить для выработки •.:запросов ожидания любой желаемой длительности. Показанная ,схема будет обеспечивать задержку в работе системы на два 1Периода ожидания. Мы обсудим в общих чертах эту схему и укажем, какие сигналы необходимы для функционирования ~е •.с определенным микропроцессором. Отметим, что рассматривае­ мая схема может использоваться совместно с микропроцессора­ ·ми 8080, 8085 и Z80. Ниже в настоящей главе будет представ­ .лена схема, прещ1азначенная для работы с микропроцессо­ lJ>ОМ 6800. Временная диаграмма, изображенная на рис. 6.25, дает !Представление о временных соотношениях сигналов, действу­ ющих в схеме, представленной на рис. 6.24 . Сначала обратим ~нимание на последовательность тактовых импульсов. Все дей­ .ствия в рассматриваемой схеме происходят во время нараста­ lflИЯ переднего фронта импульсов этой последовательности. Так­ товые импульсы подаются на ,D:триггеры типа 7474. Сигнал зa­ iqpoca •ИН ожидание подается на первый D-триггер рассматри-
Z80MREQ аовоф2(тТL) 8086 CLK Z80ф sтsтв 8080 дLЕ 8085 +5ВZ80 Сброс На вход WAIT ( 24) 6 микропро_цессора Z80 Сброс сброс Ряс. 6.24. Схема генерация состояния ожндания для микропроцессоров 8080. 8085 н 280. Вывод 1 ..:хемы 7400 Синхроимпульсы \ Запрос ожhдания \ ожидания Рис. 6.25. Временная диаграмма снгналов, действующнх в схеме,.. представ• ленной на рнс, 6.24 . 13-814
194 Глава 6 ваемой схемы. Для схемы. показанной на рис. 6.23, этот сиг­ нал является ·выходным. Предположим, что когда схема начи­ нает работать, все ее триггеры на выходах Q имеют уровень ло­ гической 1. Справедливость этого предположения мы обсудим ниже. Анализируя временную диаграмму, представленную на рис. 6.25, мы видим, что сигнал «запрос ожидания» на входе D первого триггера рассматриваемой схемы переходит к уровню логического О, прежде чем сигнал генератора тактовых импуль­ сов перейдет к уровню логичес·кой 1. Указанное временное со­ отношение между этими сигналами выполняется в каждом из трех обсуждаемых сейчас микропроцессоров; оно обеспечива­ ется синхронизацией самих микропроцессоров. К:огда синхрони­ зирующий импульс изменяется от уровня логического О до уров­ ня логической 1, выход Q первого триггера типа D переходит в состояние логического О, а выход Q этого же триггера перехо­ дит в состояние логической 1. При этом на обоих входах вен-.­ тиля НЕ И, т. е. на выводах 1 и 2 схемы типа 7400, будет уро­ вень логической 1. Следовательно, на выходе этого вентиля - вывод 3 схемы 7400-:-установится уровень логического О. Сиг- , нал на выводе 3 схемы 7400 также представлен на временной диаграмме, изображенной на рис. 6.25. Отметим, что уровни рассмотренных сигналов остаются постоянными в течение вре­ мени существования второго импульса, показанного на вре­ менной диаграмме. Во вperviя нарастания переднего фронта третьего синхроии­ зирующего импульса происходит следующее. На выходе Q третьего триггера типа D появится уровень логического О; та­ кой же уровень, очевидно, будет и на выходе 2 схемы 7400. Те­ _перь вывод 3 схемы 7400 перейдет в состояние логической 1. К:огда на этом выводе происходит переход к уровню логиче­ ской 1, со входа микропроцессора снимается сигнал запроса ожидания. После снятия этого сигнала микропроцессор про,... должит работу на нормальной системной скорости. При переходе микропроцессора к нормальному режиму ра­ боты все триггеры рассматриваемой схемы устанавливаются в состояние 11 посредством подачи сигнала низкого уровня на входы «сброс». Сигнал низкого уровня подается на входы «·сброс» в начале каждого нового машинного цикла микропро­ цессоров 8080 или 8085. Теперь схема· готова к приему сигнала «запрос ожидания»; в зависимости от адреса, поступающего по адресной шине, на выходе схемы, представленной на рис. 6.24, установится состояние логического О или состояние логической 1. Схема, изображенная на рис. 6.24, подключается к микропро­ цессорам 8080 и 8085 так, как это показано на рис. 6.26 и рис. 6.27 соответственно. При этом вывод 3 схемы ,7400 (см. рис. 6.24) ·соединяется со входом RDYIN генератора тактовщ
Генератор тактовых HMПVЛbCOfl 8.224 R~E _A_D_Y ___~ 23 ~ 6 ::: $ 1нкропронессо 8080 • Ряс. 6.26. Схема соедннення микропроцессора 8080 со схемой, показаяяоА на рис. 6.24. . ,., 35 ~ READY 00 о. о u ~::,- WAIT REQUEST 8. i:: о о. " = ::Е 30 37 дLЕ CLK Ряс. 6.27. Схема соедннення мнкропроцессора 8085 со схемой, показанной на рнс. 6.24 . . ---------------- 1 ..;;... 9 MREQ WAIT 24 ~ ф ----'<L----_. .. ..__ __ __ _.. ..: .6 ф гги о. о ~о о. i:: о о. " ~ 1Рнс. 6.28. Схема соедннення мнкропрш(ессора 280 со схемой, показащщй на рнс. 6.24. 13•
196 Гnава'6 импульсов 8224 микропроцессора 8080 или со входом READY микропроцессора 8085. На схему, показанную на рис. 6.24, синхроимпульсы поступают с выхода Ф2ТТL генератора такто­ вых импульсов 8224 микропроцессора 8080. При использовании микропроцессора 8085 синхро1:1мпульсы с, выхода СLК: сначала пqступают на инвертор, а после инвертирования - на вход под­ ключаемой к микропроцессору схемы (см. рис. 6.27). Для уста­ новки триггеров рассматриваемой схемы в состояние 1 исполь- зуется сигнал STSTB - «строб состояния» - в микропроцессоре 8080 и сигнал ALE - «отпирание фиксатора адреса» - в мик­ ропроцессоре 8085. Схема генерации сигнала «запрос ожидания» для микропро­ цессора Z8~ представлена на рис. 6.28. Отметим, что эта схема работает точно так же, как и схема, рассмотренная нами выше. В данной схеме выход второго триггера· соединяется с выводом 4 вентиля НЕ И. Эта схема обеспечивает формирование сиг­ нала «запрос ожидания», длительность которого равна только одному периоду последовательности тактовых импульсов. Сиг­ нал 'Запроса ожидания на вход триггера типа D поступает с выхода микропроцессора MREQ. Для подачи синхроимпульсов используется линия, по которой поступают сиихроимпульсы на вывод 6 микропроцессора Z80. • Перевод в состо,ние ожидания .микропроцессора 6800 В отличие от микропроцессоров 8080, 8085 и· Z80 микропроцес­ сор 6800 не имеет входов для приема сигналов •READY или WAIТ. Способ «замедления» микропроцессора 6800 при обра­ щении к памяти_ или к устройствам ввода-вывода носит назва­ ние «растягивания синхронизирующих импульсов». Используя этот способ, фактически можно увеличивать ширину импульса последовательности Ф2 до необходимой величины, определяемой временем доступа к памяти определенного типа. Согласно спе­ цификациям, ширина импульса Ф2 для микропроцессора 6800 не может превышать 4,5 мкс. Если увеличить ширину импуль­ са Ф2, .то в микропроцессоре 6800 может произойти потеря ин­ формации. Это ограничение необходимо учитывать при растя- • гивании импульса Ф2. В генераторе тактовых импульсов 6871, предназначенном для использования с микропроцессором 6800, предусмотрен вход, который посредством подачи на него сигнала позволяет замед­ лить или остановить импульс Ф2, т. е. оставить его в данном состоянии, пока на входе действует сигнал запроса. Вход гене­ ратора 6,871, используемый для этого, называется входом (.пи­ нией) готовности памяти. К:огда, на линии готовности памяти. низкий уровень напряжения, на входе Ф 1 микропроцессора бу-
Прерыеанми, режмм ожкданми н примем доступ к памити дет сос~ояние логического О, а на входе Ф2- сос;ояние логиче-. ской 1. Для возобновления нормального 'режима работы генера­ тора тактовых импульсов и, следовательно, всей системы необ- • ходимо подать на линию готовности памяти уровень логиче- ской 1. • • Чтобы обратиться к медленнодействующей памяти, достаточ­ но установить уровень логического О на линии готовности памя­ ти. Схема, предназначенная для этого, представлена на рис. 6.29. J ф2(ттL) WА!Т Готовность памяти Одно­ вибратор г------, ф1 22 6871 5 L._fc_._;;.---__J Ф2 Ширина импульса, вырабатываемого одиовибратором Ф2 (ТТL) 37 6800 Рис. 6.29. Схема генерации состояния ожидания микропроцессора 6800 . Ждущий мультивибратор (одновибратор) запускается задним фронтом поступающего на его вход и;мпульса. Сигнал, запуска­ ющий мультивибратор, поступит на его вход, когда и сигнал «запрос ожидания», и сигнал Ф2ТТL, являющийся выходным сигналом генератора 6871; переходят к уровню логической 1. К:огда указанньtе' сигналы достигнут уровня .логической 1, про­ изойдет запуск ждущего мультивибратора и на его выходе по­ явится уровень логического О. Описанные· изменения сигналов иллюстрируются временн6й диаграммой, представленной на рис. 6.30 . Вместе с переходом к состоянию логического О выхо­ да ждущего мультивибратора такое же состояние устанавлива­ ется и на линии готовности памяти. При этом последовательно-. сти тактовых импульсов «замораживаются» таким образом, что на входе Фl микропроцессора усrанавливается состояние логи­ ческого О, а на входе Ф2 - состояние логической 1. Через опре­ деленное время на выходе мультивибратора, а значит, и на ли­ нии готовности памяти установится уровень логической 1. Те­ перь генератор тактовых импульсов продолжит работу в нор-1 мальном режиме. Вспомним, что в микропроцессоре 6800 все действия на шиие данных происходят при прохождении заднего фронта импуль­ сов последовательности Ф2. Это означает, что и передача дан­ ных на устройства вывода, и ввод данных в микропроцессор 6800 стробируются rio заднему фронту импульсов фазы Ф 2. По­ этому и осущест~ляется задержка перехода импульса Ф 2 к уррв-
198 Глава 6 ню логического О на время, задаваемое ждущим мультивибра­ rором. Это время не должно превышать 4,5 мкс. Кроме того, отметим, что, когда сигнал Ф2 переходит куров- 1ию логической 1, сигнал на линии готовности памяти перей­ ,цет к уровню логического О, на входе Ф2 уровень логической 1 -будет сохраняться, пока ждущий мультивибратор находится в неустойчивом состоянии. После возвращения мультивибратора Запрос WAIТ _J Гот·овность памяти 6871 .. запуск однови.оратора --~R~лн:са- --~ Ш~а имп;;;;;;;, вырабатываемого одновибра тор?м Рис. 6.30 . Временная диаграмма сигналов, действующих в схе­ ме генерации состояния ожида­ ния микропроцессора 6800 (см. рис. 6.29). в устойчивое состояние линия готовности памяти переходит в со­ стояние логической 1 (см. рис. 6.30), а выход Ф2 генератора тактовых импульсов 6871- в состояние логического О., Когда сигнал Ф2 переходит к уровню логического О, микропроцессор . 6800 контролирует данные на шине данных или память прини­ мает данные на свои входы. Итак, мы рассмотрели способы перевода микропроцессоров 8080, 8085, Z80 и 6800 в состояние ожидания. Следует иметь в виду, что эти способы, конечно, не являются единственными. Представленные здесь схемы являются лишь примерами, кото­ рые позволяют нам увидеть, как с помощью аппаратных средств решается задача перевода микропроцессора в состояние ожи­ дания. Хорошо понимая, чтб необходимо для перевода микро­ процессора в состояние ожидания, легко и понять, как в систе­ ме работают аппаратные средства, обеспечивающие это состоя­ ние, и разработать схему для решения подобной частной про­ блемы. - Кроме того, отметим, что существует другое решение этой задачи, которое может применяться по желанию. Э.о решение гораздо проще рассмотренных, однако не всегда может быть использовано. Оно заключается в уменьшении частоты гене• ратора тактовых импульсов микропроцессорной системы. Если
Прерыванмя, режИ"м ожнданмя м прямой доступ к памятм , микропроцессор работает слишком быстро и вследствие этого· невозможно обеспечить интерфейс памяти стандартного типа, то можно просто уменьшить быстродействие микропроцессора w тем самым без использования к-акоrо~либо дополнительного,, dборудования обеспечить достаточное время для обращеиия к медленнодействующей памяти. , На первый взгляд это решение полностью неприемлемо. Од­ нако требуемое время обращения к медленнодействующим устройствам обычно только на несколько сотен наносекунд больше, чем время, выделяемое для этого микропроцессором. И хотя уменьшение частоты генератора тактовых импульсов приводит к увеличению общего времени выполнения програм­ мы, при этом сокращается объем системных аппаратных средств. Естественно, в этом случае приходится все хорошо про­ думать. Одцако отбрасывать это решение без предварительного анализа не следует никогда. Существует много приложений, в которых быстродействие микропроцессора не, является опреде­ ляющим. Тогда его уменьшение может оказаться выгодным;_ оно, быть может, приведет к желаемому уменьшению объема оборудования микропроцессорн0й системы. 6.9 . Прямой доступ к памяти в микропроцессорах 8080, 8085, Z80 и 6800 Теперь обсудим, как при использовании рассматриваемых нами микропроцессоров реализуется прямой доступ к памяти (ПДПJ. В режиме прямого доступа к памяти не используется принцип . ,• Рис. 6.31. Схема свяэн двух микропроцессоров с памятью системы. Процессор 1 Процессор 2 Память системьr Адресная шина□ Шнна rш11ных ш1а у 11равлсf1И Примечание; В любой. моме11"' времени шинами ynpaвrnreт только опии микропроuессоr адресации памяти, обычно реализуемый в микропроцессорных системах., При ПДП адресацию будет выполнять какая-либо другая система или процессор; это значит, что какой-либо дру-
200 Гnава 6 гой ЦП будет иметь доступ к линиям адреса памяти, линиям IПины данных и к системной шине управления. При этих усло­ виях микропроцессор, нормально связанный с памятью, должен ,передать управление всеми сигнальными линиями другому ЦП. "Такая с~туация возникает, .когда в некоторую систему входят по крайней мере два микропроцессора. По<;,ледние исполь,:1уют 'Одно и то же пространство памяти. Простои, пример такои си­ стемы представлен на рис. 6.31. Рассмотрим по очереди, как каждый из представленных в этой книге микропроцессоров передает. управление адресными линиями, линиями шины данных и линиями шины управления другому микропроцессору, которому необходим доступ к памя­ ти, и покаж~м, какие выводы и аппаратные средства использу­ ются для обес.печения этого управления. 6.1 О. Прямо~ доступ к памяти в микропроцессоре 8080 Микропроцессор 8080 имеет вывод, носящий наименование HOLD, который позволяет использовать микропроцессор 8080 в режиме прямого_ доступа к памяти. В режиме нормального выполнения программы, т. е. тогда, когда режим ПДП не ис­ пользуется, вход HOLD находится в состоянии логического О. При этом условии адресная шина, шина данных и шина управ­ ления управляются микропроцессором 8080. Когда другой мик­ ропроцессор или система требует использования этих т-рех шин, вход HOLD микропроцессора 8080 переводится. в состояние ло­ гической 1. При этом происходит следующее: 1) адресные линии переходят в состояние высокого сопро­ тивления; 2) линии управления переходят в состояние высокого со­ противления; 3) шина данных переходит в состояние аысокого сопротив~ ления. Теперь другой процессор сможет осуществлять управление адресными линиями, линиями данных и линиями шины управ­ ления. В том случае, когда микропроцессор 8080 используется совместно с контроллером системы 8228, на запрос HOLD от­ реагирует контроллер системы и переведет выходную шину и шину управления в состояние высокого сопротивления. Это до­ стигается подачей сигнала на вход HLDA устройства 8228. Выход НLDА-вывод 21 микропроцессора 8080- использу­ ется для выдачи сигнала на внешнее оборудование. Этот сиг­ нал является реакцией микропроцессора 8080 на запрос HOLD, поступающий на вывод 13. Последнее означает, что перифе­ рийное оборудование должно сначала подать запрос иа ПДП посредством установления уровня логического О на выводе 13
Прерь1вания, режим ожидания и· прямой доступ к памяти 201 --';.1 микропроцессора 8080. Затем периферийное оборудование ожи- дает появления сигнала HLDA с логическим значением, рав­ ным 1. После установления на выходе HLDA состояния логи­ ческой 1 м.икропроцессор 8080 перестает управлять всеми ши­ нами системы. Теперь периферийное оборудование может про­ изводить прямой доступ к памяти. После завершения ПДП пе­ риферийное оборудование переводит вход HOuD микропроцес- _ _г -.t!.QЬ.Q_ 1З о. о u u ~00 Q,00 §~ о. "' " ~ 21 HLDA С11гнал к периферийному оборудова1111ю Рис. 6.32. Схема, демонстрирующая сигнал на выходе HLDA, который f!Ырабатывается после поступления запроса HOLD на вывод 13 микропроцессора 8080. сора· 8080 в состояние логического О. Используя выход HL;DA и вход HOLD, периферийное оборудование может надежно вы­ полнять прямой доступ к памяти (рис. 6.32). Если же микропроцессор 8080 используется без контролле­ ра 8228, то ПДП осуществляется следующим образом. Напом­ ним, что адресnая шина в микропроцессорной системе 8080 мо­ жет иметь, но может и не иметь буфера. Если буфер имеется, то следует пред'усмотреть, чтобы он был с тремя устойчивыми состояниями. В рассмотренных нами прежде аппаратных сред­ ствах в качестве буфера адресных линий использовалось уст­ ройство 74LS367. Схема 74LS367 переводится в состояние вы­ сокого сопротивления посредством подачи сигнала уровня ло­ гической 1 на выводы 1 и .15 этой схемы. В данном случае та-, ким сигналом будет HLDA, вырабатываемый микропроцессором 8080. Таким образом, появление на выходе HLDA уровня логи­ ческой 1 обеспечит перевод адресной шины в состояние высо­ кого сопротивления. Это в свою очередь достигается переводом тристабильных адресных буферов в третье состояние, т. е. со­ стояние высокого сопротивления. Кроме того, для Qбеспечения ПДП в режим высокого со­ противления должна быть переведена и шина данных. В цашцх системах используется буфер данных, отличающийся от конт­ роллера 8228. Он также должен обладать тремя устойчивыми состояниями, и для его переаода в состояние высокого сопро­ тивлен,ия также. применяется выходной сигнал микропроцессо- р а 8080 HLDA. •
202 Глава 6 Кроме того, и шина управления посредством сигнала HLDA " должна переводиться в состояние высокого сопротnвления. Когда. система проектируется на основе микропроцессора 8080, нужно точно знать, возникнет ли необходимость в использовании пря­ мого доступа к памяти. Если ПДП использовать предполага­ ется, то все шины системы должны быть снабжены тристабиль­ ными буферами. Это позволит передавать функции управления шинами периферийному 9борудованию. 6.11. Прямой доступ к памяти в микропроцессоре 8085 Прямой доступ к памяти в микропроцессоре 8085 обеспечива­ ется следующим образом. Вход HOI.JD микропроцессора 8085, аналогично одноименному входу микропроцессора 8080, должен быть переведен в состояние логической 1. Когда на этом входе установится уровень логической 1, периферийное оборудование может осуществлять прямой доступ к памяти. Когда микропроцессор 8085 подтверждает получение сигна­ ла HOLD подобно тому, как это делалось в микропроцессоре 8080, выходная линия HLIDA микропроцессора 8085 переводит­ ся в состояние логической 1. Переход этой линии в состояние логической 1 означает, что микропроцессор 8085 прекратил уп­ равление адресной шиной, шиной данных и шиной. управления. Указанное действие очень схоже с тем, которое обсуждалось в связи с микропроцессором 8080 при ПДП. • В рассмотренных нами системах адресная шина и шина дан­ ных могут иметь буферы, а шина управления может использо­ вать логические ТТL-схемы. При этих условиях все три шины системы должны обеспечить возможность перевода их в со­ стояние высокого сопротивления. Сигнал перевода в состояние высокого сопротивления формируется на выходе HLDA микро­ процессора 8085. Таким образом, если в проектируемой на ба­ зе микропроцессора 8085 системе предполагается использовать ПДП, шины системы должны обладать способностью перехода в состояние высокого сопротивления посредством сигнала с вы­ хода HLDA. 6.11. Прямой доступ к памяти в микропроцессоре Z80 Микропроцессор Z80, подобно микропроцессорам 8080 и 8085, имеет вход; предн"значенный для приема сигнала перевода си­ стемы в режим ПДП. Для приема запроса на ПДП использу­ ется вход BUSRQ микропроцессора Z80. Когда на этой линии
Прерывания, режим о-жидания и прямой доступ к памяти • 203 устанавливается уровень ·логического О, шина данных, адресная шина и _линии шины управления микропроцессора Z80 перехо­ дят в состояние высокого сопротивления. После установления этого состояния микропроцессор Z80 выдает сигнал подтверж­ дения (BUSAК) того, что микропроце~сор прекратил управ­ лять всеми шинами системы. Эти два сигнала микропроцессо­ ра Z80 подобны сигналам HOLD и HLDA микропроцессора 8080. Укажем еще раз, что для реализации адресных буферов, бу­ феров данных и шины управления могут использоваться стан­ дартные логические ТТL-схемы. Если в системе возможен ре­ жим ПДП, то логические ТТL-схемы должны быть в состоянии переходить в режим высокого сопротивления. Д,ля перевода логических ТТL-схем в это состояние в микропроцессоре ис- пользуется сигнал БUSAK. Действия, выполняемые при этом в системе, подобные тем, которые разбирались выше при рас­ смотрении ПДП в микропроцессорах 8080 и 8085. 6.13. Прямой доступ к nамят" в м"кроnроцессоре 6800 Для обеспечения ПДП в микропроцессоре 6800 используются два основных сигнала. Входной сигнал HALТ, вырабатываемый периферийным оборудованием, фактически является запросом на ПДП, поступающим на вход микропроцессора. Когда сигнал HAL Т достигает уровня логического О, микропроцессор 6800 прекращает управление адресной шиной, шиной данных и ли­ ниями управления. Отказываясь от управления шинами сксте­ мы, микропроцессор выдает сигнал подтверждения ВА, имею­ щий уровень логической 1. Тем самым он уведомляет перифе­ рийное оборудование о том, что микропроцессор прекратил управлять всеми шинами системы. При разработке микропроцессорной системы на базе мик­ ропроцессора 6800 для реализации интерфейсных схем, адрес­ ной шины, шины данных и. шины управления могут быть ис­ пользованы стандартные логические ТТL-схемы. Б этом случае ТТL-схемы должны обеспечить возможность перевода шин си­ стемы в состояние высокого сопротивления. Перевод шин в это состояние осуществляется по сигналу БА, ,вырабатываемому микропроцессором 6800. Когда сигнал БА достигает уровня ло­ гической 1, а:дресная шина, шина данных и шина управления переводятся в состояние высокого сопротивления. При выполнении прямого доступа к памяти в микропроцес­ сорной системе •6800 периферийное оборудование должно по- · давать на вход HAL Т микропроцессора сигнал уровня логиче­ ского О. Когда линия HAL Т переходит в состояние логического
204 Глава 6 О, периферийное оборудование ожидает момента установления состояния логической 1 на выходе БА микропроцессора 6800. Когда линия выхода БА устанавливается в состоmше логиче­ ск·ой 1, периферийное оборудование может использовать шины системы, так как они уже находятся в состоянии высоiфго со­ противления. После осуществления ПДП периферийное обору­ дование снова переводит линию входа HALТ в состояние логи­ ческой 1. Так - выполняется операция ПДП в микропроцессор­ ной системе, построенной на базе микропроцессора 6800. 6.14. Выводы Б настоящей главе мы рассмотрели способы организации пре­ рываний, режима ожидания и прямого доступа к памяти в мик­ ропроцессорах 8080, 8085, Z80 и 6800. Кроме того, было проде­ МО!Iстрировано некоторое аппаратное обеспечение, которое мо­ жет быть использовано для выполнения этих функций. Рас­ смотренное нами аппаратное обеспечение иллюстрирует част­ ные подходы к реализации конкретных сцециальных функций. Представленные аппаратные средства не являются единствен­ ными или лучшими решениями данной задачи. Можно проекти­ ровать многие микропроцессорные системы и не используя информацию, содержащуюся в данной главе. Однако если воз­ никнет необходимость проектировать или восстанавливать микропроцессорную систему, в которой использована хотя бы одна из рассмотренных здесь функций, то материалы -настоя­ щей главы окажутся очень полезными. Кроме того, сведения о том, как аппаратные средства участвуют в выполнении этих операций, окажутся полезными при поиске неисправностей в нем. Причем, если мы не знаем общих принципов функциони­ рования аппаратных средств системы во время поиска неис­ правностей, безусловно будут возникать затруднения. Основа­ тельное знание этого материала позволит без особого напря­ жения проводить анализ каких-либо микропроцессорных систем. Принципы организации прерываний, режима ожидания и ПДП будут сохраняться; реализация же этих функций в разных микропроцессорах может быть различной. Изучив материалы настоящей главы, вы будете хорошо подготовлены для изуче­ ния аппаратных средств, реализующих эти функции в других системах.
Глава 7 ПРОГРАММИРОВАНИЕ ПЕРЕПРОГРАММИРУЕМЫХ ПОСТОЯННЫХ ЗАПОМИНАЮЩИХ УСТРОЙСТВ В гл. 8 будет представлена система, управляемая микропроцес­ сором и осуществляющая программирование перепрограмми­ руемых постоянных запоминающих устройств (ППЗУ). ППЗУ используется во многих микропроцессорных системах. Каждый, кто предполагает серьезно заниматься разработкой микропро• цессорвых систем и поиском неисправностей в них, должен _знать, как программируется и стирается ППЗУ. В настоящей главе мы рассмотрим, каким образом программируется ППЗУ 2708 и как стирается записанная в нем информация. Обсуждение будем вести на примере ППЗУ 2708, широко распространенном в настоящее время. Изучив принцщ:1ы прог­ раммирования. ППЗУ 2708, будет не трудно понять, как прог­ раммируются ППЗУ других типов. Несмотря на то что особен­ ности программир9вания конкретных ППЗУ будут встречаться всегда, общие принципы останутся неизменными. 7.1. Общие nредставnения о nереnроrраммируемых ПОСТОJIННЫХ ЭilПОМИНillОЩИХ устройствах В вычислительных системах ППЗУ используется точно так же, как и ПЗУ. Основное преимущество ППЗУ заключается в том, что информация в нем может изменяться. В стандартное ПЗУ данные записываются во время его изготовления и потом ос­ таются неизменными. Любое ПЗУ предварительно программи­ руется и будет постоянно содержать фиксированную комбина­ цию единиц и нулей. ППЗУ не нуждается в предварительном программировании и занесении в него данных. Пользователь сам может занести любую информацию в любые ячейки ППЗУ. Потом, используя специальное оборудование, пользователь мо­ жет замеюrrь данные, хранимые в ППЗУ. Возможность изменения данных в ППЗУ является главной причЙной применения этого типа устройств памяти. Когда раз­ рабатывается новая микропроцессорная система, первый вари­ ант программного обеспечения целесообразно записать именно в ППЗУ. Затем ППЗУ включается в систему и микропроцессор может выполнять программу, хранимую в ППЗУ. Если прог­ рамму нужно изменить, то ППЗУ отключаются от системы и
206 Глава 7 производится желаемое . изменение содержащейся в нем ин­ формации. Для программировавия ППЗУ и для стирания хранящейся в нем информации необходимо специальное оборудование. Од­ нако это неудобство является незначительным по сравнению с теми преимуществами, которые предоставляет ППЗУ пользо­ вателям микропроцессорных систем. 7.2. Стнранне ннфорМацнн в nереnроrраммируемых постоянных ЭilПOMHHillOЩHX устроiiствах Указывалось, что информация, содержащаяся в ППЗУ, может быть измене~а. Один способ изменения информации в ППЗУ .заключается в стирании всех данных, записанных в него ранее. Стирание информации в ППЗУ 2708 состоит просто в установ­ ке всех разрядов ППЗУ в состояние логической l. Это значит, что после выполнения этой операции чтение данных из ППЗУ обнаруживает во всех его ячейках только логи~еские 1. . · ФО~•~~ _. ./ Рис. 7.1 . Два различных способа реализации ППЗУ. «Окно» в каждем модуле пропускает ультрафиолетовое излучение, которое используется дпя стирания даикьrх в ППЗУ. (С раз• решения фирмы Intel.) Существуют различные схемы для выполнения стирания данных в ППЗУ. Одна из них - источник ультрафиолетового излучения. Конструкция ППЗУ 2708 в верхней его части пред­ усматривает «окно:., через которое ультрафиолетовое излуче­ ние может проникать в устройство (рис. 7.1). Чтобы осущест­ вить затирание информации в устройстве 2708, следует поме­ стить его на определенный период времени рядом с источником ультрафиолетового излучения. Примерное время очистки ППЗУ составляет около получаса, однако оно зависит от мно­ гих факторов. Источником ультрафиолетового излучения служит специ­ альное устройство. Оно необходимо каждому, кто предполагает активно использовать ППЗУ. На рис. 7.2 изображена схема ти­ пичной установки для выполнения операции стирания данных в ППЗУ. Как отмечалось, после выполнения стирания информации все ячейки ППЗУ находятся в состоянии логической 1. Зная это, всегда :можно осуществить проверку правильности прове-
Программирование ППЗУ 207 дения операции очистки. Для этого достаточно прочитать •со­ держимое каждой ячейки ППЗУ и уб~диться в том, что оио равно логической 1. Этот частный вопрос будет обсуждаться в гл. 9, там же будут рассмотрены программные средст~з-а, пред­ назначенные ..для управления аппаратными средствами, ирец­ ставленными в ГJI. 8. К сказанному добавим, что некоторые ППЗУ после стирания в них информации содержат во всех Рис. 7.2 . Схема типичной установ­ ки для стирания данных в ППЗУ. Источник ультрафиолетового излучения ~ ----' / /!11', 1' 1 1\ ППЗУ 2708 ----п ячейках логические нули. Поэтому всегда следует ознакомить­ ся с техническими характеристиками используемого ППЗУ. Оставшаяся часть главы посвящается некоторым аспектам вопроса программирования ППЗУ, т. е. обсуждению того, как данные записываются й ППЗУ. Запись данных в ППЗУ н.еко­ торым образом Qзменяет внутренние характеристики устройст­ ва памяти. Именно изменения характеристик приводят к тому, что в выбранных ячейках памяти запоминаются значения, рав­ ные логическому О. Итак, в память могут записываться только значения, равцые логическому О; запись же логических значе­ ний, равных 1, производится лишь при стирании содержимого памяти с помощью ультрафиолетового излучения. Процесс изменения внутренних характеристик устройства 2708 называют переносом заряда. При записи информации в устройство 2708 происходит определенное накоhление зарядов в кристалле кремния. Таким образом, путем накопления за­ рядов в определенной ячейке памяти логическое значение 1 за­ меняется на логическое значение О. Когда осуществляется сти­ рание информации в ППЗУ, скопления зарядов, образованные во время записи информации, рассеиваются. Теперь вы имеете очень поверхностное, но вполне доста­ точное для пользователей представление о процессах, происхо­ дящих иа атомном уровне в кристалле кремния. 7.3. Проrраммнрованне ППЗУ 1708 Теперь, ссылаясь на временную диаграмму, рассмотрим после­ довательность действий, выполняемых в процессе программи'­ роваиия устройства 2708. Пограммирование ППЗУ 2708 за-
208 Глава 7 ключается в записи в него данных по указываемым адресам. Записываемые данные подаются иа выходы устройства, а ад• рес, по которому производится запись, устанавливается на ад­ ресных входах. Затем на опреде,n.енные выводы устройства по­ даются необходимые уровни напряжения. Последовательность Vва=- 5В, Vcc=+5В, V00 = -~ 12,0B,.Vss=O,O В Вывод 20(CSl\\'E) = +12,ОВ _Подача адреса ячейки навходы А0- А9 Подача данных на вы-ходы D0 - D 7 Вывод18=26В Выво:~ 18 = 0,0 В Рис. 7.3. Блок-схема последова­ тельности действий при записи информации в одну ячейку ППЗУ. действий, выполняемых при записи данных в ППЗУ, приведе­ на на рис. 7.3 в виде блок-схемы. Временная диаграмма, представленная на рис. 7.4, демон­ стрирует врем'енные соотношения между сигналами, отобража­ ющими данные и адреса, и импульсами программирования, по­ даваемыми на устройство 2708. Как указано в технических ха­ рактеристиках устройства 2708, его адресные входы _и входы данных рассчитаны щ1 стандартный уровень напряжения, уста­ новленный для ТТL-схем. Сигнал CS/WE, подаваемый на вы• вод 20 устройства 2708, в течение времени программирования устройства 2708 должен иметь уровень +12 В. Импульс прог­ раммирования, подаваемый на вывод 18 ППЗУ 2708, изменяет-
Характеристики сигиал:ов, используемых •• при прогртrмироваиии ППЗУ Обэначеяие 1 Параметр I ·Значение мни. ' 1 тип. 1 махе. Единица измерения tлs Время установки адреса 10 tcss Время установки сигнал:,а 10 CS/WE tns Время установки данных 10 tлн Время фиксации адреса 1 tсн Время фиксации сигнала 0,5 CS/WE tnн Время фиксации данных 1 tnp~ Время задержки чтения дан- ных яз ППЗУ по отношению к моменту окончания цикл:а про- граммирования tpw Ширина импульса программ и- О, 1 роваliИЯ tp~ Время переднего фронта ИМ:• 0,5 пульса программирования tpp Время заднего фронта импуль- 0,5 са программирования __ !_из N uиклов проrраммирования. V1н - ·~. k - --+- - -!r-------bl.r - -1 Адрес . Адрес О V1L_., ~..--,.-.-1---11--------+"I V1н-~ ~-----~~-------+•r- Данные ll1t Импульс программирован и я м·кс мкс мкс мкс МКС мкс 10 мкс 1,0 мс 2,0 мкс 2,0 мкс Чтение (После N uиклов проrраммироваиюr) 1дсс450нсМА Х' ОАТА OUT VALIO Примечание 1: задний фронт сигнала CSI\VE должен проходить после- прохождения. _ задн его фронта программного импульса-и перед подачей кода адреса. Примечани~ 2: чясла,помешенньiе в круrлые скобки, если особо не оговаривается, указывают временной интервал, выраженный в мкс. Рис. 7.4 . Форма сигналов, используемых при записи данных в ППЗУ. (С раз­ решении .фирмы Intel.) 14-814
Глава 7 ся от уровня О до уровня 26 В. Он нарастает до 26 В, а затем ,снижается до нулевого уровня для каждой очередной програм- 1t1ируемой, ячейки ППЗУ. При программировании устройства 2708 для записи данных в ячейку с определенным адресом тре­ -буется подать один импульс программирования. Таким обра- CS/WE = 12.0 В ,____ г_~_,,; • , J ----·-- ·--·----1 Данные полаю1ся 1 на выходыD 0 -D-J -г---- Вывод18=+26Вi! Ожидание от 0,1 до !мс -------i Вьшо;r 18 = 0,0 В~ • ~ет Адс!;ес Да . 1023 ' /.'----. Адрес Ао - А9 ~ Числ увеличивается на 1 uиклов = -- -·· '. МАХ . •.?/ ~·Да [_с~оп-] l Рис. 7.5 . Блок-схема последовательиости действий, выполняемых при про• граммировании ЦПЗУ. зом, при программировании устройства 2708 потребуется вы­ полнить 1024 цикла, т. е. столько, сколько имеется в ППЗУ ячеек. На рис. 7.5 изображена блок-схема, определяющая после­ довательность действ»й, выполняемых в одном цикле програм­ мирования ППЗУ 2708. Анализируя блок-схему, видим, что уровень сигнала CS/WRITE ENABLE устанавливается равным +1;2 В до того,
Проrрам/11\ирование ППЗУ . 211 как данные будут поданы на выходы устройства. С помощью этого сигнала выходы устройства 2708 • переводятся в режим ввода данных. Это действие позволяет предотвратить конфJ1икт данных, имеющихся на выходах устройства, с записываемыми в него данными. Кроме того, все разряды вводимых данных по­ даются на устройство 2708 паР.аллельно. Одновременно произ­ водится программирование восьми разрядов ППЗУ. 7.4 . Нмпуnьс проrраммироввния ППЗУ 1708 Импульс программирования, подаваемый на устройство 2708. при уровне в +26 В имеет минимальную длит~льность 0,1 мс и максимальную длительность, равную 1 мс. Однако фактичес­ кое значение ширины этого импульса может быть любым в за­ данных пределах. Хотя ширина импульса и может принимать в указанных пределах произnольное значение, важно, как будет показано ниже, знать точное значение ширины импульса про- граммирования. • - ,i-+ - --1+- !PR 0,5 МКС до 2,0 мкс , IPF 0,5 мкс ------- ;:(О 2,0 МКС == +26,0 В 0,0 В ---- -~1;,w__ _ ____ , 0,1мсдо\.Омс Рис. 7.6 . Форма импульса программирования для ППЗУ 2708. Другими важными характеристиками импульса программи­ рования являются длительности переднего и заднеl'О фронта. Эти характеристики должны находиться в пределах от 0,5 до 2,0 мкс. На рис. 7.6 показана форма импульса и указаны его характеристики. Для программирования устройства 2708, со­ гласно спецификац:иям, необходимо обеспечить выполнение следующего условия: произведение ширины импульса програм­ мирования на число циклов, выполняемых при прог·рамм1;1рова­ нии памяти, должно быть не менее 100 мс. В любом цикле про­ граммирования при переходе к каждой следующей ячейке ППЗУ подается импульс программирования. Таким образом, необходимое количество циклов программирования памяти 14•
Глава 7 .можно определить следующей формулой: 100 мс · NP = Длительность импульса программирования в мс • В нашей системе длительность импульса программирования .равна 0,5 мс. Следовательно, потребуется выполнить следую­ щее число циклов: 100 МС NP= o,s мс ....:.200, .Если выполнять программирование устройства согласно спепи­ .фикациям, то нужно сделать 200 циклов, в каждом из которых .обрабатываются все ячейки ППЗУ. Можно выполнить и боль­ ше чем 200 циклов. При этом только возрастет время програм­ мирования. Увеличение количества циклов не улучшает каче­ ,ства программирования, и поэтому целесообразно выполнять -количество циклов, определяемое приведенной выше формулой. ·Однако многие пользователи считают, что, чем больше время nрограммирования ППЗУ, тем выше будет качество програм­ мирования. Это ошибочная точк.а зрения, и поэтому следует придерживаться рекомендованных правил. В процессе программирования памяти может обнаружиться, что она уже содержит информацию, которую и предполагалось .~ нее записать, а предписанное число циклов программирова­ ния еще не исчерпано. Например, мы могли убедиться в том, что уже после 20 циклов вместо 200, рекомендуемых ИJiструк­ цией, в памяти содержатся желаемые комбинации О и 1. Од­ нако в этом случае во избежание последующего самопроизволь­ ного разрушения записанной информации следует продолжать программирование в течение заданного времени. Вначале мы упоминали, что изменение внутренних харак­ теристик ППЗУ 2708 основано на эффекте накопления заряда. , Если уже накоплено некоторое минимальное количество заря­ да, достаточное для изменения внутренних характеристик ППЗУ (затраченное при этом на программирование время ока­ жется меньше номинального), то рассеивание некоторых заря­ дов может изменить состояние памяти, т. е. записанную туда информацию. Таким образом, если уменьшить время програм­ мирования ППЗУ, то во время его использования может про­ изойти разрушение хранимой в памяти информации; т. е. вме­ сто записанного .логического значения О может появиться логи­ ческое значение 1. Следовательно, программировать ППЗУ нужно всегда в течение предписанного времени. l(огда накопится заряд, соответствующий номинальному gре­ мени программирования, рассеивание некоторых зарядов не бу­ дет приводить к искажению информации в ППЗУ, так к;а~ ос­ тающееся число- зарядов будет, достаточным для .сохранения
Программирование ППЗУ 213 определенного сьстояния памяти. Не стоит жертвовать надеж­ ностью хранения информации в ППЗУ ради ускоруния процес-. са программирования. Vаь=-58, Vcc=+5B, V 0 :)=12,0B, V 55 =0 ,CB _, Вывод 20(CSiWE) = + 12,0 В Подача адреса fia входы А 0 - А9 1 Подача данных, подлежащ11х записи по укшанно~,~ адрес> ' Вывод 18 = + 26 В (в течение 500 мкс) 1 Вывод18=0,0В Нет Увеличение адреса ППЗУ 1 Увеличение адреса ОЗУ Чтение данных ОЗУ Сброс адреса ОЗУ Сброс адреса ППЗУ ш11бк, Рис. 7.7 . Бпок-схема процесса программирования ППЗУ 2708 с использова• нием ОЗУ. Предполагается, что данные были предварительно записаны в ОЗУ. В гл. 8 будет_ рассмотрена система, которая реализуется в соответствии с блок-схемой, представленной на рис. 7.7 . Мы видим, что данные, предназначенные для записи в ППЗУ, пред­ варительно помещаются во внешнее ОЗУ, а уже из ОЗУ пе-
214 Глава 7 редаются на входы ППЗУ 2708. Сравнение содержимого ОЗУ с данными, читаемыми из ППЗУ, производится, когда требуе­ мое число циклов программирования завершится. Если при вы­ полнении ер авнения .содержимого всех соответствующих ячеек ОЗУ и ППЗУ установлено полное совпадение, то, значит, ППЗУ запрограммировано успешно. 7.5 . Выводы В настоящей главе рассмотрены некоторые важные характери­ стики ППЗУ 2708 и принципы программирования этого типа устройства памяти. Материалы, представленные здесь, будут использованы в следующей главе при проектировании микро­ процессорной системы, предназначенной для автоматического программирования ППЗУ 2708. Зная, как программируется ППЗУ 2708, вы сможете без большого труда разобраться tJ особенностях щюграммирования других подобных устройств.
Глава 8 ТЕХНИЧЕС,КИЕ СРЕДСТВА УСТРОЙСТВА ПРОГРАММИРОВАНИЯ ППЗУ • В настьящей главе рассматриваются технические средства мик­ ропроцессорной системы, используемой для автоматического программирования ППЗУ 2708. Вопросы программирования устройства 2708 рассматривались ранее в гл. 7, однако там не затрагивалась автоматизация этого процесса. Для построения описываемых систем будут использованы четыре типа микро­ процессоров. Вначале рассматриваются системы на базе мик­ ропроцессоров 8080, 8085 и Z80; затем обсуждение связано с системами на основе устройства 6800. В настоящей главе описывается лишь проектирование тех­ нических средств системы. Соответствующие программные средства будут рассмотрены в гл. 9; В гл. 10 обсуждаются во­ просы отладки системы с помощью техники тестирования по­ средством статических сигналов. 8.1. Общее описание системы Прежде чем обсуждать особенности построения системы, необ­ ходимо определитμ_ ее r1резназначение. Основная функция рас­ сматриваемой системы заключается в программиррвании ППЗУ Рис. 8.1 . Структурная схема техниче­ ских средств системы автоматизации программирования ППЗУ. ,тройство отоб ажения 2708. Однако такое широкое определение функции системы по­ рождает ряд вопросов. Первый из них связан с определением устройства для хра­ нения данных для программирования ППЗУ. В качестве по­ добиого устройства м~жет быть использовано ОЗУ. Однако при этом возникает другои вопрос: каким образом эти данные вво­ дятся в ОЗУ? Естественным решением является ввод данных с помощью клавишного пульта.
216 Глава 8 При этом возиикает проблема визуального контроля вводи­ мых данных, которая может быть решена путем использования 6-значного шестнадцатеричного табло (устройства отображе­ ния). Теперь, ко:гда уже определены некоторые общие блоки пред­ лагаемои системы, необходимо выбрать способы их реализа­ ции. Эти блоки поkазаны на рис. 8.1, который отображает об­ щую функцию системы в виде этапов: а) ввода данных в ОЗУ посредством клавишного пульта и б) программирования уст- ройства 2708 с помощью введенных данных. •• 8.1 . Специфические функцt,еи системы Для ввода данных посредством клавишного пульта необходимо реализовать следующий набор ключей: 1. Ключи данных 0-F . 2. Ключ ввода. 3. Ключ стирания ввода. 4. Ключ установки адреса. 5. Ключ стирания ОЗУ. 6. Ключ программирования. 7. Ключ верификации (V,FY). 8. Ключ копирования. 9. Ключ сброса системы. Ниже определено назначение этих ключей. КЛЮЧИ ДАННЫХ: шестнадцать ключей, испольауемых для ввода данных в систему и обозначаемых как 0-F . КЛЮЧ ВВОДА: используется для «уточнения» вводимых данных путем их сверки. КЛЮЧ СТИРАНИЯ ВВОДА: используется для стирания данных, введенных с помощью ключей данных, либо для сти­ рания установленного адреса. КЛЮЧ СТИРАНИЯ ОЗУ: подготавливает к работе внут­ реннее ОЗУ путем установки единичных значений данных. КЛЮЧ ПРОГРАММИРОВАНИЯ: переводит систему в ре­ жим программирования, при котором данные из ОЗУ переда­ ются в устройство 2708, с высвечиванием соответствующей ин­ дикации режима на табло. После нажатия этого ключа останов работы системы возможен лишь путем нажат.ия на ключ еброса. КЛЮЧ ВЕРИФИКАЦИИ (VFY): при нажатии этого ключа производится сравнение данных в устройстве 2708, размещен­ ном на панели, с данными, хранимыми в ОЗУ. При обнаруже-' нии несовпадения •на табло высвечивается адрес и значения данных в ППЗУ 2708. , КЛЮЧ КОПИРОВАНИЯ: при нажатии этого ключа осуще­ ствляется дублирование данных из ППЗУ 2708 на панели во внутреннее ОЗУ. Этот режим используется для получения иден­ тичных ППЗУ (на основе уже имеющихся).
Технические средства устройства проrрjtмм.мрования ППЗУ 217. КЛЮЧ СБРОСА: при нажатии ключа прекращается .выпол­ некие очередной команды и начинается выполнение программы инициализации. При включении система выполняет ту же последователь­ ность команд, что и при нажатии ключа сброса. 8.3. Всnомоrатеnьные технические средства Теперь, когда стало ясно предназначение системы, можно при- • ступить к проектированию аппаратуры, реализующей рассмот­ ренные функции. Для штатного устройства 2708 в режиме чтения, когда по­ следнее функционирует подобно ПЗУ, необходимы напряжения 12, 5 и -5 В. При работе в режиме программирования необ­ ходимо дополнительно обеспечить импульс программирования напряжением 26 В. Поэтому для работы устройства требуют­ ся уровни напряжения в 26, 12, 5 и -5 В. Используемые в си­ стеме ТТL-схемы также требуют напряжения 5 В при номи­ нальном токе, величину которого нетрудно вычислить. Сущест­ вует большое число источников питания с напряжением 5 В, которые можно использовать в системе. Остановимся на источ­ иике, обескечивающем ток 3 А при напряжении 5 В. Для напряжения. -5 В характерна малая величина тока, обычно порядка 200 мА. Иэ технических характеристик устрой­ ства 2708 видно, что наибольший ток для Vвв составляет 60 мН. Предполагается, что в системе будут использованы три таких устройства: два для управления системой и одно для программи­ рования. Кроме того, необходимо предусмотреть возможность расширения системы. Поэтому расчеты следует проводить для • четырех ППЗУ 2708. При этом наибольший ток для Vвв будет составлять 4Х60=240 мА. Следовательно, выбирается стан­ дартный источник, обеспечивающий при -5 В ток силой 500 мА. , От напряжения 12 В должны питаться два устройства 2708, управляющи€ системой, и программируемое устройство. Если рассчитывать иа расширение системы до 4 устройств, исполь­ зуемых для управления, то с учетом программируемого устрой­ ства источник в 12 В должеы обеспечить ток 5Х65=325 мА. Здесь значение 65 мА представляет «наихудший случай» для тока IDD в соответствии с техническими характеристиками уст­ ройства 2708. Поскольку для программирования необходимо 26 В, то на­ пряжение 12 В можно обеспечить с помощью регулятора от ис­ точнnка в 26 В. Наибольшая величина рассеиваемой мощности для такого регулятора определяется как (26 В-12 В) XIDo (системы) и составляет Ро= 14 ВХ325 мА-4,55 Вт. В качестве регулятора используем устройства LM340C-12 . Получение требуемых н_апряжений показано на рис. 8;2.
218 Глава 8 При использовании микропроцессора 8080 значения тока при напряжении 12 В и -5 В повышаются, поскольку такто­ вый генератор 8224 также потребляет 12 В. Промышленность выпускает целый ряд источников питания с различными значениями напряжения и тока. После оценки потребностей системы обычно можно подобра·ть один из таких источников, обеспечивающий требуемые спецификации. Если же про~_ктировши~ намерен создать свой собственный источник 11сточ1ш~ 1111 Г3JJIIЯ +26 - 1-5 -- 5 --н- t 128 111,1х~н -· -~ J_ Рис. 8.2 . Схема подачи питания в системе. t26B +12rJ :., ,, :, >'J ~ .!. +;,В -sв питания, то при разработке его· можно испощ,зовать регулято­ ры напряжения с тремя зажимами. Однако предпочтительнее - все же применять готовый источник. 8.4 . Кnавиwное устройство ввода-вывода Для построения клавишного устройства используем техниче­ ские средства, описанные в гл. 4. Схема устройства, рассчитан­ ная на 24 ключа, представлена иа рис. 8.3. Реализованы следу­ ющие ключи: 16 ключей данных (для набора цифр от О до F1в) 1 ключ ввода • ! 1 ключ стирания ввода !' ключ установки адреса 1 ключ стирания ОЗУ 1 ключ программирования Функциональные ключи 1 ключ вер,ификации j 1 ключ копирования 1 ключ сброса системы Итого 24 ключа
Ш ~ l W I R Ь , X B D r - + - - - - _ _ , , : ~ : ~ в ь . B D 3 B D 2 B D 1 8 D 0 _ _ . _ _ . . ; 7 4 L S 2 0 в д , в д . В д , 8 А 4 В д , 1 3 В д , 1 2 В д , ~ К о д в ы б о р а В А 0 ~ 9 п о р т а - " F E " , с н r н а л в ы б о р а п о р т а и м е е т з н а ч е н и е л о г и ч е с к о г о О 7 4 L S 0 4 r c , B ! O R в ю W Ш и н а у п р а в л е н и я 8 I O W ! С З + 6 + 6 + Ь • а ' R 5 - ' - 7 4 L S 3 6 7 С о 4 , 7 к 0 м 4 , - , , / , / , / , / ' с - - - + , З t \ . f 4 с , с , 1 , 1 5 ) . в 1 1 ~ Ч т е н и е t Г R 2 C • R 3 C 4 н , с . R 4 C 1 R 4 C 2 R 4 С з R 4 C 4 R 4 К л а в 1 1 Ш П Ь 1 i 1 п у л ь т , н о м е р п о р т а р а в е н " F Е " 1 1 - & Р и с . 8 . 3 . П о л н а я с х е м а и н т е р ф е й с а к л а в и ш н о г о п у л ь т а с и с т е м ы . П у н к т и р н о й л и н и е й в ы д е л е н ы ф и з и ч е с к и е п е р е к л ю ч а т е л и п у л ь т А .
220 Глава 8 Ключ сброса системы не входит в наборную. матрицу. Функ­ ция сброса не синхронизирована с другими функциями и реа­ лизована с помощью отдельf{ого переключателя, тип и располо­ жение которого . описаны ниже при рассмотрении технических средств системы в целом. 8.5. • Технические средства устройства отображения Будем использовать то же самое устройство отображения, ко­ торое было рассмотрено в гл. 4. Принципиальная схема этого устройства приведена на рис. 8.4 . 8,6. Постоянная память системы Постоянную память системы можно построить путем использо­ вания ППЗУ 2708 со стиранием информации. Для реализации всех команд системы применяются два устройства 2708; одна­ ко при проектировании системы для обеспечения возможности ее расширения предусматривается наличие четырех ППЗУ 2708. В ПЗУ системы принято следующее распределение памяти: Адресное пространства 0000-0ЗFF ПЗУ О 0400-0?FF ПЗУ 1 0800-0BFF ПЗУ 2 OC00-0FFF ПЗУ 3 } В этих ПЗУ хранятся про- граммы ' } Данные ПЗУ не используются, - а предназначены для pacuiиpe- - • НР,Я системы 8.7. Оперативная память системьr Хранение данных для программирования устройства 2708 осу­ ществляется в ОЗУ объемом 1 К (1024 байт). Для работы мик­ ропроцессора необходима дополнительная память ОЗУ, чтобы разместить «стек» и временно запомнить данные. Используемое в системе ОЗУ состоит из четырех устройств статической щ1мя­ ти 2114 объемом 1 К. Два из этих устройств включают ОЗУ, 1 К Х 8. Ниже приведено распределение памяти ОЗУ системы: Адресное пространство 1000-IЗFF Память системы, используема~ микропроцессорам • 1400-1 ?FF Память системы, предна·значенная для ираграммирования 2708 1800-lBFF Не используется, память предна­ значена для возможного расшире­ ния системы Отметим, что как для ПЗУ, так и для ОЗУ дополнительный объем закла.п:ывается при проектировании. Это позволяет лег-
В с е у с т р о й с т в а о т о б р а ж е и И : я - Н Р 5 0 8 2 - 7 3 4 0 · + 5 + 5 + 5 + 5 + 5 + 5 7 6 5 4 1 7 6 5 4 7 · 6 5 4 7 6 5 4 7 f , 5 4 l l 7 6 5 4 1 - = - ~ 3 2 1 8 3 2 1 8 3 2 1 8 3 2 1 8 3 2 1 8 I C 1 ! С 2 ! С 3 8 4 2 1 _ . - К о д 1 9 1 6 1 5 1 2 В 6 5 2 1 9 1 6 1 5 1 2 ; 8 6 5 2 1 9 1 6 1 5 1 2 8 6 , 5 2 \ 7 4 L S 3 7 4 1 7 4 L S 3 7 4 1 1 7 3 L S 3 7 4 1 8 1 7 1 4 1 3 9 7 4 3 - = - 1 8 1 7 1 4 1 3 ' 9 7 , 4 3 - = - 1 8 1 7 1 4 1 3 9 7 4 3 , - . < . D I J ) • 1 1 М N - О , - . < . D i r , - s - • 1 1 М < " ' < _ О , - . ( , ( ) I J ) V 1 1 . . . , N ~ О 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 О О О ~ 0 0 0 0 а : ) C D а : ) C D C D a J / Q ) C D Q ) а : ) а : ) C D Q ) Q ) a J a J а : ) а : ) а : ) C D C D а : ) а : ) а : ) 6 8 1 1 I C , ( \ " F 2 " I C 4 " F 1 " r c . " F O " 6 7 4 2 0 1 ! С , В А 7 В А 6 В А 5 8 А 4 В А 3 В А 2 В А 1 В А 0 ! С 5 8 D 7 8 [ \ 8 D 5 8 D 4 8 D 3 B D 2 В 0 1 8 D 0 р щ : . ~ Ц . р · о щ щ я c x e t 4 a f С Т р а й с ц а о т о б р а ~ ~ Н ! I Я _ C l ' l ~ ~ M t i \ 1 . в ю w
222 Гл11ва 8 ко присп·особиться к изменениям, которые могут возникнуть в будущем. Отметим также, что распределение памяти, показан­ ное для ПЗУ и ОЗУ системы, испсr.льзуется лишЬ- в случае при~ менения микропроцессоров 8080, 8085 и Z80. Для микропроцес• сора 6800 требуется другое распределение памяти вследствие особенностей интерпретации функции сброса. Реализация си­ стемы, использующей устройство 6800, обсуждается ниже. 8.8 . Интерфеiiс проrраммирования 2708 Рассмотрим, какие средства необходимы для обеспечения по­ ступления на вход требуемой информации для программирова­ ния устройства 2708. Это устройство имеет 10 адресных линий. Адресные лин11и ППЗУ j 74LS374 11 t 8 РАо 2 3 ВО0 !Сз РА1 7. 5 4 во, 6 РА2 6 7 ВО2 5 РАз 9 8 В03 4 РА4 12 13 во. 3 РА5 15 14 ВО5 2 РА6 16 17 В06 ППЗУ РА7 19 18 ВО7 2708 !Cg----- 47кOм +5 23 РА8 2 4 В00 РА9 7 5 во, 22 rc,o- 74LS175 9 3 t!С4 Рис. 8.5 . Схема выдачи адреса на программируемое ППЗУ. Лредставwм_подачу адреса на устройство 2708 с помощью двух -отдельных выходных портов. Один из них предназначается для .адресных входов Ао-А1, другой - для входов As, и Ag. Для ре-
Технические средств11 устрс»йства программирования ППЗУ 223, ализации этих портов используем В-разрядный фиксатор, 74LS374 и 4-разрядный фиксатор }4LS1,75. Адреса этих уст­ ройств будут соответственно ОО1е и 011 6, где ОО1е относится к; адресным линиям А0-А1, 0l 1e - к линиям А8-А9 устройства, 2708. Технические средства, необходимые для реализации описан" ной функции адресования, приведены на рис. 8.5 . 8.9. Технические средства ввода и вывода данных Для программирования ППЗУ 2708 необходимо подать инфор­ мацию на выводы данных. Для проверки правильности програм-­ мирования устройства 2708 данные считываются из ППЗУ_ 8/ 8 -- ---- -~ 8 1 1 1 1 1 L_ а Устройство с З состояниями 8 "':. ~8 ~ "' -- --, :,: 1 3: 8 1 1 L_______... ___ _ б 8 8 ____ .,. 8 Рис. 8.6. Схема передачи данных из системы в программируемое ППЗУ (а); схема передачи данных от программируемого ППЗУ в систему (б). Таким образом, в отдельные промежутки времени данные счи­ тываются, в другие - записываются в ППЗУ 2708. Для ввода данных в устройство 2708 используется системный адрес выво­ да 021е, для В!>JВода - сnстемный адрес ввода 02 16 • При подаче данных в ППЗУ и при чтении данных из ППЗУ необходимо отделить их от данных на выходах устройства. ·это, показано на блок-схемах рис. 8.6, а и б. _ _
m;; 74l532 -5 +5 +12 1 3 74LS374 iПow" 2 11 !Сз -=- 12212419 ВО0 PD5 3 2 во, 4 5 РО1 f'Qo 9 во, 6 PD2 PD1 10" вq, в 9 PD3 Р02 11 во, 13 12 Р04 !С5 РО3 Программируемое ВО5 PD5 РО4 13 устройство 14 15 14 270В во. 17 16 РО6 РО5 15 BD, 1В 19 РО1 PD6 16 PD7 17 74LS367 ВО0 3 2 PD0 во, 4 PD1 во, 6 PD1 во, PD3 1с6 910 во, 11 12 РО4 ВО5 13 14 PD5 ~4 6 8IOR 5 !С3 во. PD6 2 во, 4 PD, !С, ----~6 о JJaflllЫC к ППЗУ 1" данные 01 ППЗУ 2D о DENA SEL2 10 74LS74 в 3с вюw 9 IC3 IC8 R8 4,7 кОм +5 Рис. 8,7. Полная схема реализации дв~аправленной передачи данных для программируемого ППЗУ. Принцип- работы схемы показан на рис. 8.6 .
Технические средства устройства l'!роrраммирования ППЗУ 225 Чтобы не допустить взаимосвязь технических средств бло­ ков А и В на рис. 8.6, а и б, необходима линия управления, оп­ ределяющая состояния чтения и записи данных-· ,цля устройства 2708. Для микропроцессорной системы эта _линия будет играть роль устройства вывода. Код выбора вывода для этого устрой­ ства есть 03 16 . На рис. 8.7 показана схемная реализация опи­ санной функции управления. 8.10. Средства формирования имnуnьса . nроrраммирования Уровень напряжения .для импульса программирования на вы­ воде 18 ППЗУ 2708 меняется от +26 В до О В. Продолжитель­ ность импульса составляет примерно 0,5 мс. Сигнал управле­ ния изменением уровня импульса программирования (от высо­ кого +26 В до низкого О В) должен соответствовать уровню ТТL-схем. Это отражено на рис. 8.8, а и б. Из рис. 8.8, б следует необходимость построения схемы сдви­ га уровня напряжения от уровня TTL до +26 В. Микропроцес­ сор выдает соответствующим образом синхронизированный - ТТL-импульс для управления импульсом программирования. На рис. 8.9 приведена схема генерации импульса высокого уровня, в которой· в качестве разрешающего ·сигнала используется ТТL-сигнал управления. Сигнал БNABLE является дополняю­ щим для разрешающего ТТL-сигнала. Ниже будет рассмотрена генерация сигналов-:разрешения и ENABLE. Если сигнал раз­ решения на рис. 8.9 соответствует логической 1, то сигнал на выводе 2 инвертора со свободным коллектором 7406 соответст_. вует логическому О. В результате в цепи источника 26 В через резисторы ,R1 и R2 на землю проходит ток. В этих условиях от­ крывается транзистор Т 1 , так что потенциал коллектора стре- мится к +26 В. Уровень сигнала ENABLE соответствует логи­ ческому_ О. Вывод 4 устройства 7406 выступает как свободный коллектор. В результате чего потенциал точки 4 повышается до +26 В. Временем нарастания импульса управляет резистор Rз и конденсатор С1. Положим, что разрешающий сигнал рис. 8.9 соответствует логическому О. Это будет означать, что сигнал ENABLE соот­ ветствует логической 1. Вывод 2 инвертора 7406 будет открыт вследствие подачи сигнала логического О от линии разрешения. Поэтому транзистор Т1 закрывается. Сигнал на выводе 4 ин­ вертора }406 соответствует логическому О при сигнале 1• на входе ENABLE.- В результате потенциал вывода А соответст­ вует О В. При этом время спада выходного импульса управля­ ется ре3истором· R4 и конденсатором С 1 . Из изложенного ясно,· каким обрамм схемы TTL управляют генерацией импульса программирования +26 В. 15-814
а б 0.5 мс +268 Сдвиг уровня Импульс программировани,r Импульс управления Импульс программировани,1 Рис. 8,8. Временная диаграмма формирования импульса программирования высокого уровня напряжения в сравнении с управляющим ТТL-импум.­ сом (а); схема сдвига уровня, осуществляющая преобразование ТТL-импуль­ са управления в импульс программирования высокого уровня, необходимый • для программирования ППЗУ (б). Импульс ----- управления / 7406 ENABLE +26.О В R 1 6600,\1 R, iкО\1R. 1 J 100Oм ·0 и,,,пульс --- --~ программирования R4 27Oм ENABLE Рис. 8.~. Полная схема сдвига уровня, построеииая иа основании блок-схе­ мы рис, 8.8, б.
Тех:нические средства устроRства программировани'! ППЗУ· 227 8.11 . Средствв уnравnения уровнем напряжения на выводе CS/WE • При программировании ППЗУ 2708 вывод 20 CS/WE должен быть соединен с источником + 12 В. При этом уровень напря­ жения также должен быть ТТL-управляемым. Используем тот же подход, что применялся при генерации импульса програм­ мирования. Соответствующая схема приведена на рис. 8.10. Отметим, что потенциал эмиттера на схеме для транзистора Т2 соответствует +12 В. При этом отсутствует конденсатор для .контроля времени нарастания и спада сигнала. Импульс управления для CS/WE +12,ОВ R, 660Oм R, 1~Ом Rз 7406 1 ~ / ENABLE R4 1 7404 / 7406 ENABLE т, 100Ом 0 CS/WE 27Oм Рис. 8.10. Полная схема генерации сигнала CS/WE+l2 В для программи­ руемого ППЗУ. Таким образом, было показано, как генерируются сигналы и импульс программирования. ];>ассмотрим т~перь, как 'микро­ процессорная система управляет разрешающими сигналами этих схем. С этой целью указанные схемы рассматриваются как устройство вывода, имеющее адрес 04 16 • Управление им­ пу.дьсом программирования осуществляется посредством разря- да D0, а управление импульсом CS/WE - посредством разряда D1, Схема подобного устройства вывода приведена на рис. 8.11 . 8.12. Источник питания дпя ППЗУ 2708 Для программирования ППЗУ 2708 необходимо обеспечить по­ дачу nостояного напряжения +12 В на вывод 19, +:S В на вы­ вод 24, -5 В на вывод 21 и О В (заземление) на вывод 12. С9ответствующие уровни напряжения должны быть подведе­ ны к панели прогр~ммирования. К каждому из указанных вы- 15•
228 9 10 -г.nава 8 -5 +5 +12 12212.419 8 7 6 5 11 Программи- 4 13 руемое уст- 3 ройство 2708 14 2 15 16 17 23 22 18 20 Импульс CS/WE nрограмм11 рования +12 В 660 2 1кOм .R2 4 +26В R4 660 а, Ra 100 27Oм 8 0,01 мкФ3⁄4 С1 _ 7406 74LS175 2 8D0 а, о, 4 1с, 2 Шина данных 1с" 3 3 о, - 7 во, 02 D2 5 6 02 IC12 Рис, 8.11 . Полная схема интерфейса системы с программируемым ПЗУ для импульсов программирования иCS/WE. водов необходимо подеоединить • блокировочный конденсатор емкостью 0,1 мкФ, другая обкладка которого заземляется. , 8.0. Соединение панеnи проrраммировани,- с системс»i Схемная реализация интерфейса ППЗУ с микропроцессорами 8080, 8085 или Z80 приведена на рис. 8.12 . На этом рисунке не показаны схемы клавишного пульта или устройства отображе-. ния.
, . Щ 7 4 L S З 2 1 - 5 + 5 + 1 2 L r - - - . 3 ~ , j § o m s В А з 5 В А 2 1 3 4 в В д 1 4 ~ 2 8 А о 5 1 ~ I C 2 - в i O R " _ в , о w R 1 - R 8 3⁄4 В т . : ! : 5 % + 5 " О О О ; ; ; о " t - > , N " ' = о ; : ; ; . . ~ 1 5 ; : ; ; . . . 6 " u 1 6 " ' ~ 1 7 а ~ · r : : i . , . , J : : > , 1 8 2 0 н : ы е к П П З У . 8 1 = д а н н ы е о т П П З У - r - - r - i ~ § ' = t J = ~ ~ · Е = ' ~ : ~ ~ ( \ 0 1 . . . . . . : м к Ф ~ ~ 1 7 4 0 6 Р и с . 8 . 1 2 . П о н а я с х ~ а 1 1 1 1 - r е р ф е й с а П П З У с ш н н · а м н а д р е с н о й , д а н н ы х и у п р а в л е н и я с и с т е м ы . i 1 \
230 8.14 . Глава 8 Исnоnьзование микропроцессора 6800 в качестве уnравnяющеrо устройства При исnользовании микропроцессора 6800 требуется иное, чем в случае микропроцессоров 8080, 8085 или Z80, распределение памяти. Такое распределение памяти приведено на рис. 8.13. Его особенность заключается в том, что при сбросе системы· ис­ пользуются данные с адресами FFFE и f!FFF. Поэтому для ПЗУ отводится верхняя часть адресного пространства. FCOO-FFFF ПЗУ 1 F800- FBFF ПЗУ0 F400-F7FF ПЗУ2 F000- F3FF ПЗУ8 ЕСОО·- EFFF ОЗУ1 E800-EBFF ОЗУ2 } Программы системы Не используется Не используется Системное ОЗУ ОЗУ данных для граммирования E400-E7FF EOO0-E3FF ОЗУ8 Не используется Системный ввод-вывод про- ~нс. 8.13. Распределение памяти для системы, использующей микропроцес­ сор 6800 в качестве контроллера. Адресация ввода-вывода построена по аналогии с обращени­ ем к памяти. Операция ввода-вывода выполняется при выбор-' ке адреса, находящегося в промежутке ЕООО и E3FF. Все коды выбора ввода-вывода можно оставить такими, каюими они бы­ ли приняты для системы 8085. Для ус1сройства отображения ре­ зервируются адреса E0F0, EOFl, EOF2 вместо FO, Fl, F2, приня- тых для системы 8080. - На рис. 8.14 показана генерация сигналов выбора памяти. Здесь же приведен сигнал Ю/М, также используемый для фор­ мирования шины управления. Схема шины управления пред­ ставлена на рис. 8.15. Отметим, что генерирование используе- мого здесь сигнала 1O/М показано на рис. 8.14. Кроме· того, от­ метим, что уточнение некоторых сигналов линии управления осуществляется посредством тактового генератора фазы 2. Пол­ ная схема системы 6800 представлена на рис. 8.16; 8.17 и 8.18. 8.15. Выводы по техническим средствам В данной главе были описаны технические средства, необходи­ мые для построения системы, управляемой микропроцессором. Рассматриваемая . система предназначалась для программиро­ вания ППЗУ. Однако при обсуждении особенностей проекти- • рования этой системы были рассмотрены стандартные приемы построения интерфейса, применимые к любым системам, управ­ ляемым микропроцессором. Был представлен и обсужден полный состав схем, нео~хо­ димых для построения устройства программирования ППЗУ с
74LS04 74LS42 ВА 14 2 "О" о 2 .. ,.. ВА 15 "2" ПЗУ0 с з 4 "З" ПЗУ 1 ВА 11 "4" Ввод-вывод в 5 ОЗУ3 "5'' 6 ОЗУ2 ВА 10 "6" А а "7" ОЗУ 1 Рис. 8.14 . Схема rенера- ции кодов выбора уст- A1s А14 А11 Аю ройства для СJИстемы 6800. Необходимо обра- тить внимание на rенера- о о цию сигнала разрешения 1 о 1 ввода-вывода. 1 1 о 1 1 о о о о о о 1 о о б От устройства 680() ю/м VMA 7408 1\2(ПL)-.-------1г---t-----t-----::-t Рис. 8.15. Полная схема реализации сигналов ши­ ны управления систе- мы 6800. R/W Функция ПЗУ3 ПЗУ2 ПЗУ0 ПЗУ1 В/В ОЗУ3 ОЗУ2 ОЗУ1 Состояние устройства 74LS42 о 1 2 3 4 5 6 7
s, 47 ксi~ +s 39 тsс 1 vss 21 vss 34 R/W 9Ао Юf-'А,,______;:!.1 111-------' s! 121-:-- -- -'~ 13А 14 15 Ав 1s1-·----'::J 17·1 -- -- -- -"' 181-----4 '1 191-,·- - - - -'o,j 2Q~l1---- "" 22А12 ___~ 2з1-·___..,;:ч 241-, · ,----~ 25 А,5, ____.,а:, !0/М(см. рис.8. 17 )--+ -+ -- -- - . . ,::.:::, Bg~}i. :,; • ~~ • "'" . :,;;. . :s: ~ во,su Направление передачи данных 1=~ О= ---- BIOW Рис. 8.16. Полная схема испоJ1ЬЗоваН1Ия микропроцессора 6800 в качестве контроллер.а системы автоматического программирования ППЗУ.
Ш Ш i а д а н н ы х с и с ' i е м ы ' П З У О П З У 1 П З У 2 П З У 3 \ " • 0 0 0 0 - 0 З F F 0 4 0 0 - 0 7 F F , 0 8 0 0 - 0 B F F O C O O - O F F F • 2 7 0 8 2 7 0 8 2 7 0 8 2 7 0 8 В А о А о D o B D o В Д О д о D o B D o В А - А о D o B D o В А ~ о D o B D o . в о , в о ' " в о о В А 1 А 1 D 1 1 1 В А , д 1 D 1 1 В А , А , о , . 1 В А , А , D , A D 1 . { 8 D 7 В А В д g D 1 A g C S 1 8 " 2 о _ c s { - = - 6 , 7 4 L S 3 2 8 D 7 D 1 B D 7 8 А 9 7 4 L S 3 2 M E M : s o 2 ! , , ~ ! 1 4 ! 1 · - - ~ 1 В А 1 0 [ ~ в л , , r , з В А 1 2 В д , з 7 4 L S 4 2 А д р е с н а я ш и н а М 6 1 M S 2 м s з ~ : м и к р о п р о ц е с с о р а К о н ф и г у р а ц и я в ы в о д о в V c a ~ S B A s A g ~ . - s в C S / W E V + 1 2 В П р о г р а м м O s ' . 0 7 0 5 0 5 4 Р в е . 8 . 1 7 . П о J I Н а я с х е м а и н т е р ф е й с а П З У с н , с т е м ы • п р к и с п о . п ь э о в а и и и м и к р о п р о ц е с с о р а 6 8 0 0 J t к а ч е с т в е к о н т р о м е р а с и с т е м ы .
Технические средства- устроЯства программирования . ППЗУ 235 использованием микропроцессоров четырех различных типов. Если читатель уяснил особенности взаимодействия технических средств системы с микропроцессором, то задача проектирова­ ния любой другой системы, реализующей другие функции, пред­ ставит лишь еще один вариант использования тех же приемов и методов. В гл. 9 будет рассмотрено программное обеспечение, пред­ назначенное для управления техническими средствами, при­ веденными в данной главе. И в завершение в гл. 10 обсужда­ ются вопросы отладки системы в случае неправильного ее функционирования.
О З У l А д р е с н а я ш и н а E C O D - E F F F А д р е с н а я ш и н а А о - А 9 2 1 1 4 2 1 1 4 ( с м . р и с . 8 , 1 6 ) ~ g o J 1 4 д о д о 5 5 1 1 3 6 е D 2 1 2 7 D з 1 1 4 4 3 3 2 2 м Е М W ( с м . р и с . 8 . 1 6 ) м ё М R М Е · : : : - . в ы . . . . . _ ; п а r . . . . . . . 1 : > . u " ( " \ = o i : i . : : i ~ 7 4 L S 3 2 в \ . 1 ' 1 • , c s Ш и н а • д а н н ы х . D 0 - D , о т м и к р о п р о ц е с с о р а ( с м . р и с . 8 . 1 6 ) 1 4 D 4 г . : : - - - 8 ы б о р п а м я т и M E M W ( С М - L . . . - - - - - - - - - - - - - - - - - - - - ; - - - - - ­ р и с . 8 . 1 6 ) 2 ( с м . р и с . 8 . 1 7 ) 1 А о - А 9 2 1 1 4 , , . . g : : 1 4 Д 1 3 ~ 1 2 ~ 1 1 Ш и н а д а н н ы х · D 0 - D 7 о т м и к р о п р о ц е с с о р а О З У 2 E B D D - E B F F А о 5 А 6 \ 1 ~ 4 ; ; 2 . А , _ ? 1 1 4 0 5 А 1 6 - 7 4 . 3 2 1 7 1 6 A g \ 1 5 8 c s 1 4 1 D 4 1 3 5 1 2 D o 1 1 D ' 0 W ё Р и с . 8 . 1 8 . П о п н а я с х е м а и н т е р ф е й с а О З У с и с т е м ы п р и и с п о п ь з о в а н и и м и к р о п р о ц е с с о р а 6 8 0 0 в к а ч е с т в е к о и т р о п п е р а с и с т е м ы .
Глава 9 ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ УПРАВЛЕНИЯ МИКРОПРОЦЕССОРНОЙ СИСТЕМОЙ / В настоящей главе будет рассмотрено программное обеспече­ ние, иеобходи.,~:ое для управления техническими средствами си­ стемы, описанными в гл. 8. Каждая функция программного обеспечения будет проиллюстрирована блок-схемой. Для мик­ ропроцессоров 6800 и 8085 соответствующие блок-схемы рас­ крываются до уровня объектного кода. Для каждого микропро­ цессора приводятся полные распечатки программ. После изучения предлагаемого материала читатель сможет самостоятельно разраб~тывать программы управления микро­ процессорной системой. Целью проводимого обсуждения ямя­ ется разбор коикретиых решений по разработке программ пу­ тем установления взаимосвязи между окоичате.лъной реализа­ цией программы и выполняемыми машиной функциями. . . 9.i . Начаnьныii атаn Прежде чем мы сможем писать какие-либо программы~ необхо­ димо выяснить некоторые предварительные вопросы. Прежде . всего необходимо выяснить, как программное обеспечение си­ стемы будет размещено; далее следует выяснить, как инициала• зируются технические средства или как они устанавливаются в начальное состояние при включении питания. Рассмотрим эти вопросы более подробно. Структура размещения программного обеспечения представ­ ляет собой отображение всего адресного пространства и соот• • ветствующих функций каждого блока адресного пространства .системы. Это первый уровень структуры размещения. программ­ ного обеспечения. Размещение для системы, описанной в гл. 8, приведено иа рис. 9.1. Как видно, рис. 9.1 дает точную картину адресов памяти и устройств ввода-вывода, используемых мик­ ропроцессором при установлении электрического соединения со всеми техническими средствами системы. При написании управ­ ляющих программ действует предположение, что технические средства работают правильно, так что любая ошибка в выпол­ нении программы является собственной ошибкой программы, а ие вызвана неисправностью оборудования. •
r\ \ \ Проектирование уnраепяtощеrо nроrраммноrо обесnечения 237 \ При написании программ обычно не знают, как физически выглядят технические средства, особеwности их функциониро­ вания учитываются на уровне адресов и двоичuых разрядов.· _ Имея эту информацию, можно правильно писать программы уп- равления техническими средствами, ие вникая в детали уст­ ройства последних. Справедливым является и противоположный подход. При проектировании технических средств совсем ие обязательио знать детали программного обеспечения. Можно так разрабо- ооО-03FF ПЗУо В этих блоJСах ПЗУ все управ• 0400-07FF ПЗУ1 ляющие программы 0800-0BFF ПЗУ2 Пока не используются, предиа- ОСОО-ОFFF ПЗУ8 зиачены для расширения си: 1000-13FF 1400-17FF 1800-lВFF стемы Системное ОЗУ Память для 2708 Не используется Ввод-вывод Fo, F1, F2 FE 30, 31, 32,33, 34, 35 Индикатор • Клавишный пульт Программная панель ·Рис. 9.1 . Распределение памяти системы, описанной в гл. 8. тать технические средства, что микропроцессор будет осущест­ ВJiять надежное-взаимодействие со всеми элементами техниче­ ских средств системы, ие прибегая к помощи программного обес::печения. Если в оборудовании правильно выполнены соот­ ветствующие. коммуникационные связи, программы будут ис­ пользовать эти связи для реализации заданных функций. Если же разработчик хорошо знает как программное обес­ печение, так и техниче_,ские средства, то результатом этого явит­ ся более простая и изящная структура системы в целом. Спе­ циалист по техническим средствам, например, может спроекти­ ровать систему, ориентируясь на особенности программного обеспечения коикреrиого микропроцессора. Систему можно так­ же создавать и таким образом, чтобы специфические особен­ ности программных средств конкретного микропроцессора ие оказывали существенного влияния. С другой стороны, если программист знает технические средства, он может создавать такие программы, которые наиболее полно используют их воз­ можности. Е~и же в разработке системы участвуют два спе­ циалиста, то наилучшие результаты достигаются тогда, когда программист и разработчик аппаратуры тесно взаи:м;одейству- • ют друг с другом. В этом случае каждый из них будет знать намерения другоrо. Это часто позволяет достичь значительной экономии усилий путем рационального распределения. функций между техиическими средствами и программным обеспечением.
238 Г.nава 9 / что невозможно при отсутствии подобного сотрудничеств раз­ работчиков. В идеальном случае разработчик технических средств либо проrраммного обеспечеция микропроцессорных систем должен знать обе эти области настолько, чтобы суметь оценить воз• пикающие проблемы и установить эффективное взаимодейст­ вие между техническими и программными средствами. В технике существует отчетливая граница между т~хниче­ скими средствами и программным обеспечением. В ряде ситу­ аций соблюдение этой границы является необходимым при раз­ работке систем. Однако для проектировщиков систем на базе микропроцессоров, как инженеров, так и техников, знание тех­ нических средств и программного обеспечения одновременно является чрезвычайно ценным. Возвращаясь к распределению памяти рассматриваемой сис­ темы, показанному на рис. 9.1, можно заметить отсутствие не­ которых деталей, относящихся к разрядам данных D0-D7, с помощью которых осуществляется управление техническими средствами. В случае ОЗУ и ПЗУ системы это видно непосред­ ственно. Так, выходы 01-08 ПЗУ 2708 соединяются соответст­ венно с D0-<07. Аналогичное справедливо и для ОЗУ системы. Не имеет значения, к~кие разряды данных ОЗУ поступают на конкретные линии шины данных системы, поскольку при запи­ си данных в ОЗУ 1и при их считывании из ОЗУ сохраняется со­ ответствие между разрядами данных и линиями шины данных. Это означает, что в случае ОЗУ и ПЗУ конкретная nривязка разрядов данных к линиям шины безразлична. Однако этот во­ прос становится важным при работе с устройствами ввода-вы­ вода. Рассмотрим, например, случай, когда микропроцессор со­ единен с устройством отображения. В этой ситуации програм­ мисту н~бходимо точно знать соответствие разрядов данных входам устройства, чтобы осуществлять выдачу на табло кон­ кретных цифр. Подобная информация обеспечивается техниче­ скими средствами системы. На рис. 9.2 показано конкретное на­ значение разрядов данных для каждого устройства ввода-вы­ ~ода системы, что снимает неопределенность, допущенную в предыдущем разделе. Из рис. 9.2 видно, что для каждого порта ввода и вывода определена точная функция каждого разряда данных. СЬдер­ жимое разрядов, не описанных для конкретного устройства вво­ да-вывода, не используется и может быть произвольным. В до­ кументации на систему информация, приведенная на рис. 9.2 ~ может быть представлена самым различным образом. Однако несмотря на форму представления, наличие этой специфической информации необходимо до начала разработки программного обеспечения. •
i СНОЕ f!~~РАН- СТВО \ FE (выв'&~) FE (ввод) F2 (вывод) F 1 {вывод) Fo (вывод) 30 (вывод) 31 (ввод) 32 (вывод) ЗЗ (вывод) 34 (вывод) 35 (вывод) Разрядь~: дa_!is. ных Do D, D2 Dз 04 Ds, Dв, D1 Do D, D2 Dз D4 Ds, Dв, D1 D1 Dв Ds D4 Dз D2 D, Do D1 Dв Ds D4 Dз D2 D1 I?o. D1 Dв Ds, D4 Dз D2 D, Do Do-D1 D0-D1 Do=1 Do=О D1-D1 D0-D1 Do, D1 D2-D1 D1 =1 Do=О 1D=1 D1=0 D2-D1 Функция Ro R, Rz Rз R• Не используется Со с, С2 Сз С4" Не используется MSD (8-й разряд) MSD (4-й разряд) MSD (2-й разряд) MSD ( 1-й разряд) (MSD -1) (8-й разряд) (MSD-1) (4-й разряд) (MSD - 1) (2-й разряд) (MSD-1) (1-й разряд) · (MSD - 2) (8-й разряд) (MSD - 2) (4-й разряд) (MSD - 2) (2-й разряд) (MSD-2) (1-й разряд)· (LSD + 2) (8-й разряд) (LSD + 2) (4-й разряд} (LSD + 2) (2-й РIЩРяд (LSD + 2) (1-й разряд (LSD + 1) (8-й разряд) (LSD + 1) (4-й разряд) (LSD + 1) ·(2-й рщ~ряд) (LSD + 1) ( 1-й разряд) fz.SD (8-й разряд) LSD (4-й разряд) LSD (2-й разряд) LSD (1-й разряд) Данные для iiрограммироваиия ППЗУ Данные с выходов ППЗУ Чтеи,ие даlf!Ных из ППЗУ Запись данных в ППЗУ Не используется РАо - РА7, адрес ППЗУ РА~ - РДg, адрес ППЗУ Не используется CS/WE=+l2 В СS=О,о-в Импульс программирована~. =+26В Имп:УЛЬС проrраммироващrя 0,0 В Рис. 9.2. Таблица фуикциоиалъиоrо назначения разрядов для всех портов ввода и вывода системы. Для некоторых портов отмечено наличие неиспопь­ зуемых разрядов.
---,с------,-----------,,-~-~~, . ~ 240 Гnааа 9 /. . ' 7 Кроме того, прежде чем приступить к написанию прJрамм, необходимо знать, в какое состщшие устанавливаюi/~-..1как инициализируются) конкретные устройства ввода-выёода при подаче ·питания в систему. Обычно указатель стека' системы всегда необходимо устанавливать в начальное состояние. Кро­ ме того, если в системе используются прерывания, то возника­ ет необходимость в установлении масок прерываний ц разре­ шения либо запрещения функции прерывания; После того как выполнены подобные общие действия по инициализации, сле­ дует обратиться к сп~циальной информации, необходимой для инициализации остальных технических средств системы. Для рассматриваемой системы· в этой связи характерно еле~ дующее; 1. Импульс программирования - О В. 2. Напряжение CS/WE-0 В. 3. Для порта управления 32 16 D0= 1. Это открывает переда- , чу данных из ППЗУ в систему (см. рис. 9.2). 4. Устройство отображения системы устанавливается в F00000. 5. В системе не используются прерывания. 6. Указатель стека устанавливается 03FF16 (в соответствии с распределением памяти, приведенным на рис. 9.1). Таковы основные действия по инициализации технических средств, н·еобходимые для рассматриваемой системы. Возмож­ но, потр~буется инициализация программных средств, связан­ ная с присвоением определенных значений некоторым перемен­ ным. Это станет ясно при написании программ. Теперь имеется вся информация, необходимая для того, чтобы приступить к программированию. 9.1 . 06щее представnение о проrраммно.м обеспечении , Прежде, чем рассматривать частные вопросы написания прог­ рамм, проанализируем общую структуру программного обеспе­ чения системы. Поскольку система взаимодейс,твует с клавиш­ ным пультом, то, прежде чем начать выполнение некоторой под­ программы, она ждет ввода определенного ключа. Только после ввода ключа, основываясq на· функции, задаваемой этим клю- . чом, система выполняет определенную программу. По заверше­ юш программы снова наступает •состощше ожидания ввода очередного ключа. • Чтqбы заставить пользователя в.водить правильную инфор­ мацию, система должна дать ему «подсказку» с помощью таб­ JЮ: •Именно с помощью такого «интеллектуального» использо­ вания клавишного пул.ы:а и табло ..и реализуются функции, пе­ речисленньrе для системы, рассматриваемой в гл. 8. 1 . . • • •
\·: \ Проектмроаание ynpaan,1ющero nроrраммноrо обесnечени,~ 241 · \ Общая блок-схема программного. обеспечения системы при• ведена ila рис. 9.3, который поясняет пос.педовательность работ при написании программ. Рис. 9.3 . Укрупненная блок-схема фуикцаоиироваиия системы, отража­ ющая основные. выполняемые опера­ ции. Содержание каЖдоrо блока подробно раскрывается в главе. Начало Инициализация техничечс11их средств Ввод функции ключа в про­ грамму· Выполнение заданной операции Ввод дpyroro I(JllO'I& 9.3 . Проrраммны ввода информации с кnавиwноrо nуnьта Функционирование системы зависит от ее способности раз.11Н­ чать конкретны~ ключ •из числа ключей, формирующих кла­ вишный пульт устройства ввода. В гл. 4 была рассмотрена программ;ная реализация этой функции. Рассмотрим еще раз подпрограмму ввода с клавишного пульта, приведенную в гл. •· Эта подпрограм'~{а для удобства еще· раз повторена на· рис. 9.4 . Отметим, что значения переменных, установленные подпрограм­ мой рис. 9.4, являются десятичными числами, определяющими вес ключа в матрице пульта. Функция подпрограммы может быть представлена в виде блок-схемы, приведенной на рис. 9.5 . Согласно рис. 9.5, выход из подпрограммы ввода ключа в основную программу не происходит до тех пор, пока не опре­ делен требуемый ключ и не записан его десятичный вес в ячей­ ку памяти. На рис. 9.6 приведены десятичные веса для всех ключей матрицы пульта. Видно, что после выполнения подпрог­ раммы ввода. ключа в ячейку KWGT заносится целое число~ принимающее значения от О до 24 включительно. • Напомним, что функции ключей матрицы пока еще •не оп­ ределены. Определим эти функциq так, к~к показано на рис. 9.7 . Отметим, что для всех ключей данных число в ячейке KWGT соответствует значению ключа. Это означает. что при 16-814
1 0000 2 0000 J 0000 4...0000 5 0000 6 0000 7 0000 8 0000, 9 0000 10 0000 11 0000 - 120000З1r'F1J 1З 0003 AF' 14 0004 Е'В 15 0005 DJ FO 16 0007 DЗ F1 17 0009 DЗ F2 : ПРОГРАIША ВВОДА ДАШIU: С ПУ.ЛЬТА И ВЬIВОДА НА ДИСПЛЕЙ _***"***ПРОГРАММИСТ ДЖИII КОФФРОН 8-28-79 ***"************• * ' ORG 00 * УСТАНОВИТЬ НАЧ.АДРЕС ПРОГРАМЬ!,\ : ВО-ПЕРВЬIХ,НЕОВХОДИЫО ИНИЦИАЛИЗИРОВАТЬ ВСЕ ПЕРЕМЕН!liЕ SP 1 1ЗFFH ИНИl.\ИАЛИЗИРОВАТЪ УКАЗАТЕЛЬ СТЕКА А НАЧ.ЗНАЧЕНИЯ ФЛАЖКОВ,ОБНУЛЕНИЕ AКKYII РАЗРЕШИТЬ ПРЕРЬlВАНИЯ ОБНУЛИТЬ ДИСПЛЕЙ 18ОООВ320010• 19ОООЕJ2О11О 200011320210 210014J20310 22OOi7JC LXI XRA EI оuт оuт оuт STA STA STA STA INH STA ОЕ'ОН OF1H ОЕ'2Н KTIME cnAa KWGHT КСОМР А ЩЦАТЬ НА ДИСПЛЕЙ 000000 КТI.ILE=Q CFLAG=O KWGНT=O КСОМР=О АКttУМУЛЯТОР= 1 KROW=00000001 ~э001sэ20410 24 001В 25 ОО1В 26 001В 27 001В ' 28 001В 29 001В :30 001В :31 001В J2 001В J) 001В J4 001В J5 ОО1В J6 001В· :37 001В J8 001В J9 001В 400018CDЕВ00 41001ЕCDDB00 42OJ21JA01 10 4J 0024 FE 00 _44 0026 СА 1В 00 450029CDВ100 46 ОО2С 47 ОО2С 48 ооэс 49 ОО2С 50 ОО2С 51 ОО2С 52 ОО2С 5) ОО2С 54 ОО2С 55ОО2С)А0010 56 O'J2F 57 оо2Е' 58 002F 59 002F 60 002F FE 00 KROW * * * УСТАНОВИТЬ АДРЕСА ПЕРЕШ:ШiЫХ KTIMt CPLAG КWGHT KCOiiP кюw NROW .* * EQU EQU EQU EQU EQU EQU 1ОООН КТIМЕ+1, CE'LAG+1 КWGНТ+1 КСОМР+1 KiiOW+1 ************* НАЧАЛО ПРОГРАММЫ * * * НАЧАЛО РИС,4,20 SRO\V * * CALL CALL LDA CPI . JZ CALL OROW СОLМ CE'LAG оон SROW КЕУW КОНЕЦ РИС,4,~О НАЧАЛО РИС,4,21 ВЫВЕСТИ АКТИВНi:,lЙ НАБОР ВЪlЗВАТЬ ПОДПРОГРАММУ COIJL НЕОБХОДИМО ПРОВЕРИТЬ ФЛАЖОК СТОЩЩА ПРОВЕРИТЬ АКТИВНОСТЬ ЦИКЛА И& АКТИВНЫЙ СТОЛБЕЦ,ПQВТОРИТЬ ЦИКЛ АКТИВНЬIИ СТОЛБЕЦ, KAКOVI ИМЕ:!ШО??? ВЪiЛИ.НАЖА'Ш КЛАВИШИ ~************************* * ******(ШАГ 1) * LDA КТiм.1!: * * ****"*(G!АГ 2) * CPI ООН ПЕРЕЗАГРУЗИТЬ КТIМЕ ИЗ ПАМЯТИ' КТIМЕ=О?? Рис. 9.4 . Программа ввода КJIЮча и вывода информации на табло д.11я микро- процессора 8080. • -
- \\\ 610031СА5В00 * ,JZ KCL01 ДА,это ПЕРWЙ РАЗ 62 0034 6J ООН 64 оон 65 оон 66 оон ******** НЕ ПЕРWЙ РАЗ * ********* 67ООН-JA0210 68 0031 4F 690038ЗАОЗ10 70 0038 В9 71ООЗССА4600 12 оозF 1з оозF 74 оозF 75 OOJF AF 760040320010 77004)сз6600 78 0046 79 0046 80 0046 810046JA0010 82 0049 зс 8J004АЗ20010 84 004D 85 004D 86 004D 87 004D FE )2 88004FС26600 890052CD6Е00 900055CDА700 910058СЗ1В00 ****** (ШАГ 7) * LDA КWG:НТ моvСА LDA К~ОМР СМР с JZ KCL02 * *****" (ШАГ 8) .. XRA А STA КТIМЕ JМР КСLОЗ * -~***** (ШАГ У) * KCL02 LVA КТLМЕ INR А SТА КТIМЕ .. ****"*(ШАГ 10) .. CPI 50 JNZ KCLOJ CALL K0PN CALL КОUТ JМР SROW 92 ОО5В. , * 9J 005В ******(ШАГ Э) 94 ОО5В * 95 ОО5В JA 02 10 KCL01 LDA XWGHT КАКАЯ ЦИФРА EblJIA НАВРАНА??? РЕГИСТР C=КWGHT РЕГИСТР ~КСОМР КСОМР=КW Т??? дА;они РАВНЫ!! 1 ОНИ НЕ РАВНЫ: ПЕРЕЗАПИСАТЬ КТIМЕ ИДТИ НА ПЕРЕЗАГРУЗКУ АКТИВНОГО выз~ть KTIME из ПАМЯТИ КТIILE=KTIМE+1 КТIМЕ=КТIМЕ+1 КТIМЕ= 50??? ЕЩЕ НЕ 50 ПРОВЕРИТЬ ГОТОВНОСТЬ ПУJIЬТА ШДАТЬ НА ПУЛЬТ НАЗАД К НАЧАЛУ 96005ЕJ2ОЗ1О STA КСОМР - КСОМР=КWGНТ 97 0061 98 0061 99 0061 100 0061 JE 01 101 ООбJ 32 00 10 .. ****** (ШАГ 4) !< МVI А01 STA КТIМЕ 102 0066 * 10J 0066 ******(ШАГ 5) 104 0066 * УСТАНОВИТЬ КТIШ:=1 НАВОР-4 105 0066 ЗЕ 01 КСLОЗ МVI А,01 106 0068 32 04 10 STA KR0W УСТАIЮВИТЬ АКТИБНЬlЙ НАБОР=ОООООООJ 107 0068 * 1 08 0068 ****** (ШАГ 6) 109 ООоВ * ИДТИ К НАЧАЛУ ПРQГР.А,М!,Ш 110 0068 СЗ 1В 00 111 ОО6Е 112 ообЕ 11J ООбЕ - 114 ООбЕ 11 5 ООбЕ 116 ООбЕ 117006Е 118 ООбЕ 119 ообЕ 120 ООбЕ JМР SR0W * * ***********************************************~********** * ************ НАЧАЛО ПОДПРОГРАММЫ *"******************* :******************************************************** * .. * РИС.4.22
121 ОО6Е, _ 122 ОО6Е 12) 006Е 124 006Е 125 ОО6Е 126 ОО6Е : ПРОГРАМ11А ПОДГОТОВКИ ПУЛЬТА :*************************.***************************•***• ******(ШАГ 1) * 127 ОО6Е )Е 01 КОРN 128 0070 32 04 10 129 007) 3D - 1ЭО 0074 32 05 10 131 0077 * JilVI А,01 SТА KROW DSR А STA NROW 1)2 0077 ******(ШАГ 2) 13) 0077 * 134 0077 32 00 10 STA КТIЫЕ 135 007А * 136 007А ******(ШАГ 3) 1)7 007А * 1)8 007A.CD ЕВ OQ KOPN1 CALL OROW 139 007D * НО 007D ******(ШАГ 4) 141 007D * 142 007D CD DB 00 143 0·080 * CALL CQLМ 144 0080 ******(ШАГ 5) 145 0080 * 146 0080 3А 01 10 147 0083 FE·oo 148 0085 С2 бЕ 00 Н-9 0088 * LDA CFtAG CPI 00 JNZ KOPN 1 50 0088 ****** (ШАГ 9) 151 0088 * 1,2 0088 3А 05 10 1,3 008В 3С 154 оовс 32 05 10 LDA NROW INR А STA NROW 155 oo8r' * 156 000F ******(ШАГ 10> 157 oo8F * 158 008F FE 05 159 0091 С2 7А 00 160 0094 1 61 0094 162 0094 163 0094 ЭА 00 10 164 0097 эс 165 0098 32 00 10 166 009в 47 167 009С 168 009С 1 69 009С 170 009С AF 171 009D 32 05 10 172 ООАО 173 ООАО 174 ООАО 175 ООАО 3Е 32 176 ООА2 В8 177 ООА3 С2 7А 00 * CPI 05 JNZ KOPN1 ****** (ШАГ 6) * * LDA КТI14Е INR А STA КТI14Е .МОV В,А ****** (ШАГ бА) * XRA А STA NROW * ******(ШАГ 7) * МVI -А,50 СМР В JNZ KOPN1 118 ООАб * 179· ООА6 ******_(ШАГ 8) 180 ООА6 * КROW=00000001 NROW=oooooooo К'l'IIIE=O ВШЭЕС'l'И НАБОР ВВЕСТИ ДАННЫЕ СТОJ!ВЦА ВВЕСТИ CFLAG CFLAG=O??? ПУЛЪ'l' ЕЩЕ НЕ СВОБОДЕН . ВВЕСТИ АКТИВНЬIЙ НАБОР ЗАПИСАТЬ АКТИВНЫЙ НАБОР СКАНИРОВАНИЕ НЕ ЗАКОНЧЕНО РЕГИСТР в=КТIМЕ ЗНАЧЕНИЕ НАВОРА=О КТIМЕ=50??? НЕТ,СКАНИРОВАНИЕ _ПОВТОРИТЬ
- 181 ООА6 С9 182 ООА7 18) ООА7 184 ООЛ7 185 ООА7 186 ООА7 187 ООА7 188 ООА7 189 ООА7 190 OCJA7 191 ООА7 RЕТ * ВЫХОД ИЗ ЦОдПРОГРАJОIЫ ПОДГОТОВКИ * *************~******************************************* * ПОЩIРОГРАIОIА КОUТ : ЭТА ПОДПРОГР.АJIIIА ВЫВЕДЕТ ДАНШЕ С ПУЛЬТА НА ДИСПЛЕЙ *****************************************************•*•• * 192 ООА7 )А 02 10 КОUТ 19) ООАА D) Е'О LDA OUT OU'l' OU'l' RET КWGНТ OFOH QF'1H OF2H ДАННЫЕ С ПУЛЬТА В АКНУМУЛЯТОРЕ 194 ООАС D) }'1 195 ООАЕ DJ r2 1 96 ООIЗО С9 197 ООВ1 1 98 ООВ1 199 ООВ1 200 OVB1 201 ООВ1 202 ООВ1 203 00В1 204 ООВ1 205 ООВ1 20 6 ООВ1 207 OvB1 208 ООВ1 209 ООВ1 21 О 00В1 AF· 211 ООВ2 )А 01 212 ООВ5 21э оов5 214 ООВ5 215 0085 Об OJ 21 б ООВ7 217 ООВ7 218 ООВ7 219 ООВ7 1F 220 ООВВ Е'Е 00 221 ООВА- 222 ООВА 22) ООВА 10 224 ООВА СА С1 00 225 OOBD 226 OOBD 227 OO~D 228 OOBD 04 229 ООВЕ С) В7 00 230 ООС1 231 ООС1. 232 ООС1 233 ООС1 Al'' 234 ООС2 )А 04 10 235 ООС5 2)6 ООС5 ZЗ7 ООС5 238 ООС5 ОЕ 00 2)9 ООС7 :цо ООС1 ********************************************************* .. * ПОДПРОГР ЛNo4А КЕУIЧ * ЭТА ПОДПРОГРАММА УСТАНОВИТ ЗНАЧЕНИЕ НАЖАТОЙ КЛАВИПИ .. ***********************~********************************** .. БЛОК-СХЕЫА ЭТОЙ ПРОГРАШli нА РИС.4. 18 * *"*"'"*(ШАГ 1) .. KEYW XRA А LDA 'Cl'LAG * *****~.(_ШАГ 2) * МVI в,оо * ******(ШАГ Э) * КEYWf * RAR CPI JZ 00 KEYW2 ******(ШАГ 5) * INR В JMP KEYW1 * ******(ШАГ 7) * XRA А LDA KROW МVI с,оо * ******<ШАГ 9) ОВНУЛИ'l'Ь ФЛАЖКИ И АККУМУЛЯТОР ПРИНЯТЬ ФЛАЖОК СТОЛБЦА ИЭ ПАМЯТИ ОБНУЛИТЬ СЧЕ'JJЧИК сдвинпь ВПРАВО НА 1 БИТ,о в D7 РЕГИСТР В"О,1 1 2 1 3,4 (ШАr' 61 УВЕЛИЧИТЬ ЗНАЧ.СЧЕТЧИКА И 11.ЦТИ НА ПОВ, ОБНУЛИТЬ ФЛАЖКИ ВЫЗВАТЬ АКТИВНЫЙ НАБОР ОБНУЛИТЬ СЧЕТЧИК Т2
241 ООС7 * 242 ООС7 1F КЕУ11i3 • RAR СДВИГ ВПРАВО НА 1 ВИТ,О в·D7 • 243 ООС8 l''E 00 CPI 00 J 244 оосл * J 245 ООСА **-**** (ШАГ 10) - J 246 ООСА .. ) 247 ООСА СА D1 00 JZ к,пщ ЕСЛИ О , ТО ВЫПОЛНЕНО ) 248 OQCD * 1 249 OOCD ******(ШАГ 14) 1 250 OOCD * J 251 OOCD ОС INR с УВЕЛИЧИТЬ ЗНАЧЕНИЕ· СЧЕТЧИКА 1 252 ООСЕ С3 С7 00 JMP KZY\'!J ИДТИ НА ПОВТОР J 253 OOD1 * 254 OOD1 ******(ШАГ 11 ) 2 55 OOD1 * 256 OOD1 АР КЕУW4 XRA А ОБНУЛИТЬ ФЛАЖКИ 257 OOD2 78 моv А,В АКRУМУЛЯТОР=СЧЕТЧИК СТОЛБЦОВ (Т1) 258 OOD3 17 RAL В*2 259 OOD4 17 RAL В*4 260 OOD5 80 ADD в В*5 261 OOD6 8,1 ADD с (В*5)+С=О-24 2 62 OOD7 * 2 63 OOD7 ., . .*'*** (ШАГ 12) 2 64 OOD7 * 265 OOD7 32 02 10 [~ 1ГА КvVGHT 2 66 OODA * 267 OODA ***11 * * (ШАГ 13) 1, 2 68 OODA * 269 OODA С!) RET выити из этой ПОДПРОГРАММЫ . 1 270 OODB * ,. 271 OODB ***************************************************~***** 1, .272 OODB • * 1· 273 OODB * ПОДПРОГР АМ!'4А со:t.М 1· 274 OODB * 1· 275 OODB * ЭТА ПОДПРОГРАММА ОПРЕДЕЛИТ АКТИВНЫЙ СТОЛБЕЦ, 1· 276 OODB * ЕСЛИ ОН СУЩЕСТВУЕТ 217 OODB * 278 OODB ***********~**************** ~****************~*********** 279 OODB * 1· 280 OODB ... ЭТА ПОДПРОГРАММА-РИС.4,15 1 281 ООDВ * 1, 282 OODB ********************************************************* 283 OODB * 1, 284 ООDВ ******(ШАГ 1) 1, 285 OODB * ,. 286 OODB AF COLIII XRA А I• 287 OODC 32 01 10 STA CFLAG УСТАНоВИТЬ ФЛАЖОК СТОЛВЦА=О 1, 288 OODF * j, 289 OODF **!<**·* (ШАГ 2) I• 290 OODF * 1, 291 OODF DB FE IN OFEH ВХОДНЫЕ ДАНNo.Е ИЗ ПОРТА FE 1' 292 OOEI * j' 293 ООЕ1 ******(ШАГ 3) J 294 ООЕ1 * 1' 295ООЕ\FбЕО_ ORI ОЕОН УСТАНОВИТЬ БИ1!i D5 1 Dб 1 D7=1 J' 296 ООЕ3 * J' 297 ООЕЭ ******(ШАГ 4) J 298 ООЕ3 * J 299 ООЕ3 }'Е FF CPI ОFЕН J 100 ООЕ5 св RZ ШАГ (4А) .J
Зо1 ООЕб J02 ООЕ6 J03 ООЕ6 J04 ООЕ6 2F 305 ООЕ7 306 ООЕ7 107 оОЕ7 108 ООЕ7 32 01 10 109 ООЕА С9 110 ООЕВ J11 ООЕВ 112 ООЕВ 313 ООЕВ 114 ооЕв· 11 5 оо~в 116 ООЕВ 117 оОЕВ 118 ООЕВ 119 ООЕВ 120 ООЕВ )21 ООЕВ 1/2 ООЕВ 11) ООЕВ 1,4 ООЕВ- 125 ООЕВ 11.б ООЕВ 127 ООЕВ 3А 04 128 ООЕЕ 129 ООЕЕ IJO ООЕЕ 1J1 ООЕЕ }'Е 10 1J2 OOFO С2 F8 133 OOF3 1J4 OQFJ 1J5 OO}'j 116 OQF3 3Е 01 10 00 1J7 OQF5 С3 1''9 00 138 OQF8 1J9 ooF8 140 ooFs 141 ooFs 01 142 00}'9 14) Q0}'9 * ******(ШАГ 5) * CUA * ****** (ШАГ 6) * STA JTh'Т CFLAG ИНВЕРТИРU.ВАТЪ ,LмnliE УсrАновить Ф~АЖок СТОЛБЦА. ШJ!IТИ ИЗ ЭТОИ ПОДПРОГРАIОS *********************************************************** * .. " ПОДПРОГРАММА JЭЫ.ВОДА АКТИВНОГО НАБОРА НА -ПУЛЬТ * * ИМЯ ЭТОЙ ПOДПPOГPAWIIЬI-OROW * * * *********************************************************** **************************************************~******** * ПОДПРОГРАММА К РИС,4, 10 В МНЕМОНИКЕ 8080 * * * OROW LDA KROW * ******(ШАГ 2) * CPI !ОН JNZ OROWt * ****** (ШАГ· "2А )- * * МVI JJJ4P А.1.01Н s·1·3 *****"(ШАГ 2В) " OHOIV1 HLC * ******(ШАГ 3) * ПОВТОРНЫЙ В!il.ЗОВ АКТИВНОГО НАБОРА СКАНИРОВАНИЕ: НАБОРА ЗАКОНЧЕНО??? ЕСЛИ НЕТ, ТО ШАГ 2В ПЕРЕМЕСТИТЬ АКТИВНЬI.Й НАБОР ИДТИ НА ШАГ 3 СДВИНУТЬ ДАН!J!iЕ ВЛ.l!;ВQ,О В DO 144 OOF'9 145 QOF9 146 OoFC '4 7 OQ}'C 320410ST3 STA KROW СОХРАНИТЬ АКТИВWЙ НАБОР 148 ooF'C 149 О~'С 21'' 150 OQFD 151 OOFD J52 OOFD 153 OQFD DJ FE 154 ooFF J55 QOFF 156 ooFF 157 QOFF С9 158 0100 .J60 0100 * ******(ШАГ 4) * СМА ИНВЕРТИРОВАТЬ СЛОВО НАБОРА * ****** (ШАГ 5) оuт OFEH WВЕСТИ АКТИВНЫЙ НАБОР В ПОРТ FE * ****** (ШАГ 6) * RET ********************************************************•·~
Начало Управление устройс:гвом ввода с пульта Ro R1 R2 Rз R4 ,, Со х о х 5. х 10 х 15 х 20 С1 х 1 х 6 х 11 х 16 х 21 u •ф;~,·~·~', ,·!,111~ - С2СзС4 - х х х 2 3 4 ' х х х 7 8 9 х х х 12 13 14 х х х 17 18 19 х х х 22 23 24 Запись деся - тичного веса ключа II па-­ мять системы Рис. 9.6 . Аналогичен рис. 4.17 . Пока­ зывает десятичный вес каждого пе­ реключателя матрицы пульта размер- • иостью 5Х5. Возврат Рис. 9.5 . Блок-схема, демонстрирую• щая реализацию фующии ввода клю-• ча с клавишного пульта. Дав.ная последовательность действий повто­ ряется каждый раэ при_ выпоJШешtи Рис. 9.7. Функция о 1 2 3 4 5 6 7 8 9 А 8 с D Е F Ввод Ключи данных Стирание ввода . Установка ·адреса Стирание ОЗУ Программирование ВеtтФикация kопировавие Пе используется Фуикцик ключей (левая программы рис. 9.4 • Вес ключа, вычисляемый подпрограммой вво,ца ключ~ о 1 2 3 4 5 6 7 8 9 10 11 .12 13 14 15 16 17 18 19 20 21 22 23, 24 колонка). и их веса (правая хопопа).
Проектирование ynpaвn~IC)Щ!.rO . ·"роrраммноrо обеспечения 249 нажатии на пульте ключа «В:. в KWGT записывается двоичное число ·1011, представляющее значение десятичного 11 (В1 6). Та­ ким образом, при программной реализации процедуры нет не­ обходимости вычислять двоичное значение к.iпоча данных, по­ скстьку это значение автоматически записывается в ячейку. оооооо о 2 з 4 Сброс ооооо 5 6 7 8 9 ооооо А 8 с D• Е ооооо f Ввод Стирание Установка Стирание ОЗУ ввода адреса ·Оооо._л Програм- Верифи- Копиро- Не используется мироваиие кация ванне Рис. 9.8 . Пространственное расположени~ клавиатуры с пометкой функций ключей. К:люч сброса ие является частью матрицы• пульта. Этот ключ играет особую роль и используется просто для сброса системы. В соответствии с определением ключей, приведенным на рис. 9.7, физическая реализация клавишного пульта будет со ответствовать представленной на рис. 9.8 . Здесь ключ сброса не входит в матрицу ключей. Этот ключ играет особую роль, осуществляя немедленный сброс системы вне зависимости от выполняемой ею функции; . На рис. 9.4 были приведены программные средства микро­ процессора 8085, необходимые для реализации функции подпро­ граммы KEYIN. Эти средства подробно рассматривались в гл. 4, так что любые неясности рис. 9.4 можно устранить, ис­ пользуя материалы этой глав~. 9.4 . Гnмная уnрввnяющвя nроrрвмм• Обратимся теперь к особенностям построения главной управ­ ляющей программы. Эта программа управляет работой систе­ мы на основе значения введенного ключа. После реализации каждой частной функции системы управление возвращается в J'
250 Гnава 9 главную управляющую программу. На рис. 9.3 была показана укрупненная блок-схема этой основной операционной програм­ мы. На рис. 9.9 представлена более подробная блок-схема этой программы. . Видно, что одним из первых действий главной управляю• • щей программы является вызов подпрограммы ввода ключа - шаг la. Вспомним, что система выполняет эту подпрограмму до тех пор, пока не будет введено требуемое значение ключа. После выхода из подпрограммы ввода ключа производится про­ верка значения ключа, записанного в ячейке KWGT. Если это· значение соответствует допустимой функции, осуществляется переход к шагу 5. Система ожидает ввода функционального ключа, а после осуществления этой операции ей безразлично конкретное зна­ чение ключа. По значениям функциональных ключей видно. что любое число в ячейке KWGT, большее чем 15, определяет допустимую функцию. Поэтому на шаге 2 блок-схемы рис. 9.9 осуществляется проверка логического условия, является ли число в ячейке KWGT больше 15. Если же число в KWGT не больше 15, на табло высвечива­ ется системная ошибка. Этой частной ошибке приписан номер 1, так что на табло заносится число ЕОООО1 16 . Это число, опре­ деляющее факт ввода недопустимого ключа (ошибки), высве­ чивается до тех пор, пока не •будет нажат ключ сброса. По­ скольку в процессе написания программного обеспечения ге­ нерируются коды других ошибок, необходимо привести ц вклю­ чить в документацию список кодов ошибок и их смысловые зна• чения. • На шаге 5 рис. 9.9 вычисляется адрес программного моду­ ля, который осуществляет управление системой при реализа­ ции заданной функции. Вычисление адреса производится сле­ дующим образом. Прежде всего подготовим таблицу операто­ ров перехода, содержащую обращение к меткам системы,· как это показано на рис. 9.1 О. Адрес, определяемый на основе чис­ ла, записанного в ячейку KWGT, указывает на один из опера­ торов перехода, приведенных на рис. 9.10; этот оператор поз­ воляет осуществить передачу управления в ячейку, с которой начинается частный модуль программного обеспечения, соот• ветствующий введенному ключу. Оператор перехода рис. 9.10, выбираемый для щ,шолнения, соотносится конкрётному значению числа в KWGT. Например. если в эту ячейку записано число 161 0, то будет выполнен опе.. ратор JMP ENTER; в случае числа 1710 -оператор JMP CENTY. Отметим, что каждый раз при увеличении на единицу числа в KWGT, получаемого в результате выполнения по.в.проr• раммы KEYIN, осуществляется выбор следующего по порядку оператора перехода на рис. 9.10.
Начало Инициализация программы 5 Вычисление адреса ' Нет Нет Установка на·табло - 3 кода ошибки EOOOOI - Рис. 9.9 . Блок-схема главиой управляющей программы системы. Таблица JMP ввод JMP Стирание ВВОДА J:vtl' Уоа11овка Ад РЕ<- А JMP Стирание ОЗУ J~1P Про-граммщюва1111~ JMP Верификация JMP Копирование JMP NA1 JMP NA1 Рис. 9.10 . Таблица ,операторов перехода, указывающих модул,и программы, реализующие отмеченные фуикции.
252 Гnава 9 Поэтому требуемый оператор JMP относительно первого опе- ратора может быть вычислен следующим ()бразом-t , JMP относительно JMP ENTER=KWGT-1610. Для иллюстрации этой формулы положим, что в ячейке KWGT записано число 1910, сформированное подпрограммой KEYIN, что сооответствует KJIIOЧY СТИРАНИЕ ОЗУ. По приве­ денной формуле вычисляется следующий оператор перехода: JMP относительно JMP ENTER=KWGT-16=19-lб=З. Таким образом, выполняется третий по порядку (от JMP ENTER.) оператор перехода. Выполнение этого оператора при- r 0000 8 0100 9 0100 10 0100 11 0100 120100СЭЭЭ0F IЭ 0103 сэ.н or' Н0106СЭЭ5QF 150109СЭ360F 16010ССЭ370F -17 010F С) ЭВ 0F 180112CJ390F 19 0115 СЭ ЭА,ОF 200118СЭJB0F * * 0RG 0I00H УСТАНОВИТЬ НАЧАЛО ТАБJIИЦЫ: **** НАЧАЛО ТАБЛИЦЫ:****** JМР ENТER JМР СЕNТУ JМР ADDSE JМР CLRAМ JМР PR0G JМР VEY JМР СОРУ JМР NA1 ./МР NA2 21 011В •· 2201IB **** КОНЕЦ ТАБЛИЦЫ ****** 23 011в * • Рис. 9.11. Таблица операторов перехода рис. 9 .10 после трансляции. Начало таблицы соответствует адресу 0100 (шестнадцатеричному). Каждый ·оператор перехода заиимает·З байта памяти. • ведет к реализации последовательности команд, управляющей стщ.>анием ОЗУ. Однако проведенное рассмотрение не раскрывает полной картины. Если осуществить трансляцию программы, то модуль рис. 9JO предетавится в виде, показанном на рис. 9.11, где ука­ заны абсолютные адреса каждого оператора перехr;ща в таб­ лице. Теперь использование указанных взаимосвязей так, как они приведены, порождает следующий порядок действий. Предположим, что адрес первого оператора перехода в таб­ лице принят в качестве базового. Тогда указатель нового адреса (NEWA) в таблице вычисляется как функция базового адреса - и некоторой переменной V1. В соответствии с рассмотренным выще соотношением имеем NЕWА=Базовый_ aдpec+(KWGT-­ - 16), что tзызывает определенliое беспокойство, поскольку при- ; пятый базовый адрес, как показано на рис. 9.11, есть O-lOO1s• · • Как и прежде, KWGT= 19, и требуется определить адрес NEWA, соответствующий оператору JMP CLRAМ. В соответст-
Начало TEMP=KWGT - 16 10 .ТЕМР=ТЕМР * 3 Рис. 9.12. Блок-схема вычисления точ. иого адреса входа в таблицу опера~ торов переходов. NEWA = NEWA + ТЕМР Переход к NEWА 7 0000 В00003А0010 90003D610 10 0005 .Н 11 0006 12 0006 13 0006 87 14 0007 во 15 0008 1б 0000 170008010000 18 ОООВ "F. . 19ооос210001 20 oooF 21 OOQF 22· ooo:t' 09 23 0010 24 0010 25 0010 Et 26 0011 .2 7 0011 2в-001t 29 0011 ORG 00 LDA КWGHT SUI 1б МоV в,А ADD А . :A.DD В АККУ14УЛЯТОР=КW<1НТ АККУМУЛЯТОР=КWGНТ-16 ЗАПОМНИТЬ В РЕГИСТРЕ В АККУМУЛЯТОР* 2 АККУМУЛЯ ТОJ?* 3 LXI В100 ОБНУЛЕНЮ!: FЕГИСТРОВ В 10 МОV СА· ЗАПОМНИТЬ В РЕГИСТРЕ С LXI н;тлвLЕ ЗАГРУЗИТЬ БАЗОWЙ АДРЕС ТАЕJ!ИЦl DAD В lЮWЙ.АДР.=ВАЗ.АДР.+СОДЕРIИЫОЕ Р.ЕГ. В РСНL ПЕРЕХОД По АДРЕСУ. TAВJ!иtJJl *•**********************************************************' .. ORG О1ООН УСТАНОВИТЬ НАЧА110 ~~ .эо 0100 • * Э1 0100 **** НАЧАЛО TAБJiи:tlJ,t ************ эz 0100 * ЭЗ 0100 с, ЭЭ OF ТАВLЕ JМР ENТ.ER Э4- 0103 С) Э4 oF JМР СЁNП J50106СЭЭ5oF JIIP ADDSE Эб0109С)36oF JIIP CLRAI( 37otocС)37oF JJIP PROG ЭВ 01oF СЭ .38 oF JJIP VEY 390112СЭ39oF JМР СОРУ: 400115С)ЭАоF JIIP NAt 410118С33Вof JIIP ВА2 _. 2 О11В • • . 4:) ot 1В. **** }{()ВЕЦ ЖAJIJl[Ql *!!**********"' Рис. 9.13. Реализация б;ок-схемы рис. 9.12 в кодах символического языка микропроцессора 8080.
254 Глава 9 вин с рис. 9. ~1 этот адрес имеет значение OlOB. И вышеприве­ денное соотношение дает NЕWА=БАЗОВЫй АДРЕС+ (KWGT-16), NEWA=OlOO+ (1910-1610), NEWA=OlOO+OOO3, NEWA=O1O3. Таким образом, получен адрес 0103 вместо требуемого OlOB, указывающий оператор JMP CENTY (0103), а не требуе­ мый оператор JMP CLRAМ (O1OВ). Ситуация ухудшается, ког­ да KWGT= 17 10. В этом случае в результате аналогичных рас­ четов получается NEWA=O1O1 16, т. е. абсолютный адрес, соот­ ветствующий среднему байту 3-байтовой команды, что является программной ошибкой. Анализируя положение, можно gаме­ ~rить, что в расчетах не учитывался tот факт, что каждая коман­ да JMP занимает 3 байта памяти, а не 1. байт, как ранее пред­ полагали. По этой причине вторая JMP команда смещена по отношению к первой не на один, а на три адреса. Для различ­ ных микропроцессоров трансляция команд JMP осуществля­ ется по-разному. При этом необходима осторожность при вы­ числещш адресов перехода по описанной сх·еме для заданного программного обеспечения. Однако допущенная ошибка может быть легко исправлена путем изменения схемы расчета адреса перехода: NЕWА=БА- ЗОВЫй АДРЕС+ (KWGT-16) Х3. . С целью иллюстрации новой расчетной схемы рассмотрим прежний пример. Пусть значение KWGT= 10 10. БаэовЬtЙ адрес есть О 100 16, как это показано на рис. 9.11. Тогда значение но- вого адреса. будет следующее: . ' . NЕW А=Б АЗО ВЫй AДPEC+(KWGT-16)X3, NEWA=O1OO1в+ (1910-1610) Х310, NEWA= 01001s+ (310Х310), NЕWА=O1O910- Из рис. 9.11 видно, что абсолютный адрес 0109 .является правильным для входа в таблицу при KWGT= 19. На рис. 9.12 приведена блок-схема реализации описанных вычислений для микропроцессора 8085. Соответствующая программа представ­ лена на рис. 9J·3 . 9.5. Проrраммные средства реаnизации функции установки вдреса • Рассмотрев средства управления реализацией программных функций, перейдем к обсуждению программ, которые выполня­ ют каждую из таких функций, Отметим, что подпрограмма КЕУ INPUT может быть вызва­ на в любой точке програ!11МЫ. С помощью этой подпрограммы вызываются данные, необходимость в использовании которых возникает в данной т.очке. •
... Проектирование управляющеrо проrраммноrо . обеспечения 255 Прежде всего рассмотрим функцию УСТАНОВКА АдРЕСА, которая может быть описана следующим Gбразом. Функция ус­ тановки адреса задает адрес памяти в интервале 0000-03FF1в, являющийся начальным адресом для проверки данных в ОЗУ2 программ или для ввода данных. Еслu нажимается ключ функ­ ции установки адр€са, система автоматически переходит в ре­ жим ожидания ввода трех шестнадцатеричных цифр. По завер­ шении такой операции система использует эти цифры в каче­ стве адреса ОЗУ2 . .Теперь на табло отображается адрес ОЗУ (0000-03FF) и данные, записанные в этой ячейке. Если необходимо скоррек­ тировать данные, вводятся две новые шестнадцатеричные циф­ ры. Эти данные записываются в ОЗУ2 при нажатии ключа ввода. Если же мы хотим лишь проверить данные, то последова­ тельным нажатием ключа ввода осуществляем перезапись ис­ ходных данных и увеличение на единицу адреса памяти. Блок­ схема реализации подобной функции приведена на рис. 9.14. Из рис. 9.14 видно, что реализация функции начинается с вывода на табло значения А30000 16 с целью проинформировать пользователя, что система ожидает ввода трех цифр адреса (ниблов). Затем программа их вводит. Отметим, что основной блок на схеме, помеченный как шаг 2, лишь устанавливает, что программа будет считывать три цифры. Считывание и отобра­ жение на табло цифр будет показано на примерах реа.льных программ. Описание. же всех деталей Qсновноrо блока шага 2 схемы может запутать общую картину. Необходимые пояснения по программной реализации дан­ ного блока, позволяющие получить о нем детальное представ­ ление, будут даны при рассмотрении его описания с помощью мнемОIJИКИ микропроцессора 8085. Приведенное предваритель­ ное упрощенное описание блок-схемы процесса имеет целью облегчить понимание основных идей. Поскольку для реализации программной функции необходимо ее подробное представление, то такое представление функции содержится в программных модулях, отображающих элементы блок-схемы, и может быть. использовано при обсуждении материала. Сл.едующим шагом блок-схемы рис. 9.14 является чтение данных из ОЗУ2 по адресу, который введен пользователем. Си­ стема должна рассчитать абсолютный адрес считывания, по­ скольку ячейке 0000 ОЗУ2 в действительности соответствует адрес 140016• Этот системный адрес получается на основании таблицы распределения памяти рис. 9.1. Поэтому, если введен адрес 10316, чтение будет осуществляться с абсолютно си~ стемноrо адреса 140016 +010316 = 1503. Отсюда становится ясно, что, до того как начать писать программы, необходимо соста­ вить хорошую таблицу распределения памяти.
Начало Установка на табло АЗОООО L-----~-----' Заnрос 3-х знаков адреса у· пользователя 2 Ввод 3-х знаков с пульта ЧAIN 1 , переменная в памяти 3 Чтение данных из ОЗУ (AIN2 + 1400) = АДРЕС 4 Отображение адреса и данных Да ,Да Введен байт 11 Запись новь1х данных по адресу ОЗУ 6 Перехо_д на начало ВЫХОД главнои проrраммы . Увеличение адреса на1 8 Выводы новых данных на табло Рис. 9.14 . Блок-схема функционирования системы при реаJ!изации фунщин установки адреса.
Проектирование управляющего· программного обеспечения 257 После чтения данных по заданному адресу ОЗУ2 адрес и данные отображаются на табло. Это преду.смотрено блоком 4 схемы рис. 9. 14. Далее система анализирует. следующий ключ. Если таким ключом является ключ стирания ввода, • реализация функции sавершается и осуществляется возврат в главную управляю­ щую программу. При нажатии же ключа ввода производится приращение адреса ОЗУ2 на единицу (шаг 8) и отображение на табло нового адреса ОЗУ и данных, хранимых по этому ад­ ресу. Таким образом можно просмотреть память программ (ОЗУ2 ) и проверить данные. Если осуществляется ввод ключа данных 0-F (шаг 9), то программа рассмf!,'I'ривает это как ввод новых данных по со­ ответствующему адресу ОЗУ2 и ожидает ввода двух цифр. По­ сле того как эти цифры введены, проверяется факт отработки ключа ввода (шаг 1О), «подтверждающего» введенные данные. Если же вводится какой-либо иной ключ, выполнение програм- 1 0000 ,- 0000 J 0000 4 0000 '; 0000 1, 0000 ·r 0000 В 0000 9 0000 1() 0000 11 0000 JE АЗ 1? 0002 D) F2 1·1 0004 AF 14 0005 DЭ F1 1'; 0007 DJ FO 1 r, 0009 ,· , 0009 1(10009CDСЗМ 1<J ОООС ЭА С2 00 .· ,J oooF DЗ r'o .'1 0011 З2 ВF 00 ,I00\4 _. J 0014 4lI014CDСЗ00 ·, \.Ю17 ЭАС200 1, ОО1А 32 ВF' 00 1001DЗАBt;00 \J020 17 1 0021 17 J СЮ22 17 ,1 0023 17 u024 Еб }'О , <J026 )2 С1 00 , 0029 ЭА ВF 00 ОО2С 21 С1 00 *****~****•*********~************************************** * * ПОДПРОГРАММА ADDSE. * ЭТА ПРОГРАММА ВВЕДЕТ АДРЕС ИЗ ТРЕХ ЦИФР С ПУЛЬТА, * ВЫВЕДЕТ АДРЕС НА ДИСПJ!ЕЙ И ЗАПОМНИТ ДАННЫЕ В : ПРОГРАММЕ ПЗУ ПО АДРЕСУ,УНАЗАННОМУ НА ДИСПЛЕЕ * ADDSE * * * * ORG 00 МVI АFОАЭН оuтО2Н :XRA А оuт OF1H оuт оiон: CALL KDET LDA КWGНТ оuт OFOH STA AIN1 CALL КDЕТ LDA КWGHT STA AIN2 LDA AIN\ ЛАL RAL RAL НАL AIN QFOH STA AIN4 LDA AIN2 LXI H1 AIN4 УСТАНОВИТЬ АДРЕС ПЕРВОГО БАйТА ПРОГ. ВЫВЕСТИ НА ДМСПJ!ЕЙ АЭОООО ПРИНЯТЬ ПЕРВУЮ ЦИФРУ С ПУЛЬТА АКкntУJ!ЯТОР=ПЕРВОЙ ЦИФРЕ ЕЬl.ВЕСТИ ПЕРВ~ ЦИФРУ ЗАПО14НИТЪ ПЕРВУЮ ЦИФРУ ПРИНЯТЬ ВТОРУЮ ЦИФРУ С ПУЛЬТА А!tltУМУЛЯТОР=ВТОРОИ ЦИФРЕ ЗАIIОМНИ'l'Ь ВТОРУЮ I1J1ФРУ ПРИНЯТЬ IIEPBYIO ЦИФРУ ИЗ ПАМЯТИ СДВИНУТЬ ВJIEBO НА 4 БИТА МАСКИРОВАТЬ .М.ЛАДUIИЕ 4 БИТА СОХРАНИТЬ !IРОМЕЖУТ. РЕЗ. , АККУМУЛЯТОР=МЛАДШИЕ 4 БИТА ВТОРОИ ЦИФ. УСТАНОВИТЬ В H,L АДРЕС AIN4 Рис. 9.15. Реализация блок-схемы рис. 9 .14 в кодах символического языка микр.опроцессора 8085. 17-814
)6 002F В6 )7 00:Ю- D) FO )8 0032 )9 00)2 40 00J2CDОJ00 41 0035 JAС200 42 00)8 32011')') 4J (')()JB JA BFOQ Н OOJE 17 45 003&' 17 46 0040 17 47 0041 17 4,8 0042 Еб FO 49004421со00 " 0047 В6 51М48DJF1 52ОН4А)2BF00 53 004D 54 ')() 4D 55 004D AF 56 004Е D3 FO 57 0() 7' 58 00~ 59 rY)7) JAВ&:00 60 Of)5) DJ F2 61 М55 62 0055 6J 0055 64 ')055 65 0055 66')l552100ц 67 0058JABF00 68 005В 5F 69 0050 JAJ3E()0 1) 005F 57 71 0060 D5 72 0061 19 7J М62 74 0062 75 0/J62 7Е 76 (ЮбJ DJ FO 77 М65 78 0065 79 ()06 5 Ю 0065 81 0065 82 0065Е5 8J ОГJ66 CD CJ 00 84 0069 JA 020() 85 0060FE 11 - 86 006.F СА В9 00 87 0071 FE 10 86 ,:,о 73 СА АВ о,:, * * * * * * * -- ,г ORA l,f оuт оrон OALL KDET LDA КWGНТ STA AINJ LDA AIN2 RAL - RAL RAL RAL AIN 'JF'JH LXI H,AINJ 'JRA М l'\UT OF1H STA AIN2 XRA А ')UT OFOH LDA AIN1 l)UT ')&'2Н JD Г. "ИЛИ"АККУ!,f. И ПЕ:РООЙ ЦИФРЫ В AIN4 ЗАПИСАТЬ НА ДИОПJIЕ t\ ХХХХ-- - ПРИНЯТЬ ТРЕ ТЬD ЦИФРУ АККУМУЛЯТ')Р=ТРЕТЬЯ ЦИФРА ЗАПОЩ!ИТЬ РЕЗУЛЬТАТ • ВЫЗВАТЬ ВТ'JРУЮ ЦИФРУ СДВИГ диФРЬI ВJ!ЕВ') НА 4 ВИТА ВЬI,1.f:ЛИТЬ 4 МЛА,!Щ!ИХ ВИТА JDГ. "И.ЛИ"ВТ1'1Ю Й И ТРЕТШЙ ЦИФР ВЫВЕСТИ tмФРУ НА ДИСПЛ&Й ХХ--ХХ ВТОРАЯ И ТРЕТЬЯ ЦИФРЬI В AIN2 ДИСПЛЕЙ=ХХ--00 ДИС[Ш Й,00 ХХ~О ,Г Д1,: ХХХ-АДРЕС 4 ШШРЬ ЧИТАЕМ ДАННШ: ИЗ ПАМЯТИ 4 Н.111.НЯЯ ГРАНИЦА=АIN2,БЕРХНЯЯ ГPAH.11ЦA=AINI * * * LXI H,140'JH LDA AIN2 "'1V Е ,А LDA AIN1 М'JV D,A PUSH D DAD D l(f)V А ,М оuтомн Н, 1'0НАЧАЛЬНЬIЙ АДРЕС D ,Е =АДРЕ_С О ЗУ ЗАПИСАТЬ Н,L=НАЧАЛЬНЬIЙ АДРЕС ЗАГРУЗИТЬ В АККУМ. ДАННЬI& ИЗ ОЗУ УСТАН')ВИТЬ ДИСПJ!ЕЙ'{)ХХХDD,ГдЕ DD-ДАНН * МЫ Тс)ЛЬК() Ч'l"J ГJК')НЧИ.ЛИ ШАГ 4 -В.ЛОК-СХЕ МЬ1 * * PUSH Н CALL KDET LDA KWGHT CPI 17 JZ ADEX CPI 16 J~ STP8 ЗАП"IМНИТЬ АДРЕС ЖДАТЬ CJii!:ДYl)l!EГn НАЖАТИЯ КЛАВИШИ АККУМУЛЯ'F1Р=ЗНАЧЕНИi КЛАВИШИ ДА ,ИДТИ НА ВЫХ':JД ИЭ ЭТОЙ ПРl)ГРАММЫ НАЖАТА КЛАВИША ENTER?? ДА ,ИДТИ НА ШАГ 8 ВЛОК-ОХЕW 89 0076 * 9J 0076 * 91 0076 * НЕОВХОДИI() ПРИНЯТЬ ДЕЕ н,:,вш: ЦИФРЬI И эАтмнить ИХ В ~Зу 92 0076 • 9J ()076 CD CJ 00 ТIПВ 94 0079JA0200 95007С)2С1on 96007FDJМ 97 0061CDCJ00 98 0064JAС200 99 0()87 * CALL KDi:Т­ LDA KWQHT STA AIN4 l')UT,- () МН CALL KDET LDA КWGHT ПРИНЯТЬ НОВУD ЦИФРУ АККУМУЛЯТl'\Р=ЗНАЧЕНИЕ КЛЛВКШИ IIPOW:JКY'roЧH!:iE ЗАffiМИНАНИЯ ЗАПИ.СЬ НА ДИСПЛЕЙ ПРИНЯТЬ CJIEДYIO!ЦYD ЦИФРУ
юо 0087)20000 101 008А ЗА С1 00 11'12 006D 17 11')) 00SE 17 104 ')l6F 17 105 0090 17 106 0091 21 са оо 107 оо94 Вб 108 0095 J2 СО 1)0 109 0098 DJ FO 1Ю 009А 111 009А 112 00 9А 11J 009А 114 009А CD CJ00 115 009DJAС200 116ООЮFEЮ 117 ООА2 С2 76 00 116 МА5 119 оо.А, 1Ю ООА5 121 МА5 122 ООА5 ЗА СО 00 12) ООАВ i:1 124 ООА9 77 125 00.АА Е5 1 26 ООАВ 127 ООАВ 128 00АВЕ1 129 'ООАС 2J 1J0 OOAD Df 1J1 ООАЕ 1J 1J2 00AF D5 1JJ ООЮ 7В 134 00В1 DJ F1 1'35 OOBJ 7Л 1J6 0084 DJ F2 1З7 ООВб CJ 62 00 1 J8 OdB9 1J9 00В9 1() 00В9 Е1 141 ООВА D1 142 00ВВ СJ С400 ЦJ оовз 144 ООВЕ 145 OOБli: 146 ')OJ3E Ц1 00Б1i: 148 ООВЕ 149 ООВЕ 00 11) OOBF 00 151 оосо 01'1 152 ООС1 00 1 5J ООС2 01'1 154 MCJ 00 1 55 ООС4 01'1 156 ООС5 О ERR'JRS 17° * * STA AINJ LDA АIЩ RAL RAL RAL RAL LXI H,AINJ 'JRA М • STA AINJ аuт оrон * ПЮ ВЕРИТЬ ДАННШ: * * * CALL КDЕТ LDA KWGHT CPI 16 JNZ TNIB ВРЕ!.ЕЩ!О СОХРАНИТЬ В ПАМЯТИ ВЫЗВАТЬ ПЕРВУЮ ЦИФРУ СДВИнУТЬ ВЛЕВО НА 4 ВИТА JDГ." ИЛИ" !ВРВОЙ и втоrо й ЦИФР СОХРАНИТЬ ДА.НИШ В ПАМЯТИ ВЫВЕСТИ НА ДИСПIIЕ А ПРИНЯТЬ КЛАВИШУ АККУ!ОЛЯТJ P=ЗHAЧiJlil-!E КЛАВИШИ КЛАеИIIIА ENТER??? Ш:Т ,ПОВТОРНО ЗАПРОСИТЬ НОВЫi ДАННЪЕ * ЗАПИСАТЬ ДАННЫЕ В ПАМЯТЬ ·* " * LDA AINJ РОР Н W)V М,А PUSH Н STP8 РОР Н .. * INX Н P'JP D INX D PUSH D 4QV д_,» OUT "IF1 Н М"V A,D ' JUT OF2H JMP NRED ADEX р:,р Н * " * * МРD JMP ВEGIN ВЫЗВАТЬ ДАННЫЕ ВОССТАНОВИТЬ АдРЕС В ПАМЯТИ ДАННЫЕ В ПАМЯТЬ УВii:ЛИЧИТЬ АДРЕС НА 1 ЮССТАЮВИТЬ АДРЕС ОЗУ СОХРАНИТЬ ЗНАЧЕНШ: ВЬIВЕСТИ АДРЕС НА ДИСПЛЕЙ ВЫВЕСТИ АДРЕС НА ДИСПJIЕЙ ЕШЕ РАЗ НАЧАТЬ ОПЕРАЦИЮ ИДТИ НА HAЧAJD УПРАВ11ЯЮПВЙ DIOГPAI(. " НЮ ВЮ ДИIЮ У'КА::ЭАТЬ МАКЕТ РАЭNo:Щ!:НИЯ IEPE!li:ННЬIX * AIN1 NOP AIN2 NOP АПО Nr'1P AINЗ N')P KWGHT Nr'1P KDET N'~ P ВEGIN N')P END 12 SYМOOLS ПРЕДЛ)!ЕНИЕ END АССЕМRЛЕРА
260 Глава 9 мы не будет продолжено, чему соответствует условие «нет> шага 10. _ ·Если отрабатывается ключ ввода, то _данные, считанные на шаге 9, записываются в ОЗУ2 , КаН! это показано на шаге 11. После этого осуществляется переход к шагу 8, на котором ад­ рес ОЗУ2 увеличивается на 1. По завершении шага 8 снова про­ изводится переход к шагу 3. Программа реализации функции УСТАНОВКИ АДРЕСА приведена на рис. 9.li5. -9 .6. Проrраммные средства реаnиэации функ~ии СТИРАНИЯ ОЗУ Перейдем к рассмотрению программных средств, предназначен­ ных для реализации системной функции СТИРАНИЯ ОЗУ, для чего прежде всего определим эту функцию. Функция СТИРА­ НИЕ ОЗУ заключается в записи единиц (FF1 6) во все ячейки ОЗУ2 . , Укрупненная блок-схема реализации рассматриваемой функ­ ции приведена на рис. 9.16. После записи единиц во все ячейки ОЗУ2 осуществляются возврат в основную программу и ожида­ ние ввода новой функции. Программная реализация блок-схе­ мы рис. 9.16 средствами символического языка микропроцессо­ ра 8085 показана на рис. 9.17 . 9.7 . Проrраммные средства реаnиэации функции проrраммирования Программирование ППЗУ осуществляется в том случае, когда возникает необходимость хранения информации (отлаженных программ), длительное время используемой без перепрограм­ мирования. Подобные запоминающие устройства, сохраняющие информацию при отключении питания, находят применение во многих областях. ППЗУ обладают еще одним важным свойст­ вом, которое заключается в том, что при необходимости запи­ санную информацию можно стереть, а устройство - перепрог­ раммировать в соответствии с новыми потребностями. При прог­ раммировании ППЗУ требуемая программа вначале размеща­ ется в другом ЗУ, в нашем случае это ОЗУ2 , а затем пересылается при выполнении операции программирования в ППЗУ, где и хранится до тех пор, пока не возникнет потреб­ ность ее затереть. Рассмотрим теперь программные средства. необходимые для программирования ППЗУ. Система устанавливает ППЗУ в ре­ жим программирования. Даннь1е из ОЗУ2 поступают на выход­ ные линии ППЗУ. Далее на вывод программирования ППЗУ iюдается импульс. Выдача импульса программирования произ­ водится последовательно для каждого адреса _(ОООО-ОЗFF1в):,
Начало Системный адрес= 1400 Начало ОЗУ2 Рис. 9.16. Бл_ок-схема работы системы при реализации функ­ ции стирания ОЗУ. Запись "FF" по системному адресу r 0000 2 0000 J 0000 4 0000 5-0000 6 0000 7 0000' 80000JEFF 90002210014 10 0005 77 11 0006 F5 12 0007 JE 17 13 0009 вс 14ОООАСА1200 15 OOOD Fi 16 оооЕ 2э 17oooFсэо5оо Все ОЗУ2 заполнено, Выход Переход к главной управляющей. программе Нет Адрес = Адрес + 1 Следующий адрес ******************************************·**************** * * ПОДПРОГРАММА ЧИСТКИ QЗУ * * CLRAМ CL1 ORG 0000 МVI A,oFFН LXI Н 1 1400Н MOV М,А PUSH PSW МVI А, 17Н СМР Н УСТАНОВИТЬ- НАЧ. АДРЕС ПРОГРАJОIЫ АККУМУЛЯТОР•FF В H,L НАЧАJ!ЫilЙ АДРЕС ОЗУ FF В ПАМЯТЬ СОХРАНИТЬ СОДЕРЖАНИЕ АККУМУЛЯТОРА ПРОВЕРИТЬ СТАРШИЙ ВАЙТ=ПРЕДЕJI, ЗНАЧ• ДА ,ИДТИ НА ПРОВЕРКУ JIJIAДIIIEГO ВАЙТА ВОССТАНОВИТЬ АККУМУЛЯТОР УВЕЛИЧИТЬ АДРЕС ОЗУ 18 0012 F1 LСНК JZ LСНК РОР PSW :шх н JIIP CL1 РОР PSW CIIP L ~ ОБРАБОТАТЬ СЛЕ.ЦУПIIИЙ АДРЕС ВОССТАЗ)ВИТЪ АК!МIУЛЯ'lОР ПРОВЕРИТЪ:W!АДШИЙ i,AIT•FF КОНЕЦ ЭТОЙ ПОДПРОГРАIОВ·· УВЕЛИЧИТЬ АДРЕС ОЗУ 19001)BD, 200014СА1В00 21 0017 2) 220018С)0500 23001В , * * * JZ BEGIN INX Н· JШ' CL1 ПОВТОРИТЬ ЗАНОВО С ДРУГИJ( AДPEC<JI 24 001В 25 ОО1В 26 0018 27 ОО1В * НЕОВХОДИJ( АДРЕС ДЛЯ МЕТКИ ВEGIN 28 001В 00 29 ОО1С :ю 0010 * BEGIN NOP * END-. О E!IRO:RS 4 SYIIВOLS' ЭТО ПУСТОЙ ОПЕРАТОР АССЕМВJIЕРА ПРЕДЛОЖЕНИЕ END ACCEJIВJIEPA Рис. 9.17. Реализация блок-схемы рис. 9.16 в кодах символического языка микропроцессора 8085. 18-814
6 Начало Установка на табло "DDDDDD" '-----т------' Установка 2708 2 в режим про­ граммирования 3 Выдача данных по адресу ППЗУ Индикация по~ьзователю режима программирования системы Подача импульса 4 программирования на вывод 2708 Нет 8 Нет Сравнение ППЗУ с ОЗУ J(JI 96 Ожидание на- • жатия клавиши 1~ , сброса -Переход к главной 1f управляющей программе Рис. 9.18 . Блок-схема работы системы в реж11ме программярования-_
1 0000 2 0000 З 0000 4 ooro 5 0000 б 0000 7 0000 8 ()ООО 9 ()000 1() 0000 11 ()000 12 0000 tЗ 0000 'Е DD 14 0002 DJ FO 15 00()4 DJ F1 16 0006 DЭ F2 17 0008 JE 00 18 О()ОА DJ 32 19ОООСJ2ОJ14 2) OOOF JC 21ООЮDЗЗ4 22 0012 "" РЕАЛИЗАЦИЯ КОМАНДЫ PROG для в~во. " ЭТА ПР()ГРА!,(Щ СЛУЖИТ ДЛЯ УПРАВЛЕНИЯ ПЕРЕПРl)Г. ПЗУ. " ИНФ'JРМАЦИЯОЗУ ХРАНИТСЯ НАЧИНАЯ С ЯЧ.Ь:ЙКИ 1.РОН. : АДРЕСА ПЕРЕЩ>(}ГРАММИРУЕIЮГО ПЗУ НАЧИНАЮТСЯ С 0000. * """""****"""" ПРОГРАММИСТ ДЖИМ Kl)~~POH *"*"""**""*******• * " PROG * ORG 0000 MVI оuт оuт оuт MVI r"UT STA пн r')UT A,ODDH OFOH OFIH OF2H А,00 З2Н CNT1 А нн УСТАНl)ВИТЬ НАЧ. АДРЕС ДЛЯ АС5Е МБЛЕРА ВЫШ:СТИ НА ДИСПЛЕЙ DDDDDD РАЗРЕШИТЬ Пii;РЕДАЧУ ДАННЫХ В ПРОГ. ПЭf О.БНУЛИТЬ СЧЕТЧИК ЦИКJll)В CS/WE=1 2 V')LТS 2З М12 11 1')0 ()() PROGJ 240015210014 LXI LXI D,0000 Н Н,14')0Н ЗАГРУЗИТЬ НАЧ. АДРЕС ПРl')Г. ПЗ:t ЗАГРУЗИТЬ НАЧ. АдF'.!i:СОЗУ 25 0')18 26 0018 Tl 27 0019 DJ J) 2В 001В7В 29001СDJ,,, )"1 001Е 7А J1 001F DJ )4 J2 0021 PROG2 * '/IIOV оuт ьюv оuт lf'1V оuт А,М J)H A,F ззн A,D J4H ДАННШ: ИЗ О ЗУ В АККУМУЛЯТl)Р' ВЫВЕСТИ ДАННЫЕ В ПР'JГ. ПЗJf Ю -А 7 В АККУМУЛЯТОР JO -А7 В ПРГJГ. ПЗУ АВ-А9 В АККУМУЛЯ'NР А8-А9 В ПР'1Г. ПЗУ 'ЗЗ 00 21 " ПРИ!€НИТЬ ПFОГРАММИРУЮ~Й ИМПУЛЬС J4 ()О 21 З5 002106О8 Зб 002J :Е ОЗ З7 0025 DJ )5 18 002705 19 002ВС22700 .f1 ОО.2ВЗЕО1 41 002D DJ З~ 42 M2F 4З 002F 44 002F 45 002F 7В -tб 00J) FE F'P 47 0032 С2 JBOO 4В 0035 7А 49 00)6 FEО3 5') 0038 СА40оо· " MVI В,08 ·M'iI A,OJ OUT J5H 1'ULSE DC~ В. * JNZ PULSE MVI А,О 1 OUT З5Н * ПОСЛЕДНИ~ АДРЕС * А,Е OFFH PROG1 A,D оз LOPC 51 OOJB 2З ' PROG1 J,IOV CPI JNZ '/IЮV CPI JZ INX INX JМР н 52 003С 1З 5З ООЗDС31800 54 ()1)4() D PROG2 ВКЛЮЧИТЬ CS/WE И ПРОГ. ИМПУЛЬС. ШИJ>ИНА ИМПУЛЬСА ВЫКЛЮЧИТЬ ПРОГ. ИМПУЛЬС ПРr>ГРАММИF()ВАЛСЯ? ПОСЛЕДНИЙ БАЙТ Ю -А 1, mСЛЕдниЙ БАЙТ АВ-А9 !ГСJ!ЕДНИЙ АДРЕС' (ДА) УВ::ЛИЧИТЬ АДРЕСА О ЗУ И ПРОD. ПЗ.f О ВРАВОТАТЬ СЛЕДУЮ!G!Й АдРЕС 55 0040 56 00'40 57 0040 58 ООО 59 0044 ,;n 0047 " ПОСЛЕДНИЙ РАЗ ОБРАБАТЫВАЛИСЬ BCIJ) 10 24 АДРЕСА?. * ЗА О) 14 LOPC JC J2ОJ14 FE СВ LDA CNT1 INR 'А STA CNT1 CPI ZOO ЗАГРУЗИТЬ СЧЕТЧИК ЮО ЦИКЛl)В'/?? Рис. 9.19. Реапизацвя блок-схемы рис. 9.18 в кодах символического микропроцессора 8085.
* JNZ PROGJ НЕ ЮО 1\ИКЛ'">В ,ПОВ'ЮРНЪJЙ СТАРТ 61 OQ49 С2 1200 ,2 004С • • 6J 004С 64 004С •* ПРОГРАММИРОВАНИЕ О K"1Htft:НO, n<:Ш:РЬ ПР')аgрить 6,004СЕО1 66 004Е D3 32 67 00" 3D 68 0051 DJ 35 69 0053 1)·005) 7·1 00 5J 72005)110000 7.) 0056 21 78 05 Н 0059 75 0059 7В 76 005А DJ 3J 77 ОГ5С 7А f8 005D J)J З4 79 0()5F DB 31 Ю 0061 fE 81 0062С27600 82 0065 8) 0065 84 0065 а,· 006 5 86 0~65 87 0065 7В 88 0066 FE. FF 890068С27100 ~ 006В 7А . 91 006СFEОЭ . 92 006:Е САО214 9) 0071 94 0071 95 0071 96 0071 23 97 0072 13 96 007JС35900 99 0076 юо 0076 Ю1 0076 to 2 00176 7В Ю) 0077 DJ FO Ю4 0079 7А 105 007А DJ F1 106 007С DB 31 107 007Е DJF2 106 оою 1')9 оою 1V,) оою * * MVI Ар1 оuт з2н DCR А OUT J5H ЗАПРЕТИТЬ ПЕРЕДАЧУ дАННЬ1Х В ПРОГ. ПЗУ АККУМУЛЯ'IОР=О CS/WE =О/) V * ИНИЦИАЛИЗИР'JВАТЬ АДРЕС ПРОr .: ПЗУ И О ЗУ * * PROG4 * * * LXI LXI MOV оuт r,v ' 1UT IN СМР JNZ D,00 Н,I400 А,Е JJH A,D -З4Н J1H м PR'1GF * АдР.Е С ПОСЛЕ ДНИ.Й ? * * mv А,Е CPI tH'FH JNZ PRQG5 М'1V A,D CPI OJ JZ ВEGIN АДРЕС О ЗУ Ю-А7· В АККУМУЛЯТ')Р АДРЕС В ПРОГ. ПЗУ А6-А9 В АККУМУЛЯТОР А6-А9 В ПР'">Г. ПЗУ ЧИТАТЬ ДАН!ШЕ ИЗ ПР()Г.ПЗУ В АККУМУЛ, сРАВНИТЬ ДАННЫЕ В0$УИ В IJPl)Г, ПЗУ НЕ РАВНЫ ,ОШИБКА !У1СЛЕ ДНИЙ JO -А 7 Нсl ПОСЛЕДНИЙ IЮСЛЕДНИ~ АВ-А9 ПОСЛЕДНИЙ.НАЧАТЬ H:")JЭYD КОМАНД1' * УВЗJIИЧИТЬ АДРЕСА О ЗУ И ПР") r. ПЗУ * PR'1G5 INX Н INX D JMP PR()G4 * СРАВНЕНИЕ ПО CJIEДYIO!mM АДРЕСАМ. * БЛ'Ж О БРАВО ТКИ О ШИБОК * PROG!? l.fYV А,Е ID-A7 в АККУМУЛЯТОР оuт OFOH МОУ A,D АВ-А9 В А.~КУМУЛЯТОР 0UT О!?1Н НА ~СПЛЕЙ IN 31Н ПРИНЯТЬ МННШ: ИЗ ПРОГ.. ПЗУ оuт 0!?2Н НА ~СПЛЕЙ , * ·: ЗАЦИКЛИТЬ ПР')Г. П')КА НЕ БУ.lаТ НАЖА'J.'А КЛАВИША СЕ 11t 00Ю CD 00 14 PRl)CJ6 112 0063 JAOI 14 CALL KDET LDA KWGT CPI 16Н JNZ PROCJ6 JМР ВEGIN 113 0086 FE 16 1140068С2Ю00 115 006ВCJО214 116 006:Е 117 008Е 116 008Е 119 008Е 12) 008Е НАЖАТА КЛАВИША СЕ??.? J3gРНУТЬСЯ И О ВРАБОТАТЬ ДРУГУЮ КOIW{, * * УКАЗАТЬ РАЗIЕ:!!!i:НИЕ ПЕРЕ.No:ННЫХ * *********~**********************************************• * ,
121 ООВЕ 122 008Е 12) ОО8Е 1Н ОО8Е 125 ОО8Е 126 О08Е 127 О08Е 128 ООВЕ 129 ООВЕ 1)0 ООВЕ 1)1 ОО8Е flроектирование управ,l'lяющего программного о6есnечениа 265' ' О ERRORS ~ УСТАНОВИТЬ IIEPEIIEHWE. * - ***********************************•********************~ * КDЕТ EQU 1400Н КWGT EQU 1401Н BEGIN .t:QU 1402-Н CNТI EQU 14О)Н * * END 14 SYМВOLS END для АССЕ.UВЛ - Через каждые 200 шагов программирования, в диапазоне адресов 0000-0ЗFF система выполняет операцию сравнения данных, записанных в ППЗУ с исходными данными, хранящи­ мися в ОЗУ2 . В случае когда вся информация, записанная в ППЗУ, совпадает с исходной информацией из ОЗУ2, считается, что операция программирования была выполнена успешно. Ес­ ли же данные для какого-либо адреса ППЗУ не совпадают с соответствующими данными ОЗУ2, то этщ· адрес и данные ото­ бражаются на табло. Блок-схема описанной про~едуры приве- дена на рис. 9.18. • Из рис. 9.18 видно, что работа подпрограммы начинается с записи на табло числа D,DIЭDDD 16• Это делается с целью инди­ кации факта реализации операции программирования ППЗУ. Для того чтобы полностью запрограммирьвать ППЗУ, необхо­ димо затратить более минуты, так что индикация этой опера­ ции необходима. Далее система переводит ППЗУ в режим · программирова­ ния (шаг 2), что осуществляется, как известно, путем подачи напряжения +12 В на вывод CS/WE устройства 2708. Затем реализуе~я циклическое повторение шагов 3, 4, 5, в: реализу­ ющих ~бственно программирование устройства 2708 с по­ мощью данных из ОЗУ2. • По завершении полного прохода программирования всех 1024 ячеек осуществляется проверка на выполнен;ие 200 цик­ лов программирования, что показано на рис. 9.18 (шаг 7). Ес­ ли 200 циклов не выполнено, производится переход к шагу_ 3. ' В противном случае осуществляется верификация запрограм­ мированных данных, что выражается шагами 8 и 9. Несравнение данных означает наличие ошибок при програм­ мировании устройс-rва. В этом случае на табло отображается а) адрес первой по порядку ячейки, где обнаружено несрав­ нение и б) данные в ППЗУ, заключенные по этому адресу, что выражается шагами 10 11 12. При полном сравнении данных осуществляется индикация правильности программирования пу• тем выдачи на табло значения FDDDDD и производится пере-
266 Глава 9 дача управления в начало головной программы, что показано на рис. 9.18 (шаг 11). На рис. 9.19 приведена программная реализация блок-схемы рис. 9.18 средствами символического языка микропроцессора 8085. 9.8 . Проrраммные средства реаnиэации функцми верификации Перейдем к рассмотрению функции верификации, заключаю­ щейся в сравнении данных ППЗУ с данными из ОЗУ2. В слу- 6 Увеличение на l адреса ППЗУ и OЗУ2 Начацо· Установка адреса ППЗУ= О, установка адреса ОЗУz= О • Нет Отображение ад- 3 реса и данных- _ Ожидание пажа - 4 тия ключа сброса Возврат в главную 7 управляющую проrамму Рис. 9.20. Блок-схема работы системы при реализации функции верификации. чае несовпадения какого-либо элемента данных на табло отоб­ ражается адрес этого элемента и соответствующие данные. Рассматриваемая функция особенно необходима в том случае, когда существует сомнение в правильном программировании ППЗУ. Она используется также для правильности затирания информации в ППЗУ.. С этой целью вначале производится сти­ jрание ОЗУ2 и затем - проверка правильности стирания ППЗУ rc помощью ключа верификации. Блок-схема реализации; функции верификации приведена на рис. 9.20, по которой видно, что вначале система устанавливает значение 0000 для адреса сравнения (шаг 1)., Далее осущест-
Проектирование управляющеrо п ограммного обеспечения 267 t O00 2О. )о 4 0000 5 0000 6 000() 7 0000 8 0000 9 0000 1() 0000 11 0000 12 0000 1J 0000 AF 14 ООО1 ЭС 150002DЭН 16 0004 AF 17 ООО5DJ)5 18 1")007DJ )3 19 СОС9D1 34- ю ()00В110000 21 000.1!": 21 00 14 22 0011 2J 0011 24 0011 25 0011 DB 31 26 001) ВЗ 27 0014 .С2 :эt 00 28 0017 ЗЕ 1З 29 0019 ВА З) 001.АС2 2600 J1 M1DJEFF J2 001F ВВ J")ООЮС22600 J4- 002)СJ)С00 J5 0()26 1) 36 0027 7А JT оо28DJ34- JB 002А7В J9 002ВD) J) 40 002D 23 41 002S СЗ 11О/) 42 OOJ1 DЗ FO 43 00З3 7В 44 0034 DJ F1 45 0036 71; 46 00)7 DЗ F2 47 0039С))900 48 оозс 49 00 эс. , :) OOJC 51 Ot> JC 52 003С 00 5J 00'.!D ********************************··············••********** * . * НА РИС. 9.21 !У)КАЗАНА f!Р()ГРАММА ViY ,БJIOK-CJ(gl(A. * КО'ЮРОЙ: ИЗ')ВРАЖЕНА НА РИС. 9. Ю. *ПРОГРАМ14ИСТ ДЖИМ КОФФFОН * *******4*************************************************• * ORG 0000 УКАЗАТЬ ACCIJ)МWJEPY HAЧAJI.O Dl!'Pr- . * УСТАНОВИТЬ РЕiИМ ЧТЕНИЯ из ПРОr.пзУ .. '/FY * XRA INR ' 1UT XRA оuт ' )UT fJUT LXI LXI А А J2H А З5Н JJH J4H D/)000 H,lf)Oi! О ВЕСПЕЧИ'DЬ РЕЖИМ Ч'lЕНИЯ cs,. ,o.o v·, PGM=a .ov АДРЕС /О -А 7 '() АДРЕС А8-А9 ,() •, YCTAHl1J3И:T Ь АДРЕС ПРО!.. , ПЗУ УСТАНОi'ЫТЪ АДРЕС О З'f •* НАЧАТЬ ЦИit,1 ЧТ!!:НИЯ ii{ ПРС:а&РКИ: *VFYt IN J1H СМР М JNZ VFAIL MVI А, 1JH СМР D JNZ VNEX МVI A,OFFH СМР Е JNZ VNEX JМР START VN.i:X:. . I NX_ . D. МОV A,D OUT J4H :МОV А ,Е OUT JJH INX Н JMP VFY1 VFAIL оuт OFOH MOV А,Е QUT OF1H МОV A,D OUT OF2H V01JT JMP VOUT• . * ) ЧИТАТЬ ДАННЫЕ ИЗ ПРОГ. ПЗУ СРАВНИТЬ ДАННЫЕ О ЗУ И Ш'ОГ. ПЗУ ЕСJ!И НЕ РАВНЬ1,'1'> НА VFAIL Г.ЮЕЕРИТЬ СТАРШИЙ ВАЙ:Т ,ПОСЛЕД. АДРЕС НЕ ПОСЛЕдниЙ,ПРИНЯТЬ СЛЕДУЮ!WIЙ АДРЕС ПР08i!:РИТЬ WIАДШИЙ ВАйТ ,П!"1СЛЕДНИЙ АДРЕС НЕ mСЛЕДНИЙ,ПРИНЯТЬ СЛЕДУЮ!W!Й АДРЕС НАЗАД К О сн,вю Й ПРОГР AMIIE НОВЫЙ: АДРЕС ПРоГ. ПЗУ ВЬJдАТЬ ДАННЬIЕ ВЬ1дАТ Ь ДАННЫЕ НОВЫЙ АДРЕС О ЗУ СРАВНИТЬ СJIЕДУЮПИЕ дАННШ: ВЫдАТЬ НА ~СПJJЕЙ----ХХ ВЫВ()Д АДРВСА НА ~СПШ:Й: ЖдАТЬ ПРЕРЫВАНИЯ :***** ТЕПЕРЬ вJДi: М ФИКТИВНУЮ ПSРЕNo!;ННУD * *************** START NOP END END ДЛЯ АОСЕМВJ!ЕР:t О ERIORS 6 S'!IIШOLS Рис. 9.21 . Реализация блок-схемы рис. 9.20 в кодах символического языка микропроцессора 8085. вляется сравнение данных по адресу О из ОЗУ2 с данными по адресу О ППЗУ. Если эти данные не сравниваются, на табло выводятся адрес данных и собственно данные, что показано на схеме (шаги 3 и 4). При сравнении данных производит<;я уве- личение на 1 адреса (шаг 6). . При последовательном увеличении адреса осуществляется сравнение данных по каждому адресу. В случае когда данные
Начало Установка адреса ППЗУ= О установка адреса ОЗУ = О ' Чтение данных ППЗУ 2 Запись данных нз ППЗУ в ОЗУ Да з Увелнченне иа I адреса ППЗУ нОЗУ Рис. 9.22. Блок-схема работы систе­ мы при реализации функции копиро­ вания. ереход в главную управляющую про-- 6 rрамму 1 0000 2 0000 3 О.ООО 4 0000 5 0000 6 0000 7 0000 8 0000 9 ООО(); 10 ооос 11 0000 12 0000 1) 0000 14 0000 No 15 0001 JC 16 0002 DJ )2 17 0004 AF 18 0005 DJ )5 190007110000 20ОООА210014 *********************************************************** * * НА РИС.9.2J ПОКАЗАНА ПРОГРАММА соРУ,влоК-СХЕМА * КОТОРОЙ ИЗОБРАЖЕНА НА РИС.9.22 * * ПРОГРА1411ИСТ Д1ИК НОФФРОН ·* *********************************************************** * ORG ОООН * .* РЕЖИМ ЧТЕНИЯ ИНФОFМАЦИИ ИЗ ПРОГ • ПЗУ XRA А INR А AККY.IUJIЯTOP=1 оuт J2Я XRA А оuт J5Я CS=O.OV 1 PGМ=O.OV LXI D10000 АДРЕС ПРОГ. ПЗУ=О LXI 21 OOOD 7В - СОРУ1 IIIOV и, ноон УСТАIЮВИТЬ АДРЕС ОЗУ А!Е 22 ОООЕ DJ)) 2) OOfO 7А 24 0011 DJ 34 25 001) DB )1 26 0015 77 27 0016 JE 1) 28 0018 ВА 290019С22200 )О 001C_JE FF )1 Q01F ВВ 32001FСА2700 ,, 0022 2) 34 002) 1) CNEX. )50024С)OD00- оuт моv оuт IN JiIOV м:vt CIIP JNZ l4VI СМР JZ INX INX JIIP Jн АДРЕС АО-А7 A,D нн АДРЕС А8-А9 )1Н ЧИТАТЬ :ИИФОрМ:АЦИЮ ИЗ ПРОГ. ПЗУ 141А ШВЕСТИ :ИИФО.t>::.tЩИЮ В ПЗУ А113Н D ПРОВЕРКА НА ПOCJIEДН!-tli АДРЕС CNEX ЕС.ЛИ АДРЕС НЕ ПОСЛЕ.~.; 'IИЙ I ТО НА CNEX A10FFH "WIАДIПИЙ: Б.АЙТ ПOCJIEJЩE1 ::> АДРЕСА. Е STARТ ECJIИ АДРЕС ПОСJIЕДНИЙ 1 'Ю КОНЕЦ . и · СJIЕДПiций АДРЕС ОЗУ D СJIЕДУЮЩИЙ АДРЕС IIaY СОРУ! ПРИНЯТЬ СJIЕдmциЕ ДАНWЕ 36 0027 * 37 0027 * ТЕПЕРЬ ВВЕДЕ11 ФИКТИВНУI) ПЕРЕМЕННУЮ 38 0027 * 39 0027 00 STARТ NOP -40 ()028 END ПРЕДЛОDНИЕ. END ,АССЕМБЛЕРА О ERIORS 4 SYIIВOLS
Начало Установка адреса ППЗУ = О, установка адреса ОЗУ = О • Чтение данных ППЗУ 2 Зап 11 сь д;JIII-IЫX 11з ППЗУ в ОЗУ 3 Рис. 9.22. Блок-схема работы систе­ мы при реализации функции копиро­ вания. Нет Да Увелич ение на I адреса ППЗУ II ОЗУ Пер еход в rлав11ую у.лр авляющую npo- 6 rpaмr-.-1y 1 0000 2 0000 З О.ООО 4 0000 5 0000 6 0000 7 0000 8 0000 9 ООО(); 10 ооос 11 0000 12 0000 1З 0000 14 0000 АУ 15 0001 30 16 0002 D3 32 17 0004 AF 18 0005 D3 35 19ООО7110000 20оооА21оо14 **~******************************************************* * * * НА РИС.9.2J ДОКАЗАНА ПРОГРАММА СОРУ 1 ВЛОК-СХЕМА * КОТОРОЙ ИЗОБРАЖЕНА НА РИС,9.22 * * ПРОГРАЮ{ИСТ ДЖИМ НОФФРОН . _ * *********************************************************** * ORG ОООН *. .* РЕЖИМ ЧТЕНИЯ ИНФОРМАЦИИ ИЗ ПРОГ • ПЗУ :* • СОРУ XRA А INR А' ОUТ J2H XRA А ОUТ 35Н LXI D10000 АККУМУЛЯТОР= 1 CS=o.oV,PGM=o .ov • АДРЕС ПРОГ , ПЗУ,=О УСТАНОВИТЬ АДРЕС ОЗУ 21 OOOD 7В • СОРУ! LXI Н 1 140Qtl :МОV А,Е 22 ОООЕ D3 3) •2J00107А 24 0011 DJ 34 25 0013 DB J1 26 0015 77 27 0016 3Е 1J 28 0018 ВА 290019С22200 JO 0010 JE FF J1 001F ВВ J2001FСА2700 JJ 0022 23 - CNEX 34002)1i- J50024CJOD00 Jб 0027 * ОUТ JJH АДРЕС АО-А7 АДРЕС АВ-А9 ЧИТАТЬ ИНФОРМАЦИЮ из ПР0Г , пз:r ВЫВЕСТИ ИНФ Оt'М!.::.ЩЮ В ЛЗУ MOV A1D оuт нн IN J1H :МОV M jA МVI A,1JH СМР D ПРОВЕРКА НА ПОСЛЕДНИЙ АДРЕС JNZ CNEX ЕСЛИ АДРЕС НЕ ПОСЛЕ;.; iИЙ, ТО КА CNEJt МVI A10FFН СМР Е JZ STARТ INX Н INX D JКР СОРУ 1 МЛАДШИЙ вАйт ПОСЛЕ.Щ!Еl J АДРЕСА ЕСЛИ АДР:§С ПОСЛЕДНИЙ I ТО КОНЕЦ СЛЕДУЮЩИИ АДРЕС ОЗУ СЛЕДУЮЩИЙ АДРЕС ПЗУ ПРИНЯТЬ СЛЕДУЮЩИЕ ДАННЫЕ J7 0027 * ТЕПЕРЬ ВВЕДЕМ ФИКТИВНУЮ ПЕРЕМЕННУЮ J8 0027 1 J9002700 40 0028 О ERRORS * START NOP END ПРЕДЛОЖЕНИЕ END -ДCCEI.IBJIEFA 4 SYМВOLS Рис. 9.23. Реализация .блок-схемы рис. 9.20 в кодах символического языка микропроцессора 8085.
1 0000 2 0000 ) 0000 4 0000 5 0000 ti 000() 7 0000 8 0000 9 0000 10 0000 11 0000 12 0000 З\ _FF 1J ******** ** ********* ******* **** ********** * ** ***** **** ***·••· * * 1ПРАВJ!ЕНИЕ ПРОГРАММИРОВАНИiМ ПРОГ, ПЗУ * ******* ПРОГРАММИСТ ДIИМ КОФФРОН *********************• 4 4 ORG 00 УСТАНr")ВИТЬ НАЧАJIЫШЙ АДРЕС 4 * ЗАДАТЬ НАЧАЛЪНЪDi1 ЗНАЧЕНИЯ ДЛЯ BCIJ)X !ЕРЕIЕННЫХ * НАЧ, ЗНАЧЕНИЕ УКАЗАТЕЛЯ С'JЕКА 1J ОООJ AF ВEGIN LXI SP 1 1JFFH XRA А НАЧ, ЗНАЧ!i:НИЯ ФЛ.UКОВ,ОВНУЛИТЬ АКК1L РАЗРЕШИТЬ ПРЕРЫВАНИЯ 14 0004 FB 15 ООО5DJ FO 16 0007 DJ F1 170009DJF2• 18 ОООВJ200 10 19 ОООЕ J201 10 Z) 001132О210 21 0014J2OJ10 22 0017 JC 2J 0018 )204 10 24 0018 25 001В 26 001В 27 001В 28 001В 29 001В JO 001В З1 0018 J2 001В JJ 0018 Н 001В • J5 001В J6 001В J7 001В J8 001В )9 001В 41) 0018 41 001В 42 001ВCD6400 О 001Е Н 001ЕJAО210 45 0021. FE 16, 46 002J СА 2С00 47 0026 DA2С00 48 0029 CJOJOO * • EI оuт оuт оuт STA STA STA STA INR STA ОМН OF\H OF2H КТIМЕ CFLAG KWGHT КООМР А КROW НОЛЬ НА ДИСПЛЕЙ ВЫДАТЬ НА ДИСПЛЕЙ 000000 КТIМЕ=О CFLAG=O КWGHT=O КСОМР=О АККУМУЛЯТОР=1 KROW~OOOOO 1 * УСТАН'>ВИТЬ АДРЕСА ПЕРЕIIЕННЫХ • КТIМЕ EQU 1000 Н CFLAG EQU KTIIIE+1 КWGHT EQU CFLAG+1 КС'>МР EQU KWGHT+1 KROW EQU KC'JMP+1 Nlr>W EQU J<ROW+1 С1'Т1 E.QIJ NIOt+1 AIN1 EQU CNT1 +1 AIN2 EQU AIN1 +1 AINJ EQU AIN2+1 AIN4 EQU AINJ+t * * НАЧАЛО ОСЮВН'JЙ ПРОГ, ОБРАБОТКИ ВВОДА КОМАНД * * CALL КDЕТ LDA KWGHT CPI 16Н JZ ВEGN1 JC ВEGN1 - JMP ВEGIN ЖДАТЬ НАЖАТИЯ. КЛАВИШИ ВЫЧИСЛИТЬ ЗНАЧЬ:НИЕ КЛАВИШИ КЛАВИШ& ВIЭQДА Kl)lfAHДЫ??? ЕСЛИ ПЕРЕХО.ЦЬl. CPAIIOTAJIИ ;ТО КОМ, ПРАВ~ . ИГНОРИЮВАТЬ ВВОД 49 002С * ~ 002С * ВЪJЧИС.ЛИТЬ АДРЕС ПЕРЕХОДА 51 002С * РИС, 9,1J 52 оо2d * 5J 002С ЗАО2 IQ ВEGN1 54 002F Dti 10 55 00J1 47 56 00)2 87 57 00ЭJ Ю 58 00J4 59 00)4-01 00 00 * LDA SUI )f)V ADD ADD LXI KWGH'l ' 16 Jl,A А в в,оо АККУIUЛЯТОР=КWGНТ-16 АККУIIУЛЯТОР*2 АККУ.IIУЛЯТ)Р*J Рис. 9.24. Попиая программа для микропроцессора 8085, реализующая все операции сие-темы.
"1) оо37 н· 61 0038 21 )))00 - 62 003809 6) OOJC Е~ 64- OOJD * !8.JV С ,А LXI H,TABLE •DADВ I'CHL ВЪIЧИСЛ&ННОЕ CliEI!EJiИI:: В РЬ;ГИСТР С ЗАГР~ИТЬ ВАЗ')ВЫЙ АдРЕС ТАВJIИЦЫ ПРИБАВИТЬ Cl>El!Ei-lИE к ВАЗ')В) 11У АДРЕСУ ИДТI'!. К ВЫЧИСЛС:НН')МУ АДРЕСУ ТАБЛИЦЫ 65 Ol')JD * 66 00JD * !rАБJIИЦА ДЛЯ АДРЕС')Э I1EPEXl")д')B 67 МЗD * ,f i8 ООЭD С) 58 00 ТАБLЕ JMP ,t;9 0040 С) 5800 JMP 1} ()()4) СJ НО1 JМР 71 0046 СЭСН()2 JMP 72 M49C31D02 JMP 73 Of)4C CJАВО2 JМР 74 004F С) F202 JMP 75 0052СЗ5Е00 JMP 76 0()55 С:) 6100 JМР 71 0058 '* ENTER CENTY ADDSE CLRAМ: PR()G Vr-'Y С'1РУ NA\ NA2 78 !)0 58 *** R':НЕЦ ТАВJ!ИЦЫЕNТRУС ******* ·79 М58 * ,ю ()0 58 * КОМАНДЫ ENTR'f ,CENTRY ,NAI 1NAZ -81 ()()58 w- -82 М5В CJО300 ENТE!t ,i\J 005В CJ()3()0 CENTY i\4 1)()5ЕCJОJ00 NA1 -З5 1'061 "С) (1) 00 NA2 86 0064 * 87 О()64 ~***~-,.--. -8 8 ()064 ~~ ~9 0064 * JMP Вt;GIN JMP ВEGIN JMP Вt;GIN' JMP 1БEGIN' 9') 0(')64 * НАЧАЛ() РИС, 4, 20 ·91 .М64 * 92 1')1')6 4 CD 2? О 1 I<))ET 93 0067 CD 1FOt CALL CALL LDA CPI JZ CALL l)Rl')W ФLМ CFLAG l')l")H KDET КЕУW 94 006АЗАО1Ю 95 006D- FE 00 96 006FСАб400 97 on72CDF500 98 r,n75 99_ 1')1) 75 К"Нl,Щ РИС, 4, 20 НАЧАЛО РИС,4, 21 * ВЫВ!':СТИ АКТИВ!iЬIЙ HABl')P ВЫЗВАТЬ ПОДПр:'!'ГРАММУ OOL/l ,, lbl:r')BX")ДИI() ПРОВе:РИТЬ ФЛАJ.')К сrолвЦА: f!Рl')Ве:РИТЬ АКТИВН')СТЬ СТ')Л~ НЕ АКТИВНЫЙ С~ЛВIЩ,П(')В'l")РИТЬ ЦИКЛ АКТИВНЫ;\ СТ')ЛВЕЦ 1 КАКОЙ И!е!~JЮ??? ·1n.o оо 15 1n1• 1'11'175 102 М75 1" J 1")() 75 ~ 4 ()()75 105 0()75 У)б <И 75 *н"н ВЫЛИ НАЖАТЫ RЛАВИIDИ 1')7 01")75 JAOO 10 11') 8 1)0 7В 1')9 ()078 11'1 0() 78 ·11 1 01)78 112 М78 FE ◊О 11'3 ()1)7А СА !,IF 0() ·1 Ц 007D 115 (Ю 7D 116 006D 117 00 7D 118 0')7D 119 007D )АО2 10 * **НП(ШАГ 1) * LDA кт:~;ш CPI МН JZ· КСIЛ1 Н* НЕ П~i:РВЫЙ: РАЗ * '"'"***С!Ш.r 1> * LDA KWGHT ЛЕРi:ЗАГРУЗИ1~ КТIМЕ ИЗ ПАМН'rИ KTIМE=I)?? ДА,Эр flaPBЫ:i РАЗ ***** КАКАЯ ЦИФРА 6ЬIЛА ЯАВРАНА??? /
11 12> оою 41.1' JIOV СООА РЕГИСТР C=KWGHT 121 0081 JAОJ tO LDAк~ РЕГИСТР А=КСОМР 122 0084 89 СМР с KOOМP=KWGHT?? 12J 0085 СА 81.1' 00 JZ KCI/)2 ДА,ОНИ РАВНЬП!!!!! 124 0088 * 125 0088 ******(ШАГ 8) 126 00 88 * 127 0086 AF XRA А ОНИ НЕ РАВНЫ 128 0069 J2 00 10 STA КТIМЕ ПЕРЕЗАПИСАТЬ КТIМЕ 129 008С CJ АА 00 JШ' КСLОЭ ИДТИ НА IЕРЕЗАГРУЗКУ АКТИВ. НАБОР J1) 008F * 131 008F ***"'**(ШАГ 9) 1)2 О()6F * 1JJ 006F 3А 00 10 KCID2 LDA КТIМ& ВЫЗВАТЬ КТIМЕ ИЗ ПАМЯТИ 134 0092 3С INR А КТПШ=КТIМЕ+1 1)5 0093 32 00 10 STA КТIМЕ KTI18=KTIМE+t 1 )б 0096 * 1 )7 0096 *****t(ШАГ 10) 1)8 0096 * 1)9 ()096 FE 32 CPI 7) KTIIIE=,:)?? 140 0096С2ААОО JNZ КСIЛ) .EПJj: НЕ 71 Н1 0098CD8200 CALL. КОРН ПРОВЕРИТЬ Г'>'l">ВНОСТЬ ПУЛЬТА. Н2 О09Е С9 RET К'ЧIЕЦ зrой mдnРОГРАОЬI 143 009F * 144 009F ***°***(ШАГ 3) 145 0091!' * 146 009F JA 02 10 KCW1 LDA KWGHT Н7 ООА2 J20) ю STA KCOIIP КООМР=КWGНТ 146 ООА5 * 149 ООА5 ******(ШАГ 4) ,,, ООА5 * 1'1 оом :Е ot MVI А,01- 152 О0А7 'Э2 00 10 STA КТПIЕ УСТА!ЮВИТЬ KTIМE=t 153 ООАА * - 154 ООАА ******(ШАГ 5) 155 ООАА * 156 OOAJ. 'Ео1 KCLOJ МVI А,01 157 ·ООАС 32 04 10 STA KRQW УСТАНОВИТЬ АКТИВНЫЙ НАВ'">Р=ООООООО 1 158 OOAF * 159 OOAF ***"**(ШАГ 6) 160 ООА!.1' * (- 161 Q()AF С3 64 00 J:MP KDET Идт'Л К НАЧАЛУ ПРОГРАММЫ \ 16 2 0082 * 16 J 0082 * 164 0082 ******************~************************************* 165 0082 * 166 0082 ***""" JIАЧ.МО ПОДПРОГРАIОIЫ ***************** 16 7 0082 * 168 00В2 ******************************************************** 169 0082 * 11) 00В2 * 171 0082 " рис.,. 22 172 0082 * !1РОГРА141111 ПОДГО'ЮВКИ ПУЛЬТА 17J 00В2 * 174 00В2 **********•*••·····••***************~······•·У********** 175 ()082 * 176 0082 **""""(ШАГ 1 ) 177 0082 * 178 00В2 :ЕО1 I{')PN MVI А 1() 1 179 0084 32О4 10 STA КROW КROW~0000001
180 ООВ7 )D 181 00В& )2 05 10 DCR А. STA NROW 182 оовв * 183 ООВВ ******(ШАГ 2) 184 оовв * 185 оовв )2 00 10 186 ООВЕ 187 ООВЕ 188 ООВЕ STA КТIМЫ * ******(ШАГ З) * 189 ООВЕ CD 2F О 1 КОРN1 cдLL onow 190 ООС1 * 191 ООС1 192 ООС1 ·* ***** (ШАГ 4) * 19) 0001 OD 194 ООС4 1F01 CALL CvLМ 195 ООС4 196 ООС4 . 197 ООС4 3А 01 198 ООС7 FE 00 10' 199 0009 С2 BZ 00 * ******(ШАГ 5) * LDA CFLAG CPI 00 JNZ K0PN 200 оосс •t 201 ООСС '******(ШАГ 9) 202 оосс * 20) ООСС JA 05 10' 204 oocF эс 205 00DO )2 05 10 206 OODJ 207 OOD) 208 OOD) 209 00DJ FE 05 210 OOD5 С2 ВЕ 00 211 00D8 212 OOD8 21 J 00D8 214 OOD8 )А 00 10 215 00DB )С 216 0JDC J2 00 1О 217 00DF 47 218 ООЕО 219 ООЕО 220 ООЕО 221 ООЕО AF 222 ООЕ1 )2 05 10 22) ООЕ4 224 ООЕ4 225 ООЕ4 226 ООЕ4 JE )2 227 ООЕб В8 228. ОоЕ7 С2 ВЕ 00 229 ООЕА 230 ООЕА * LDA NHOW INR А 'SТА NRO\V CPI 05 JNZ K0PN1 ****** (ШАГ 6) * LDA КТIМЕ INR А STA КТIМЕ * :МОV В1А ******(ШАГ 6А) * * ХНА А STA NRoW ******(ШАГ 7) * :МVI А15О С!11Р в JNZ КО!'N1 * ******(ШАГ 8) * NRoW=oooooooo КТ:tМЕ=О БЫВЕСТИ НАБОР ВЫВЕСТИ. ДАННЫЕ СТОЛБЦА ВВЕСТИ CFLAG Cli'LAG=O?? ПУЛЬТ ЕЩЕ НЕ СВОБОДЕН БВЕСТИ дктивны~1 НАБОР ЗАПИСА:П, АКТИJЭНЬUi 11AOOI' СКАНИРОВАНИЕ НЕ ЗАКОНЧЕНО РЕГИСТР B=KTI!i!E .. ЗНАЧЕЮ{Е НАБОРА=О КТIМЕ=50??? 11ЕТ 1 СКАНИРОВАНИf! ЕЩЕ РАЗ / ---231 ООЕА 2)2 ооЕА 09 RET выход. из ПоДПРОГРАWS nодrо·i'овки 233 ООЕВ 234 ОоЕВ 2)5 ООЕВ 2)6 ООЕВ 237 ООЕВ 2)8 ООЕВ · 2)9 ОоЕВ * . ********-*****************************************""*****Н ** ПОДПРОГР А1О1А КОUТ * * ЭТА ПОДПРОI'i'АМIIА БЪIВЕДЕ'l' ДАНWЕ С ПУЛЬТА НА ДИСПЛЕЙ.
241'1 ООЕВ 241 ООЕВ 242 ООЕВ " · ·····••************••······························•·* ·• * 243 ООЕВ 11.('!2 I0 КОUТ ,244 ООЕЕ D1 FO LDA .оuт OUT оuт RET KWGHT OFOH OFIH OF2H ДАННЫЕ С_ЛУЛЬТА В АККУМУЛЯТО~ 245 00FO DЭ FJ 246 ')О !1'2 DJ F2 247 00F4 09 248 OOF5 :249 OOF5 .250 00 F5 251 00 е'5 .252 00 F5 25) 00 F5 254 OOF5 .255 0015 .256 00F5 .257 00 F5 258 OOF5 259 00 F5 260 OOF5 261 OOF5 А1!' 262 OOF6 JA01 10 26.J 00 F9 264 OOF9 265 00F9 266 ооF9Об00 267 00РВ 268 OOFB, 269 OOFB 270 00FB Н' 271 00FC FE 00 272 00 FE 273 OOFE 274 00 FE 275 OHFE САО501 276 О101 277 О101 278 О101 279 010104 280 ОЮ2CJFB00 261 О1()5 282 0105 28) О105 284 О1()5 А~ 285 0106 :)АО4 Ю 286 О 109 287 0109 288 ОЮ9 289 О109ОЕ-00 29?.Оюв · • 291 010В 292 ()t,B 29з оr,в 11i' 294 О!ОСFE00 295 О IOE 296 Оюz 297 О IOi 298 ~10Е СА1SО1 29!} {) 111 " * fl:)ДПР')ГРАМ!IЛ КЕУW " * :ЭТА mдnl")ГPAМIIA УСТАН')ВИТ ЗНАЧЕНИЕ HAJiA'l'1Й КJ\АВИШИ * ·· ·· ·· ·· ~ ·· ·· ·· ·· ·•***********•*•*••···••***•************ " ****" БЛОК-СХЕМА ~Т')Й ПРОГРАIIIМЬI НА РИС,4,16 " *,..*"*(ШАГ 1) * КЕУW ХНА А LDA C?LAG * * Н***(ШАГ 2) * M'lI В,00 * ""*":"" (ШАГ 3) * КЕУW1 RAR CPI 00 " **"*"*(ШАГ 4} " JZ КЕУW2 * *•!'•*Ч!ПАГ- 5) * !NH В JМР КEY'ifl " "'"*•**(ШАГ 7) * КЕУW2 XRA А LDA KROW " **"*"*(ШАГ В) " MVI с,оо * "*"*""(ШАГ 9). " КEYWJ RAH CPI 00 " *""*,..(ШАГ 10) * JZ КЕУ\У4 * О ВНУЛИТЬ ФЛАЖКИ И АККУМУЛЯ'1'1Р ПРИНЯТЬ ФЛАЖОК СТОЛВЩ ИЗ ПАМЯТИ О ВНУЛИТЬ СЧЕТЧИК СДВИНУТЬ ВПРА~ НА 1 ВИТ 10 В D7 РSГИСТР В=О,1 ,2,J ,4 (ШАГ 6) УВЕЛИЧИ~Ь ЗНАЧ,СЧБТ. и идти НА mвтор О ВНУЛИТЬ ФЛАЖКИ ВЬIЭВАТЬ АКТИВНЬIА НАВСР О ВНУЛИТЬ СЧЕТЧИК Т2 СДВИГ ВПРАОО НА 1 ВИТ ,О В 1'7 ЕСЛИ НОЛЬ,ТО ВЬ!Пr')J!Ю:НО
:юо :ю1 1)2 'J) J 1)4 :D' 1'6 D7 :ю8 J)9 J11) )11 )12 J1J )14 315 :316 317 )18 119 )2) ~21 322 нз 324 325 З2б 327 J28 329 JJ) JJI 3.12 JJJ 3J4 ' ))5 зЗб JJ7 ЗJВ 339 )40 З41 342 34J 344 145 З46 34'7 34В 349 ,,, 351 J52 J5J 354 3'5 З5б З57 358 З59 О 111 0111 О111ос О112CJ08о1 ()115 О 11' О 11, О 115 AF. 0116 78 О117 17 О118 17 0119 Ю ОIIA81 () 118 О 118 011В о~10з202ю О 11Е 011Е О11Е 011Е С9 1'111F О 11F' О11F О 11F О 11F О 11F О11F' 011!" 011F' 011F О11F' О 11F О 11F О 11F О11F' О 11F о11!!' А!? О1а1 J2О1Ю О 12) О 12) О 123 О12JDBFE О 125 О 125 О 12, о125 Fб Ю О 127 О 127 О 127 () 127 'FE FF О129св О 12А О 12А О 1lA О12А2F О 128 ,о 128 О 128 О128J2О1Ю *""*"*(ШАГ 14) * INR С JШ' КEYWJ * **""** (ШАГ 11) * КЕУW4 XRA А lf')V А,8 RAL * RAL ADD В ADD С ***"** (ШАГ 1 2) * STA КWGHT * ******(ШАГ 1,J) 'lf ,, RET * * * ПОДПРОГРАММА. СОLМ * У.Еi;JIИЧИТЬ ЗНАЧЕНИЕ СЧЕТЧИКА ИДТИ НА IЮ8'ЮР О ВНУJIИТЬ ФЛАЖКИ АККУМУJIЯЮР=СЧЕТЧИК СТОJIВЦ')8(Т1) В*2 В*4 8*5 (8*5)+С=О - 24 8ЬlАТИ ИЗ ЭТОЙ rr>дПРОГРАММЬI * ЭТА ПОДПРОГРАММА О ПРЕЩ:ЛИТ АКТИВНЫЙ СТ'1ЛВЕЦ, * ЕСЛИ ОН СУПЕСТВУЕТ. * ******************************************************• * * ЭТА ПОДПРОГРАММА-РИС,4.15 * ********************************************"********** * *" ****(ШАГ. 1) * COLM XRA А STA CFLAG * *"****(ШАГ 2) 1* .:J;N OFEH * ******(ШАГ J) * ORI OE,:'JH ****Н• (ШАГ 4) * CPI OF~H RZ * ******(ШАГ 5) * СМА * ****** (ШАГ 6) * STA CFLAG УСТАНОВИТЬ ФJIАЖОК СТОJIВЩ.=О ВХОДНШ: ДАННШ: ИЗ Пt')рТА FE УСТАНОВИТЬ БИТЪi D5 ,Dб ,D7= 1 ШАГ(4А) ИНiЕРТИРОВАТЬ ДАННЫS УСТАН()ВИТЬ ФЛАЖОК СТОJIВЩ
)@1 Эб1 Зб2 ЭбЗ 364 Зб, Збб Зб7 Зб8 '369 З1' ' 371 ;72 З7J З74 J75 З7б '377 J78 J79 зю З81 )82 )83 З84 385 ЗВб 387 З88 З89 J<л З91 392 З9J 394 J95 J96 З97 398 399 4"11') 41) 1 41') 2 40З 41') 4 41')5 4/')6 4') 7 4'1 В 4">9 410 411 412 41З 41( 415 416 417 418 419 О1ZE С9 О 12F О 12F 012F 012F О 12F ') 12F О 12F О 12F О 12F О 12F О 12F О 12" () 12F О 12F О 12F О 12F О 12F ВЫЙТИ ИЗ Э'l")Й mдПРОr?АМ!Ш " ••••••••••~••••••r************************************** * * ПОДПРОГРАММА ВЫООДА АКТИВНОГО НАБОРА НА ПУЛЬТ * * ИМЯ Э1'1Й ПОДПРОГРАММЫ: - OROW * " ЭТО Pi1C,4 ,12 * *******************************************•************ *******·~**************************••··········********* * " РИС,4.12 ПОДПРОГ, К РИС,4, 10 В мн.нт1и1~ Ю En * ······················••*************************4****** * * 012"' зАо4 ю o~ow LDA KROW П'1ВТ"РНЫЙ B:.IЗl)B АКТИВНГ)Гr'1 НАБОРА О 1З2 * 0132 * ШАГ2 О 1З2 О1З2-.-Е ю О134С2:,СО1 01 З7 О 1З7 () 1J7 0137 3Е 01 О119СЗ ЗDО1 01 JC О 1JC О 1зс ()1зс()7 () 1JD О 1ЗD О 11D * * CPI JNZ " ШАГ 2А * * MVI .JMP *ШАГ2В * r'1R"IW1 * *ШАГЗ * 1f1H OROW1 А,') 1Н STJ СКА..ЧИР"ВАНИJ:; HABclPA 3АК"НЧJ,Н'1"'?? .,;ели НЕТ,'!") ШАГ 2В ПЕРЕ!Ь~СТИТЬ АКТИВНЫЙ НАБОР ИДТИ НА ШАГ J СДВИНУТЬ ДАННJ:JЪ: ВЛЕОО, О !3 !У) 01ЗD 1204 Ю SТЗ С"IХРАНИТЬ АКТИВНЫ~ НАВ')Р ,., 140 " 0140 n140 О140 2? О 141 0141 О 141 ()141 DJ FE о14З ')14), "10 r')14J С9 0144 '1144 ' )144 ')144 0144 1'1144 n1н 11144 1')!44 О 144 О 144 * ШАГ4 * СМА ИН$ РТИР'1ВА ТЬ СЮМ НАООРА * * ШАГ5 * ' 1UT ВЫВЕСТИ АКТИВНЫЙ НАБОР В ПОРТ F& " * ШАГ 6 * * * * " * ПОДПРОГРАММА ADDSE ,РИС, 9, 1 5 ЭТА ПРСГРА!\VАА 13ВЕ дИ АДРt:С ЛЗ TPt:X ЦИt>Р С ПУЛЬТА, ВЫВЕ,!ЕТ АДР.i:С НА ДИС~~ И 3АП'1МНИТ ДАННЬ!li: В ПРОГРАМI.Е ПЗУ ПО АДРЕСУ, УКАЗАННГJМУ НА ДИСПЛЕЕ
-420 01Н * -421 01Н ЗЕ AJ ADDSE MVI А ,OAJH --422 'J146DJF2 OUT 'l)F2H -4 23 11148 А"' ПАА ! -4 24 OH9DJF1 оuт 0f1H -425 1)ЦВDJFO оuт OFOH ВЫВЕСТИ НА .n;tC!l/lEЙ А JO(IOO --4 26 014D * -427 ОЦD * 426 О1НCD6.$00 CALL KDET ПРИНЯТЬ IEPBЛJ ЦИФРУ С ПУЛЬТА -429 ('1 1'Ю 'JA'12 1'1 LDA КWGHT АККУМУЛЯТОР:-:m:роой ЦИФЯ: • -4)') ()15J.D, FO ' 1UT '>F')H выаr;сти nEPBYJJ ЦИФРУ -4-31 О155J2О7 10 STA AIN1 ЗАПОМНИТЬ 'IЕРВУЮ -ЦИФРУ -432 ()156 * ,43) О 156 " -434 0158 CD6400 CALL КDЕТ ПРИНЯТЬ BТ('JPYI) 1.\ИФРУ С ПУЛЬТА. -435 О15ВЗАО210 LDA KWGHT АККУМУ.ЛЯТОР=Вrомй .ЦИФРЕ - 436 015Е 3206 Ю STA AIN;г ЗАПОМНИТЬ ВТОРУЮ ЦИФРУ "37 0161 3А')7 10 LDA AIN1 ПРИНЯТЬ IEPВYD ЦИФРУ ИЗ ПАМЯТИ "438 О164 17 RAL --4 39 0165 17 RAL 440 0166 17 R.l\L -441 0167 17 HAL СДВИНУТЬ ВIIEB'1 НА 4 ВИТА - 44 2 0166Е6!Ю AIN '1F'1H МАСКИР:,ВАТЬ МЛАДПIИЕ" 4, БИТА --443 О16А J2ОА 10 STA AIN4 С'>ХРАНИТЬ ПРОNo::М.~Т. РSЗ, -444 0I6D JA 08 1() LDA AIN2 АККУМУЛЯ'l"'!Р 0 МЛАД111ИЕ 4 ВИТА В'ЮР .ЦИФ, -445 0170 21 ОА ю LXI H,AIN4 УСТАН11ВИТЬ В Н ,L АДРЕС AIN4 - 446 О173В6 ORA м ЮГ. "ИЛИ"АККУМ. И ПЕРВОЙ l\ИФ,В AINf .447 О174.DJ FO оuт о~н ЗАПИСАТЬ НА .n;tC!l/lEЙ ХХХХ-- -4 48 0176 11 --449 О 176 * ..~ О176CD6400 CALL KDET ПРИНЯТЬ ТРВ Тьt ЦИФРУ -451 О179JAО2 10 LDA KWGHT АККУМУЛЯ'IОР=тmтья ЦИФРА -452 ()17СJ2о9 У) STA AINJ ЗА!ЮМНИТЬ РЕЗУЛЬТАТ ..5;"1Н'ЗАr,В10 LDA AIN2 ВЫЗВАТЬ ВТ:-,РУI) ЦИФРУ --454 .о162 17 '1AL -455 О163 17 RAL --456 О 164 17 RAL --457 О 185 17 RAL сдвиг ЦИФРЫ ВЛЕ8" НА " ВЩ'_А -456 О1В6i6 FO AIN OFOH В!iДЕЛИТЬ 4 МЛАДШИХ ВИТА -459 О166 2109 10 LXI Н ,AINJ лоr."или"ВТОРОй и ТРЕТЫR ЦИФР - 460 016В В6 ORA м -,4,;1 О16СDJF1 оuт OF1H ВЬIВ~-:СТИ ЦИФРУ НА JJ;ICПJl&Й ... - 462 ()18Е J20B 10 STA AIN2 В'l")РАЯ И ТРЕТЬЯ· ЦИФРЫ В AINZ -46Э О191 " -464 О 191 * --46 5 0191 AF ВАА -466- О192 DJ FO ~uт М'1Н ДИСПJIЕ ~=ХХ•-00 -467 О194 " -466 О194 * -469 О194 JAО7 10 LDA AIN! ,41) () 197 DJ F2 (')UT 'Н'2Н .п;~сrш й :() ххюо ·, г ДЕ ХХХ-АДР.ЕС -471 О199 * -472 0199 * "7J () 199 * 'IЕП&РЬ ЧИТАЕМ ДАННЫЕ ИЗ ПАЫЯТИ -4 74 0199 * НИIНЯЯ ГРАНИЦА=АIN2,&:РХНЯЯ ГРАНИЦА=АIN\ •И5 О 199 * -476 0199 21 00 14 1-XI Н, I.-ООН Н ,L=НАЧАJIЬНЫЙ- АДРЕС "17 О1QCJAО6ю LDA AIN2 "78 О 19F 5"' 'IIOV .Е ,А :4 79 01.Ю JA07 10 LDA AIN1
•во 01AJ )7 l,!J!/ D,A D,В=АЩЕС ()ЗУ 481 О1А4 D5 PUSH D ЗАПИСАТЬ 482 О1А5 19 DAD D Н ,L=НАЧАJIЬНЬIЙ АДРЕС •вз о IA6 * •В4 О 1А6 • 4В5 ,., 1А6 1Е NRED !IDV А,М ЗАГРУЗ'1ТЬ В АККУМ,. ДАННЫЕ ИЗ ОЗУ 486 OIA7 DJ FO оuт OFOH УСТАW)ВИТЬ ДИСП, =О XXXDD ,Г ,$ DD-ДАНН. 407 r') 1А9 • •в0 OIA9 • •в9 l)IA9 * МЫ. 'Тr')ЛЬJ<r') ЧТО О Кl)НЧИ.ЛИ ШАГ ·4 БЛОК-СХЕМЫ • 9') ()IA9 * Н1 1'\ 1А9 * 492 ОtA9Е5 - PUSH н ЗАП(')МНИТЬ АДРЕС 49) ()1АА CD 64 00 CALL KDET ЖДАТЬ СЛЕДУЮПЕМ НАЖАТИЯ КЛАВИШИ 49• ()IADJA(12Ю LDA KWGHT АККУМУЛЯТОР=ЗНАЧЕНИЕ КЛАВИШИ •95 rJ1В" FE 11 CPI 17 НАЖАТА ХJ!АВИША CLEAR?? •9б О1В2СА FDО1 JZ ADEX ДА ,ИД~ •НА BJ:lXr')Д ИЗ Э'Г')Й ПР')ГРА/~IМЬl 497- О1В5 ?ЕFE10 CPI 16 НАЖАТА КЛАВИША ENТER?? 498 OIB7 СА "'fi' 01 JZ STPB ДА ,идrи НА ШАГ 8 БЛl)К-СХЕМЫ •99 О 1ВА * 500 О 1i3A * 501 01ВА * НЕОБХОДИМ:) ПРИНЯТЬ ДВЕ Н'1ВШ: ЦИФРЫ. И ЗАПОМНИТЬ ИХ В О ЗУ '12 •О1ВА * 5') з 1)1ВА CD 64 00 TNIR CALL KDET ПР'АНЯТЬ lf.)ВYI) ЦИIРУ ,:\ 4 n1BO JArJ2 n LDA КWGHT АККУМУЛЯТОР=ЗНАЧЕНИЕ КЛАВИШИ '15 nICDЗ2ОА 1n STA AIN• ПМNoЖУТ')ЧНЫЕ ЗАПОМИНАНИЯ 'Лб (') 1CJ DJ F') оuт fJMH ЗАПИСЬ НА ДИСПЛЕЙ ,., 7 r')1С5CD64or, CALL КDЕТ ПРИНЯТЬ СЛЕДУЮ!:!УЮ ЦИФРУ '181'\1СВЗАО21n t·DA KWGHT ~9 n!СВ * 510 О!СВ З2n910 STA AINJ BPENoHHfJ Сl)ХРАНИТЬ В ПАМЯТИ 511 О1СЕ ЗА1)А !() LDA AIN4 ВЫ.ЗВАТЬ !ЕРВУЮ ЦИФРУ 512 О1D1 17 RAL 513 ОID217 RAL 514 (') 1DЗ 17 ~АЬ 515 1'\ 1D4 17 RAL СДВИНУТЬ ВЛЕВ') НА • ВИТА 516О1D521О9ю LXI H,AINJ 517 О1DB86 ORA м ЛОГ, "ИЛИ"Гl,;РВfJit И BТOJ'()lt ЦИФР 518 О1D9 З2О9 1О STA AINJ СОХРАНИТЬ ДАННЫЕ В ПАМЯТИ - 519 О1DC DЗ FO O\JT OFOH ВЫВЕСТИ НА ДИСrt}IЕЙ 520 О 1DE * 521 О 1DE * 5,2 О 1DE * ПР')ВЕРИ ТЬ ДАННЫЕ 52J О 1DE * 52• о1DECD6400 CALL KDET ПРИНЯТЬ КЛАВИШУ 525 t'1Е1JAО2n LDA KWGHT АККУМУЛЯМР=ЗНАЧZНИЕ КЛАВИШИ 526 () 1Е4 FE \r) •CPI lб КЛАВИША ENТER??? 527 r11E6 С2ВАО1 JNZ TNIB Нli:T ,ПОВТ')РНО ЗАПРОСИТЬ Н'1ВЫЕ ДАННЫЕ 528 О IE9 * 529 (') 1Е9 - * 5J() () 1Е9 * ЗАПИСАТЬ дАННЫЕ В ПАМЯТЬ 5J1 OIE9 512 О1Е9ЗАО9IП LDA AINЗ ВЬ!ЭВАТЬ ДАННШ 5ЗЗ 1) IEC EI РОР н ВОССТА!!ОВИ1Ь АДРЕС В ПАМЯТИ 534 () IED 77 NIJV М,А ДАННЫЕ В ПАМЯТЬ 535 fJ IEE Е5 PUSH н 5)6 () 1FF * 5З7 n 1EF * 536 ()1EF EI SТРВ РОР н 539 О1F0 2J INX н УЕЕЛИЧИТЬ АДРЕС НА 1 /
540 541 542 54J 544 545 546 547 548 549 5'1 551 552 55) 554 555 556 557 558 559 56'1 561 562 56З 564 565 566 567 568 569 570 571 572 57) 574 575 576 577 578 579 58') 581 582 58) 584 585 586 567 588 589 590 591 ' 592 59) 594 595 596 597 598 599 ОН'1 D1 0,1 Р2 1,J О 1F'J D5 0.1 F'4 7В 01F5 DJ F1 О1Р7 7А О1F8 DJ F2 О1FACJА6О1 О 1FD О 1F'D О 1"'D Е1 О1FED1 О 1fi'F CJ ()З Оа,2 о 202 Оа12 О 202 О 202 О 202 () 202 О 202 О 2'">2 О 2'12 О2'J2JE FF о204 21rю 14 о207 77 О208 F5 0209 JE 17 О20ВВС 020ССА14Ог 020F F1 О2102З 0211 CJ()702 О214 F1 О2158D 0216CAOJ()() о219 ~з О21АСЗ()1О2 О 21D О 21D О 21D О 21D О21D О 21D 021D О 21!) О21D О 21D О 21D О 21D О 21D О 21D * ADEX * * * РОР INX PUSH 1/t)'l оuт М()V оuт JMP D D D А,Е OF1H A,D OF2H NRE.D ЮРН ЮРD JMP ВlsGIN В')ССТАН')ВИТЬ АДРЕС О ЗУ СОХРАНИТЬ ЗНАЧ!i:НИВ ВЫ.ВО: СТИ АДРЕС НА Щ!СПJIЕЙ выа.сти АДРЕС НА ·щicrun,:й :r; 111> РАЗ НАЧАТЬ О !ЕР.(,ЦИЮ ИДТИ НА НАЧАЛО УПRАВЛЯК:ПЕЙ ПРОrРАМ. * ******************************************************** * * mдпРОrРАММА чистки () ЗУ •._ РИС.9.17 ~--···················································•* CLRAM CL1 LCHK * * * * MVI A,OFi'H txr н,т~nн l{()V • М,А PUSH PSW MVI А, 17Н СМР Н JZ LCHK Р)р PSW INX ,Н JMP CL1 МР PSW СМР L JZ ВEGIN INX Н JMP CL1 АККУ МУЛЯТ()р =F F В H,L НАЧАЛЫ!ЫЙ АДРЕС ОЗУ FF В ПАМЯТЬ СОХРАНИТЬ СО~Р. АККУМУЛЯТ'JРА ПРОВЕРИТЬ СТАРШИЙ БАЙТ=ПРЕ~Л. ЗНАЧ. ДА,ИДТИ НА ПРrJВЬ:РКУ МЛАД!l!ЕМ ВАЙТА ВГJССТАН'1ВИТ Ь АККУМУ ЛЯТ')Р УШЛИЧИТЬ АДР,i;С ОЗУ О БРАВ'JТАТЬ СJJ,;ДУ'l:ПИЙ АДРЕС В')ССТАН'JВИТЬ АККУМУЛЯТ'JР !IРО.&:РИТЬ:МЛАJJI]ИЙ BAЙT=FF КОНЕЦ ЭТ'JЙ ПОДПРrJrРАММЫ. У&ЛИЧИТЬ АДРЕС ОЗУ ' П'1ВТ')РИТЬ :зАН()ВО с ДРУГИМ АДР,i; сr,м ' * mдПРОrРАММА РЕАЛИЗАЦИИ К'JМАНДЫ PROG, * ЭТА ПР()ГРАММА СЛУЖИТ для УПРАВЛЕНИЯ ГЕРЕПРnr. ПЗУ. * ИНФОРМАЦИЯ О ЗУ ХРАНИТСЯ НАЧИНАЯ С ЯЧt:ЙКИ 1401)Н. * АДРЕСА ~PEПP'1rPAMl\l,'\PYEJ',f)M ПЭУ НАЧИНАЮТСЯ с аооо. * * * * * PROG A,nDDH OFOH • 0F1H OF2H' А,00. ВЫВЕСТИ НА )_!ИСПJIЕЙ DDDDDD О 21D 02TD О 21F О 221 О 22) О 225 О 227 О l29 ЗЕ DD DJ FO DJ F1 DJ F2 ЗЕ 00 DJ J2 З206 10 ..) MVI оuт оuт оuт MVI OUT STA J2H CNT1 РАЗРЕШИТЬ Щ:РЕДАЧУ ДАННЫХ В nр(')Г.ПЗУ о ВНУЛИТЬ с~:штчик цикж,в
-бОn 022С JC 601 02?D,D;1'J4 60Z- •022F '· ' P:IOGJ INR А rщт J4H ЦI LXI CS/WE = 12 V')LТS 6'1'J О 22F 1,1' 0"' 00 6')4 .(),,432 <'1 ()" 14 605 '0-ZJ~• * 6С16 1) 2J5 7i. PR1'1G2 Dl)OOO Н Н, 1400 Н ЗАГРУЗИТЬ НАЧ.АДРЕС ПРl'JГ, ПЗУ' ЗАГР~ЗИТЬ НАЧ. АДРЕС ОЗУ ДАННЬ[g ИЗ О ЗУ В АККУ ;1\УЛЯТ()Р ВЫВ!,;СТИ ,ДАННЫЕ В ПР()Г. ПЗУ АО-А7 В АККУМУЛЯТ')Р ,607С2)6DЗУ' :16а0 о 2зе 1в 6')9' ()2)9 DЗ JJ 610 02JB 7А 611 02JC DJ J4 612 02:JE 61) 02Ji 614 ()2Ji 615 О2JiО6оВ 616 '124'1JE()J 617 О242DJ J5 618 ()244О5 619 0245 С2 44 02 62'1 ' J24B JE01 621 024А DJ 35 622 n24С 62) 024С 624 О 24С 625 n24С 7В 626 О24DFB FF 627 О24FС2 58О2 628 02527А 629 О25JFEОJ 6J'1 ()255СА5D()2 6)1 0258 2) 6)2 0259 1J 6JJ О25АСJJ5О2 6J4 025D 6)5 ()25D А,М У\Н АЕ 3jн А')-А7 В ПР'JГ. ПЗУ A,D АВ-А9 В АККУМУЛЯ'Г'1Р J4H АВ-А9 В ПМГ. ПЗУ * * ПРЮ1.:ни-rь ПРОГРАММИРУЮП:ИЙ ИМПУЛЬС PULSE MVI MVI оuт DCR JNZ MVI ' 1UT в,1;в A,n J з,н в PULSE А,() 1 J5H ВКЛЮЧИТЬ CS/WE И ,ПРОГ. ИМПУЛЬС ШИРИНА ИМПУЛЬСА выключить ПPnr. ИМПУЛЬС * П')СJ]r,;ДНИЙ АДРJ,;С ПРr1ГРАММИР()ВАЛСЯ? * P~G1 * М"1V А,Е CPI 'Ji>FH JNZ PIOG1 М'1V А ,D CPI ()J JZ LOPC ПIХ Н INX D JMP PR'1G2 П')СJ!ZДНИ:1 БАЙТ АО-А 7 пnсЛЕ ДНИЙ БАЙТ А8 -А9 !ЮСЛЕДНИЙ АДРЕС(ДА) УВЕЛИЧИТЬ АДРЕСА О ЗУ И ПР')i'. ПЗУ О ВРАБОТАТЬ СЛt:ДУЮП:ИЙ АДРЕС * - Пf)-CШ:.IIIIИЙ: РАЗ о БРАВАТЬIВАЛИСЬ ВС.: 1024 АДРЕСА? * 6)6 () 25D 637 О 25D 6)8 026') 6J9 n261 64'1 О 264 641 О266 642 О 269 64J О 269 JA 06 10 LOPC JC LDA INR STA CPI JNZ ' CNT1 ЗАГРУЗИТЬ сч.,;тчик А 644 О 269 J206 Ю FE СВ С22FО2 645 О269 JlО1 646 026!:!DJJ2 647 О26DJ1) 648 О26Е DJ J5 649 О 27'1 65'1 Он, 651 о 21а 652 О27'J11()000 65J 027J 21 7805 654 О276 655 О276 7В 656 0277 DJ JJ 657 0279 7А 65В П27АDЗ '34 659 ()27С- D8 J1 * CNT1 2'1') PROGJ 200 UИКЛ'1В?? No: 2'1() UИКЛ'JВ, ПОВ'ЮРНЬI~ СТАРТ * ПР'1ГРАММИРОВАНИl ()i<OHЧl!:HO, Тh:ПЕР Ь ПР'16,;РИТЬ * MVI А,') 1 OUT J2H DCR А OUT J5H * ЗАfJРi:ТИТЬ П&РЕДАЧУ ДАННЫХ В ПР.ПЗУ АККУIUЛЯТ:-JР-=О CS/WE = '),О V * ИНИUИАЛИЗИРОВАТЬ А]!РЕС ПРОГ. ПЗУ И ОЗУ * LXI LXI М"1V ' 1UT M')V 'JUT IN D,00 н,цrю А,Е JJH A,D J4H J1H АДРЕС О ЗУ А'1-А7 В АККУМУЛЯТОР АДРЕС В ПРОГ, ПЗУ А8-А9 В АККУМУЛЯТ'1р А8-А9 В ПРПГ, ПЗУ ЧИТАТЬ ДАННШ: ИЗ ПР')Г.ПЗУ В АККУМ,
660 О27Е ВЕ 661 О27FС29JО2 • 662 О282 66J О 282 664 'о 202 665 0282 666 О 282- 667 О2827В 668 028J FE F'F 669 OZ85 С2 8Е 02 670 0288 7А 671 (')289 FEОJ 672 О28В САОJ00 67J О 28.1:; 6Н О28Е 675 О 28Е 676 О28Е 2J 677 О28F 1З 678 О29')СJ760·2 679 О 29J 6во о29J 681 О29J 682 О293 7В 68J 0294DJ?'J б84 0296 7А 685 О297 DJ FI 686 О299DBJ1 687 029BDJF2 688 О29D 689 О 29D 69') О 29D 691 О29DCD6400 692 ·о2А'))АО2Ю 69J 02AJ FE 16 694 ()2115 С2 9DО2 695 02АВ CJ OJ 00 696 О 2АВ 697 О 2АВ 698 О 2АВ 699 О 2АВ 1аа о 2АВ 7'11 О 2АВ 7'12 О 2АВ 7r,3 О 2АВ • 704 О2АВ 7')5 О 2АВ 7')б О 2АВ 707 ('I JAB AF 708 О2АСJC 709 !12ADDJJ2 710 О 2AF' А? 711О2В')DJ35 712 ()2В2DJJJ 713 02В4 DJ З4 714 ()2В6 1100 0() 715 О2В921:JO 14 716 О 2ВС 717 О 2ВС '718 О 2ВС 719 О2ВСDB:Э1 * * * СМР М JNZ PW1GF СРАВНИТЬ ДАННЫЕ В ()ЗУ И ПРОГ,ПЗУ НЕ РАВНЬl,ОШИВКА * АДРЕС П"'CJIE ДНИЙ * IOV А,Е CPI OFFH JNZ PROG5 IOV A,D CPI ОJ JZ ВEGIN - ПОСЛЕДНИЙ A"I -A7? Ш ПОСJu;;@ШЙ ПОСЛЕДНИИ А8-А9 ПОСЛЕДНИЙ,НАЧАТЬ НОВУЮ КОМАНД1 * УШ:Л;1ЧИТЬ АДРЕСА ОЗУ и ПРОr.пзУ * PROG5 INX Н INX D JMP РRОЩ СРАВНJ!:НИ& П') C.IISДYIOU}'IM АДРЕСАМ * RJJl)K () ВРАВl)ТКИ () шивr,к * PRnGF M'JV А,Е OUT OF'JH M'JV A,D OUT Мtн IN J1H OUT OF2H Al)-A7 В АККУМУЛЯТGР А8-А9 В АККУМУЛЯТОР НА ДИСПJIЕ Й ПРИНЯТЬ ДАННЫ.: ИЗ ЛРОГ. ПЗУ НА ДИСПJIЕЙ • * ЗАЦИКЛИТЬ ПРОr.ПОКА НЕ ВУ)tт НАЖАТА КЛАВИША CF * Pci0G6 CALL KDET LDA • KWGHT CPI 16Н JNZ PW1G6 JМР ВEGIN НАЖАТА КЛАВИША CF?? ВьРНУТЬСЯ И ОВРАВОТАТЬ ДРУГУЮ ·КОМАН, * НА РИС, 9, 21 ПОКАЗАНА Пр')rРАММА VFY I БЛОК-СХЕМА * КОТОрОЙ ИЗОВР АЖЕНА НА РИС, 9. 20 . * ********~***************************** ·*****•*********** * : УСТАНОВИТЬ РЕЖИМ ЧТЕНИЯ ИЗ ПРl)Г,ПЗУ * VFY ХАА А. INR А оuт 3 211 XRA А OUT 3511 OUT JJH OUT J4H LXI D,0000 LXI Н, 14001! () Ш:СШ:ЧИТЬ РЕЖИМ ЧТЕНИЯ CS=o .o V,PGM=O.OV АДРiС АО-А7=0 АДРЕС А8-А9 =О УСТАНОВИТЬ АДРЕС ПРОr.пзУ У СТАН'1ВИТ Ь АДРЕС О ЗУ * НАЧАТЬ ЦИКЛ ЧUЮ!Я И ПРОВЕРКИ * Vr'YI IN JIH ЧИТАТЬ ДАННЫЕ ИЗ I1PQГ, ПЗУ
720 О2ВЕ 1m 721 О2вF С2 DC 02 722 О2С2 3Е 1) 72) О2С4 ВА 724 О2С5 С2 DI 02 725 О2С8 )Е FF 726 О2СА ВВ 727 О2СВ С2 D1 02 728 О2СЕ С) О) 00 729 02D1 1З VNEX 730 02D2 7А 731 02D) D) Н 732 02D5 7В 73) 02D6 D) )) 734 02D8 2) 735 02D9 С) ВС 02 736 02DC D3 FO VFALL· 737 02DE 7В 738 02DF D) F1 739 О2Е1 7А 740 О2Е2 D) F2 741 О2Е4 CD 64 00 VOUТ 742 0217 )А 02 10 743 02.ЕА FE 16 744 02.ЕС СА О) ОН 745 02EF С2 Е4 02 746 02F2 * * С1(р )( JNZ VFALL МVI А, 1)Н СМР D JNZ VNEX :МVI A,OFFя С11Р Е JNZ VNEX JМР BEGIN INX D МОV A1D ОUТ З4Н :ЫОV А,Е OU'l ' ))Н INX Н J.61:P VJY1 ОМ OFOH lfOV АЕ оuт оf1н МОV АD• оuт оt2н CALL КDЕТ LDA КWGНТ CPI 16Н JZ BEGIN JNZ VOUТ СРАВНИТЬ ДАНШЕ ОЗУ И ПРОГ, ПЗУ' Е~И НЕ РАВW 1 ТО НА VFALL ПРОВЕРИТЬ С'!'АРIПИЙ ВАйт,послЕд. АДРЕС НЕ ПОСl/IЕДНИИ,ПРИНЯТЬ СЛЕДУDЦИЙ АДРЕС ПРОВЕРИТЬ МЛАДШИЙ вАйт,поСЛЕд. АДРЕС НЕ ПОСJIЕДНИЙ,ПРИНЯТЬ СЛЕдУDЦИЙ АДРЕС НАЗАД Н ОСНОВНОЙ ПРОГРАММЕ НОШЙ АДРЕС ПРОГ ." ПЗУ lllДАТЬ ДАН!llЕ ШДАТЬ ДАНШЕ :НОВIЙ АДРЕС ОЗУ сРАВНИТЪ CJIEД~E ДАННЫЕ ВЫДАТЬ НА ДИСПJ!Ей---П ВЫВОД АДРЕСА НА ДИСПЛЕЙ Jl!ДАТЬ НАЖАТИЯ ЮIАВИШИ НАЖАТА КЛАВЮIIА СЕ? IЩТИ НА ОЖИДАНИЕ НАЖАТИЯ Ю!АВИПIИ 747 02F2 748 02FZ 749 02F2 *********** **** ***** ** **tl:*М-*ff'*.** *** ** * * ** * **4****** ******** * 750 02F2 751 02F2 752 02F2 75) 02F2 754 OZF2 755 02F2 756 02F2 757 02F2 758 02F2 759 02FZ. 11"$ 760 02F) 3С 761 01F4 D) )2 762 OZF6 АУ· 76) 02F7 D) )5 * НА РИС,9,2) ПОКАЗАНА ПРОГРАММА СОРУ 1 ВЛОК-СХЕМА * КОТОРОЙ ИЗОБРАПНА НА РИС,9,22 * * * * * PEIИII ЧТЕНКЯ ИНФОFМ.АЦИИ ИЗ ПРОГ, ПЗУ * СОРУ XRA А INR А АК1U'ЫУЛЯТОР=1 оuт )2Н XRA А Q\JТ )5Н CS=O,OV,PGМ=O,OV LXI D1 0000 АДРЕС ПРОГ, ПЗУ=О LXI н, 1400:\{ УСТАНОВИТЬ АДРЕС ОЗУ 764 02F9 11 00 00 765 02FC 21 00 1i 766 02FF 7В СОРУ! :ЫОV оuт А}Е )н АДРЕС AQ-A 7 • 767 о,оо D3 ЗЗ 768 0)02 7А 769 0)0) D) Н 770 0)05 DB )1 771 0307 77 772 0)08 )Е 1) 773 ОЗОА ВА 774 О)ОВ С2 14 О) 775 О)ОЕ )Е FF 776 0)10 ВВ 777 0)11 СА О) 00 776 О)14 2) CNEX 779 0)15 1) 780 0316 С3 FJ. 02 781 0319 782 0319 . о SiRCliS 19-814 • 60 JIOV A1 D ·оuт нн ,АДРЕС А8-А9 IN З1Н ЧИТАТЬ ИНФОРМАЦИD ИЗ ПРОГ, ПЗУ !,!QV Jf1A ВЫВЕСТИ ИНФОР!4АЦИЮ В ПЗУ !i4VI А, 1ЗН СМР D ПРОВЕРКА. НА ПОСJIЕДНИЙ АДРЕС JNZ CNEX ЕСЛИ АДРЕС НЕ ПОСЛЕДНИЙ I ТО НА CNEX :МVI А,о~'FН 00Е W!АДШИЙ БАИ.Т ПОСЛЕДНЕГО АДРЕСА JZ BEGIN ЕСЛИ АДРЕС ПОСЛЕ,ЦНИЙ. 1 ТО КОНЕЦ INX н СЛЕДУЮЩИЙ. АДРЕС ОЗУ INX D СЛЕДУПЦИИ АДРSС ПРОГ, ПЗУ JUP COPI1 ПРИНЯI'Ь СЛЕДУЮЩИЕ ДАННЫЕ DD ПРЕДЛОЖЕНИЕ END АССЕМВЛЕРА 8'1"11ВОШ
282 Гnава 9 совпадают для всех адресов, производится возврат в основную программу (шаг 7). На рис. 9.21 приведена реализация функ­ ции верификации средствJми символического языка микропро­ цессора 8085. 9.9. Проrра.ммные средства реаnизации функции коnирований Последней функцией, которую мы рассмотрим, является функ­ ция копирования, С>Существля:iощая электрическое копир0вание данных из лnзу в ячейки ОЗУ2. Эта функция используется для размножения уже существующего ППЗУ. Блок-схема реа­ щ1эации •функции приведена на рис. 9.22 . Из .этой схемы видно, что на шаге· 2 производится чтение данных из ППЗУ, а на ша­ ге 3 ~ их запись в ОЗУ. Подобные действия повторяются для всего диапазона адресов 0000-03FF16 . На рис. 9.23 приведена реализация функции копирования • средствами символического языка микропроцессора 8085. 9.f0. Выводы по проrра.ммным средствам В настоящей главе были рассмотрены все основные аспекты проектирования и написания программ для системы, управляе­ мой с помощью микропроцессора. С целью более подробного изложения частных ·вопросов был рассмотрен конкретный при- . мер. При этом были раскрыты общие вопросы, -характерные для различных задач. Для большей наглядности использовался аппарат блок-схем, а необходимая полнота изложения дости­ галась с помощью примеров программной реализации приве­ денных блок-схем. В главе был последовательно изложен процесс ·создания про­ граммного обеспечения системы. При этом правильный выбор отправной точки гарантирует успех. В главе заострялось вни­ мание на тех важных вопросах, решение которых необходимо осуществить до начала разработки программного обеспечения. Правиль1;1ое понимание рассмотренной задачи будет способст­ вовать правильному 1:1спользованию других микропроцессоров для решения конкретных задач. На рис. 9.24 приведена полная программа управл~ния сис­ темой для микропроцессора 8085 ..
Глава 10 ОТЛАДКА ТЕХНИЧЕСКИХ СРЕДСТВ СИСТЕМЫ В настоящей главе будут рассмотрены различные концепции поиска неисправностей и отладки системы, управляемой мик­ ропроцессором на примере устройства программирования ППЗУ, описанного в гл. 8 и 9. При этом используется техника поиска неисправностей, аналогичная той, которая обсуждалась в гл. 5. Будет подробно показано, каким образом можно про­ верить функционирование технических средств конкретной си­ стемы. Еще раз будут рассмотрены вопросы отладки технических СJ)едств системы с использованием метода, известного под на-_ званием тестирования посредством статических сигналов. Этот эффективный и сравнительно экономичный метод предполагает единый прямой подход к пррблеме поиска неисправностей в аппаратуре. Вследствие простоты и некоторых других преиму­ ществ метода по Сf)аi3нению с динамическим тестированием при решении большинства задач поиска неисправностей рассмотрим еще раз общие принципы и применение тестирования· посредст­ вом статически)\: сигналов. 10.1. Тестирование посредством статических сиrнаnов В( гл. 5 были освещены общие принципы тестирования посред­ ством статических сигналов, а собственно метод использовался пnи изложении,вопросов отладки технических средств исходной сиtтемы. В настоящей главе этот метод применяется при от­ ладке аппаратуры устройства программирования ППЗУ. Еще да установки микропроцессора в системе использование данно­ г~ метода позволяет убедиться, что память и все схемы ввода­ вьtвода функционируют правильно. ' На рис. 110.1 приведена схема используемого устройства тес­ тирования посредством статических сигналов. Прежде чем пе­ рецти к подробному-изложению вопросов отладки системы 8085 с помощью этого. устройства, кратко осветим некоторые nажные момЕtнты, относящиеся собственно к используемому методу. Во­ первых, отметим простоту технических средств устройства тес­ тирования. Такое устройство можно построить с помощью стан- 19•-
П а н е л ь п о д к л ю ч е н и я с и с т е м ы к У Т С С С Х ) r , . . . . ( C I U ' ) " q ' C " ) N . . - N N N N N N N N ! 1 . 1 . 1 . 1 . 1 . 1 . 1 , , ~ 2 0 - = - - : : - i О ? ~ ~ ~ ~ : ! : ~ ~ 0 1 • 1 • 1 • 1 · 1 · 1 • < { 5 1 7 1 9 1 1 1 1 1 : э _ I С з 7 4 L S 3 6 7 - = - - · о N s d ' С " ' ) С " ) м м 1 i 1 ~ 1 1 ~ В с е т о ч к и . + 5 1 : . о Р и с . 1 0 . 1 . П о i и а я · · с х ё м а у с т р о й с т в а т е с т и р о в а н и я с т а ' 1 1 И ч е с к и м и с и г н а л а м и д J I Я м и к р о п р о ц е с с о р а 8 0 8 5 . - : -
Отладка технических .. ~едсте системы 285 дартиых логических схем. Как видн<> из ри'с. 10.1, для этого до­ статочно использовать лишь пять различных ИС. Во-вторых, тестирование посредством статических сигналоВ" чрезвычайно удобно в применении. Отметим, что устройство· тестирования осуществляет управление системой точно так же, как и микропроцессор. Поэтому дл.я использования _устройства тестирования посредством статических сигналов (УТСС) необ­ ходимо лишь понять особенности управления техническими средствами системы со стороны микропроцессора. В-третьих, УТСС можно приспособить к особенностям конк­ ретной системы. Простота технических средств УТСС позволя­ ет модифицировать это устройство с целью реализации специ­ альной функции, присущей лишь .конкретной системе. Пользо_. ватель может по желанию вносить изменения в УТСС. Об этом свидетельствует тот факт, что фирма CMS поставляет версии УТСС для любого из микропроцессоров, рассмотренных в книге. 10.1. УстроАство тестирования посредством статических сиrнаnов дnя .микропроцессора 8085 Рассмотрим функционирование УТСС, показанного на рис. 10.1, • детально проанализировав назначение каждого компонента схе­ мы. На рис. 10.1 можно заметить переключатели SA15-SA8• Каждый из них одним концом соединяется с землей, а дру­ гим - с согласующим··реэистором на 4,7 Ом, Н{ак это показано на рис. 10.1 лишь для переключателя SA8• Переключатели расположены на входах интегральных схем IC1 и IC2 (рис. 10.~ ), представляющих собой устройства 7404. Выходами IC 1 и IC2 являются адресные выходы А 15-А8 для микропроцессора 8085. При разомкнутых переключателях вхо- •ды IC 1 и IC2 - в состоянии логической 1, которое является ре~ зультатом воздействия источника питания в 5 В через согласу­ ющий резистор 4,7 кОм. При замыкании переключате.лей входы IC 1• и IC2 заземляются, что соответствует сигналу логического О. Функционир~вание переключателей SA1s-SA8 может быть в общем виде представлено следующим образом. В одном по­ ложении переключателей на соответствующие выходы IC 1 или IC 2 поступает сигнал уровня логической 1, в другом положе­ нии -сигнал уровня логического О. Таким образом выходные лиции A1s-A8 можно по желанию устанавливать в состояние О или 1. При этом сигнал в систему поступает точно так же, как сигнал, выдаваемый микропроцессором 8085 на адресные ли­ нии, за исключением того, что соответствующий уровень логи­ ческого сигнала для обеспечения отладки системы может под­ держиваться произвольно долго. Рассмотрим теперь блок вывода данных УТСС. Этот блок - фрагмент рис. 10.1 и отдельно представлен на рис. 10.2 . Отме-
Гnава 10 тим, что переключатели S0-S1 подсоединены точно так же, как ранее рассмотренные переключатели rSA1 5-SA8, т. е. размеще­ ны на входе устройств 74LS367 IC3 и IC4• Выбор этих интег­ ральных схем обусловлен использованием некоторых устройств .с тремя состояниями для вывода данных. Необходимость по- Панель подключения системы 191В171615141312 4,7 кОм +5 ·Все точки s, с~ссос <(<(<(<( <( 35791113 IC374LS367 246101214 оcr <( <( з51с. 74LS367 24 RD Рис. 10.2 . Часть схемы рис. 10.1, отображающая б.'!ок вывода данных УТСС 8085. следних связана с обеспечением возможности ввода данных в УТСС, что аналогично вводу в микропроцессор 8085, когда. ли­ нии данных выступают в качестве входных. Поэтому следует за­ блокировать выдачу данных УТСС формирователями IC3 и JC4 на время операции чтения, выполняемой УТСС, чтобы не соз­ давать помех при вводе. Блокировка выдачи данных формирователями осуществля­ ется посредство_м управляющего сигнала :RП. Линия подачи это­ го сигнала показана справа на рис. 10.2 . Ниже будет показано, как этот сигнал вырабатывается. Теперь же важно понять лишь то, что выдача данных формирователями на время выполнения УТСС операции чтения блокируется.
Отnадка технических средств системы 287 Во время выполнения УТСС операции чтения данных вва­ дятся в УТСС из тестируемой системы. Для проверки правиль­ ности вводимых данных использую;ся индикаторы на светоиз­ лучающих диодах. Схема включения этих индикаторов приве­ дена на PJiC. ~ 0.3. Отметим, что все входы устройств 74L04 IC1r и ICg подсоединены к отдельным линиям шины данных. Логи- Вхо11 С ШIIIIЫ данных о.. о ооQёё QQ <( <(<(<(<(~ <( <( !Cg 13591113 13 74L04 !С8 74L04 24681012 24 IC5 !Св 1з591113 13 7407 7407 24681012 24 270 270 Свето- излуч. D,, Do диоды D, Рис. 10.3 . Часть схемы ·рис. 10.1, отображающая блок вывода сигналов на светоизлучающие диоды УТСС 8085. ческие сигналы линий данных отображаются посредством по­ казанных на рис. 10.3 светоизлучающих диодов. Если на вход IC 8 и ICg подается сигнал 1, то на соответст­ вующем выходе устройства 74L04 формируется сигнал О. Выход 74L04 соединен со входом 7407 (IC5 и IC6 ), являющимся'буфе­ ром со свободным коллектором. В случае сигнала О на входе 7407 на выходе также присутствует сигнал О. Из теории уст­ ройств со свободным коллектором известно, что выход устрой­ ства 7407 может быть представлен в виде, изображенном на рис. 10.4 . Ясно, что если на вход 7407 поступает сигнал О, то транзис­ тор открывается, в результате от коллектора к эмиттеру на землю протекает ток. Обращаясь снова к рис. 10.3, видим, что светоизлучающий диод анодом подключен к источнику +5 В, а катодом - к выходу устройства 7407 через резистор 270 Ом. Если на выходе устройства 7407 имеется сигнал О, резистор со­ единяется с землей, в результате через светоизлучающий диод
2J38 rпan 10 от анода к катоду протекает ток от источника +~ В.- При этих усл~виях последний имеет прямое смещение и излучает свет. Если iже на выходах устройств 7407, IC5 и IC 6, имеется сигнал 1, транзистор на рис. 10.4 закрывается, в результате I_Iроисхо­ дит разъединение с землей резистора, подсоединенного к кол­ .лектору. При этих условиях ток через светоизлучающий диод не протекает и последний выключ-ается. Из проведенного обсуждения видно, что светоизлучающий .диод включается при сигнале уровня логической 1 на соответ- 2 Рис. 10.4 . Схема устройства 7407, показывающая выходной транзистор, ис­ попьзуемый д.пя отвода тока при ~к.пючен:ии светоиз.пучающих диодов. ствующей линии шины данных и выключается при сигнале уровня логического О. Это позволяе.т визуально наблюдать ло­ гическое состояние шины данных в любой момент времени. Отметим, что в УТСС на входе с шины данных имеется уст­ ройство 74L04, что видно из рис. 10.3 . Может возникнуть во­ прос, почему на входе включается инвертор и далее ус-rройство 7407 и нельзя ли применить устройство 7406 для реализации функций устройств 74L04 и 7407? Принятое решение мотивиру- - ется тем, что устройство 74L04 потребляет на входе ток 0,1 мА в состоянии логического О и 4 мкА - в состоянии логической 1. Именно такой ток потребляется при работе с шиной данных. Любое устройство, используемое в УТСС, является допол­ нительной· нагрузкой для шины данных. Поэтому дополнитель­ ная нагрузка, создаваемая монитором, должна быть _по возмож­ ности минимальной. Устройство 7406, используемое в качестве входного монитора, создает для шины данных большую нагруз­ ку, чем ус.тройство 74L04, поскольку потребляет на входе ток 1,6 мА в состоянии логического О и 40 мА в состоянии логиче­ ской 1. Поэтому применение устройств 74L04 и 7407 вместо 7406 позволяет снизить нагрузку на шину со стороны УТСС на порядок, что вполне оправдывает схемную избыточность.
Отладка технических средств системы 289 Все точки WR .AL E RD RD +5 4,7 кОм 1 Ю/М о WR о ALE о RD о .,,. Рис. 10.5 . Часть схемы рис. 10.1, отображающая блок УТСС, предназначен­ ный для регулирования логического уровня управпяющих разрядов микро- процессора 8085. . - Из рис. 10.3 видно, что светоизлучающие диоды постоянно контролируют и отображают логическое состояние линий шины данных, как во время выполнения операции ЧТЕНИЕ, так и при операции ЗАПИСЬ. Прн операции ЧТЕНИЕ отображаются
290 Глава 10 «системные» данные, при операции ЗАПИСЬ - данные, •выво­ димые УТСС. Это возможно, поскольку выходные формирова­ телJi -IC3 и IC4 блокируются на время операции ЧТЕНИЕ. Рассмотрим, каким образом осуществляется блокировка этих формирователей при выполнении операции ЧТЕНИЕ. На рис. 10.5 показана секция устройства УТСС, используемая для регулирования логических уровней сигналов некоторых управ­ ляющих выводов микропроцессора 8085. Эти выводы обозначе­ ньr как RtD, WR, 1O/М, ALE. Существуют другие управляющие +5 4,7 кОм 4,7 кОм +5 7406 7406 Выход Рис. 10.6 . Построение схе­ мы гашения «выброса» с помощью двух инверторов со свободным коллектором типа 7406. выводы микропроцессора 8085, такие, как S0 и S 1; однако они не· используются в нашей системе. Если же в проектируемой системе используются другие управляющие выводы, то для ре­ гулирования логических уровней состояний УТСС следует при­ менить подобные же средства. Рассмотрение событий, происходящих в течение выполнения операци ЧТЕНИЕ микропроцессора 8085, показывает, что од- ним из основных событий является выдача сигнала RD. При переходе этого сигнала в состояние, соответствующее логиче­ скому О, микропроцессор выполняет операцию чтения либо из памяти, либо с устройства ввода, что идентифицируется логиче- ским состоянием сигнала 10/1\1. По этой информации УТСС оп­ ределяет необходимость блокировки выходных формировате­ лей IСз и IC4. Устройство 74LS367 блокируется, если на выводы 1 и 15 поступает сигнал уровня логической 1. Следовательно, в случае когда сигнал соответствует логическому О, на эти выводы уст­ ройства 74LS367 необходимо подать сигнал 1. Это достигается путем :'Подачи на блокирующие выводы 1 и 15 схем IC3 и IC4, приведенных на рис. 10.2, сигнала· RD, как это показано на рнс. 10.5. Соответствующее соединение осуществляется всякий раз, когда сигнал RD есть О, что определяет операцию ЧТЕНИЕ
Отладка технических средств снстемw для УТСС микропроцессора 8085. При этом светоизлучающие диоды отображают данные, вводимые в микропроцессор. Управляющие сигналы УТСС поступают на - фиксатор, как это показано на рис. 10.6, используемый с целью предотвраще­ ния «выброса» сигнала, обусловленного действием механическо­ го переключателя. Может возникнуть вопрос, почему бы не поставить подобные схемы для каждого переключателя? Это не делается по той причине, что адресные линии н линии дан­ ных микропроцессора не оказывают влияния на коммуникаци­ онные взаимодействия в системе до тех пор, пока эти взаимо­ действия не распознаны посредством управляющих сигналов. Именно с помощью управляющих сигналов и осуществляется стробирование данных, передаваемых во внеwние схемЬI. Для каждого положения переключателя требуется один стробирую­ щий сигнал. Схемы, предотвращающие выброс, можно, по же­ ланию, установить для каждого переключателя, однако это не является необходимым. 10.3 . Звмечання по отnвд1ее техннчес1енх средств снстемь1 Рассмотрев особенности схемной реализации УТСС, изложим в общих чертах один подход, используемый для эффективной от­ ладки технических средств системы. Существо подхода заклю­ чается в определении правильности функционирования всех коммуникационных каналов в системе. При этом не принима­ ются во внимание вопросы синхронизации сигналов, а опреде­ ляется возможность электрического взаимодействия микропро­ цессора со всеми логическими устройствами в системе. Подоб­ ная проверка имеет большое значение для отладки технических средств системы. - Тестирование посредством статических сигналов предостав­ ляет средства для осуществления проверки всех коммуникаци­ онных каналов системы. Это является большим достоинством данного метода, поскольку отпадает необходимость в проекти­ ровании специальных схем тестирования в рамках специфичес­ ких тестирующих устройств микропроцессорной системы. Кроме того, основные средства устройства тестирования могут быть реализованы технически при минимальных затратах. Это дает возможность каждому пользователю, занимающемуся проекти­ рованием системы на базе микропроцессора либо поиском в ней неисправностей, иметь мощные средства отладки системы. При использовании УТСС последнее подсоединяется к си­ стеме посредством кабеля, как показано в гл. 5. Последователь­ но рассмотрим проверку всех технических средств системы. При этом УТСС используем как средство отладки системы IJa
292 Гnава 10 1 ·; базе !Микропроцессора ,8085. Однако приводимого материала до­ статоч1;10 для построения УТСС для проверки системы на базе любого другого микропроцессора. 10.4. Отnадка адресноji wины системы Полная схема интерфейса микропроцессора 8085 с ПЗУ и ОЗУ приведена на рис. 10.7 . В последующем мы будем достаточно часто обращаться к рис. 10.7. Поэтому желательно каким-либо образом .пометить этот рисунок, например с помощью бумаж­ ной полоски. Это позволит быстро его отыскивать каждый раз, когда в этом будет возникать необходимость. Адресная шина си_стемы - это . первый компонент системы программирования ППЗУ, для которой мы будем осуществлять проверку прохождения электрических сигналов. Определим, воз­ можна ли передача сигналов логических О и 1 по адресным ли­ ниям BA0-BA1s, С этой целью введем представленный на рис. 10.1 УТСС в проверяемую систему вместо микропроцессо­ ра путем установки вилки УТСС в гнездо подключения мик­ ропроцессора. Проще всего проверить адресные линии ВА8- ВА 15, поскольку последние в отличие от адресных линий ВА0- ВА7 не имеют «временного мульtип~ексирования». ПроцеАура проверки nиниji BAs-BA1s посредством УТСС 1. УстаиоВJIТЬ переключатели УТСС, помеченные как SA8- SA15, в положение, соответствующее логич·ескому О на выходе. 2. Соединить с землей один конец пробника логического уровня ПVМ (или VOM). 3. Соединить другой конец пробника напряженJ1Я с выводом 5 IC9 системы (рис. 10.7). 4. Напряжение должно соответствовать логическому уров- ню о. • 5. Переключить SA8 УТСС в положение, соответствующее логической 1. 6. Напряжение на выводе 5 IC9 :(рис. 10.7) должно соответ­ ствовать уровню логической 1.. 7. Теперь обеспечено переключение адресной линии ВА 8 с уровня логического О на уровень логи.ческой 1. 8. Повторить шаги 3-7 для каждой адресной линии ВА9- ВА 15, проверяя наличие требуемых уровней напряжения на со­ ответствующих выводах устройства. 9. В случае отсутствия переключения сигнала на адресной линии статически исследуется причина наполадки. 10. Теперь проверено, что для всех адресных линий BA8- BA1s производится переключение сигнала с уровня О на уро-
~ 0 8 5 ~ 3 0 1 o j ) - , , ; o ~ v - - - T R A l ' I 6 R S T 7 . 5 7 - ~ E § . ! . o f 8 H S T 5 5 9 I N T R I 1 0 т ' ' i : : : i : . . j О + 5 ~ 4 , ; , - . к о ~ " ' ~ ( 1 ) ~ § ' ; , . . 1 1 1 3 П З У 0 1 4 2 7 0 В 1 5 - 0 0 0 0 0 3 F F 1 с 1 4 1 6 B D 1 7 7 + 5 ~ - - - - - - ~ , П 1 . ч е л ь Ц П 1 0 1 1 1 3 1 4 1 5 B D 7 1 6 + 5 - 5 + 1 2 s a , в ' м i ' " м А П З У , 2 7 0 В U 4 0 0 0 7 F F I C 1 s - " / Р и с . 1 0 . 7 . П о л н а я с х е м а и н т е р ф е й с а м и к р о п р о ц е с ­ с о р а 8 0 8 5 с О З У и П З У . г с , s 1 , с , 9 ~ з в о J B D 1 4 З У 2 1 з О З У 2 в о S E L $ , В О 1 2 ' • 1 1 1 1 1
Начало SA 8-SA 15 = логи­ ческий О на УТСС Нет Нет Нет Нет Определение причины Определение причины Определение причины Определение причины Нет Проверка ВА 8-ВА 1 , завершена успешно Нет / Определение причины Определение причины Определение причины Определение причины Рис. 10.8 . Блок-схема алгоритма проверкf! выходов ВА8-ВА 15 адресной шины микропр-оцессора 8085.
Отnадка технических ~ред-ств системы 295 вень 1 под управлением микропроцессора; либо обнаружено, что для некоторых линий такое переключение отсутствует, что • требует дальнейшего исследования (с этой целью осуществля­ ется проверка каждой цепи схемы путем прослеживания уров• ня напряжения в выбранных точках на протяжении . всего ин~ формационного канала). На рис. 10.8 приведена блок-схема последовательности дей­ ствий при проверке адресных линий BAs-BA1s. Вспомним, что мы не определяли правильность подсоединения линий ВА8 - ВА 15 в системе. Этот вопрос будет затронут в данной главе позднее. Определим теперь возможность переключения линий ВА0 - ВА 7 с уровня логической 1 на уровень логического О. Соответст­ вующая процедура несколько сложнее процедуры для адрес­ ных линий ВАs-ВА1s- Процедура дnя' проверю• адресных nиниii ВА0_;.ВА1 • 1. Установить переключатели, помеченные S0-S7, в поло­ 'жение, соответствующе,е логическому О. 2. Установить управляющие переключатели УТСС следую- щим образом~ а) WR =логическая 1 (нерабочее состояние); б) RD=логическая_ 1- (нерабочее состояние); в) 1O/М=логическая 1 (безразлично); • г) АLЕ=лоrический О (нерабочее состояние). - 3. При сигнале. ~D, соответствующем логическому О, свето­ излучающие диоды будут (должны) отображать информацию, установленную с помощью переключателей S0-S7• 4. Установить RiD в положение, соответствущее логической 1~ При этом светоизлучающий диод D0 должен начать светиться. 5. Перебросить управляющи.й переключатель ALE из со- стояния О в состояние 1. • 6. Установить управляющий переключатель ALE обратно в состояние О. Последовательность шагов 5 и 6 приводит к фик­ сации адресных разрядов. 7. Измерить напряжение на выводе 10 IC. Это напряжение должно соответствовать значению уровня логической 1. 8. Установить S0 в положение, соответствующее логиче­ ской 1. 9. Повторить шаги 4-8 для каждой адресной линии ВА0- ВА1. Если на шаге 7 выходной сигнал не ~оответствует введен­ ным данным, повторить процедуру с шага 3 и измерить напря­ жения на каждом шаге с целью проверки логической коррект­ ности сигналов. Нашей целью является реализация общей функции «фикса-
296 1 rпааа fO 16,15,12,9,6,5,2 ~ыводы IC 10 16,15,12,9,6,5,2 ( Повторить для S1·S: Нача-ло на о о }Фиксаuи~t адресньос данНЬ11' J Определение причины Определение причины Рис. 10..9. Блок-схема алгоритма пр.оверки выходов ВАо- ВА7 адресной шины. .:, ~ ции» адресных данных. В случае неверной реализации функ­ ции мы можем разложить эту функцию на «микро-шаги» 'С целью локализации неисправности. На рис. 10.9 приведена .• . блок-сiема, отражающая основные этапы проверки адресных. \~ • линий ВА0-ВА1. • '
Отладка технических средств системы 10.5 . Отnадка шины уnравnени• системы Обратимся теперь к проверке с помощью УТСС .шины управ­ ления системы. Шина управления представлена на схеме рис. 10.10, которая является частью общей схемы рис. 10.7, что сделано с целью облегчить последующее обсуждение. В даль­ нейшем следует еще раз изучить схему рис. ~0.7, чтобы убе- ~34 !О/М1----~~ LS32 з 6 в 11 2 5 9 12 '>--3----oвJOR -,_ 6 --uBIOW >-8--о вмЕМR 11# LS125 !С7 BMEMW Рис. 10.10. Часть схемы рис. 10.7, опреде.пяющая шину управ.пения системы. диться в правильном понимании роли схемы шины управления, . приведенной на рис. 10.10, в системе. При настройке шины управления системы будем использо­ вать управляющие переключатели УТСС, помеченные как RD, WR, 1O/М. Из рис. 10.10 видно, что эти три сигнала являются входами для комбинационной логической схемы, включающей . шину управления системы. Управляющие сигналы_ вырабаты­ ваются вентилем ИЛИ схемы IC5 и и~:~:вертором схемы IC5. Перед вводом в систему эти сигналы буферируются устройст­ вом 74LS125 IC7• При настройке шины управления системы мо­ жет быть использована следующая процедrра. 20-814
298 Глава 10 Процедура настройки шины уnравnення системы 1. Установить управляющие переключатели, помеченные как RD, WR, IO/M, в следующие положения: а) RD=логическая 1 (нерабочее состояние); б) WR:::алогический О (нерабочее состояние); в) IО/М=логическая 1 (режим ввода-вывода). 2. При указанном положении переключателей на всех вы­ ходах шины управления системы должен быть сигнал уровня логической 1. Проверить наличие сигнала уровня логической 1 на выводах 3, 6, 8 и 1\1 устройства 74LS125 IC1. 3. Установить в состояние О переключатель, помеченный,как WR, что соответствует подаче управляющего сигнала BIOW. Проверить наличие напряжения логического уровня О на выво- де 6 IC1 (ВIOW). 4. Проверить наличие напряжения логического уровня 1 на выводах 3, 8 и 11 IC 7 (нерабочее состояние). 5. При проверке функционирования каждой линии шины необходимо помнить, что на основании результатов предыду­ щего обсуждения сигналы этих линий являются взаимоисклю­ чающими. Это означает, что одновременно сигнал не может быть подан ни на какие две линии. 6. Установить переключатель WR в положение, соответст­ вующее логическрй 1. 7. Установить перекJJючатель RD в положение, сооtвете-тву­ ющее логическому О, что соответствует подаче управляющего сигнала ВIOR. 8. Проверить, что логический уровень напряжения О имеет единственный ,управляющий сигнал BIOR на выводе 3 IC1. 9. Установить переключатель RD в положение, соответству­ ющее логической 1. 10. Теперь проверена правильность прохождения сигналов - B-IO_W _ и BIOR. 11. Установить управляющий переключатель IO/M в поло­ жение, соответствующее логическому О, что переводит шину управления в режим работы с памятью. 12. Установить· переключатель WR в положение, соответст­ вующее логическому О, что соответствует подаче сигнала BMEMW. Проверить наличие напряжения логического уровня О сигнала BMEMW на выводе l\l IC1. 13. Проверить наличие напряжения логического уровня 1 сигналов ВIOR, BIOW, BMEMR. 14. Установить переключатель .WR в положение, соответст­ вующее логической 1.
\ \. Отладка технических средств систем1,1 299 15. Установить переключатель R.D в положение, соответст­ . вующее логическому о. что соответствует подач_е сигнала BMEMR. Проверить наличие напряжения логического уровня О сигнала BMEМIR на выводе 8 IC1. • 16._ Проверить наличие напряжения логического уровня 1 уп- равляющих сигналов BMEMW, BIOW, BIOR. 17. Установить переключатель RD в положение, соответст­ вующее логической 1. Теперь установлено, что выходные управляющие сигналы системы правильно отражают входные воздействия микропро­ цессора 8085. Если на каком-то шаге процедуры будет обна­ ружено нарушение этого соответствия, можно легко осущест­ вить статическую проверку логических сигналов и локализовать неисправность. 10.6. От.падка шины данных системы Рассмотрим теперь отладку шины данных системы с помощью УТСС. Приведем процедуру определения возможности двуна­ правленной передачи данных по шине данных, проверив буфе­ рирование шины данных и внешние устройства. Процедура проверки канаnа выдачи данных 1. Установить упр~~~яющие переключатели R:D и WR УТСС в положения: а) RD=логическая 1; б) WR=логическая 1. При этих условиях существует канал из УТСС микропроцессо­ ра 8085 к тестируемой системе. УТСС функционирует в режи­ ме вывода данных, аналогичном. соответствующему режиму микропроцессора 8085. . 2. Установить переключатели УТСС, помеченные как S0-S1, в положение, соответствующее логическому О. 3. Установить переключатель S0 в положение, соответству­ ющее логической 1. 4. Проверить наличие напряжения логического уровня 1 на выходе BDo (вывод 2 IСз). 5. Установить переключатель So в положение, соответствую­ щее логическому О. Проверить наличие напряжения логического уровня О на выходе ВDо (вывод 2 IC3). • 6. Повторить шаги 3-5 для всех: линий шины данных DB1-. DВт, 7. На каждом шаге проверить правильность фун·кционирова- •ния линий шины данных при выводе информации путем изме­ рения напряжения логических уровней. 20•
300 rлава 10 Если выходцые сигналы на шине данных на некотором шаге процедуры не являются корректными, необходимо статичес­ ки проверить уровни напряжения постоянного тока с целью оп­ ределить причины неисправности. Это достигается путем про­ верки статических электрических сигналов на протяжении ин­ формационного каиала. • Успешное завершение процедуры означает, что шина дан- ных системы при выводе данных функционирует правильно, т. е. шина данных должна выводить данные, соответствующие правильным сигl-!алам от микропроцессора 8085. Теперь прове­ рим правильность- функционирования шины данных в режиме ввода и покажем, каким образом можно проверит_ь инфорv:э­ ционный ка~ал от тестируемой системы к УТСС, чтобы убедить­ ся в правильности его работы. Процедура проверки канаnа ввода wины данных 1. Установить переключатели УТСС, помеченные как S 0- S7, в положение, соответствующее логическому О. 2. • Установить адресные линии системы ВА0-ВА15 в состоя­ ние О. / Начало Установить УТСС в режим ЧТЕНИЕ с устройства ввода­ вывода Все светои1луч. диоды на УТСС Нет включены? Да Заземлить линию В0 0 шины даннь,х D1,D2 ,D3 ,D4 , D5,D5 ,D7 Повторить. дляВD1-ВD7 Светоизлуч. дИОДЬI вы­ ключены? Да Нет Определение причины Рис. 10.1.1. Укрупненная блок-схема алгоритма проверки сигналов BD, - BD1 шины дан.ных системы.
"Отладка технических средств системы 801 3. Установить управляющие переключатели в положения: 'а) RD = логическая 1; б) WR =логическая 1; в) 1O/М=логическая 1 (режим ввода-вывода). 4. При указанном режиме управляющих переключателей светоlj:злучающие диоды выключены. 5. Установить переключатель RП в положение,. соответству­ ющее логическому О. Теперь все светоизлучающие диоды долж­ ны зажечься, поскольку шина данных отключается. Тем самым никакое устройство вывода не управляет линиями шины дан­ ных. Входы устройств 74L04 IC8 и IC9 УТСС отключены, а от­ ключение входа ТТL-схемы соответствует логическому уров­ ню 1. 6. Взять проволочную перемычку и заземлить один ее конец. 7. Соединить другой конец перемычки с линией· BD 0 шины данных, что соответствует выводу 2 IC3. Это позволяет. подать на шину данных логический сигнал уровня О (заземление). •8. Проверить, что светоизлучающий диод УТСС, помечен­ ный как D0, выключен. 9. Заземлить поочередно линии шины данных BD 1-BD7, проверяя выключение соответствующих светоизлучающих дио­ дов. Блок-схема описанной процедуры представлена на рис. 10.11 . • Теперь рассмотрены процедуры проверки шин адресной, даи­ ных и управления системы. Эти шины будут правильно функ­ ционировать при правильном поступлении сигналов от микро­ процессора 8085. Однако мы не осуществили проверок правиль­ ности соединения шин системы с другими схемами сцстемы. Такие проверки будут выполнены в процессе дальнейшего об­ суждения. 10.7 . Проверка схем,деwнфрировання выбора памяти Пер-ейдем к проверке технических средств, предназначенных для дешифрирования адреса памяти. Логические схемы дешиф­ рирования сигнала выбора памяти для системы, приведенной на рис. 10.7, представлены блоком IC 11 , являющимся устройст­ вом 74LS42. Принцип действия устройства 74LS42 заключается в подаче выходного сигнала О на вывод, соответствующий каж­ дому входу. При этом выводы 1, 2, 3, 4, 5, 6, 7 соотвеrгствуют двоичным входам 0-, 1, 2, 3, 4, 5, 6 соответственно. Допустим, что код двоичного 0011 подан на выводы устройства 74LS42 12, 13, 14 и 15 соответственно (это соответствует двоичному входу 3). Вывод 4 устройства 74LS42 теперь находится в со­ стоянии логического О. -
З02 rnaвa 10 Процедура проверки устроАства 74LS42 1. Установить переключатели УТСС, помеченные как SA10- SA13, в положение, соответствующее логическому О. Отметим. исходя из рис. 10.7, что адресные входы ВА1 0-ВА1з являются входами устройства 74LS42. , 2. Проверить наличие напряжения логического уровня О на выводе IC11. 3. Установить переключатели SA10-SA1 3 в положения: а) SA10= 1; б) SA11=0; в) SA12=0; . г) SA13.=0. Проверить наличие напряжения логического уровня О на вы- воде 2 IC11, • 4. Установить переключатели УТСС SA10-SA1з в положение двоичных входов 2-6. Значение каждого двоичного входа юю­ рождает логический уровень О для соответствующего вывода устройства 74LS42 IC 11 . Необходимо проверить наличие логи­ ческого уровня О для следующих выводов устройства 74LS42. Двоичный вход 0010 2 0011 3 0100 4 0101 5 0110 6 Уровень О на выводе з 4 5 6 7 Если все выводы имеют логический уровень О для всех вы­ шеописанных шагов, можно считать, что правильность работы логических схем дешифрйрования сигнала выбора памяти про­ верена. Если же на некотором шаге процедуры проверки обна­ ружена ошибка, ее причина может быть установлена путем ста­ тической проверки системы. Отметим, что μравильность соеди­ нения линий выбора памяти пока еще не проверена. Соответст­ вующая проверка осуществляется ниже: 10.8. Проверка интерфе~са ПЗУ системы При проверке интерфейса ПЗУ системы необходимо быть уве­ ренным в правильности: 1) адреса ПЗУ; 2) данных, выдаваемых из ПЗУ; 3) информации выбора блока ПЗУ; 4) подачи пи.тания на ПЗУ. Обсуждение процедуры провер~и интерфейса ПЗУ разбива­ ется на четыре раздела. В каждом из разделов раскрываетсл, один из перечисленных выше пунктов.
.Отладка технических средств системы 303 Проверка nравиnьности адреса ЛЗУ Правильность адреса ПЗУ обусловливается корректным функ­ ционированием адресных входов ПЗУ ВА0-ВА9. Для их про­ верки может быть использована следующая процедура: 1. Установить адресные переключатели SAs-SA1s в поло­ жение, соответствующее логическому О. 2. Установить управляющие переключатели RD, WR, 1O/М в положения: а) ,RD=логическая 1; б) WR=логическая 1; в) 1O/М=логический О. 3. Установить переключатели S0-S7 в положение, соответ­ ствующее логическому О. 4. Установить переключатель S0 в положение, соответству­ ющее логической 1. 5. Поставить переключатель ALE в положение логической 1, а затем в положение логического О. В результате этих дейст­ вий фиксируются разряды адреса ВА0-ВА7 в устройстве 74LS374 IC,o. 6. Проверить на.rу:ичие логического уровня напряжения 1 на выводе 8 IC14 и IC1s (ВАо), 7. Повторить шаги. 3-6 для адресных входов ВА 1 -ВА1. Проверить наличие необХО..f!.ИМого сигнала на соответствующем выводе устройства 2708 при подаче на адресную шину сигнала логической 1. 8. Проверить адресные входы ПЗУ BA8-BAg. Установить переключатель, помеченный как SA8, в положение, соответст­ вующее логической 1. Проверить наличие сигнала уровня ло­ . гиче ской 1 на выводе 22 IC14, IC 15 (ВА 8). Повторить этот шаг для адресного входа ВА9 • Если на. каком-то шаге описанной процедуры получим не­ верный адрес ПЗУ IC14-IC15, такую ситуацию можно зафикси­ ровать и статически проверить функционирование системы. Проверка данных, считываемых из ПЗУ При проверке данных, считываемр1х из ПЗУ, будем придержи­ ваться следующей последовательности действий. Вначале сис­ тема переводится в режим чтения данных, однако выбор уст­ ройства ввода не осуществляется. Существенным при этом яв­ ляется сам факт перевода шины данных системы в режим вво­ да, что позволяет использовать светоизлучающие диоды УТСС для визуального наблюдения за состоянием шины данных. Далее поочередно- заземлим выводы данных ПЗУ с помощью проводника. При заземлении вывода ПЗУ соответствующий све­ тоизлучающий диод выключается.
304 rnaвa 10 Отметим возможность электрического заземления выводов ПЗУ, что .объясняется наличием трехстабильного режима этих ВЪiводов, который устанавливается при переключении системы в режим ЧТЕНИЯ с устройства ввода посредством шины уп­ равления системы. При осуществлении описываем_9.Й проверки определяется правильность физического соединения шины дан­ ных с выводами ПЗУ IC14, IC1s. Проверка осуществляется еле-· дующей процедурой: 1. Установить переключатель 10/М УТСС в положение, соот­ ветствующее вводу-выводу (в результате система переводится в режим ввода-вывода). 2. Установить переключатель WR в положение, соответству­ ющее логическqй 1. 3. Установить переключатель RD в положение; соответству­ ющее - логическому О. В результате система переводится в ре- жим ЧТЕНИЯ с устройства ввода. • 4. Установить системный адрес ВА0-ВА 15 =0000. В этом случае не выбирается ни одно устройство ввода. 5. Все свеrоизлучающие диоды в данном состоянии включе­ ны. 6. Заземлить поочередно выводы ПЗУ0 и ПЗУ1 с помощью проводника. Каждый раз при заземлении очередного вывода ПЗУ0 или ПЗУ1 соответствующий светоизлучающий диод УТСС выключается. Например, если заземлен вь.вод 8 IC14 или IC1 5 ПЗУо или ПЗУ~, то выключится светоизлучающий -диод Do УТСС. Так осуществляется. визуальная проверка электрической работоспособности информационного ~анала от выводов ПЗУ системы к микропроцессору 8085. Проверка информации выбора бnока ПЗУ Покю_кем теперь, как проводится проверка правильности ра­ боты схем выбора блока ПЗУ. Как известно, функция опера-, ции выбора блока заключается в поочередной выдаче на шину данных системы выходной информации одного блока ПЗУ. Вна- • чале рассмотрим, каким образом проверить выбор блока IC 14 ПЗУ. Сигнал на выводе 20 выбора блока П~У IC 14 принимает· уровень логического О при сигнале логического О на выводе 3 IC15. На выводе 3 сигнал уровня_ логического О появляется· '' при сигналах О одновременно на выводе 1 (SELo) и выводе 2 (BMEMR). Это возМО)!(НО, поскольку сигнал BMEMR принима­ ет значение О при чтении данных из памяти, а сигнал S.EL0t принимает значение О, если системный адрес принадлежит со-, ответствующему блоку ПЗУ IC 14.
О·rnмка технических средств системы 305 Чтобы убедиться, что выбор блока осуществляется пра­ вильно, необходимо перевести систему в режим чтения дан­ ных из ПЗУ. Процедура чтения данных из ПЗУ 1. Установить системный адрес ВА0-ВА1 5 в 0000. Из распре­ деления памяти системы мы знаем, что ПЗУ0 соответствует ад­ ресное пространство OOOO-ОЗFЕ В результате генерируется ло- гический уровень О сигнала SEL0. , 2. Установить управляющие переключатели в положения: а) WR =логическая 1; б) 10/М =логический О. При этом система переводится в режим работы с памятью. в) RD=логический О. В результате система переводится в режим чтения памяти. При этом ВМЕМR принима­ ет значение О. 3. После шага 2(в) проверить наличие сигнала логическо­ го О на выводе 20 выбора блока 1Cr4 (выбирается данный блок). 4. Проверить наличие сигнала логической 1 на выводе 20 выбора блока IC1 5, (Этот блок не выбирается.) При возникно­ вении ошибки на ша_г,ах 3 !fЛИ 4 можно ста,тически проверить схемы дешифрирования при фиксировании системы в задаином режиме. " Процедура проверки nравиnьности функционирования сиrнаnа выбора бnока на выводе 20 IC,s 5. Установить системный адрес BA 0-BA1s в 0400. Из рас­ пределения памяти системы известно, что .ПЗУ1 соответствует адресное пространство 04OO15-O7FF 16, В результате генериру- ется логический уровень О сигнала SEL1. 6. Система должна перейти в режим, в котором с,игнал со­ ответствует уровню логического О. 7. Проверить наличие сигнала уровня логического О на вы­ воде 20 IC,s. 8. Проверить наличие сигнала 1 на выводе 20 IC1,4 (этот блок не выбран). При возникновении ошибки на шагах 7 или • 8 можно статически проверить схемы дешифрировани}! при фик­ сировании системы в заданном режиме. Теперь проверка правильности дешифрирования технически­ ми средствами ПЗУ0 и ПЗУ 1 на основе электрического состоя­ ния адресной шины ВАо-ВА 15 и шины управления системы за; вершена.
·3 05 !Глава 10 Проверка подачи питания на ПЗУ ППЗУ 2708 требует наличия трех источников питания: +12 В. +5 В и -5 В. Проверим правильность электрического подсо­ единения этих трех источников к следующим выводам: 1. +12 В-к выводу 19 (IC14, IC1s). 2. +5 В - к выводу 24 (IC14, IC15). 3. -5 В - к выводу 21 (I_C14, IC 1&'). Указа,нные уровни напряжения должны существовать как для IC14, так и для IC15. Теперь проверка правильности электриче­ ского интерфейса всех устройств ПЗУ с системой завершена, и показано, что соответствующие технические средства функцио­ нируют. •о.9. Проверка интерфеАса ОЗУ системы При проверке интерфейса ОЗУ необходимо рассмотреть следу­ ющие пять основных типов связей: 1) интерфейс шины данных с ОЗУ; 2) интерфейс адресной шины с ОЗУ; 3) ицтерфейс схем выбора блока с ОЗУ; 4) интерфейс схем разрешения записи с ОЗУ; 5) подачу питания на ОЗУ. Вспомним, что в случае ПЗУ осуществлялась . проверка - лишь четырех типов связей. В случае ОЗУ возникает дополни­ тельная необходимость в проверке интерфейса схем РАЗРЕ­ ШЕНИЕ ЗАПИСИ. Данный тип интерфейса существует для ОЗУ, поскольку система способна осуществлять не только чте­ ние данных из ОЗУ, что характерно и для ПЗУ, но также и запись данных в ОЗУ. Проверка адресации ОЗУ Проверку сигналов на входах ОЗУ будем проводить точно та­ ким же образом, как это делалось в случае ПЗУ, т. е. путем выдачи адресного сигнала посредством УТСС • и последующего контроля соответствующих адресных входов ОЗУ. ОЗУ систе­ мы состоит из блоков IC1 7, IC1 8, IC19 и IC20- Поэтому при пр()­ верке адресных входов необходимо убедиться в правильности соединения ка~дой адресной линии со всеми четырьмя инте­ гральными схемами. Повторять процедуру проверки адресных входов ОЗУ нет необходимости, поскольку это уже делалось достаточно подробно в отношении адресных входов ПЗУ си­ стемы.
Отладка технических средств системь1 307 Проверка wины данных ОЗУ Проверка шины данных ОЗУ проводится опять так же, как это делалось в случае ПЗУ. Отличие состоит в том, что два блока ОЗУ включают ОЗУ 1 КХ8, поскольку используемые ОЗУ пред­ ставляют собой устройства 2114, организованные как 1 КХ,4 статическое ОЗУ. Для создания ОЗУ системы 1 КХ8 два уст­ ройства 2114 соединяются параллельно. Обращаясь снова к схеме системы (рис. 10.7) замечаем, что IC1:1 и IC 18 составля­ ют одно ОЗУ системы 1 КХ8, а IC19 и IС2о-другое ОЗУ 1 кхв. Линии ВDо-ВПз шины данных соединяются с IC1•7 и с IC19, а линии BD4-BD7 - с IC1 8 и с IC2o, как это по1<азано на рис. 10.7. Для проверки правильности соединения соответствующих линий шины данных с требуемыми блоками ОЗУ используем ту же процедуру, которая применялась при проверке шины данных ПЗУ. При этом система устанавливается в режим ЧТЕ­ НИЕ с устройства ввода-вывода с подачей адреjса 0000 на ад­ ресную шину (линии ВА0 -ВА15 ). Далее поочередно заземляют­ ся линии шины данных ОЗУ BD 0-BD7 и проверяется наличие логического уровня О сигнала на соответствующих светоизлу­ чающих диодах УТСС. Отметим, что линии SD0-B,D3 шины данных соединены с IC11 и IC1 9, Поэтому при проверке этих ли­ ний заземляется вывод -14 IC19 и определяется выключение све­ тоизлучающего диода Do. Далее заземляется вывод 14 IC1 9 и фиксируется выключение D0. Данная лроцедура повторяется до тех пор, пока не будут проверены все линии BD 0-BrD7 шины данных на правильность их соединения с соответствующим блоком ОЗУ. Проверка сиrнаnа РАЗРЕШЕНИЕ ЗАПИСИ В ОЗУ Перейдем к обсуждению техники проверки сигнала РАЗРЕШЕ­ НИЕ ЗАПИСИ в ОЗУ системы. Отметим, что этот сигнал па­ раллельно подается на вывод 10 IC1 7 и IC1 8, а также парал­ лельн9 поступает на вывод 10 IC19 и IC20. Это вызвано тем, что каждое ОЗУ 1 КХ8 состоит из двух параллельно соединенных блоков ОЗУ меньшего объема. При подаче сигнала РАЗРЕШЕ­ НИЕ ЗАПИСИ должны быть выполнены следующие условия. Система должна находиться в режиме записи данных в память, а на адресную шину должен быть подан адрес ОЗУ, в которое. производится запись. Например,. для успешной выдачи сигнала РАЗРЕШЕНИЕ ЗАПИСИ на блоки IC1 7 и IC1,8 на адресной шине должен содержаться адрес этих блоков, т. е. адресная шина должна содержать адрес 1OOO-IЗFF на адресных ли­ ниях BA0-BA1s,
308 Глава 10 Процедура nроверкм сиrнаnа Рд.ЗРЕШЕНИЕ -Зд.ПИСИ дnя бnоков IC11 и IС1в 1. Установить адресную шину (ВА0-ВА1 5} в состояние 1900. При этом система переведет сигнал SEL~ в состояние логиче­ ского О. Сигнал SEL4 подается на выводы 1 и 4 IC1 2. , 2. Установить с помощью управляющих разрядов УТСС ре­ жим, при котором ,10/М соответствует уровню -логического О. Это переводит систему в режим работы с памятью. Сигнал RD должен соответствовать уровню логической 1 ,(нерабочее со- стояние). Сигнал WR должен соответствовать уровню О, что­ определяет наличие режима_РАЗРЕШЕНИЕ ЗАПИСИ. При этом состоянии управляющих разрядов устанiIВливается сиг­ нал BMEMW, представляющий собой буферированный сигнал ЗАПИСЬ в память системы. Этот сигнал поступает на вывод 1 IC 12 . Отметим, что в соответствии с электрическим состоянием ад­ ресной шины сигнал SEL4 находится в состоянии логического О, .а буферированный сигнал ЗАПИСЬ в память ~ также в со­ стоянии О в соответствии с логическим состоянием шины уп­ равления. При этих условиях на выводе 6 IC 12 поддерживается сигнал уровня логического О. Заметим, что вывод 6 IC 12 также соединяется с выводом 10 IC1i' и IC 18, поскольку этй устройст­ ва, как упомI}:налось ранее, работают параллельно. 3. Проверить далее наличие уровня логического О на -выво­ де 10 IC11 и ICJ,,8, как это должно быть. 4. Проверить наличие уровня логической 1 иа~ выводе 10 IC 19 и IC20- Это опр~деляет наличие сигнала РАЗРЕШЕНИЕ ЗА­ ПИСИ для IC19 и IC20, Если на шаге 3 или 4 обнаруживается ошибка, необходимо проверить информационный канал от УТСС микропроцессора 8085 к блоку ОЗУ. 5. Проверить подачу сигнала РАЗРЕШЕНИЕ ЗАПИСИ на блоки IC19 и IC20, По таблице распределения памяти видно, что адресное пространство IC19 и IC2 0 (ОЗУ2) есть 14OO-17FF. Установить адресные переключатели таким образом, чтобы на линии адресной шины ВАо-ВА 15 был подан адрес 140016. При этом сигнал SELs с вывода 6 IC1 2 принимает логический уро­ вень О. Сигнал SEL5 подается также на, выводы 10 и 13 IC12. 6. Теп~рь в системе продолжает поддерживаться сигнал BMEMW. При логическом уровне О сигнала на выводах 13 и 12 IC,2 на выводе 11 JC 12 будет также сигнал логического уров­ ня о. 7. Проверить наличие логического уровня О на выводе 10 IC19 и IC20. Это рабочий режим для разрешения записи в ОЗУ2.
Отладка технических средств систем1,1 • 309 8. Проверить наличие логического уровня 1 на выводе 10 IC11 и IС1в, Это нерабочий режим для разрешения записи в ОЗУ1. Если на шаге 7 или 8 обнаруживается ошибка, про­ верить снова информационный канал от ОЗУ к УТСС, чтобы локализовать неисправность в этом канале. Таким образом, осуществлена проверка правильности про- •хождения сигнала ЗАПИСЬ в ОЗУ1 и ОЗУ2 системы. Прове­ рим правильность прохождения сигнал.а по линии выбора блока ОЗУ1 и ОЗУ2 . Эта линия должна находиться в а~ктивиом со• стоянии (уровень О) при чтении данных из ОЗУ или при их за­ писи в ОЗУ. Обсудим процедуру проверки линии выбора блока ОЗУ. Из рис. 10.7 видно, что устройство IC1 3 является вентилем И типа 74LS08. Линия выбора блока соединяется с выходом одного из четырех вентилей, скомпонованных в устройстве 74LS08. IC17 и IC1 8 п-одсоединены к выводу 3 IС1з, а IC19 и IC20 - к выводу 6 IC1 3. Отметим, что одним входом И вентилей является сиг­ нал РАЗРЕШЕНИЕ ЗАПИСИ в ОЗУ 1 или ОЗУ2, т. е. с выводом 2 IC1 3 связан сигнал РАЗРЕШЕНИЕ ЗАПИСИ в ОЗУ 1 , а с вы­ водом 5 IС1з - такой же сигнал ОЗУ2. Необходимо проверить, что при выдаче сигнала РАЗРЕШЕ­ НИЕ ЗАПИСИ в ОЗУ1 или ОЗУ2 системы активизируется тре­ буемая линия выбора блока ОЗУ. Этот факт позволяет осу-, ществить проверку одного режима выбора блока точно таким же образом, как это де·ла-.1юсь в случае проверки сигнала раз­ решения записи в ОЗУ1 или ОЗУ2. Вначале система устанавли­ вается в соответствующий режим для проверки сигнала разре­ шения записи в ОЗУ1 , как это описывалось ранее, и определяется наличие логического уровня сигнала О соответственно вы­ бору блока ОЗУ. Далее система устанавливается в режим по­ дачи сигнала разрешения записи в ОЗУ2, как описано выше. Затем проверяется наличие логического уровня О сигнала вы~­ бора блока ОЗУ2. Сигнал выбора блока ОЗУ 1 и ОЗУ2 также· должен иметь ло­ гический уровень О при чтении данных из ОЗУ1 и ОЗУ2. Это озиачает необходимость перевода системы в соответствующий режим, при котором выполнено условие ЧТЕНИЕ из ОЗУ 1 или ОЗУ2. Для этого можно использовать следующую процедуру: 1. Установить системный адрес (ВА0-ВА1 5) 1000. В резуль­ тате сигнал SEL4 (вывод 5 IC 11 ) имеет логический уровень О. Этот сигнал осуществляет выбор ОЗУ 1 • 2. Установить управляющие разряды УТСС в состояние, со­ ответствующее ЧТЕНИЮ из памяти.· Это осуществляется путем установки сигнала IO/M на логический уровень О. Сигнал • RD принимает значение логического О, а сигнал WR-логиче-
310 rлава 10 екай 1. При этих условиях сигнал BMEMR должен иметь уро­ вень логического О. При одновременном существовании сигналов BMEMR и SEL4 уровня логического О вывод 3 IC12 будет соответствовать также уровню логического О, что является дJJя системы услови­ ем чтения из ОЗУ1. 3. Проверить наличие логического уровня О сигнала выбо­ ра блока на выводе. 8 IC1 7 и IC1 8• Отметим, что сигнал выбора блока принимает значение логического уровня О, поскольку на вывод 1 IС1з подается уровень О вследствие наличия логиче­ ского уровня О на выводе 3 IC12- •4. Проверить наличие логического уровня 1 сигнала выбора блока ОЗУ2 ·"(нерабочий режим). Если на шаге 3 или 4 обна­ руживается ошибка, необходимо локализовать неисправность в системе. 5. Проверить подачу сигнала выбора блока ОЗУ2 при вы­ полнении ЧТЕНИЯ из памяти для ОЗУ2. С этой целью устано­ вить адрес 1400 на адресной шине системы (ВА0-ВА1 5 ) с по­ мощью УТСС. 6. Система должна быть переведена в режим ЧТЕНИЕ из памяти. Отметим, что при нахождении системы в данном режи- ме и выдаче сигнала SEL5 ( с помощью адресной шины) на вы­ воде 8 IC12 поддерживается логический уровень О. В результате на вывод 4 IС1з также подается логический уровень О, что в свою очередь приводит к поддержанию логического -уроцня О· на выводе 6 IC1 3• Проверить нал}Jчи~ логического уровня О входного сигнала выбора блока ОЗУ2. 7. Проверить наличие логического уровня 1 сигнала выбора блока ОЗУ1 (нерабочее состояние). Если на шаге 6 •или 7 об­ t~аруживается ошибка, необходимо определить местоположение неисправности. Допустим, что описанные выше проверки подтвердили- пра­ вильность работы технических средств, что определяет правиль­ ность соединения адресной шины, а также шины данных с ОЗУ1 и ОЗУ2. Кроме того, шина управления системы осущест­ вляет правильный выбор ОЗУ1 и ОЗУ2 при обращ~нии к памя­ ти для чтения или записи. Наконец, осталось проверить правильность подачи питания на ОЗУ1 и -ОЗУ2. При работе статического ОЗУ 2114 использу­ ется лишь источник +5 В, поэтому необходимо проверить на­ личие уровня напряжения +5 В на выводе 18 IC1 7 , IC, 8 , IC19 и IC20 • Показав, что источник питания функционирует удовлет­ ворительно, мы тем самым завершаем проверку правильности интерфейса ПЗУ и ОЗУ с микропроцессорной системой на базе устройства 8085, имеющей архитектуру с 3 шинами.
Отладка технических средств систем1,1 311 f0.10. Отnадка интерфейса кnавнwноrо: nynыa Рассмотрим отладку интерфейса клавишного ,пульта системы, поскольку мы используем тот жеJ пульт, который был описан в гл. 4. \Подробное обсуждение отладки этого интерфейса было проведено в гл. 5, поэтому повторение описанной там процеду­ ры излишне. Если у читателя возникнут какие-либо вопросы в этоl'd смысле, он сможет обратиться к гл. 5. В этой главе от­ ладка интерфейса клавишного пульта обсуждалась для систе­ мы, создаваемой на базе микропроцессора Z80. В настоящей главе рассматривается система на основе микропроцессора 8085. Однако мы достаточно подробно изучили УТСС для мик­ ропроцессора 8085, чтобы провести такую же последователь­ ность проверок, которая была описана в гл. 5 в отношении от­ ладки клавишного пульта системы на базе Z80. 10.11. Отnадка интерфейса устройства отображения· Подробное описание отладки интерфейса устройства отображе­ ния было приведено в гл. 5. В настоящей главе рассматривает­ ся точно такое же устройство отображения, что и 1В гл. 4. По­ этому, если у читателя имеются какие-либо неясности относи­ тельно отладки интерфейса данного устройства, он может. об­ ратиться к гл. 5, где соответствующие вопросы обсуждаются достаточно подробно ...Изл_ожение материала в гл. 5 ориенти­ ровано на микропроцессор Z80. Однако в гл. 10 даются обшир­ ные сведения по использованию УТСС для микропроцессора 8085, так что читатель в состоянии осуществить необходимые проверки для микропроцессора 8085 по аналогии с теми, кото­ рые описаны в гл. 5 для микропроцессора Z80. 10.12. Отnадка схем nодкnючения ППЗУ к системе Рассмотрим· теперь отладку схем ввода-вывода, предназначен­ ных для подключения программируемо'Го ППЗУ к системе. Эти схемы представлеиы на рис. 110.12. При обсуждении интерфейса с программируемым ППЗУ для рассматриваемой системы не­ ·обходимо выделить пять основных функций технических средств системы, а именно: 1. Выдача адреса на программируемое ППЗУ. 2. Ввод и вывод данных ППЗУ; _ 3 . Подача питания на ППЗУ. 4. Подача импульса программирования на ППЗУ. 5. Выдача импульса выбора блока/РАЗРЕШЕНИЕ ЗАПИ­ СИ. Последние две функции описаны в отдельных разд.елах на­ стоящей главы. Рассмотрим выдачу адреса на программируе- мое ППЗУ. _.
В А з ~ ~ В А 2 . B A J . В А о B D 1 B D o S E L . o 7 4 L S 3 2 1 ) ' ) 3 1 i С з ~ B I O W - - - " B I O R I С з - - - " B I O W R 1 - R 8 О , 2 5 В т ж 5 0 J о R a l 1 4 - 7 к О м + 5 ! С 5 D _ E N A 7 4 L S 7 4 P D o 9 п ю : Ч , о 5 1 1 4 1 3 П П З У э 2 7 0 8 1 _ ! ! _ О - д а н н ы е в П П З У ! - д а н н ы е н з П П З У ' = - ~ з : ~ . . ~ е , ~ ~ Q 1 2 1 : s : : § ' 8 . 2 ! Р А 7 1 Р А а 2 З I Р А 2 2 2 0 C S / W E 7 4 L S 3 7 4 - 1 - 1 2 В + 2 6 В S E l . 3 1 1 7 4 L S 3 2 S E 4 ~ D L B D o ' ' 4 , с , , в о , D 2 Г s J C 4 В \ О W Р и с . 1 0 . 1 2 . П о л н а я с х е м а ц е п и в в о д а - в ы в о д а , и с п о л ь з у е м о й д л я п р о г р а м м и р о в а н и я П П З У .
Отладка технических средств системь1 313 Из схемы рис. 10.12 видно, что выдача адреса на ППЗУ осу­ ществляется посредством двух двоичных фиксаторов - IC 9 и IC 10• Устройство JCg есть 8-раз_рядный фиксатор типа 74LS374, а IC 1o - 4-разрядный фиксатор типа 74LS 175. Отметим, что входом для 74LS374 являются линии BD 0-BD7, а для 74LS175-линии BD 0-BD1. Это говорит о возможности пере- 74LS42 Вд7 12 ВА6 13 IC1 ВА5 14 ВА4 15 "З,, 4 6 ~ ВА3 12 IC4 5 SEL~ ВА2 13 4 SELз 3_ SEL 2 ВА1 14 2 SEL 1 ВА0 15 sa; IC2 Рис. 10.13. Часть схемы рис. 10.12, генерирующая код выбора. ' дачи !О-разрядного адреса ППЗУ, что согласуется с потреб- ностями ППЗУ 1 КХ8, для которого необходимо 10 адресных линий. Устройство 74LS374 JCg формирует младший байт ад­ реса ППЗУ, а устройство 74LS175-два старших разряда ад­ реса. Отметим, что синхронизация В-разрядного фиксатора 74LS374 осуществляется с вывода 11 IC3• Сигнал на этом вы­ воде имеет логический уровень О, если одновременно имеют уровень О сигналы на выводах 12 (SEL3) и 13 (BIOW). Такие условия создаются, когда адресная шина переводит сигнал SEL~ к уровню логического О, а шина управления генерирует буферированный сигнал записи при вводе-выводе (BIOW). Рассмотрим генерирование сигнала SEL3 с помощью техниче­ ских средств. 21-814
314 fлава 10 На рис. 10.13, который является частью рис. 10.12, показа­ ны схе~ы дешифрирования выбора для всех выходных портов~ приведенных на схеме рис. 10.12 . Отметим, что адресные линии ВА4 и ВА1 подсоединяются к устройству 74LS42 IC1. Если со­ стояние ВА..,-ВА1 соответствует значению 3, то сигнал на вы­ воде 4 IC 1 соответствует логическому уровню О. При этом на вывод 10 IC.., подается урове}fь О, что отпирает д,анный вентиль. или. Линии младших разрядов адреса ВА0-ВА2 подсоединены к устройству 74LS42 IC2, а линия ВА3 - к выводу 9 IC..,. Если ICz ВынодNol 2 3 4 5 s Код ныбора Адрес f!1 111 '"О" зо,s 1о1111 '"!" з1 16 l1о1 '"2·· 3216 1 о .. з•· зз,s 1 1 l0 1 "4·• 3416 1 11 О,• "5.'' ЗS1е Рис. 10.14 . ,Тlоr,ические условия для адресной шины при установке требуемоr() кода ныбора. на ВАз подается логический уровень 1, на вывод 8 JC4 посту­ пает сигнал логического уровня О. При этом условии на вывод 12 IC2 также поступает сигнал уровня О. В результате откры­ вается IC2. Три линии младших разрядов адреса ВА0-ВА2 теперr, оп- ределяют, на какую из линий 13ыбора SEL0-SEL5 подается логический уровень О. Это означает, что для адресной шины си- стемы все сигналы ·sELo-SEL5 соответствуют значениям 3015~ 3115, 321в, 331в, 341в, 3515. Состояния адресной шины и соответст­ вующие коды выбора приведены на рис. 10.14 . Код выбора для каждой линии выбора дан ,в кавычках. Снова обращаясь к рис. 10.12, замечаем, что данные запи­ сываются в JCg, если сигнал SEL3 и буферированный сигнал записи при вводе-выводе одновременно соответствуют уровню логического О. Поэтому для проверки работы технических средств для данного тракта можно рекомендовать следующее (при необходимости можно обратиться к приведенным ранее процедурам): 1. Установить систему таким обр·азом, чтобы сигнал SEL& имел логический уровень О в зависимости от состояния линий адресной шины системы ВА0-ВА1. 2. Установить управляющие переключатели УТСС так, что- бы перевести систему в р,ежим, при котором сигнал BIOW ак­ тивен.
Отладка технических средств система.~ 315 3. Установить шину уцр,авления в состояние, при котором сигнал BIOW неактивен. 4. При переводе сигнала B10W в нерабочее состояние дан­ ные с шины данных записываются в В-разрядный фиксатор ICg. Теперь, проверяя с помощью логического пробника уровни на­ пряжения на выводах 1, 2, 3, 4, 5, 6, 7 и 8 панели программиру­ ,емого ППЗУ, можно определить, что данные со входов JCg пе­ реданы на выходы JCg. Затем необходимо проверить правильность функционирова­ ния устройства 74LS 175 IC1o в условиях системы. С этой целью можно использовать следующую процедуру: 5. Перевести адресные линии ВА0 -ВА7 в логическое состоя­ ние, при котором сигнал SEL4 имеет активный уровень О. 6. Установить линии данных BD 0-BD1 на входах устройст­ sа 74LS 175 в состояние логическо,й 1. 7. Установить систему в состояние. в котором является не­ рабочим буферированный сигнал ЗАПИСЬ при вводе-выводе. В этом случае вывод 9 IC 10 должен быть в состоянии логиче- ского о. • 8. Теперь буферированный сигнал записи при вводе-выводе s систему не действует. 9. Проверить, что данные с выводов 4 и 5 устройства 74LS175 переданы на выводы 2 и 7 этого устройства. Это мож­ но сделать путем проверки выводов 22 и 23 панели програм­ мируемого ППЗУ. При обнаружении ошибки на шаге 9 необхо­ димо последовательно шаг за шагом проследить всю процеду­ ру с целью локализации ошибки в аппаратуре. Таким образом реализуется общая функция системы и про­ веряется правильность ее выполнения. При положительном ре­ зультате проверки можно перейти к следующему шагу процеду­ . ры. В противном случае осуществляется возврат на шаг назад. Это позволит определить местоположение ошибки. Теперь доказано, что адрес может быть передан в ППЗУ с tПомощью технических средств. Далее проверим возможность записи с помощью микропроцессора данных в ППЗУ и возмож­ ность чтения данных из ППЗУ посредством микропроцессора и 'Гехнических средств системы. Отметим, что в процессе программирования ППЗУ микро­ процессор в некоторые промежутки времени осуществляет ввод данных из ППЗУ ( чтение данных из ППЗУ). А в остальное время он выводит данные в ППЗУ (при генерации данных для программирования ППЗУ). Необходимо проверитр, что в обоих <:лучаях - при вводе и выводе данных ППЗУ - их прохожде­ ние в системе обеспечивается электрически. Вначале рассмотрим, каким образом осуществляется разре­ шение ввода в ППЗУ ·данных из микропроцессора. Данная 2,1•
316 fлава 10 функция в основном реализуется посредств-ОМ' IC5 рис. 10.12 . Тракт ввода данных в ППЗУ с шины данных системы показан на рис. 10.15. Рисунок 10.15 является частью рис. 10..12 . Отме- SE L0 В!ОW sIL; BIOR SEL2 B!DW 74lSЭ2 3 \С3 BD1 во, BD3 во. ВО5 BD6 ВО, ВО0 вп, во, 803 BD4 ВО5 R8 417 кОм +5 4 8 13 14 1,7 5 9 11' PD0 9 PD1 PD, 1 5 10 PD2 PD2 6 11 PD3 PD3 9 13 РО4 PD4 12 1r, 14 ППЗУ 15 РО5 PD5 2708 15 16 P[J,, РОБ 16 РО7 PD7 17 PD1 4 6 РО2 10, PD3 !Сб PD4 12 РО5 1------' ' " " () = данжые в ППЗУ; l = данные из ППЗУ Рис. 10.15. Часть схемы рис. 10.12, определяющая тракт ввода-вывода даи­ ных для ППЗУ. тим, что вывод 1 JC5 подсоединен к выводу 5 фиксатора 74LS74. Если вывод 1 IC5 находится в состоянии логического О, то раз.­ решен ввод данных с выхода IC 5 в ППЗУ. Ввод этих данных запрещен, если ППЗУ выдает данные в систему. Это предот­ вращает конфликты за обладание шиной данных :между дан-
Отладка технических средств системы 317 ными, выводимыми из ППЗУ, и данными, генерируемыми IC5• Прежде чем записывать данные в ППЗУ необходимо убе• диться, что IC 5 открыт посредством сигнала с вывода 1. Это означает, что следует записать логический О в фиксатор 74LS74 (IC8), что осуществляется с помощью разряда Do шины дан­ ных. Тактовые импульсы подаются на фиксатор с вывода 8 IC3 • Если сигнал SEL2, а также буферированный сигнал записи при вводе-выводе установлены и линия BD 0 шины данных имеет уровень О, то уровень сигнала на выводе 1 IC 5 соответствует логическому О. Допустим, что на выводе 1 IC 5 поддерживается уровень О. Отметим, что вход данных В-разрядного фиксатора 74LS374 (ICs) соединяется с шиной данных (B.D 0-BD7). Тем самым данные для программирования ППЗУ поступают на шину дан­ ных. После подачи данных на шину данных выполняется опе­ рация записи в ICs. По этой операции данные передаются с шины данных на выход ICs, т. е. осуществляется передача дан­ ных на программируемое ППЗУ. Процедура проверки функционирования I С5 1. Установить разряды адреса ВА0-ВА7 соответственно ра­ бочему состоянию SEL0 • 2. Подать на линии ВD{)-ВП 7 данные, предназначенные для цередачи на выход ICs, 3. С помощью УТСС установить шину управления системы · в состояние, в котqром буферированный сигнал записи при вво­ де-выводе принимает логический уровень О. 4. Установить на линии управления состояние, соответству­ ющее рабочему уровню сигнала BIOW. В этом случае данные с шины данных передаются на выходы IC5• 5. Проверим, что данные на выходах IC5 соответствуют ис­ ходным. В случае искажения данных на выходах ICs можно последовательно шаг за шагом с помощью УТСС пройти про­ цедуру записи данных с целью локализации ошибки. Рассмотрим теперь технику проверки возможности чтения микропроцессором данных из ППЗУ. Необходимость в этой опе­ рации возникает при установлении правильности записанных в ППЗУ данных. Для передачи данных из ППЗУ, в микропро­ цессор следует заблокировать выводы PD0-PD7 IC5. Вспомним, что для осуществления блокировки IC5 необхо­ димо подать уровень логической 1 на вывод 1. Это означает вы­ полнение операции ЗАПИСИ при вводе-выводе в IC8 при сиг­ нале логической 1 на линии BDo шины данных, что приводит к подаче логической 1 на IC 5 и блокировке устройства 74LS374. В этом случае линии РD0 -РП7 могут управляться лишь с вы• водов программируемого ППЗУ. •
318 ,Глава 10 -После выполнения операции записи в IC 8 и блокировки IC5 можно реализовать следующие действия. Система устанавлива­ ется в режим чтения- из IC 6 и IC1. Затем осуществляется пооче­ редно заземление выходных линий ППЗУ и проверка наличия сигнала уровня логического О на соответствующих светоизлу­ чающих диодах. Процедура проверки уровня поrическоrо О на УТСС 1. Установить адресную шину системы в режим, при кото­ ром SEL1 в рабочем состоянии. 2. У становить шину управления системы так, чтобы буфе­ рированный сиглал чтения при вводе-выводе имел рабочий уро­ вень. При этом на вывод 6 IC3 подается уровень логического О, а устройства 74LS367 и IC1 разблокируются. При данных ус­ ловиях все светоизлучающие диоды УТСС зажигаются. В этом елучае, конечно, действует предположение, что ППЗУ не под­ ключено к панели программирования, в противном случае све­ тоизлучающие диоды отображали бы данные, хранящиеся в устройстве. 3. Заземлить вывод 9 ППЗУ с помощью проводника, что со­ ответствует логической 1. При этом разряд BD0 линии данных принимает значение логического О, что приводит к подаче уров­ ня логического О на светоизлучающий диод Do, 4. Поочередно подать уровень логического О на выводы 10, 11, 13, 14, 15, 16 и 17 и проверить зажигание соответствующих светоизлучающих диодов УТСС. Таким путем осуществляется быстрая визуальная проверка электрического тракта от ППЗУ к микропроцессору 8085. Теперь проверка правильности выдачи адреса на ППЗУ и функционирования шины данных завершена. Осталось опреде­ лить правильность подачи питания на ППЗУ. Это может быть сделано путем контроля уровней напряжения на выводах 119, 24 и 21 с_ помощью вольтметра или осциллографа. Эти уровни должны быть равны соответственно 12 Б, 5 В и - 5 В. Убедив­ шись в правильности подачи таких уровней напряжения, перей­ дем к проверке следующего блока ППЗУ. 10.13. Проверка схем формирования импульса проrраммирования Проверим правильность функционироващrя схем, обеспечиваю­ щих уровни импульса программирования 26 В и О В. Рассмат­ риваемые схемы показаны на рис. 10.16, который является частью рис. 10.12. В гл. 8 было описано функционирование схем: рис. 10.16 с точки зрения прохождения электрических сигна­ лов. Рассмотрим, каким образом микропроцессор управляет данными схемами. Из рис. 10.16 видно, что входы устройства
Отn11дк11 технических средств системы 319 7406 IC12 являются выходами фиксатора IСн. Он имеет всего четыре выхода. Выводы 5 и 9 (входы устройства 7406) связа- ные с выходами Q и Q одного разряда фиксатора 74LS175. Сиг­ налы на этих выходах генерируются по сигналу входа D2 фик­ сатора 74LS175. Последний соединяется с линией BD1 шины данных. Это означает, что при передаче разряда B,D 1 шины дан- ППЗУ 2708 18 20 ~ ~roсе о о. ~,,_ ro с.,... о о. ~ u ~>. ~ R, 100 ::;: L______.___----г---,.---'=---ос ::s: 0,01 те, Мl(Ф -- 74LS17o 3о, 4 1с 11 7 BD1 о, D, 5 6 о, Рис.· 10.16. Часть схемы рис. 10.12, опреде.1яющая технические средства управления импульсом программирования ППЗУ. ных в фиксатор 74LS175 воздействие передается на выходы Q2иQ2. Рассмотрим, каким образом данные с шины передаются в фиксатор IC 11 • При выполнении системой операции выдачи ко- да выбора SEL5 данные с шины передаются в фиксатор IC11. Выбор SEL5 осуществляется, если адресная шина (ВА0-ВА1) находится в логическом состоянии 35 16 . Для проверки функцио­ нирования импульса программирования передается сигнал уров­ ня логической 1 по линии шины данных BD 1 на выход Q2 IC11. При этих условиях импульс программирования ППЗУ на выво­ де 18 имеет уровень +26 В. Процедура записи 1 на вход D 2 1С11 1. Установить адресную шину системы (ВАо-ВА7 ) в состо­ яние, в котором осуществляется подача сигнала SEL5• 2. Подать уровень 1 на линию BD 1 шины данных.
320 rлава 10 3. Установить управляющие разряды УТСС в состояние, в котором осуществляется подача сигнала BIOW. 4. Установить шину управления системы такцм образом, что­ бы буферированный сигнал записи BIOW не подавался. В этом случае данные с линии BD 1 (логическая 1) вводятся в фикса­ тор 74LS175. 5. Импульс программирования на выводе 18 ППЗУ теперь имеет уровень +26 В. Если это не так, можно последовательно пройти по схеме и точно установить, почему импульс програм­ мирования не достигает указанного уровня при подаче 1 на вход D2 IC11. 6. Запись логического О на выход Q2 IC 11 осуществляется точно так же, 15ак и запись логической 1, за исключением того, что во время операции записи на соответствующей линии шины данных поддерживается уровень логического О. После завер­ шения операции записи импульс программирования на выводе 18 ППЗУ должен иметь уровень логического О. Если на шагах 5 и 6 обнаружена ошибка, необходимо определить ее причину путем пошаговой процедуры статических проверок соответот­ вующих схем. 10.14 . Проверка функционирования схем ВЫБОРА БЛОК и РАЗРЕШЕНИЯ ЗАПИСИ Рассмотрим теперь схемы подачи уровня напряжения +-12 В под управлением микропроцессора на линию ВЫБОР А БЛО­ КА РАЗРЕШЕНИЯ ЗАПИСИ (вывод 20 ППЗУ). На рис. 10.17, являющемся частью рис. 10.12, приведена схема управления импульсом ВЫБОРА БЛОКА РАЗРЕШЕНИЯ ЗАПИСИ, ко­ торый подается на ППЗУ. Эта схема функционирует подобно схеме формирования импульса программирования, описанной ранее. Основное различие между схемами ВЫБОРА БЛОКА РАЗ­ РЕШЕНИЯ ЗАПИСИ и формирования импульса программиро- вания заключается в том, что они управляются раз- личными разрядами шины данных. Схемы ВЫБОРА БЛОКА РАЗРЕШЕНИЯ ЗАПИСИ управляются разрядом BDo шины данных. Таким образом, при записи 1 на выход Q,1 уст­ ройства 74LS 175 IC 1 сигнал выбора блока разрешения записи должен достичь уровня +12 В с помощью транзистора Т,. При записи О на выход Q1 уровень напряжения данного сигнала ста­ новится О В. Функционирование схем выбора блока разреше­ ния записи может быть проверено путем выполнения операции ЗАПИСИ при установке логической 1 в разряде BDo шины дан­ ных. При этом на входе линии выбора блока. разрешения записи
Отладка технических средств системы 321 устанавливается уровень напряжения +12 В. Далее выполня­ ется операция записи при установке логического О в разряде BD0 шины данных. В результате на рассматриваемую линию подается уровень напряжения О В. Если при выполнении ка­ кой-либо из указанных операций на выходе транзистора Т1 полу­ чается неверный сигнал, то, прежде чем двигаться дальше, не­ обходимо локализовать и устранить неисправность в схеме. .) ППЗУ 2708 20 CSIWE Rз + 1211 IC,2 100 4 74LS175 2 4 3 о, IC 11 7 02 02 во, i 6 Рис. 10.17 . Часть схемы рис. 10.12, определяющая технические средства уп­ равления импульсом CS/WE ППЗУ. По мере углубления в детали технических средств строгие процедуры проверки системы, описанные в· начале главы, уп­ рощаются. Это вызвано тем, что наши знания о сущности пе­ ревода системы в режим записи или режим чтения посредст­ вом УТСС расширяются. При упоминании о переводе системы в какой-либо частный режим предполагаем, что читатель зна­ ет, каким образом этот режим реализуется посредством УТСС. Если же это не так, необходимо ознакомиться с ра­ нее описанными процедурами перевода системы в режимы за­ писи и чтения при операциях с памятью или с устройствами ввода-вывода посредством УТСС.
322 rлава 10 По sавершении проверки технических средств формирования имnульса программирования и выбора блока разрешения за­ лиси устанавливается факт правильной работы схем ввода-вы­ rвода ППЗУ в рамках всей системы. Проведение полного объема ·тестирования с использованием лишь УТСС и устройства конт- 0роля уровня напряжения является большим достижением. Прп изложении материала основной упор делается на точное пони­ мание особенностей протекания коммуникационных процесса• в условиях использования конкретного микропроцессора, т. е . .для того чтобы эффективно использовать УТСС при настройке технических среJJ.ств, необходимо знать, каким образом микро­ процессор 8085 или любой другой выполняет с устройствами ввода-вывода или с памятью операции чтения и записи. f, Убедившись в правильности функционирования технических ,средств системы, мы можем подключить микропроцессор и за­ дать системе рабочий режим. При этом мы уверены, что и те­ ,перь система будет работать корректно. Подчеркнем еще раз, '.!то УТСС не проверяет ошибки тактирования. Однако личный опыт автора позволяет утверждать, что если проверка с по­ мощью УТСС выявила правильную работу технических средств, то и при нормальном быстродействии системы с установленным микропроцессором с большой вероятностью это оборудование будет функционировать безошибочно. Последнее доказано на работе с микропр,оцессорами 8080, 8085, Z80 и 6800 сис!емы, описанной в гл. 8. Причем если возникает намерение использо­ вать УТСС для настройки оборудования на базе микропроцес­ сора 6800, то необходимо создать специальное устройство тес­ тирования статических сигналов, схема которого приведена в приложении. За-т~м; испощ,зуя это устройство, реализуется полная проце- .. дура проверки, описанная в данной главе. Причем индикация операции ЧТЕНИЯ из памяти должна быть соnмсстимой с со­ ответствующей операцией микропроцессора 6800. При индика­ ции операций ЗАПИСИ и ЧТЕНИЯ с устройствами ввода-вы­ вода или операции ЗАПИСИ в память УТСС переводится в тот же режим, в котором эти операции выполняет микропроцессор 6800;' В этом заключаются различия между УТСС, используе­ мьrми для различных микропроцессоров. Используемое тести­ рующее устройство должно быть совместимым с микропроцес­ сором, н:оторый оно заменяет в системе, а\ также оно должно 'эМулировать этот микропроцессор. Это обобщенное свойство УТСС, позволяющее модифицировать существующее УТСС для проверки технических средств любой базовой микропроцессор­ ной сист·емы вне зависимости от того, какой из микропроцессо­ ров' 8080, 8085, Z80, 6800 (либо какой-нибудь другой, менее по,. пулярный) используется.
Отладка технических средств системы. 323 10.15. Выводы В книге была описана последовательность проектирования тех• нических средств и создания программного обеспечения систе­ мы, в ·которой одни и те же функции могут быть реализованы с помощью четырех различных микропроцессоров. Их выбор, определялся тем, что присущие им общие архитектурные осО•· бенности широко используются в устройствах, применяемых на_ практике. Также была изложена техника построения интерфейса уст-­ ройств ввода-вывода и памяти с этими микропроцессорами (при общей или специаJiьной организации ввода-вывода). Уст­ ройства ввода-вывода, на примере которых демонстрировалось построение интерфейса с системой - клавишный пульт и уст• ройство отображения, - отыосились к числу широко распростра• ненных, а выбор их основывался на стремлении проиллюстри­ ровать общую концепцию построения интерфейса ввода-выво" да, отвлекаясь от специфических свойств отдельных периферийных устройств, которые могут использоваться лишь с определенным микропроцессором, определенной микропроцес­ сорной системой либо в ограниченной области применения. Использование специальных периферийных устройств с дан• ным микропроцессором способствует снижению числа выводов системы. Необходимо знать периферийные устройства, которые могут работать с МIИ{ропроцессором, используемым в системе, Однако с изучением концепции построения интерфейса уст• ройств ввода-вывода облегчается понимание технических дан" ных и спецификаций отдельных периферийных устройств. Эта объясняется тем, что по мере ознакомления с используемым пе• риферийным устройством осмысливается значение его конкрет• ных характеристик. Была изложена техника проверки, или отладки техни~еских средств системы, именуемая тестированием посредством:· ста.~ тических сигналов. Сущест13уют и другие технические приемы проверки технических средств системы, однаl\о тестирование посредством статических сигналов отличается крайней просто­ той, поскольку опирается на эна нис и11жснср110-тсх11ическим персоналом особенностей взаимосвязи микропроцессора с па, мятью и устройствами ввода-вывода. Такая ·информация необ­ ходима при проектировании использования • устройств ввода,. вывода и памяти в микропроцессорной системе. Кроме того, ис• пользование _устройства тестирования статических сиrналоs н~ связано с приобретением каких-либо дополнительных знаний.... Остается надеяться, что ознакомление с настоящей. кщп;оl обл~.rчит для читателя использовщше, отладку а цроектhррва~ uие .систем на. базе 8-р.азрядн,ы:х, микропроцессоров..
Приложение 1-lаэначенме выводов корпуса микропроцессора INTEL 8080д д,о 1 40 д" , GNO 2 39 д,. о. 3 38 05 4 37 о. 5 36 о, 6 35 о, 7 34 д, о, 8 INTEL 33 о, 9 32 д, о. 10 8080А 31 11⁄4 -5V 11 30 RESEТ 12 29 А1 HOLD 13 28 +12V INT 14 27 Az ,2 15 l6 А1 16 25 до 17 24 WAIT WR 18 23 READY ~YNC 19 22 ,1 +5V 20 21 HLDA Рис. П.1. Назначение выводов микропроцессора Intel 8080А. А 15 -А.о (выходы с тремя устойчивыми состояниями) Выходы А 15-А0 подключаются к шине данных, по которым адрес по­ дается в память (допускается использование памяти объемом в 64К В-разряд­ ных слов) или на устройство ввода-вывода. Может быть использовано до 256 устройств ввода и до 256 устройств вывода. А.о - младший разряд адреса. D7 - Di, (входы-выходы с трем и устойчивыми состояниями) К выводам D1 - Do подключается шина данных, по которой обеспечи­ вается двунаправленная передача команд и данных между ЦП, nамятью и устройствами ввода-вывода. Кроме того, в начале каждого машинного цикла микропроцессор 8080А выводнт иа шину данных слово состояния. Do - млад• ший разряд слова, передаваемого по шине данных. SYNC (выход) Синхронизирующий сигнал SYNC отмечает начало каждого машинного цикла. DBIN (выхо.в:} Сигнал DBIN информирует внешние схемы о том, что шина данных ра• ботает в режиме ввода. Этот сигнал должен испольэоватьси для разрешения
Приложение 325 1. ввода даюl!ЬIХ в микропроцессор 8080А из п.амяги или устройств ввода• вывода. ~ EADY (вход) Сигнал READY указывает микропроцессору 8080А, что на шину данных :поступили данные нз памяти или .от внешних устройств. Этот сигнал исполь­ зуется для сннхроннзацттн ЦП при работе его с медленнодействующнмн па­ мятью или устройствами ввода-вывода. Микропроцессор 8080А после выдачи .адреса будет находиться в состоянии ожидания (э1ому состоянию соответ­ ствует низкий уровень сигнала на линии READY) до тех пор, пока не по• сту.пит сигнал READY. Кроме того, этот вход можно использовать для орга­ низации пошагового режима .рабохы микропроцессора. WAIТ (11ыход) Сигнал WAIТ является сигналом подтверждения того, что ЦП находит­ ся в состоянии ожидания. WR (выход) Сигнал WR используется для управления прн выполнении операции за- 11иси в память или при выводе данных на внешние устройства. До тех пор пока сигнал WR имеет активно низкий уровень (\VR=0), данные сохраняются ка шине данных. ~ HOLD (вход) Сигнал HOLD является сигналом запроса иа перевод ЦП в состояни-~ «Блокировка». В состоянии «БJiокировка» внешнее устройство получает воз­ можность управлять адресной шиной и шиной данных. Переход в состояние «<Блокировка» осуществляется после окончания текущего машинного цикла 11ри выполнении следующих условий: - ЦП находится в состоянии HAL Т. - ЦП находится в состоянии Т2 ил11 TW и сигнал READY активизиро- 11ан. При переходе в состояние «Блокировка» адресная ши:на (А 15 -А0) и шина данных (D7 - Dry) будут переведены в состояние высокого сопротив­ ления. ЦП выдаст на вывод HLDA сигнал пО.Цтверждення перехода в со­ стояние «Блокировка»: flLDA (выход) Сигнал HLDA появляется II ответ на сиги.ал HOL.D и указывает, что ,адреснан шина и шина данных перешли IJ состояние высокого сопротивления. Сигнал HLDA вырабатывается при следующих условиях: - ЦП находится в состоянии ТЗ и производится ввод данных из памяти или ,из устройства ввода. - Наступил период в последовательности тактовых нмпу,11ьсов, сл'~дую­ щий за состоянием ТЗ прн выполнении операции записи в память или опера­ ции вывода на внешние устройства. В любом случае сигнал HLDA появляет­ ся после прохождения переднего фронта импульса fl l, а переход в состояние 11ысокого сопротивления .происходит после прохождения переднего фронта импуль.са 1112. JNTE (выход) Состояние этого выхода определяется содержимым триггера разрешения mнешнего прерывания. Состояние этого триггера может определяться посред• ,ством команды «Разрешение прерывания» и команды «Запрещение прерыва­ •ния». К.огда этот триггер «сброшен», ЦП не реагирует на прервваняя. Он :звтоматически сбрасывается (последующие прерывания запрещаются) в со­ стоянии TI цикла команды, и, кроме того, он сбрасывается при поступлеиях сиrиа.па RESET. INT (вход) Сигнал :uпроса -ка прерывание ~юспр1tнямается ЦП либо в конце цикла аыполнеиия текущей команды, .пябо в состоянии HOLD. Есл11 ЦП иахо,1111'С'а
С ! 1 6 0 1 1 1 а ' l е П и е V I L C V 1 н с V x L V х н V o L V о н I D D I c c I в в l x L J C L J D L I P L . Т а б л и ц а 1 Х а р а к т е р и с т и к и п о п : > с т о я н н о м у т о к у Т л = О - 7 0 ° С , V u D = + I 2 В ± 5 % , V c c = = + 5 В ± 5 % , V в в = - 5 В ± 5 % , V 1 1 s ' " " 0 В , e c J I И н е о г о в о р е н о п р о т и в н о е З н а ч е н и е П а р а м е , - р Е д и н и ц а У с л о в и я и с п ы т а н и й м и и и м а л ь - 1 1 м а к с и м а л ъ - и з м е р е н и я и о е с р е д н е е . н о е Н и з к и й у р о в е н ь т а к т о в о г о н а - V . c ; s - 1 • V s s + 0 , 8 в п р я ж е н и я В ы с о к и й у р о в е н ь т а к т о в о г о н а - 9 , 0 V o o + I в п р я ж е н и я Н и з к и й у р о в е н ь в х о д н о г о н а - V s s - 1 V s s + 0 , 8 в п р я ж е н и я В ы с о к и й у р о в е н ь в х о д н о г о н а - 3 , 3 V c c + I в п р я ж е н и я Н и з к и й у р о в е н ь в ы х о д н о г о н а - 0 , 4 5 в ) l o L = l , 9 м А н а . в с е х в ~ , 1 х о д а ~ . п р я ж е н и я В l j ! С о к и й у р о в е н ь в ы х о д н о г о н а - 3 , 7 в I о н = - 1 5 0 м к А п р я ж е н и я С р е д н и й т о к п р и V D D 4 0 7 0 м А \ Р е ~ и м T c y = Q , 4 8 м с : . : . : . V c c 6 0 8 0 м А : . : . : . V в в 0 , 0 1 1 м А Т о к у т е ч к и н а в х о д е ± 1 0 м к А V s s : : : : ; ; V I N ~ v с е Т о к у т . н а в х . с и н х р о н и з а ц и и ± 1 0 м к А V s s : : : : ; ; V т a к т ~ V o o Т о к у т . н а ш и н е д а н н ы х в р е - - 1 0 0 м к А V s s : : : : ; ; V x N : : : : ; ; V s s + 0 , 8 В - - ж и м е в в о д а - 2 , 0 м А V s s + 0 , 8 B : : : : ; ; V x N : : : : ; ; V c c Т о к у т . н а а д р е с н о й ш и н е и + 1 0 м к А V а д р е с / д а н н ы о = V с е ш и н е д а и н ы х в р е ж и м е H O L D 1 - 1 0 0 V а д р е с / д а н н ы е = V s s + 0 , 4 5 В , : . , , , < : : J i ; , ~ . , , _ - - -
\1 ) Пр~,1.rюжение 327 ,в состояни~«Блокировка» или 1:риггер ра3решения прерывания сброшен, он не будет р гировать на прерывания. RESET (вх д) Когда с гнал RESET акгивизируется, счетчик команд очищается. После подачи сиrна.(!а RESET ЦП начнет выполнение программы с команды, на­ ходящейся в памяти в ячейке с адресом О.· !(,роме того, будут сброшены триг­ геры,_ определяющие состояния выходов INТE и HLDA. Отметим, что чистка ~лажков, аккумулятора, указателя стека и регистров Н(' производится. Vss=0 В, Vnn=+l2±5% В, Vcc=+5±5% В, Vnв=-5±5% В. ФI, Ф2- f!ервая и вторая фазы последовательности тактовых импульсов. Эти входы не совместимы с ТТL-схсмами. Допустимые предельные значения [8080А 1)] Температура окружающей среды Температура устройства пnмяти Все входю,1е и выходныр напряжения относи­ тельно напряжения Vвв Усе, VDD и Vss относительно Ynn Мощность рассеяния 1,5 ,t<1' !"' -~ !::i 1,01 --=-. . ~- -+--- -1 :.! ;] :.: 1-< о ::с ir-, 1:: 05'----,,,1.,, ---- -c,L----=' ,о +25 +5о +75 Температура окружающей среды (в градусах.Цельсия) О-+ 70 °С -6 5-+ 150 °Q -О,з-+20 В -о,з-+ 20 в 1,5 Вт Рис. П.2. Зависнмость тока источиli• ка питания. от температуры окру• жающей среды. Зависимость норма· Рис. П.3. Зависимость тока утечки шины данных от уровня ·сиrна• ла DВIN .'!изована: Лl/ЛТл=-0,45%/"С. Обозначение с CNI Соuт Емкостные характеристики Тл=25°С, Vcc=Vnn=Vss=0 В, Увв=-5 В Номи11аль- М::1кс11мяль- ~ДНIIИIЩ Параметр нос з1н.1че- нос знач~- llJMcpeш1я IIHC IJJIC ЕМК()СТЬ на JIX())(ax ф 17 25 пФ Входная <'МКОСТЬ 6 10 пФ Выходная емкость 10 20 пФ Таблица 2 Условие ис• пытания fс=IМГц •> Функционнрованне устройства прк значениях параметров, превышаю• щкх предельные, не допускается. Работа устройства при предельных значе- 1шях указанных параметров в течение длительного 11ремеик может кзменкть и;црак-щрнстнки надежности устройства.
• 1 Ф г П р и м е ч а н и е : И з м е р е н и е в р е м е и к ы х х а р а к т е р и с т и к в ы п о л н я е т с я п р и с л е д у ю щ и х н а п р я ж е н и я х : н а в х о д а х т а к т о в ы х и м п у л ь с о в - у р о в е н ь л о r и ч . « 1 » : : : : 8 , 0 В , у р о в е н ь л о r и ч . « О » = 1 , 0 В ; н а о с т а л ь н ы х в х о д а х - у р о в е н . ь л о r и ч . « 1 » = 3 , 3 В , у р о в е н ь л о r и ч . « 0 > > = 0 , 8 В ; н а в ы х о д а х у р о в е н ь л о r и ч . « 1 » = 2 , 0 В , у р о в е н ь л о r и ч . « О » = 0 , 8 В A 1 f " ~ - - - - - - J . . . _ _ _ . 1 t . - 1 D т - D o - - - - - - - - 1 - - . . J ~ I Y N C - - - - - - - ~ . . . . . J D B I N W я " E A r Y - - - - - - - - - - - W A I T _ _ _ _ _ _ _ _ , _ _ _ _ _ _ _ _ _ . . . . . . : ! ; ! . . , : : : : ! , ; : : : : : . . , μ - ~ ~ В . О д ' ➔ t н H O L D - - - - - - - - - - - - - - - - - - - - - - - - 1 ' : : : ' - - j ~ Н L о д _ _ _ _ , ; _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ = = т : I N T • - : - : - 1 N T E Р и с . П . 4 . В р е м е н н ь 1 е д и а . г р а м м ы ( 8 0 8 0 А ) .
()бозиа- чение tcv tr, tr tФ1 tФ2 to1 to2 tDs tол too toc tDJ' tDI tos1 \ \, . Таблица З. Хар~теристики по переменному току (микропроцессор 8080 А) (Есл не оговорено особо, то ТА=0·-70"'С, VDD=+l2' 8±5%, Vcc=+5 8±5%, Vвв=-5 В±5%, Vss=0 В.) \ Значение Едини- Параметр- .ца из- мере- Условие проверка,• .; 1 ~,~-:1~-:11·~1~"'! ння 1 =· :s :S :,;с:, :so о :,;о Период следовани я 0,48 2, 00,322, 00,38 2,0 мкс тактовых импульсов 1 Длительность перед• о 50 о 25 о 50 нс него н заднего фрон- та тактовых импуль- совФ1иФ2 Ширина импульса Ф 1 60 50 60 НС Ширина импульса Ф2 220 145 175 нс Задержка импульса о о о НС fil2 по отношению к заднему фронту '· им- пульса Фl Задержка импульса .70 60 70 нс fill ПО, отношению к заднему фронту Ф2 Время задержки им- 80 60 70 нс 'пульса Ф2' по отноше- нию к импульсу Ф 1 jс,-100 иФ Время задержки па. 200 1 150 175 НС ;дачи адреса относи- . тельно импульса. ~2' Время задержки вы-,. 220 180 200 нс •дачи данных относи- тельно импульса Ф2 ,Задержка подачи сиг- 120 110 120 нс налов SYNC, WR, WAIТ, HLDA по ОТ- ' . ношению к переднему фронту ю.mу.,ьсоо Ф I IИ fil2 . cL-50 пФ · Время задержки по- 25 140 25· 130 25 140 НС дачи сигнала DBIN •относительно нмпуль- са fil2 Время задержки пере- top tьр top нс хода шины данных в , режим ввода по отно- , шению к переднему фронту импульса fil2 : Время установки дан- 30 10 20 нс ных на шИ11е данных '
/ Функциональное описание 8080А/8085А-2 j .Микропроцессор 8085А представ.1яет собой 8-разрядный ЦП. Д я него требу­ ,ется источник питания с напряжением +5 В. Тактовая часто а генератора тактовых импульсов для микропроцессора 8085А равна 3 МГц; а дJIЯ микро­ .процессора 8085А-2 - 5 МГц. Таким образом, эти микропроцессоры обладают _более высоким быстродействием по сравнению с микропроцессором 8080А. Кроме того, для построения систем, обладающих минимальными возможно­ ,стями, предусмотрены следующие устройства: ОЗУ/Ю - 8156, ПЗУ/Ю- 8355 нлн ППЗУ/Ю - 8755А. Микропроцессор 8085А имеет двенадцать 8-разрядных регистров. Четыре -из 111их, разбитые на пары, нспоJ1ьзуются как два 16-разрядных регистра. Шесть других регистров могут использоваться либо как 8-разрядные, либо для •образования 16-разрядных регистров. Регистры микропроцессора 8085А имеют -следующее назначение: Обозначение АСС или А РС ВС, DE, HL SP F Регистр Аккумулятор Счетчик команд Регистры общего назна­ чения; HL - указатель данных Указатель стека Регистр флажков Содержимое 8 разрядов 16-разрядпый адрес ШL•сть 8-разрядных, трu 16 разрядных 16-разрядный адрес 5 флажков (8 разрядов) В микропроцессоре 8085А использована мультиплекснрованная шина дан­ ных. Адрес передается по двум шинам: старший байт адреса - по шине адре• са, а младший байт- по шине данных. В начале каждого машинного цикла младший байт адреса поступает на шину данных. Этот младший байт адреса может быть зафиксирован в любом 8-разрядиом фиксаторе посредством пода­ чи сигнала отпирания фиксатора адреса (AI.E). В остальное время машинно• то цикла шина данных используется для передачи данных между микропро­ цессором и памятью или устройствами ввода-вывода. Микропроцессор 8085А вырабатывает для шины управленuя- сигналы RD, WR, S0 , S 1 н 1O/М. Кроме того, он же вып.ает сигнал подтверждения преры­ вания INTA. Сигнал HOLD и все прерывания синхронизируются с помощью внутреннего генератора тактовых сигналов. Для обеспечения простого после• довательного интерфейса 11 микропроцессоре 8085А пре1tусмотрсны линия по­ следовательного ввода данных (SID) и липия последовательного вывода дан- ных (SOD). Микропроцессор 8085А имеет также три вывода для маскируемых сигна• лов прерывания по вектору и один вывод для немаскируемоrо прерывания· TRAP. Прерывания и поспедоватеnьный ввод-вывод Мнкропроцес-сор 8085А пмеет всего 5 входов для подачи сигналов· прерыва• ,ннй: INТR, RST 5.5, RST 6.5, RST 7.5 и TRAP. Сигнал INТR имеет такое же назначение, как _и сигнал INТ в микропроцессоре 8080А. Каждый из вхо­ дов RST 5.5, RST 6.5 и RST 7.5 может программно маскироваться. Преры· ванне по входу TRAP не может быть маскировано. Если маска прерываний .не установлена, то на, указанные маскируемые. прерывания микропроцессор будет реагировать, помещая при этом содержимое счетчика команд в стек к ·переходя к выполнению программы, адрес которой определяется вектором ;рестарта. Так как прерывание TRAP не может быть маскировано, при появле•·
\ \ Приложение ЗЗi \ нии запросц прерывания иа этом входе ~икропроцессор бу,S.!;_Т всегда перехо• дить к выпqлненню программы, указаннои вектором рестарт!,) Среди 11Ц1скируемых прерываний есть прерывания двух различных типов. Входы снгна~ов прерываний RST 5.5 и RST 6.5 являются подобно входам INТR и входу INТ микропроцессора 8080 чувствительными к уровню сигнала. а время распознавания соответствующих сигналов такое же, как н для сигна­ ла INТR. Вход RST 7.5 является чувствительным к переднему фронту сигна­ ла. Чтобы установить триггер, генерирующий внутренний запрос на преры• ванне, достаточно подать импульс на вход RST 7.5. Триггер запроса преры-. вания RST 7.5 остается установленным до тех пор, пока прерывание не будет обработано. После завершения обработки прерывания он автоматически сбра- Запрос на Внутренние схемы микропроцессора 8085А лрерывание TRAP RESET IN Триг­ гер Шмит- RESET та Подтверждение запроса на преры • ванне TRAP Рис. П.5. Схема приема сигналов TRAP н RESET IN. сывается. Этот триггер также может быть сброшен с помощью команды SIМ или посредством подачи сигнала RESET IN на соответствующий вход микро­ процессора 8085А. Внутренний триггер запроса прерывания RST 7.5 может быть установлен подачей импульса на вывод RST 7.5 даже тогда, когда пре• рывание RST 7.5 маскировано. Состояние масок прерываний типа RST может быть изменено только коУандой SIM и сигналом RESET IN (см. опнсаине команды S IM в гл. 6). l(аждому прерыванию приписан некоторый постоянный приоритет: сигнал ТRАР имеет наивысший приоритет, затем идут сигналы RST 7.5, RST 6.5, RST 5.5, сигнал INТR имеет низший приоритет. Если на прерывание поступа­ ет более чем один запрос, то сначала обрабатывается прерывание, имеющее наивысший приоритет. Эта приоритетная схема не nлинет на уже стартовав­ шие программы обработки прерываний. Но если прерывания разрешены до, окончания выполнения программы обработки прерывания, то при поступлении запроса на .прерывание по входу RST 5.5 программа обработки прерываиия­ RSТ 7.5 прекратит работу. Сигнал прерывания TRAP используется при возникновении катастрофиче­ ских событий, например nрп повреждении источника питания или при возник­ новеиии неисправностей в шинах системы. Сигнал TRAP распознается систе• мой подобно другим прерываниям, однако он имеет наивысшнй приоритет. Это прерывание не может быть маскировано. Вход TRAP является чувстви,­ тельиым и по фронту сигнала, и no его уровню. Сигнал ~RAP доткеи выра- 2(!•
Приложение / / ,сти до определенного уровня и оставатьсн на этом высоком уров~ вплоть до .выработки сигнала подтверждения прерывания. Следующее прерывание нз ,входе TRAP может быть зарегистрировано только тогда, ,когда уровень сигна­ ла иа нем изменится от низкого до высокого уровня. Таким о(!разом устра­ ;няются ложные срабатывания, которые могли бы возникнуть ; из-за шумов или других помех. На рнс. П.5 представлена схема формирования запроса на :прерывание П~АР, содержащаяся в микропроцессоре 8085А. Отметим, что во время обработки прерываний П~АР, RST 7.5, RST 6.5, RST 5.5, INTR, до тех пор пока ке будет выполнена команда EI, запрещены все прерывания, кроме прерывания по входу TRAP. Прерывание TRAP является особым в том смыс­ ле, что оно запрещает прерывания, но не изменяет предыдущее состояние входа разрешения прерывания. Выполнение команды RIM после прерывания TRAP позволяет определить состояние маски прерываний независимо от того были ли разрешены нлн запрещены прерывания до наступления прерывания TRAP. Все последующие выполнения команды RIM дают текущее состояние маски прерываний. Выполнение команды RIM после прерываний по входам INTR, RST 5.5, RST 6.5 и RST 7.5 также будет информировать о текущем состоянии маски прерываний, обнаруживая, что прерывания заблокированы. Допустимые предельные значения (8085д/8085д-2) Температура окружающей среды Температура устройства памяти Напряжения на всех выводах по отношению к корпусу Мощность рассеяния О-70°С -65-+ 150 °С -О,5-+7В 1,5 Вт Характеристлки по постоянному току Таблица 4 (Если особо не оговаривается, то ТА=О-70°С, Vcc=5 8±5%, Vss=0 В.) Значение Едини- Обоана11енне Параwетр 1 ца ИЗ· Условия проверки мере- мин. макс. ния VrL Низкое входное иа- -0,5 +о,в в пряжение Vrн Высокое входное на- 2,0 Vcc-f-0,5 в пряжение VoL Низкое выхQдное на- 0,45 в loL=2 мА Vow пряжение Высокое выходное на- 2,4 в Iон_=-400 мкА Icc пряжение Ток источника пита- 170 мА ния IrL Ток утечки на входе ±10 мкА V;n=Vcc ILo Ток утечки на выходе ±10 мк.А 0,45 V~Vouт~ ~Усе VrLR Ниsкий уровень иа -0,5 +о,8 в входе RESET Vrв:a Высокий уровень на 2,4 Vcc+0,5 в ' входе
1 \ \ Ми:mмальный mмпле11:т .. А8·А15 ' ... 1 у ~ r,. .A DO-D7 ~ •"' . ALE ~ ... <in ВО85А ,__ WR - IO/M ~ CLK ,__ - RESET iouт ,__ т' 1 READY i ,__ 1.] 1 яоbL! ~ 1 1 - сё10 RESET .., 1ТIMER NoIF RC ALE СЕ" 7 AD АВ- fD ALI M;s; 10/М ....._, ~ 10' ·,g IN '--' 0-7 h3 TIMER оuт.- 8156 8355 ( ОЗУ + уст-во Bl})-i: (ПЗУ+ уст-во В/В) счстuк/ таllмер) или 8755д (ППЗУ + уст-во В/В) Прв.ечание: Допустимое сое◊ "1⁄4Г ◊ ,цииение VV{J, Рис. П:6. Микропроцессорная система MCS-85T 11 . (Минимальный комплект. С•яз:~. с ~тройствами ввода-вывода реализована по аналогии с обращением к памяти.) TRAPXi AST7 RST6 RSTS INTR iNТA~ 5086А Стат1артнос: устройство памяти Порт В/В, управление Рис. П.7.Система MCS-85 . (Используются стандартпые устроiства памят•.)
Приложение Описание выводов ЦП ZBO, ZBOA ЦП-Z80 ЦП-ZSОА Рис. П.8. Назначение выводов микропроцессорон Z80, ZB0A. Ao·- A1s (адресная шина) Выходы с тремя устойчивыми состояниями. Активный уровень снrналон­ высокий. Ao-A1s - выходы на 16-разрядную адресную шину. Адресная шина используется для передачи адреса памяти (может использоваться память объемом до 64 Кбайт) илн адреса устройства ввода-вывода. D0-D1 (шина данных) Входы-выходы с тремя устойчивыми состояниями. Активный уровень - высокий. К выводам D0-D1 подключается восьмиразрядная двунаправленная шина данных. Шина данных используется для обмена данными между ЦП и памятью нлн между ЦП н устройствами ввода-вывода. М1 (машинный цикл) Выход. Активный сигнал - низкий. Сигнал М1 указывает, что в текущем ма• шинном цикле проходит цикл выборки кода операции. MIЩQ (запрос памяти) Выход с тремя устойчивыми состояниями. Активный уровень сигнала - ннзкнй. Снmал запроса памяти указывает, что на адресной шине устанонлен адрес для выполнения операции записи или чтения памяти. IORQ (запрос ввода/вывода) Выход с тремя устойчивыми состояниями, Активный уровень сигнала - ннзкнй. Сигнал IORQ указывает, что младший байт шниы адреса содержит адрес устройства ввода-вывода, который должен быть использован при вы­ полнении операции ввода-нывода. Кроме того, сигнал IORQ генерируется после выдачи подтверждения прерывания. Тем самым указывается, что вектор прерывания может быть помещен иа шину данных. RD (чтение нз памяти) Выход стремя устойчивыми состояниями. Активный уровень сигнала - низкий. Сигнал RD указынает, что ЦП готов к чтению данных из памяти или
Приложение 335 из устройства ввода. Адресованное устройство ввода или память должны ИС• пользовать этот сигнал для стробирования при подаче данных на шину дан­ ных ЦП. WR (запись в память) Выход с тремя устойчивыми состояниями. Активный уровень сигнала - низкий. Сигнал \\,"R указывает, что на шине данных ЦП содержатся данные, предназначенные для записи в память нли для вывода на устройство вывода. RFSH (восстановление) Выход. Активный уровень - низкий. Сигнал RFSH указывает, что млад­ шие 7 разрядов шины адреса содержат адрес восстановления для динамиче• -<:кой памяти н текуший сигнал MREQ должен использоваться для выполне­ ния восстановления динамической памяти. HALT (останов) Выход. Активный уровень - пнзкнй. Сигнал HAI.T указывает, что ЦП Z80 ,выполнил команду HALТ и ожидает появления либо немаскнруемого, либо маскируемого прерывания, после наступления которого он продолжит функ• ,цнонир.ование. Перед выполнением «останова» ЦП пересылает в памнть ин­ формацию, которая потребуется для возобновления его работы. WAIТ (ожидание) Вход. Активный уровень - низкий. Сигнал WAIT указывает ЦП Z80, что адресуемая память нли адресуемое устройство ввода-вывода не готовы для выполнения передачи данных. ЦП будет находиться в состоянии ожида­ ния до тех пор, пока этот сигнал активен. INТ (запрос на прерывание} Вход. Активный уровень - ннзкнй. Сигнал запроса на прерывание rене­ рнруется устройствами ввода-вывода. Сигнал запроса на прерывание будет воспринят в конце ы,ш_олненuя текущей команды, если триггер разрешения прерываний (IFF), управляемый внутрен11ими программны мн средствами, ус•· тановлен в определенное состояние. NМI(немаскируемос прерывание) Вход. Активный уровень - низкий. Jiиния запроса на н~аскнруемое пре• рывание. Это прерывание имеет более высокий приоритет по сравнению с прерыванием INT н всегда незавнсuмо от состояния триггера разрешения прерывания распознается в конце выполнения текущей команды. Сигнал NMI автоматически переводит ЦП Z80 к выполнению программы, команда которой имеет адрес 006615. RESET Вход. Активный уровень - низкий. Прн поступлении сигнала RESET вы­ полняются иrедующие действия: сброс тpнrrt'pa разрешения прерывания, с0чнстка счетчика команд и регистров I и R. Во время установки начального состояния адресl!а5! шина ,i шина данных переводнтся в состояние высокого сопротивления, а длн всех управляющих выходных сигналов устанавливается неактивный уровень. BUSRQ (запрос шин) Вход. Активный уровень - низкий. Сигнал BUSRQ имеет более высокий приоритет, чем сигнал NMI, н всегда распознается в конце текущего машин• иоrо цикла. Он используется для перевода в состояние высокого сопротивле­ ния адресной шины, шины данных и тристабильных выходов сигналов управ~
Приложение ления, после чего этими шинами могут управлять другие внешние устройства. BUSAI( (подтверждение перевода шин в состояние высокого сопротивления) Выход. Активный уровень - низкий. Сигнал BUSAI( подается на запра­ шивающее внешнее устройство для подтверждения того, что адресная шина, шина данных и тр,истабильные линии шин!>J 'данных перешлн в состояние вы­ сокого сопротивления. Теперь внешнее устройство может управлять этими ши­ нами. Выборка команды Содержимое счетчика команд подается на адресную шину непосредственно в начале машинного цикла. Через полоВJшу периода следования тактовых импульсов подается сигнал MREQ. Задний фронт сигнала MREQ мож~т быть использован для_о_тпирания кристалла динамической памяти. Активное со­ ст.ояние сигнала RD показывает, что данные из памяти уже поступили на шину данных. ЦП выполняет выборку данных, когда проходит передний фронт синхронизирующего импульса, соответствующего состоянию Т3• Во время состояний Тз и Т4 цикла выборки производится регенерация динамиче­ ской памяти, в то же самое время ЦП дРшифрирует и выполняет команду. Сигнал управления восстановлением Rf'SH указывает, что восстановление возможности чтения динамической памяти завершено. Цикл М, М-А15 -t ''- --"" '" "- ---+ ''- MREQ RD WAIT MI D0-D/ RFSH Рис. П.9. Временная диаграмма цикла М1• Цикл чтения из памяти и цикл записи в памJ1т1о Данная временная диаграмма циклов записи в память и чтения из памятif отличается от временной диаграммы цикла М 1 , рассмотренной выше. Однако здесь, как и в цикле выборки, используются сигналы MREQ и No. В цикл~ записи сигнал MREQ активизируется, когда уровни сигналов на адресной шине стабилизировались. Поэтому он может быть непосредственно использо­ ван в качестве сигнала отпирания кристалла динамической памяти. Линия подачи сигнала WR активизируется, когда данные на шине данных уже ста­ билизировались. Таким образом, этот сигнал можно непосредственно исполь­ зовать в качестве импульса чтения-записи для любых типов полупроводнико­ вой памяти.
Приложение MREQ RD WR Uикл чтения из па~яти Цикл записи в память D0-D7 -+ ---+- ---- -+ ~ }:._+--{=i~io:fiJ~~iк::±}­ WAIT =t=--=--=- 337 Рис. П.10. Временная диаграмма цикла чтения из памяти и цикла записи в память. Циклы операци" ввода-вывода Рассмотрим временные диаграммы, соответствующие выполнению операции чтения данных из устройства ввода и операции записи данных в устройство вывода. Отметим, что во время выполнения операций ввода-вывода автомати­ чески генерируется состояние ожидания, продолжающееся в течение времени T*w. Благодаря состоянию ожидания обеспечивается время, достаточное для дешифрирования адреса в порте ввода-вывода и для активизирования линии сигнала WАIТ. 1 IORQ RD DO-D7 WAIT }Uикл WR oo-D7 -t-~:::::::t:==~вывол:j;:::::::t,'--~ записи Рис. П.11. Временная диаграмма цикла операции ввода и операции вывода. Цикп запроса на прерывание и подтверждения прерwвания ЦП проверяет наличие запроса на прерывание при прохождении переднего фронта последнего тактового импульса в цикле любой кQманды. Если обна• руживается запрос на прерывание, то генериру~тся особый цикл М1. В тече­ ние этого цикла М1 активизируется сигнал IORQ (вместо сигнала MREQ), который указывает устройству, запросившему прерывание, что оно может подать на шину данных 8-разрядный вектор прерывания. В этот цикл авто­ матически включается два интервала ожидания, продолжительность каждого
из которых равна T*w. Это позвОJiяет сравнительно легко реализовать схему обработки приоритетных прерываний, подобную используемой в периферий• иых контроллерах микропроцессорной системы Z80 . ...!_fl:'_'ос~ле~д~Н~И~Й~Ц~И~К-:..:Л----;:,,~11,Е"-~-----М\:-----....._--..-., М команды т т Последнее Т1 v1 з состояниеТ о 1NТ М1 МRio ioRa 00-01-!.-----+---+---+---:-t---t--{~=---- Рис. П.12. Временная диаграмма цикла запроса-подтверждения прерывания. Допустимые предельные значения (Z80/Z80д) Температура окружающей сре­ ды Температура устройства памяти Напряжения на всех выводах по отношению к корпусу Мощность рассеяния Определяется об­ JJастью примене­ нии -65-+150°С -0,З-+7 В 1,5 Вт
<>бозка- чение V1LC V1нс V1L V1н VoL Vон Icc JLI 1LOH ILOL 1LD Обозна- чение V1LC Vшс V1L Таблица 5 Характеристики ЦП Z80A по постоянному току Тл=О-70°С, Vсс=+Б В±5%, если не оговорено особо Значение Едк- Параметр ница Условия испы- микималь-1 1максималь- нзмере- таний ное среднее • ное нкя Низкий уровень -0,3 0,45 в тактового напря- жения Высокий уровень Vcc-0,6 Vcc+0,3 в тактового напря- жения Низкий уровень - 0,3 0,8 в входного паnряже- ния Высокий уровень 2,0 Vcc в входного напряже- ния Низкий уровень 0,4 в IoL=l,8 мА выходного напря- жения Высокий уровень 2,4 в Iон=-250 мкА выходного напря- жения Ток от источника 150 мА Ток ут. на входе 10 мкА V1N=0+Vcc Ток ут. на входе с ,. 10 мкА Vouт =2,4-+ -Vcc тремя состояниями Ток ут. на выходе -10 мкА Vouт=0,4 В с тремя состояния- ми Ток ут. на шине ±10 мкл 0~V1N~Vcc данных в режиме, ввода Характеристики ЦП Z80A по постоянному току ТА=О-70°С, Vcc· ~ +5 В±5%, если не оговорено особо Значение Еднии- Параметр ца нз- у словня нспы- минималь-1 1максималь- мере- таний вое среди ее ное ния Низкий уровень -0,3 О,45 в тактового напря- жения Высокий уровень Vcc-0,6 Vcc+0,3 в тактового напря- жения Низкий уровень - 0,3 0,8 в входного напряже- иия -·
340 Обозиа- чение У1н YoL У.он Icc ILI ILOH ILOL ILD Приложение Продолжение табл. 5 Значение Еднниj Параметр ца из.- , Условия нспыта• минималь-1 jмаксималь- мере- - ШIЙ вое среднее вое иия Высокий уровень 2,0 Усе в входного напряже- ния Низкий уровень 0,4 в loL= 1,8 мА выходного напря- жения Высокий уровень 2,4 в Iон=-250 мкА выходного напря- жения Ток от источника 90 200 мА Y1N= 0--;--У с·с Ток ут. иа входе 10 мкА Ток ут. на входе с 10 мкА Youт=2,4+Vcc тремя состояниями -10 Vouт=0,4 В Ток ут. на входе мкА с тремя состояния- ми Ток ут. на шине ±10 мкА 0~Y1N~Ycc данных в режиме ввода Таблица 6 Емкостные характеристики ТА=25°С, f=1М Гц. . Свободные от измерения выводы подключаются к корпусу Обозначение 1 Параметр 1 Максималь- 1 Единица из- ное значение мерення СФ Емкость на входах ф 35 пФ C1N Входная емкость 5 пФ Соuт Выходная емкость 10 пФ
ОГЛАВЛЕНИЕ Предисловие к русскому изданию 5 Предисловие 5; Предисловие автора . 7 Глава 1. Введение в архитектуру машин с 3 шинами 9 1.1. Архитектура систе:\1 с 3 шинами 9·• 1.2. А_дресная шина системы . 10 1.3. Шииа данных системы . 11, 1.4 . Шина управления системы . . . 12 1.5. Использование архитектуры с 3 шинами 13' 1.6 . Запись данных в память 13 1.7. Чтение данных из памяти 16, 1.8 . Запись данных в устройство вывода 17 1.9 . Чтение данных с устройства ввоца 19 1.10. Операцин с внутренними регистрами . 20 1.11 . Выполнение ко,манд в системе с 3 шюrами 201 1.12. Управление синхронизацией • системы 21 1.13. Выводы 22' Глава 2. Построение ,систем с 3 шинами иа базе устройств· 8080, 8085 Z80и6800.... 23 2.1. Пояснения к адресной ши.не системы 23 2.2 . Выбор требуемых буферов адреса . 27 2.3. Адресная шина микропроцессора 8080 28 2.4. Использование буферов адреса . 301 2.5. Адресная шина Z80 . . . . 34 2.6. Адресная шина 6800 . . . . . 35 2.7 . Адресная шина микропроцессора 8085 35, 2.8 . Пояснения к шине данных системы . . . . . . 40 2.9 . Буферирован.ная шина данных микропроцессора 8080 а. 42• 2.10 . Буферированная шина данных микропроцессора 280 46 2.11 . Буферированная шина данных микропроцессора 6800 46, 2.12 . Буферирование шины данных микропроцессора 8085 48 2.13 . Пояснения к шине управления системы . . . . 48: 2.14 . Шина управле.ния системы па базе микропроцессора 8080 49 2.15 . Фиксатор состояния микропроцессора 8080 50 ~ .16 . Шина управления системы на базе 280 52 2.17. Шина управления системы на . базе 8085 52' 2.18. Шина управления системы на базе 6800 54 2.19. Распределение памяти . 54, 2.20 . Выводы 61 Глава 3. Генераторы тактовых импульсо11 и интерфейс памяти· для микропроцессорных систем с 3 шинами 62 3.1. Генератор тактовых импульсов для микропроцессора 8080 62: 3.2. Генератор тактовых импульсов для микропроцессора 8085 66
Оглавление 3.3 . Генератор тактовых импульсов для микропроцессора Z80 3.4. Генератор тактовых импульсов для микропроцессора 6800 3.5 Выводы . . . . . . . . . З.6. Интерфейс памяти в микропроцессорных системах с 3 шинами З.7.ПЗУсистемы........ 3.8. Интерфейс ОЗУ . . . .3 .9 . Чтение данных из ОЗУ . З.10. Запись данных в ОЗУ . . 3 11. Интерфейс ОЗУ с общим входом и выходом .З.12. Микропроцессор как системный контроллер . 3.13. Подготовка микрощюцессора 8080 для работы в режиме сис~rем- ного контроллера . . . . . . . . . .З.14. Установка начального состояния микропроцессора 8080 . . . 3.15. Подготовка микропроцессора 8085 для работы в режим_е систем- ногоконтроллера........... З.16. Подготовка микропроцессора Z80 для рабиты в режиме систем- ногоконтроллера........ З.17. Начальная установка микропроцессора Z80 . . 3. 18. Подготовка микропроцессора 6800 для работы в режиме систем- ногоконтроллера........ 3.19. Начальная установка микропроцессора 6800 . 3.20. Выводы . . . . . . . . . . Глава 4. Интерфейс устройств ввода-вывода в микропроцессорных системах с 3 шинами . 4.1 . Программное обеспечение клавишно1·0 пульта . . 4.2 . Аппаратные средства, необходимые для реализации клавишного пульта . . . . . 4.3. Сигналы горизонтальных линий . 4.4 . Распознавание сигналов на выходах клавишного пульта 4.5 . Выводы 4.6. Цифровой нндикатор . 4.7. Программное управление клавишным пультом 4.8. Программный метод формирования сигналов на входах матрицы клавишного· пульта . 4.9. Опрос выходных линий клавишного пульта с помощью программ- ных средств . 4.10. Вычисление весового значения ключа 4.11 . Программные средства учета эффекта вибрации клавиатуры 4.12 . Инициализация программы 4.13. Выводы Глава 5. Применение метода тестирования статическими сигналами для отладки аппаратных средств микропроцессорных систем . 5.1 . Идея метода тР.стирования статическими сигналами 5.2. Аппаратные средства устройства тестирования статическими си- гналами . • 5.3. Адресные линии 5.4 . Сигналы управления 5.5. Линии шины данных . 5.6 . Применение устройства те.стирования статическими сиr.налами. 5.7 . Выбор точки начала контроля :5.8. Проверка адресной шины • . 5.9 . Проверка шины управ.ТJ~ния . . :5.10. Проверка правильности подачи сигналов выбора кристаллов и сигналов разрешения записи в паr.1:ять . . . . :5.I l. Запись и чтени·е данных нз ~тройств ввода-вывода • 67 67 71 71 72 77 81 82 85 87 88 88 91 91 91 94 94 96 98 99 100 104 - 107 108 109 111 111 117 120 123 130 144 145 145 147 1 147 149 150 153 153 158 161 163 165
Оглавление 343 5.12 . Проверка функционирования схемы клавишного пульта с помощью устройства тестирования 167 5.13. Выводы 168 Глава 6. Прерывания, режим ожидания и режим прямоrо доступа к памяти в микропроцессорах 8080, 8085, 6800 и ZliO 170 6.1 . Основные прдставлиия о прерываниях 170 6.2 . Прерывания в микроороцессоре 8080 17'2 6.3 . Прерывания в микропроцессоре 8085 183 6.4 . Прерывания в микропроцессоре Z80 187 6.5 . Прерывания в микропроцессоре 6800 . . . . . . . . 189 6.6 . Способы реализации режима «ОЖИДАНИЕ» . . . . . . 190 6.7 . Перевод в состояние ожидания микропроцессоров 8080, 8085 и Z80 191 6.8 . Перевод в состояние ожидания микропроцеесора 6800 . . . l 9!i 6.9 . Прямой доступ к памяти в мнкропроцеt:1.:орах 8080, 8085 Z80 и 6800 199 6.10. Прямой доступ к памяти в микропроцессоре 8080 200 6.11 . Прямой доступ к памяти в микропроцРссоре 8085 202 6.12 . Прямой доступ к памяти в микропроцессоре Z80 . 202 6.13. Прямой доступ к памяти в, микропроцессоре 6800 . 203 6.14 . Выводы 204 Глава 7. Программирование перепрограммируемых постоянных запоми- нающих устройств 205 7.1 . Общие представления о перепрограммируемых постоян.ных запо- минающих устройствах 205 7.2 . Стирание юrформации в перепрограммируемых постоянных запо- минающих устройствах . . 206 7.3 . Программирование ППЗУ 2708 . . . 207 7.4 . Импульс программирования ППЗУ 2708 211 • 7.5 . Выводы 214 Глава 8. Технические средства устройства программирования ППЗУ 215 8.1 . Общее описание системы . . . 215 8.2 . Специфические функции системы . 216 8.3. Вспомогательные технические средства 217 8.4. Клавишное устройство ввода-вывода . . 218 8.5 . Технические средства устройства отображения 220 8.6 . Постоян.ная память системы 220 8.7 . Оперативная память системы . . 220 8.8 . Интерфейс программирования 2708 . . . 222 8.9 . Технические средства ввода и вывода данных . . . 223 8.10. Средства формирования импульса программирования 22S 8.11 . Средства управления уровнем напряжения на выводе CS/WE 227 8.12 . Источник питания для ППЗУ 2708 . . . 227 8.13. Соединение панели программирования с системой 228 8.14 . Использование микропроцессора 6800 в качестве управляющего устройства . . . . . . . 230 8.15. Выводы по техническим средствам . 230 Глава 9. Проектирование проrраммиого обеспечения для уnравJiеиия микропроцессорной системой 236 9.1 . Начальный этап . . . . . . 236 9.2 . Общее представление о программном обеспечении 240 9.3 . Программы ввода информации с клавишного пульта 241 9.4 . Главная управляющая программа . . . . . . 24!) 9.5 . Программные средства реализации фуtrкции установки адреса 254
Оглавление 9.6 . Программные средства реализации функции СТИРАНИЯ ОЗУ 260 - ~.7 . Программные сре:цств,а ·реализации функции програмыирова.пня 260 9.8 . Программные средства реализации функции верификации . 266 9.9 . Программные средства реализации функции копирования 282 9.10. Выводы по програ'dмным средствам 282 :Глава 10. Отладка технических средств системы . 283 10.1 . Тестирование посредством статических сигналов . 283 ·10.2 . Устройство тестирования пш;редст.вом ,статических сигналов для микропроцессора 8085 . . . . . . 285 10.3 . Замечания по отладке технических с~эедств системы 291 10.4 . Отладка адресной шины системы . 292 ·10.5 . Отладка шины управления системы 297 10.6 . Отладка, шины да.нных системы . . . 299 10.7 . Проверка· схем дешифрирования выбора памяти 301 10.8 . Проверка интерфейса ПЗУ системы 302 ·10.9 . Проверка интерфейса ОЗУ системы . 306 10.10. Отладка интерфейса клавишного пульта . . 311 ;10.11. Отладка интерфейса ус,:ройства отображения 311 10.12 . Отлад1ка схем подключения ППЗУ к системе . . . . . . 311 110.13. Проверка схем формирования импульса программирования . . 318 10.14 . Проверка функционирования схем ВЫБОРК:А БЛОК:А и РАЗРЕ- ШЕНИЯ ЗАПИСИ 320 10.15. Выводы 32;3 -Приложение . 324 Назначение выводов корпуса микропроцессора INTEL 8080А 324 .Допустимые предельные зm~.чения 8080А . 31'7 Фу.нкциональное описание 8085А/8085А-2 . . 330 'Прерывания и последовательный ввод-вывод . . 880 Допустимые предельные значения (8085А/8085А-2) ЗIJU Описание выводов ЦП Z80, Z80A 884 Выборка команды . . . . • • Зf~1' !I ·цикл чтения из памяти и цикл записи в память IP" Циклы операций ввода-вывода 837 Цикл запроса на прерывание и подтверждения прерывания 337 ..Допустимые предельные значения (Z80/Z80A) . . . 3311 "УВАЖА:ЕМЫА ЧИТАТЕЛЬ! Ваши замечания о содержании книги, ее оформле­ нии, качестве перевоца ,и другие просим присылать по адресу: 129820, Моеква, И-110, ГСП, 1-й Рижский пер., 2, , издательство «MJJp».