Вы находитесь на странице: 1из 68

ВВЕДЕНИЕ

В четвертой части конспекта лекций рассматриваются основные


определения и классификация микропроцессоров, структурные схемы
микропроцессоров с «жесткой» и программируемой логикой управления, типовая
структурная схема микропроцессорной системы с мультиплексируемой шиной
адресов и данных на основе микропроцессора К1821ВМ85А. Описываются
структура микропроцессора К1821ВМ85А, назначение узлов и их взаимодействие
в процессе считывания и исполнения команд, система прерываний,
последовательный ввод-вывод данных, система команд и приемы
программирования. Рассматриваются назначение, схемотехническая реализация,
принципы работы простых интерфейсных схем и их программирование.
Приводятся примеры современных интерфейсных микросхем отечественного
производства схемотехники КМОП.
ОБЩИЕ СВЕДЕНИЯ О МИКРОПРОЦЕССОРАХ
Общие сведения о микропроцессорах, основные определения и
классификация
Микропроцессором (МП) называют программно-управляемое устройство,
осуществляющее процесс обработки цифровой информации и управления им,
реализованное в виде одной или нескольких интегральных схем.
Микропроцессорная БИС – интегральная схема с большой степенью
интеграции, выполняющая функцию микропроцессора или его части.
Микропроцессорный комплект (МПК) – совокупность
микропроцессорных и других интегральных схем, совместимых по архитектуре,
конструктивному исполнению и электрическим параметрам, обеспечивающих
возможность их совместного применения в составе микропроцессорного
вычислительного или управляющего устройства.
Кристалл БИС – часть полупроводниковой пластины, в объеме и на
поверхности которой сформированы базовые элементы микропроцессора,
межэлементные соединения и контактные площадки.
Аналоговая микросхема – микросхема, предназначенная для
преобразования и обработки сигналов, изменяющихся по закону непрерывной
функции.
Цифровая микросхема – микросхема, предназначенная для
преобразования и обработки сигналов, изменяющихся по закону дискретной
функции.
МП является центральным процессорным элементом микропроцессорных
систем (МПС) или микроЭВМ.
МПС – совокупность БИС МПК, объединенных в единую структуру и
имеющая совместную программу работы.
В МПС организуется процесс выполнения заданной программы, и самые
разные задачи решаются путем выполнения команд, свойственных данному МП,
т. е., входящих в его систему команд.
Система команд – полный набор всех команд, выполняемых МП.
3
Вычислительные, контрольно-измерительные и управляющие системы,
обрабатывающим элементом которых служит МП, относятся к числу МПС.
Первый МП появился в 1971 году. Это 4-разрядный МП i4004, который
стал применяться в микрокалькуляторах. В 1972 году появился 8-разрядный МП
i8008, а в 1974 году его улучшенный аналог i8080. Он нашел применение в
первых встроенных ЭВМ для управления производственными процессами.
Развитие МП шло по разным направлениям, важнейшее из которых -
увеличение разрядности. В этой области в сжатые сроки были достигнуты
существенные результаты. Так в 1980 году фирма Motorola выпустила 32-
разрядный МП MC68000, а затем Intel и др. Первый 64-разрядный МП i80860 был
создан фирмой Intel в 1989 году и т. д. Подавляющее большинство производимых
МП являются однокристальными.
Все многообразие МП БИС можно классифицировать по следующим
признакам (рисунок 1):
 по технологии изготовления и схемотехнической элементной базе;
 по разрядности обрабатываемых данных;
 по типу архитектуры;
 по виду временной организации работы БИС;
 по функциональному назначению;
 по виду обрабатываемой информации;
 по области применения;
 по числу одновременно выполняемых программ.
По технологии изготовления и связанной с ней схемотехнической
элементной базе различают МП БИС на основе схемотехники типа МОП,
биполярной и комбинированной биполярно-полевой (Би-КМОП). Первые
поколения МП БИС были реализованы на основе p- (p-МОП) и n-канальных (n-
МОП) транзисторов, современные поколения проектируются на основе
усовершенствованной КМОП-схемотехники и технологии. Микропроцессорные
БИС на основе комбинированной биполярно-полевой (Би-КМОП) технологии
обладают наилучшим сочетанием характеристик, обеспечивая высокие
быстродействие и нагрузочную способность при сравнительно небольшой,
присущей КМОП БИС, мощности потребления. Наибольшее распространение
получили МП БИС типа КМОП и Би-КМОП.
По разрядности обрабатываемых данных различают 2-, 4-, 8-, 16-, 32-,
64-разрядные МП БИС и более. При этом обычно имеется в виду максимальная
разрядность обрабатываемого информационного слова (операнда), например, 16-
разрядный МП может обрабатывать 8-разрядные слова.
По типу архитектуры различают расширяемые (или секционные) и
нерасширяемые (или закрытые) микропроцессоры. Расширяемые позволяют
увеличивать разрядность обрабатываемых данных (операндов) путем
параллельного объединения необходимого числа МП БИС. Так, для обработки 32-
разрядного слова можно использовать два 16-разрядных или четыре 8-разрядных
секционных МП. Естественно, в структуру таких МП БИС вводятся специальные
входы, определяющие позицию секционного МП в микропроцессорной системе –
младшая, средняя или старшая. В понятие типа архитектуры также включается

4
тип шинной организации: с раздельными, с совмещенными, с двунаправленными
шинами.

5
Рисунок 1 – Классификация МП БИС

Кроме возможности расширения разрядности схемные решения МП БИС


позволяют организовать конвейерные архитектуры, когда обработка потока
информации выполняется параллельно.
В зависимости от используемой системы команд различают два типа
архитектур: МП CISC-архитектуры (CISC-Complex Instruction Set Computer),
выполняющие полный набор команд и МП с RISC-архитектурой (RISC-Reduced
Instruction Set Computer), выполняющие не все стандартные, а только наиболее
часто используемые в вычислительных и управляющих системах типы команд.
Это позволяет существенно сократить аппаратурные затраты, необходимые для
реализации таких БИС, а главное, увеличить производительность работы МП
БИС.
6
По виду временной организации работы МП БИС и их комплекты
подразделяются на синхронные и асинхронные. Если в синхронных МП БИС
время выполнения команд (тактовая частота работы БИС) остается постоянным и
независимым от типа команд и величин операндов, то в асинхронных МП БИС
начало выполнения каждой следующей команды определяется по сигналу
фактического окончания выполнения предыдущей. Синхронные МП БИС
отличаются сравнительной простотой организации внутреннего управления, хотя
и обеспечивают более низкую по сравнению с асинхронными БИС
производительность.
По функциональному назначению различают следующие типы МП БИС:
БИС процессорных элементов (ПЭ), БИС микропрограммного управления (МПУ),
интерфейсные БИС. Процессорные элементы фактически представляют собой
операционное устройство любой микропроцессорной системы, которое
выполняет полный набор операций. БИС МПУ, входящие в состав большинства
микропроцессорных комплектов, предназначены для формирования
последовательности адресов внешней памяти команд (микрокоманд) на
основании кодов обрабатываемых команд, значений вырабатываемых
процессорным элементом сигналов, сигналов внешних устройств, запросов
прерываний и т. д. Интерфейсные МП БИС предназначены для организации связи
БИС ПЭ и МПУ с внешними устройствами и друг с другом в составе любой
микропроцессорной системы. Здесь, в свою очередь, различают такие их типы,
как магистральные приемопередатчики (МПП), магистральные коммутаторы
(МК), программируемые системные контроллеры (ПСК), программируемые
каналы ввода-вывода (ПКВВ), многоцелевые буферные регистры, контроллеры
прямого доступа к памяти (КПДП) и др.
По виду обрабатываемой информации МП БИС могут быть разделены
на цифровые, аналоговые и комбинированные (цифро-аналоговые и аналого-
цифровые). В цифровых МП БИС прием, обработка и выдача результата
осуществляется в цифровой форме. В аналоговых МП БИС информация
поступает на входы в аналоговой форме, затем преобразуется в цифровую с
помощью встроенных средств и в таком виде обрабатывается МП. Результаты
обработки снова преобразуются в аналоговую форму и поступают на выход БИС.
По области применения различают два больших класса МП БИС -
специализированные и универсальные. Специализированные МП БИС
предназначены для реализации лишь определенных классов микропроцессорных
систем и устройств – цифровой обработки сигналов (ЦОС), систем решения задач
радиолокации, гидродинамики, кинофототехники, медицинской электроники,
автомобильной электроники и т. д. Универсальные МП БИС могут быть
использованы в различных системах вычислительной техники и автоматики.
Основное достоинство специализированных МП БИС – их высокая
производительность на конкретных задачах.
По числу одновременно выполняемых программ МП БИС разделяются
на одно- и многопрограммные. В однопрограммных МП БИС в один момент
времени выполняется одна программа, переход к исполнению следующей
программы (последовательности команд) происходит только после завершения

7
предыдущей. В мультипрограммных МП БИС могут одновременно выполняться
несколько программ.
Различают три группы параметров МП БИС: функциональные,
электрические и динамические.
Основным функциональным параметром МП БИС является
функциональная мощность К, измеряемая количеством операций, выполняемых в
единицу времени (например, MIPS – миллион инструкций в секунду). В
зависимости от типа операций различают несколько значений функциональной
мощности, например: в формате операций регистр-регистр KRR, в формате
операций регистр-память KRM и др.
Из других функциональных параметров используют разрядность слова
адреса, разрядность слова данных, разрядность слова команды, число команд
(микрокоманд), реализуемое МП БИС.
Электрические параметры МП БИС имеют размерность напряжения, тока
и мощности и определяют основные технические характеристики
микропроцессорных систем (см. параметры интегральных ЛЭ).
Динамические параметры МП БИС определяются по временной диаграмме
(ВД), которая определяет развернутую во времени последовательность подачи на
МП БИС управляющих воздействий, информационных, синхронизирующих и
вспомогательных сигналов, а также последовательность считывания из БИС
результатов обработки. На ВД приводится вид этих сигналов, указывают
допустимые временные соотношения между ними, допустимые длительности и
т. д.

Общая структурная схема микропроцессора

Как и любое сложное цифровое устройство, МП может быть представлен


соединением двух устройств – операционного и управляющего. Исходя из этого,
общая структурная схема МП имеет вид, представленный на рисунке 2.

Рисунок 2 – Общая структурная схема микропроцессора

8
9
В ОУ производится непосредственное выполнение операций. ОУ содержит
узлы следующих типов: регистры, сумматоры, каналы передачи данных,
мультиплексоры, производящие переключение каналов передачи, дешифраторы,
шифраторы и др.
УУ координирует работу узлов ОУ, формируя управляющие сигналы Y1,
Y2, …, Yn в определенной временной последовательности. УУ обеспечивает в
определенных узлах ОУ требуемые для выполнения операции действия.
Любая операция, выполняемая в узлах ОУ, делится на последовательность
элементарных действий, называемых микрооперациями. К микрооперациям
относятся:
 установка регистра в некоторое состояние;
 пересылка содержимого одного регистра в другой;
 суммирование содержимого двух регистров;
 инвертирование содержимого регистра и т. д.
Указанные микрооперации выполняются не во всех узлах ОУ. Каждая
микрооперация выполняется под действием одного управляющего сигнала на
выходе УУ, поэтому УУ имеет число управляющих цепей, равное общему
количеству микроопераций, выполняемых в ОУ.
В одном и том же тактовом периоде может выполняться несколько
микроопераций, осуществляемых в разных узлах ОУ. В этом случае управляющие
сигналы поступают в несколько цепей.
Набор управляющих сигналов, обеспечивающих выполнение одной или
нескольких микроопераций в одном и том же тактовом периоде, называется
микрокомандой (МК), следовательно, управляющие сигналы являются
микрокомандами. Последовательность МК, обеспечивающая выполнение одной
операции, называется микропрограммой.
Иногда последовательность действий при выполнении операций зависит
от состояния узлов ОУ или, иначе, от некоторых признаков, связанных с
результатами микроопераций. Такие признаки X1, X2, …, Xp выдаются из ОУ и
поступают в УУ. Некоторые признаки Xp + 1, …, Xs могут поступать извне,
определяя порядок работы МП. Формируя управляющие сигналы УУ обязано в
соответствующие тактовые периоды ориентироваться на признаки. В ОУ
поступают данные и выдаются данные.

Два подхода в построении УУ микропроцессора

При проектировании УУ МП используются два принципа:


 принцип схемной или «жесткой» логики;
 принцип программируемой логики.
При построении УУ МП по принципу схемной логики можно подобрать
набор микросхем малой и средней степени интеграции. Затем определяется схема
соединения выводов микросхем, обеспечивающая генерацию требуемой
последовательности МК.

10
Достоинством принципа схемной логики является возможность
достижения максимального быстродействия при заданной технологии элементной
базы.
Недостатки принципа схемной логики:
 всякое изменение последовательности МК требует демонтажа старого
УУ и монтажа нового, т.е. принцип схемной логики не обеспечивает гибкости
применения;
 экономически не выгодно использовать последние достижения
микроэлектроники – БИС и СБИС, так как разработка специализированных БИС
обходится дорого.
При использовании принципа программируемой логики в УУ используется
память, хранящая микропрограммы, т.е. последовательности МК.
Считывая из памяти МК и подавая их в управляющие цепи, УУ
обеспечивает их выполнение в ОУ. В этом случае МП может быть выполнен в
виде некоторого универсального устройства, например БИС. Изменение
функционирования этого устройства обеспечивается помещением в память новой
микропрограммы, т.е. этот метод обеспечивает гибкость применения. Однако при
использовании принципа программируемой логики снижается быстродействие
МП, так как требуется дополнительное время для формирования адресов МК и их
считывания из памяти.

Структурная схема МП со схемной логикой управления

Структурная схема МП со схемной логикой управления представлена на


рисунке 3.

11
Рисунок 3 – Структурная схема МП со схемной логикой управления

12
УУ содержит k устройств управления операциями (логических схем). Для
выбора одной из них дешифратор декодирует операционное поле команды,
поступающей из основной памяти (ОП). В зависимости от кода операции,
указанного в команде, выбирается УУ операцией, которое выдает на входы ОУ
нужную последовательность управляющих сигналов.

Принцип микропрограммного управления. Структурная схема МП на основе


программируемой логики управления

В каждом тактовом периоде из УУ выдается на ОУ некоторая кодовая


комбинация управляющих сигналов. Если число управляющих сигналов n, то
кодовая комбинация n-разрядная и каждый разряд показывает присутствует ли
управляющий сигнал в соответствующей управляющей цепи, например, 0010…1.
Такие кодовые комбинации можно хранить в так называемой управляющей
памяти (УП) или микропроцессорной памяти (МПП) и тогда МП имеет структуру,
представленную на рисунке 4.

Рисунок 4 – Структурная схема МП с программируемой логикой управления

Микропрограммы различных операций хранятся в УП. Для выполнения


каждой МК необходимо задать ее адрес и прочитать из УП.
Считанная из УП общая МК может быть разбита на две МК. МК ОУ
определяет функционирование узлов ОУ в данном тактовом периоде. МК БМУ

13
содержит поле адреса и поле условных переходов и задает способ формирования
адреса очередной МК.
Если микропрограмма является линейной последовательностью МК, то
задавать адрес каждой следующей МК можно счетчиком, предварительно
загрузив в него начальный адрес микропрограммы. Однако линейные
микропрограммы встречаются редко. Чаще они представляют собой
последовательности с ветвлениями и с циклами. В таком случае адрес следующей
МК должен определяться специальным образом. Для этой цели служит БМУ.
Исходными данными для определения адреса следующей МК обычно служит
адрес текущей МК, специальные поля текущей МК (МК БМУ), а также
совокупность признаков (условий), поступающих от ОУ и из внешних устройств.
Рассмотрим структурную схему УУ МП с программируемой логикой
управления (рисунок 5).

Рисунок 5 – Структурная схема УУ МП с программируемой логикой управления

В ячейках ПЗУ МК одной микропрограммы с номерами, отличающимися


на единицу, имеют адреса, также отличающиеся на единицу. Поэтому при
последовательной выборке МК удобно использовать суммирующий счетчик СТ
(рисунок 5). Исходное состояние счетчика устанавливается внешним сигналом F
(код операции текущей команды) при обращении к очередной микропрограмме и
соответствует адресу первой МК этой микропрограммы.
Если МК не содержит микроопераций «условный переход» и
«безусловный переход», то управляющий сигнал из схемы определения адреса
МК увеличивает код на выходах счетчика на единицу – происходит выборка МК
из соседней ячейки ПЗУ.
Если очередная МК содержит микрооперацию «безусловный переход», то
адрес следующей МК из схемы определения адреса МК параллельно
переписывается в счетчик (адресом является содержимое поля адреса текущей
МК).

14
Если очередная МК содержит микрооперацию «условный переход», то
адрес следующей МК определяется в зависимости от значения признаков X1, X2,
…, Xm, поступающих из ОУ МП, и также параллельно переписывается в счетчик.
При этом младший разряд поля адреса текущей МК замещается значением
признака, т. е. происходит модификация (изменение) адреса следующей МК. В
этом случае очередная МК считывается с одной из двух соседних ячеек
управляющей памяти, адреса которых отличаются значениями только младших
разрядов, например:

X1 из ОУ
X1 = 0
… 1 0 1 0 0
X1 = 1
… 1 0 1 0 1

Код с выходов счетчика преобразуется дешифратором DC в сигнал, под


действием которого из ПЗУ считывается нужная МК. Эта МК запоминается в
регистре RG МК и поступает на выход УУ МП в виде управляющих сигналов Y1,
Y2, …, Yn.
Временная диаграмма работы МП с программируемой логикой
представлена на рисунке 6.

Рисунок 6 – Временная диаграмма работы МП

15
В момент t1 (рисунок 6) БМУ выдает в управляющую память адрес
очередной МК. Через некоторое время (от десятков до сотен наносекунд)
завершается процесс чтения МК в управляющей памяти и в момент t2 на выходах
памяти появится требуемая МК. С момента t2 в ОУ начинается выполнение
предусмотренной в МК микрооперации и завершится к моменту t3.
До окончания выполнения микрооперации БМУ не может формировать
адрес следующей МК, поскольку это зависит от признаков, т. е. от результатов
микрооперации. Поэтому БМУ формирует адрес следующей МК от момента t3 до
t4.
В данном построении МП его блоки функционируют не одновременно, а
последовательно во времени и длительность тактового периода T должна быть не
меньше суммы времен, необходимых для выполнения действий в блоках. Для
повышения быстродействия МП используется конвейерный способ считывания и
исполнения МК.

Типовая структурная схема МПС с мультиплексируемой шиной адресов и


данных

Практически всегда структура МПС является магистрально-модульной. В


такой структуре имеется группа магистралей (шин), к которым подключаются
различные модули (блоки), обменивающиеся между собой информацией
поочередно, в режиме разделения времени.
Термин «шины» относится к совокупности цепей (линий) по которым
передается однотипная информация. Число цепей определяет разрядность шины.
Типична трехшинная структура МПС с шинами адресов ША, данных
ШД и управления ШУ. Наряду с русскими терминами применяются английские
AB (Address Bus), DB (Data Bus) и CB (Control Bus).
На рисунке 7 показана структура микропроцессорной системы с МП,
имеющим мультиплексируемую шину адресов/данных (например, с МП
К1821ВМ85А). Линии A15–8 являются адресными, через них в систему передается
старший байт 16-разрядного адреса. В эту шину включен формирователь на
постоянно открытом по входу разрешения EN буферном регистре ИР82,
обеспечивающем работу шины на нагрузку, образуемую внешними цепями.
Собственной нагрузочной способности у выводов МП, как правило, не хватает.
Линии AD7–0 мультиплексируются. Вначале они передают младший байт адреса,
признаком чего служит наличие сигнала ALE (Address Latch Enable),
загружающего этот байт в регистр ИР82.

16
Рисунок 7 – Структура микропроцессорной системы

После загрузки регистра сигнал ALE снимается, и содержимое регистра


остается неизменным вплоть до новой загрузки в следующем цикле работы
процессора. Так формируется 16-разрядная шина адреса, содержащая адрес A15–0.
Этот адрес используется блоками постоянной и оперативной памяти ROM и
RAM. Адресация портов ввода и вывода данных требует восьмиразрядного
адреса, что соответствует возможности работы не более чем с 256 портами
каждого из типов. Адрес портов можно снимать с любой половины адресной
шины (во взятом для примера МП состояния обоих полушин адреса при
адресации портов дублируются).
После передачи младшего байта адреса шина AD7–0 отдается для передачи
данных. Эти передачи двунаправлены, направление задается буфером данных BD
в зависимости от сигнала T (Transmit). При активном состоянии сигнала чтения
( ) данные передаются справа налево, при пассивном – в обратном
направлении. К шине данных подключены информационные выводы всех
модулей МПС.
Выводы X1 и X2 служат для подключения кварцевого резонатора или иных
контуров, задающих частоту тактовому генератору, расположенному в МП.
Тактирование системы производится на частоте, равной половине частоты
резонанса кварца или иного контура, поскольку генератор работает на триггер, с
которого снимаются сигналы тактирования модулей МПС, а триггер делит
частоту на 2. Вход является входом асинхронного сброса, приводящим
МП в исходное состояние. Сигнал L-активный. Сброс может быть осуществлен
замыканием ключа K и автоматически происходит при включении питания UCC. В
этом случае благодаря цепочке RC напряжение на входе нарастает

17
постепенно, и в течение некоторого времени после включении питания остается
низким (ниже порогового), что равноценно подаче сигнала .
Выполняя программу, МП обрабатывает команду за командой. Команда
задает выполняемую операцию и содержит сведения об участвующих в ней
операндах. После приема команды происходит ее расшифровка и выполнение, в
ходе которого МП получает необходимые данные из памяти или внешних
устройств. Ячейки памяти и внешние устройства (порты) имеют номера,
называемые адресами, которыми они обозначаются в программе.
По однонаправленной адресной шине МП посылает адреса, определяя
объект, с которым будет обмен, по шине данных (двунаправленной) обменивается
данными с модулями (блоками) системы, по шине управления идет обмен
управляющей информацией.
ПЗУ (ROM) хранит фиксированные программы и данные, оно является
энергонезависимым и при выключении питания информацию не теряет.
ОЗУ (RAM) хранит оперативные данные (изменяемые программы,
промежуточные результаты вычислений и др.), является энергозависимым и
теряет информацию при выключении питания. Для приведения системы в
работоспособное состояние после включения питания ОЗУ следует загрузить
необходимой информацией.
Устройства ввода-вывода (УВВ) или внешние устройства (ВУ) –
технические средства для передачи данных извне в МП или память либо из МП
или памяти во внешнюю среду. Для подключения ВУ необходимо привести их
сигналы, форматы слов, скорость передачи и т. п. к стандартному виду,
воспринимаемому данным МП. Это выполняется специальными блоками,
называемыми адаптерами (интерфейсными блоками ввода-вывода).
Напомним, что интерфейсом называют совокупность аппаратных и программных
средств, унифицирующих процессы обмена между модулями системы.
На схеме (рисунок 7) модули системы показаны укрупнено. Кроме
обозначенных блоков, в состав систем входят обычно и более сложные, чем
адаптеры, блоки управления внешними устройствами – контроллеры. К их числу
относятся, прежде всего, контроллеры прерываний и прямого доступа к памяти.
Имеются также контроллеры клавиатуры, дисплея, дисковой памяти и т. д.
Контроллеры прерываний обеспечивают обмен с внешними устройствами
в режиме прерывания (временной остановки) выполняемой программы для
обслуживания запроса от внешнего устройства.
Контроллеры прямого доступа к памяти обслуживают режим прямой связи
между внешними устройствами и памятью без участия МП. При управлении
обменом со стороны МП пересылка данных между внешними устройствами и
памятью происходит в два этапа – сначала данные принимаются
микропроцессором, а затем выдаются им на приемник данных. В режиме прямого
доступа к памяти МП отключается от шин системы и передает управление ими к
контроллеру прямого доступа, а передачи данных осуществляются в один этап –
непосредственно от источника к приемнику.
В состав МПС часто входят также программируемые таймеры,
формирующие различные сигналы (интервалы, последовательности импульсов и
т. д.) для проведения операций, связанных со временем.
18
Управление памятью и внешними устройствами
Память состоит из ячеек, каждой из которых присваивается свой адрес.
Совокупность адресов, которые могут быть сформированы МП, образует
адресное пространство МПС. Адреса памяти могут занимать все адресное
пространство (АП) или его часть, а сама память независимо от ее технической
реализации может быть условно представлена набором регистров (ячеек).
Свои адреса имеют и внешние устройства (ВУ). МП при обмене данными
всегда должен выбрать только одну из ячеек памяти или одно ВУ. Такой выбор
осуществляется схемами декодирования адреса.
При управлении памятью и ВУ процессор должен вначале сформировать
нужный адрес, который затем декодируется.
В МПС применяют несколько способов формирования адресов или
способов адресации. При прямой адресации код адреса содержится в команде,
подлежащей выполнению. Прямая адресация удобна, но удлиняет команды
(увеличивает их разрядности), так как при значительных емкостях памяти
разрядности адресов достаточно велики. В случае прямой регистровой адресации,
когда операнд находится в одном их внутренних регистров МП, адрес является
малоразрядным, поскольку число таких регистров мало. В этом случае прямая
адресация проявляет все свои достоинства.
При косвенной адресации в команде явно или неявно указывается регистр
МП, содержащий адрес операнда. Команда сохраняет компактность, но для ее
выполнения требуется предварительная настройка – загрузка адреса в регистр
(регистр косвенного адреса). Косвенная адресация удобна при обработке списков,
когда настройка производится однократно, а очередной адрес получается
модификацией предыдущего (изменением его на единицу).
При непосредственной адресации в команде содержится сам операнд.
Помимо перечисленных имеются и более сложные способы адресации:
индексная, относительная и др., однако в простейших МП они не используются.
Возможность использования различных видов адресации сокращает объем
и время выполнения программ.
С помощью того или иного способа адресации формируется физический
адресный код, поступающий на шину адреса для выбора ячейки памяти или ВУ, с
которыми взаимодействует МП.
С точки зрения использования АП памятью и ВУ различают концепции
интерфейса с общей шиной и раздельной шиной.
В рамках первой концепции для адресов памяти и ВУ выделяются части
общего АП. К ВУ, обращение происходит так же, как и к ячейкам памяти, т. е. с
помощью тех же команд и той же шины. Недостатком этой концепции является
сужение АП для памяти, поскольку часть АП занимается внешними
устройствами. Достоинство состоит в том, что над данными, получаемыми от ВУ,
можно производить все те операции, которые имеются в системе команд
процессора для данных, находящихся в ячейках памяти. Таких операций много и
это способствует улучшению параметров программ и упрощению

19
программирования. Концепцию «с общей шиной» называют также
вводом/выводом, отображенным на память.
В концепции «с раздельной шиной» ячейки памяти и ВУ имеют свои АП.
При этом требуется наличие управляющих сигналов, определяющих, с каким
типом объектов ведется обмен. Например, вводится сигнал , указывающий,
адресуется память или ВУ. При этом память может использовать все АП. Для
обмена с ВУ обычно имеются только операции ввода IN port и вывода OUT port,
и теряется возможность применять к данным от ВУ широкий набор команд,
имеющихся для работы с данными, хранимыми в памяти.
Диапазон адресов, к которым может обращаться процессор (т. е. емкость
АП) связан с разрядностью шины адреса n соотношением АП = 2n. Например, с
помощью 16-разрядной шины адреса можно адресовать 2 16 = 64 K объектов, с
помощью 20-разрядной 1 M объектов и т. д.
Адресация – только часть процесса управления памятью и ВУ. Кроме
адресов требуются стробы чтения и записи ( и ), задающие направление
обмена, сигналы разрешения работы ( , EN), признак обращения к ВУ или
памяти ( ). Процессор обычно вырабатывает минимальную группу сигналов,
тогда как в системном интерфейсе может быть предусмотрена несколько иная
группа. В частности, МП К1821ВМ85А дает три сигнала: сигнал чтения ( ),
записи ( ), и сигнал , т.е. обращения к ВУ при высоком уровне и к
памяти – при низком. В системном же интерфейсе используется система из
четырех сигналов: сигнала чтения из памяти , записи в память ,
чтения из ВУ и записи в ВУ .
Иногда условием обмена является готовность к нему памяти или ВУ. Для
выявления готовности применяют такой метод: появление адреса медленного
устройства ведет к запуску генератора одиночного импульса необходимой
длительности, на время существования которого сигнал готовности RDY
снимается. Длительность интервала неготовности рассчитывается согласно
требованиям медленного устройства. Процессор ждет появления сигнала
готовности и только после его появления выполняет операцию обмена. Чтобы
избежать потерь времени, желательно генерировать интервал неготовности с
привязкой его к синхроимпульсам МПС.
Выполнение процессором операций записи и чтения данных может
проходить в режимах программно-управляемого обмена, прерывания и
прямого доступа к памяти (ПДП).
В первом случае инициатором обмена является программа. Возможно
взаимодействие с устройством, всегда готовым к обмену или с ожиданием
готовности устройства. В последнем случае вырабатываются сигналы,
сообщающие о состоянии устройства. Процессор анализирует их и при
готовности устройства реализует программу обслуживания данного устройства.
Такой обмен может быть сопряжен с большими потерями времени.
Быстродействие внешних устройств, с которыми идет обмен, зачастую очень
мало в сравнении с быстродействием процессора. Ожидая готовности устройства,
процессор не выполняет полезной работы, а занят в каждом цикле проверкой

20
состояния внешнего устройства и простаивает в течение больших интервалов
времени.
При обменах по прерываниям ожидание исключается, так как
инициатива обмена исходит от ВУ. При своей готовности ВУ сигнализируют
процессору, запрашивая у него прерывания основной программы и обслуживания
обмена. Процессор завершает выполнение текущей команды и переходит к
подпрограмме обслуживания прерывания. Отсутствие длительных интервалов
ожидания существенно увеличивает производительность МПС.
Для обмена между памятью и ВУ без участия процессора используется
режим ПДП. В обычном режиме пересылка данных между памятью и ВУ требует
вначале приема данных в процессор, а затем выдачи их приемнику, что снижает
темп передачи. В режиме ПДП процессор отключается от системных шин и
передает управление обменом контроллеру ПДП, что увеличивает темп передачи
данных.

МИКРОПРОЦЕССОР К1821ВМ85А

Во всем мире широко применяются микропроцессоры (МП) фирмы Intel и


их аналоги. Эта фирма разработала первый МП, а затем целый ряд их семейств.
При изучении МП целесообразно ориентироваться на конкретные образцы. МП
К1821ВМ85А – аналог микропроцессора Intel 8085A. Это простой для изучения
объект, на котором легко проследить основные принципы работы МП. Несмотря
на свой многолетний возраст (выпущен в 1977 г.), этот МП до сих пор
выпускается промышленностью и встречается в каталогах фирм. Естественно, что
областью его применения не являются компьютеры, в которых сейчас
применяются гораздо более мощные и производительные МП. Такие МП, как
К1821ВМ85А, используются в системах управления различной аппаратурой, где
их возможностей вполне достаточно.

Структура микропроцессора К1821ВМ85А

МП К1821ВМ85А предназначен для обработки 8-разрядных данных,


содержит 6200 транзисторов, корпус имеет 40 выводов. Напряжение источника
питания 5 В  10%, потребляемый ток не более 170 мА, ток выхода при низком
уровне выходного напряжения не более 2 мА, ток выхода при высоком уровне
выходного напряжения не более 0,4 мА.
Структура микропроцессора К1821ВМ85А показана на рисунке 8.
Микропроцессор имеет восьмиразрядную внутреннюю шину данных, через
которую его блоки обмениваются информацией. На схеме приняты следующие
обозначения:
 AC (Accumulator) – регистр-аккумулятор, выполненный на
двухступенчатых триггерах и способный хранить одновременно два слова (один
из операндов и результат операции);

21
Рисунок 8 – Структура микропроцессора К1821ВМ85А

 TR (Temporary Register) – регистр временного хранения одного из


операндов;
 ALU (Arithmetic-Logic Unit) – арифметико-логическое устройство,
выполняющее действия над двумя словами-операндами, подаваемыми на его
входы. Аккумулятор служит источником и приемником данных, TR – источником

22
слова данных, хранимых на время выполнения операции. АЛУ функционирует
согласно соотношению A:= A * B, где B хранится в TR, второй операнд поступает
от аккумулятора, в него же поступает результат операции (звездочкой обозначен
обобщенный символ операции). АЛУ непосредственно выполняет лишь операции
сложения, вычитания, сдвига, сравнения слов, поразрядные логические операции
(конъюнкцию, дизъюнкцию, сложение по модулю 2). Более сложные операции
(умножение, деление и др.) выполняются по подпрограммам. В АЛУ имеется
схема перевода двоичных чисел в двоично-десятичные (DA, Decimal Adjust);
 RF (Register Flags) – регистр флажков, т.е. битов, указывающих
признаки результатов арифметических или логических операций, выполненных в
АЛУ.
Указываются пять признаков: Z (Zero) – нулевой результат, C (Carry) –
перенос, AC (Auxiliary Carry) – вспомогательный перенос, S (Sign) – знак, P
(Parity) – четность веса слова. Признак вспомогательного переноса (переноса
между младшей и старшей тетрадами восьмиразрядного слова) нужен при
выполнении операции в двоично-десятичном коде. Смысл остальных признаков
ясен из их наименований. Признаки служат для управления ходом процесса
обработки информации.
Блок регистров МП К1821ВМ85А
С внутренней шиной данных через мультиплексор/демультиплексор связан
блок регистров, часть которых специализирована, другая часть (регистры
общего назначения, РОН) программно доступна и может быть использована по
усмотрению программиста. Регистры обозначены через W, Z, B, C, D, E, H, L, SP
и PC. Регистры W и Z предназначены только для временного хранения данных
при выборке команды из памяти и недоступны для программиста. Регистры B, C,
D, E, H, L относятся к регистрам общего назначения, так как могут быть
использованы по усмотрению программиста. Эти восьмиразрядные регистры
могут применяться либо по отдельности, либо в виде пар B-C, D-E, H-L,
играющих роль 16-разрядных регистров. Пары регистров именуются по первым
регистрам пары как пары B, D, H. Пара H-L, как правило, используется для
размещения в ней адресов при косвенной регистровой адресации. В блоке
регистров имеются также 16-разрядные регистры SP и PC. Регистр SP (Stack
Pointer) – указатель стека. Стек (память с последовательным доступом) удобен
для запоминания массива слов, так как при этом не требуется адресовать каждое
слово отдельно. Слова загружаются в стек в определенном порядке, при
считывании также заранее известен порядок их следования. В частности, стек
удобен при запоминании состояний регистров в момент прерывания программы.
Порядок ввода слов в стек и их считывания предопределены его устройством.
При организации типа LIFO (Last In – First Out) последнее записанное в стек
слово при считывании появляется первым.
Аппаратно стек реализуется в ОЗУ, где для него выделяется определенная
область. Указатель стека SP содержит адрес последней занятой ячейки. При
выполнении операций PUSH и POP значение SP уменьшается или увеличивается.
Задавая в SP начальное значение, можно размещать стек в той или иной области

23
ОЗУ, следя при этом за тем, чтобы эта область не использовалась для других
целей.
При байтовой организации памяти и записи в стек содержимого
регистровой пары старший байт запоминается по адресу SP – 1, а младший – по
адресу SP – 2, содержимое SP уменьшается на 2. При выборке содержимое двух
верхних ячеек стека помещается в соответствующие регистры, а содержимое SP
увеличивается на 2.
Основное назначение стека – обслуживание прерываний программы и
выполнения подпрограмм.
Программный счетчик PC (Program Counter) дает адрес команды и
может обращаться в любую из 64 K ячеек АП. При сбросе МП PC принимает
нулевое состояние, которое является адресом первой исполняемой команды,
иначе говоря, выполнение программы начинается с нулевой ячейки. Длина
команды составляет 1…3 байта. Содержимое программного счетчика после
выборки очередного байта из памяти автоматически инкрементируется, так что в
PC появляется адрес следующей команды, если текущая команда была
однобайтовой или следующего байта текущей команды в противном случае.
Второй и третий байты команды поступают в регистры W и Z, которые не
адресуются программой и используются только блоком внутреннего управления.
Схема INC/DEC (Increment/Decrement) изменяет передаваемые через нее
слова на + 1 или – 1.
При обмене между МП и памятью или ВУ адрес соответствующей ячейки
памяти или ВУ от выбранной команды или одной из регистровых пар передается
в регистр адреса RA.
Буфер адреса BA с тремя состояниями выхода выдает сигналы старших
разрядов адреса на линии адресной шины А15…8.
Буфер шины адресов/данных BA/D с тремя состояниями выхода
передает на шину A/D с разделением во времени младший байт адреса или байт
данных.
Внутренняя восьмиразрядная шина данных передает байты между
различными внутренними регистрами или обменивается с другими модулями
МПС через мультиплексируемую шину адресов/данных.
Назначение блоков управления прерыванием и последовательным вводом-
выводом ясно из их названий. Режимы прерывания и последовательного ввода-
вывода подробнее рассмотрены ниже.

Блок управления МП К1821ВМ85А

Регистр команд IR (Instruction Register) принимает из памяти первый


байт команды, после дешифрации которого блок управления генерирует сигналы,
необходимые для реализации машинных циклов, предписанных кодом операции.
Блок синхронизации и управления использует выход дешифратора
команд и шифратора машинных циклов для синхронизации циклов, генерации
сигналов состояния и управления шиной (внешними устройствами
микропроцессорной системы).

24
При естественном следовании команд МП, начав работу, выбирает из
памяти и выполняет одну команду за другой, пока не дойдет до команды
«Останов» (HLT). Выборка и выполнение одной команды образует командный
цикл. Командный цикл состоит из одного или нескольких машинных циклов
(МЦ). Самая короткая команда выполняется за один машинный цикл М1, а самая
длинная – за пять циклов (М1 … М5). Каждое обращение к памяти или ВУ
требует машинного цикла, который связан с передачей байта в МП или из него. В
свою очередь, машинный цикл делится на то или иное число тактов (T), число
которых зависит от типа машинного цикла.
Микропроцессор К1821ВМ85А имеет следующие типы машинных циклов:
1 выборки команды (OF, Opcode Fetch);
2 чтения из памяти (MR, Memory Read);
3 записи в память (MW, Memory Write);
4 чтения из ВУ (IOR, Input-Output Read);
5 записи в ВУ (IOW, Input-Output Write);
6 подтверждения прерывания (INA, Interrupt Acknowledge);
7 освобождения шин (BI, Bus Idle);
8 останов (HALT).
В начале каждого машинного цикла генерируются сигналы состояния,
идентифицирующие тип цикла и действующие в течение всего цикла.
Функции выводов и сигналов:
 А15…8 – выходные линии с тремя состояниями для выдачи старшего
байта адреса памяти или полного адреса ВУ. Переходят в третье состояние в
режимах HOLD, HALT и RESET (захвата, останова или сброса соответственно);
 АD7…0 – двунаправленные мультиплексированные линии с тремя
состояниями для выдачи младшего байта адреса памяти или полного адреса ВУ в
первом такте машинного цикла, после чего используются как шина данных. Как
видно из сказанного, при адресации ВУ адресная информация обеих полушин
(А15…8 и АD7…0) дублируется;
 ALE – строб разрешения загрузки младшего байта адреса памяти во
внешний регистр для его хранения в течение машинного цикла. Появляется в
первом такте машинного цикла. Регистр загружается задним фронтом сигнала
ALE;
 , – стробы чтения или записи. Низкий уровень
соответствующего сигнала свидетельствует о том, что адресованная ячейка
памяти или внешнее устройство должны выполнить операцию чтения или записи.
Выводы переходят в третье состояние в режимах HOLD, HALT и RESET;
 READY – входной сигнал показывает, что память или ВУ готовы к
обмену с МП. Если готовности памяти или ВУ нет, МП входит в состояние
ожидания, которое может длиться любое число тактов, вплоть до появления
единичного уровня сигнала READY;
 S1, S0 – сигналы состояния МП, сообщаемые внешней среде.
Формируются в начале и сохраняются во время всего машинного цикла;

25
 – сигнал выбора памяти или внешнего устройства. При высоком
уровне происходит обращение к ВУ, при низком – к памяти.
Совместно с сигналами S1, S0 сигнал идентифицирует тип
машинного цикла. Сигналы состояния и управляющие сигналы , и
для различных машинных циклов имеют следующие значения (таблица 1);

Таблица 1 – Значения сигналов состояния и управления для различных


машинных циклов

Сигналы состояния Сигналы управления


Тип МЦ
S1 S0
OF 0 1 1 0 1 1
MR 0 1 0 0 1 1
MW 0 0 1 1 0 1
IOR 1 1 0 0 1 1
IOW 1 0 1 1 0 1
INA 1 1 1 1 1 0
BI TC   1 1 1
HALT TC 0 0 TC TC 1
Примечание – TC – третье состояние

 x1, x2 – эти выводы присоединяются к кварцевому резонатору или


другим частотно-задающим цепям для обеспечения работы внутреннего
генератора синхроимпульсов МП. Частота на выводах x1 и x2 в два раза выше
рабочей частоты;
 ( ) – вход сигнала сброса МП в начальное состояние.
Сигнал может поступить в любое время по команде оператора. Автоматически
формируется при включении питания. Под его воздействием сбрасываются
регистры PC и IR, триггеры разрешения прерывания, подтверждения захвата и
др.;
 CLK – выход синхроимпульсов для микропроцессорной системы.
Частота этих импульсов в два раза ниже частоты на выводах x1 и x2;
 RESET – выходной сигнал сброса для внешних модулей системы,
привязанный к тактовым импульсам CLK, т.е. отличающийся от сигнала
по фазе;
 INTR (Interrupt Request) – вход запроса векторного прерывания,
вызывающий генерацию строба , если прерывание разрешено программой.
Адрес подпрограммы, вызываемой этим входом, выдается внешним устройством.
При сбросе прием сигнала запрещается (прерывания запрещены);
 (Interrupt Acknowledge) – выход строба подтверждения
векторного прерывания после завершения текущего командного цикла.
Используется для чтения вектора прерывания;
 RST 5,5; RST 6,5; RST 7,5 – входы запросов радиального прерывания
типа RSTn (n = 5,5; 6,5; 7,5). Начальные адреса подпрограмм обслуживания
26
равны 8n. Приоритеты фиксированы, высший приоритет у входа RST 7,5.
Приоритеты всей группы запросов выше приоритета запроса INTR. Запросы
маскируемые, причем независимо друг от друга;
 TRAP – вход запроса немаскируемого прерывания, имеющий
максимальный приоритет;
 SID, SOD (Serial Input Data, Serial Output Data) – вход и выход
последовательной передачи данных. По команде RIM входной бит загружается в
старший разряд аккумулятора, по команде SIM выводится из этого разряда;
 HOLD – сигнал запроса захвата шин. Формируется внешним
устройством;
 HLDA – сигнал подтверждения захвата (Hold Acknowledge). Является
ответом на сигнал HOLD, формируемым в конце текущего машинного цикла.
Свидетельствует об отключении МП от системных шин. При этом шины и линии
управляющих сигналов , , и ALE переводятся в третье состояние.
Выводы x1 и x2 (рисунок 8), предназначенные для создания совместно с
внутренними элементами МП генератора тактовых импульсов, могут быть
использованы различными способами (рисунок 9, а). Кварц может быть
подключен непосредственно к выводам x1 и x2 как единственный частотно-
задающий элемент. Если частота генератора составляет 4 МГц или более, могут
понадобиться конденсаторы с рекомендованной емкостью 20 пФ для надежного
запуска генератора. Параллельный LC-контур также может быть подключен
непосредственно к выводам x1 и x2. При невысоких требованиях к стабильности
частоты можно использовать частотнозадающую RC-цепочку. Возможна
синхронизация от внешнего генератора ГТИ. При этом рекомендуется включать
внешние логические элементы с открытым коллектором, причем при частоте
генерации более 6 МГц включаются два логических элемента.
Для образования сигналов синхронизации CLK выход генератора подается
на вход T-триггера (рисунок 9, б). Триггер формирует две последовательности
противофазных импульсов Ф1 и Ф2 для тактирования внутренних схем МП.
Сигнал синхронизации системы CLK синфазен импульсам Ф2. Сигнал ALE
формируется как один импульс последовательности Ф1, выделяемый из нее в
первом такте (Т1) каждого машинного цикла. Буфер выдачи сигнала ALE во
внешние цепи имеет вход разрешения . Частота синхросигналов МП в два раза
ниже частоты генератора.

27
Рисунок 9 – Внешние элементы тактового генератора (а) и формирование
синхросигналов (б) в микропроцессоре К1821ВМ85А
Синхронизация и последовательность действий МП К1821ВМ85А
Командный цикл КЦ (рисунок 10, а) начинается с выборки команды (Op-
code Fetch, OF). Первый машинный цикл М1 всегда OF, в нем МП получает
первый байт команды. После этого могут быть еще один или два машинных цикла
типа MR (Memory Read), поскольку команда может быть однобайтной,
двухбайтной или трехбайтной.
Если команда трехбайтная, то она хранится в памяти, как показано на
рисунке 10, б. Первый байт содержит код операции (КОП), сведения о способе
адресации, а если команда однобайтная, то и адрес операнда. Наличие адреса
возможно для операций типа «регистр-регистр» с короткими адресами. Для
адресации восьми регистров общего назначения достаточны трехразрядные
адреса, а для адресации регистровых пар даже двухразрядные. Второй байт

28
содержит младший полуадрес операнда или младший байт операнда, если
команда трехбайтная, или непосредственный операнд либо адрес ВУ, если
команда двухбайтная. Третий байт содержит старший полуадрес операнда или
старший байт непосредственных данных при загрузке пары регистров. Адреса
регистров и регистровых пар указаны в таблице 2.

КЦ b1 N–2
М1 М2 М3 b2 N–1
Т1 Т2 Т3 Т4 Т1 Т2 Т3 Т1 Т2 Т3 b3 N
а) б)

Рисунок 10 – Циклы и такты микропроцессора К1821ВМ85А (а) и пример


размещения команды в памяти микропроцессорной системы (б)

Таблица 2 – Адреса регистров и регистровых пар МП К1821ВМ85А

Регистры Пары регистров


B C D E H L A B D H SP
000 001 010 011 100 101 111 00 01 10 11

После выборки и декодирования команды могут понадобиться


дополнительные машинные циклы для ее выполнения. Всего в командном цикле
может быть от одного до пяти машинных циклов.
Машинный цикл состоит из тактов, в которых выполняются типовые
действия, рассмотренные ниже. Число тактов в различных машинных циклах –
3…6. Большинство машинных циклов содержат три такта. В командном цикле
может содержаться от 4 до 18 тактов.
Сигналы, реализующие тот или иной МЦ, генерируются блоком
управления МП на основании информации, содержащейся в первом байте
команды.
Проиллюстрируем сказанное примером выполнения команды STA b3b2
(Store Accumulator Direct), передающей содержимое аккумулятора в ячейку
памяти при прямой адресации, т.е. указании адреса ячейки в самой команде. Для
передачи трехбайтной команды в МП требуются три машинных цикла, в первом
из которых байт b1 передается в регистр команд IR, в последующих байты b2 и b3
передаются в регистры временного хранения W и Z. После получения всей
команды МП выполняет ее, передавая байт из аккумулятора в ячейку памяти,
адрес которой поступил в МП. Таким образом, командный цикл состоит из
четырех машинных циклов, выполняемых в следующем порядке: OF-MR-MR-
MW.
Каждый машинный цикл делится на такты (состояния) – интервалы
между одноименными фронтами тактовых импульсов CLK.
Типовые действия, выполняемые в тактах различных машинных циклов:

29
T1 адрес памяти или ВУ выставляется на АD7…0 и А15…8, генерируется
сигнал ALE для фиксации битов АD7…0. На линиях , S1 и S0
выставляется информация, определяющая тип цикла. Проверяется
флаг HALT;
T2 проверяются входы READY и HOLD. Программный счетчик
инкрементируется, если данный машинный цикл является частью
выборки команды. Во всех машинных циклах, кроме цикла BI
(освобождения шин), один из управляющих стробов , или
переходит из единичного состояния в активное нулевое;
Tw появляется при неготовности памяти или ВУ к обмену (на линии
READY низкий уровень напряжения). Состояния линий адресов,
данных и управления остаются теми же, что и в конце такта. Сигнал
READY проверяется в каждом такте ожидания;
T3 байт команды или данных передается в микропроцессор или из него.
Уровень активного управляющего строба изменяется с нулевого на
единичный;
T4 декодируется содержимое регистра команд;
T5,6 используются при необходимости для завершения некоторых команд.
Системные шины не используются.
Машинный цикл всегда содержит такты T1…T3, иногда имеет большее
число тактов, но для чтения или записи требуется только три такта. Временные
диаграммы цикла чтения с тактом ожидания приведены на рисунке 11.

Система прерываний

При работе микропроцессорной системы в ней или вне ее могут произойти


события, требующие немедленной реакции. Такая реакция обеспечивается
прерыванием программы и переходом к обслуживанию источников запросов на
прерывание. Внутри системы запросы возникают при сбоях в работе,
переполнении разрядной сетки, попытке деления на нуль и т.д., а также при
требованиях обслуживания от внешних устройств. Извне могут поступать
сигналы аварийных ситуаций в управляемых объектах, неисправности источников
питания и др.
Прерывания по запросам от медленно действующих внешних устройств
увеличивают производительность системы, позволяя ВУ занимать время
процессора только при их готовности к обмену. Когда ВУ нуждается в
обслуживании, оно устанавливает триггер запроса прерывания, и сигнал запроса
сохраняется, пока не будет воспринят и обработан микропроцессором. В ответ на
принятый запрос прерывания в микропроцессорной системе завершается
выполнение текущей команды, запоминается состояние МП, выполняется
подпрограмма обслуживания прерывания, восстанавливается состояние МП, и
затем возвращается управление соответствующей команде основной программы.

30
Рисунок 11 – Временные диаграммы цикла чтения микропроцессора
К1821ВМ85А

Микропроцессор К1821ВМ85А имеет пять входов запросов прерывания и


один выход управления им . Прерывание должно ввести в действие команду
CALL, согласно которой состояние программного счетчика PC передается в стек,
а в PC загружается адрес подпрограммы, подлежащей выполнению. Инициатива
ввода команды CALL принадлежит аппаратным средствам микропроцессорной
системы. Если прерывания разрешены, то они осуществляются
микропроцессором в конце выполнения текущей команды.
Входы МП, связанные с прерываниями, называются TRAP; RST 5,5;
RST 6,5; RST 7,5; INTR. При организации прерываний решаются задачи
маскирования запросов и определяются их уровни приоритета при конфликтах из-
за одновременного поступления нескольких запросов.
Маскирование состоит в запрещении действия соответствующего входа.
Входы запросов прерывания могут быть маскируемыми или немаскируемыми, т.е.
принимаемыми всегда.
31
Вход TRAP является немаскируемым и имеет наивысший приоритет. Он
не может быть запрещен командами программы. К этому входу подключают
сигналы, оповещающие о наиболее важных событиях в микропроцессорной
системе, появление которых требует безусловной реакции (например, сигнал,
оповещающий об аварии питания, требующей немедленных мер).
Начальный адрес подпрограммы обслуживания прерывания TRAP
размещен в фиксированной ячейке памяти с адресом 24 H. Таким образом,
появление запроса прерывания по входу TRAP независимо ни от чего вызовет
соответствующее прерывание после завершения выполнения текущей команды.
Обозначение входов RSTn (n = 5,5; 6,5; 7,5) происходит от слова Restart.
Прерывания по этим входам маскируемые, т.е. могут быть разрешены или
запрещены командами EI (Enable Interrupt) и DI (Disable Interrupt),
действующими на все три входа одновременно. Начальный сброс
микропроцессора запрещает обслуживание этих запросов, для их последующего
разрешения следует подать команду EI. Имеется также возможность раздельного
маскирования запросов RSTn с помощью специальной команды SIM (Set Inter-
rupt Mask), по которой маски устанавливаются в соответствии со значениями
битов А0…А2 содержимого аккумулятора. Загрузив предварительно 1 в
соответствующий бит, можно запретить (замаскировать) тот или иной вход.
Приоритеты входов RSTn фиксированы, они снижаются в порядке RST 7,5;
RST 6,5; RST 5,5. Начальные адреса подпрограмм обслуживания прерываний
типа RSTn заканчиваются загрузкой в программный счетчик числа 8n. Цифры
5,5; 6,5 и 7,5 определяют начальные адреса 002C H, 0034 H и 003C H. Иными
словами, для входов этого типа векторы прерывания определяются
автоматически, и их не требуется передавать в МП из внешних устройств.
Вектором прерывания называют информацию, необходимую для
перехода к соответствующей подпрограмме обслуживания, в простейшем случае
это просто начальный адрес прерывающей подпрограммы.
Вход RST 7,5 является динамическим, реагирует на положительный фронт
сигнала, а входы RST 6,5 и RST 5,5 – статические, реагируют на уровень сигнала
и, следовательно, автоматически снимаются при исчезновении запросов по этим
входам. Запрос RST 7,5, принимаемый триггером с динамическим входом, после
снятия сигнала запроса не снимается и сохраняется, пока не будет обработано
прерывание или до команды SIM или RESET.
При поступлении запроса по входу INTR (Interrupt Request) вектор
прерывания должен быть передан в МП извне. К этому входу, в частности,
подключают контроллер прерываний – блок, который воспринимает несколько
запросов от внешних устройств, решает задачу приоритетности и маскирований и
вырабатывает для МП единственный сигнал INTR, с пересылкой в МП
соответствующего вектора прерывания. В данном случае также выполняется
команда RSTn, но n зависит от источника прерываний. Появление запроса INTR
при разрешенных прерываниях ведет к ответу микропроцессора сигналом ,
во время действия которого на шине АD7…0 появляется вводимый байт
начального адреса подпрограммы. Сигнал при этом поступает на входы

32
разрешения выхода буферных усилителей и обеспечивает передачу вектора
прерывания в МП (рисунок 12).

Рисунок 12 – Аппаратная реализация пересылки байта при выполнении операции


рестарта

Во время обработки прерываний, пока не выполнится команда EI,


запрещаются другие прерывания, кроме TRAP. Немаскируемое же прерывание
TRAP блокирует другие прерывания, но сохраняет состояние разрешения
поступившего уже сигнала прерывания.

Последовательный ввод-вывод

Микропроцессор имеет два вывода для передач последовательных данных


SOD и SID (Serial Output Data и Serial Input Data).
Вывод SOD управляется командой SIM, а сигнал с вывода SID
считывается командой RIM. Эти команды упоминались ранее как команды
установки и сброса масок для входов прерываний RSTn, они же используются и
для управления последовательным вводом-выводом.

33
При выводе до выполнения команды SIM в аккумуляторе формируется
слово, биты которого интерпретируются, как показано в таблице 3.
Таблица 3 – Описание разрядов регистра-аккумулятора при последовательном
выводе

Номер бита 7 6 5 4 3 2 1 0
Обозначение SOD SOE X R 7,5 MSE M 7,5 M 6,5 M 5,5

Номер бита Обозначение бита Назначение бита


7 SOD (Serial Output Данные для последовательного вывода
Date) из МП с выхода SOD
6 SOE (Serial Input Enable) Единичное значение бита передает
последовательные данные SOD на
соответствующий выход МП
5 X Не используется
4 R 7,5 Сбрасывает вход RST 7,5
3 MSE (Mask Set Enable) Единичное значение бита разрешает
действие битов 2…0
2…0 M 7,5…M 5,5 Единичное значение бита маскирует
запросы прерывания RST 7,5…RST 5,5
Например, установка SOD = 1, разрешение RST 6,5, сброс триггера
RST 7,5 и маскирование RST 5,5 будут выполнены двумя командами по
программе:
MVI A, b2 ; установка битов аккумулятора
SIM ; изменение масок и бита SOD
Команда MVI A, b2 пересылает в аккумулятор байт b2, который в данном
случае имеет вид 1 1  1 1 1 0 1.
Для ввода последовательных данных через контакт SID используется
команда RIM, обеспечивающая ввод последовательных данных и чтение масок
прерывания. После выполнения команды RIM в аккумуляторе фиксируется слово
со следующим значением битов (таблица 4).

34
Таблица 4 – Описание разрядов регистра-аккумулятора при последовательном
вводе

Номер бита 7 6 5 4 3 2 1 0
Обозначение SID I 7,5 I 6,5 I 5,5 IE M 7,5 M 6,5 M 5,5

Номер бита Обозначение бита Назначение бита


7 SID (Serial Input Date) Последовательные данные на входе SID
6…4 I 7,5; I 6,5; I 5,5 Логические уровни на выводах RST 7,5;
RST 6,5 и RST 5,5 соответственно
3 IE (Interrupt Enable) Значение бита показывает, какая из
команд EI и DI выполнялась последней,
на него влияет также наличие в данное
время режима прерывания, поскольку
он сопровождается сбросом триггера IE,
запрещая другие прерывания
2…0 M 7,5…M 5,5 Индицирует текущее состояние масок
прерывания

Система команд МП К1821ВМ85А

Команды МП приведены в таблице 5. В первой графе таблицы даны


мнемокоды команд с обозначениями регистров через r, пар регистров через rp,
ячеек памяти через M, третьего и второго байтов команды через b3b2, адресов ВУ
через port. Ссылки на ячейки памяти M подразумевают косвенную регистровую
адресацию: адреса этих ячеек берутся из регистровой пары H (регистров H и L) и,
следовательно, не нуждаются в указании в самой команде.

Таблица 5 – Система команд МП К1821ВМ85А

Мнемокод Код Флажки Число Содержание


байтов тактов циклов
1 2 3 4 5 6 7
Команды пересылки
MOV r1, r2 01ПППИИИ – 1 4 1 Пересылка из
регистра r2 в
регистр r1
MOV M, r 01110ИИИ – 1 7 2 Пересылка из
регистра в память
MOV r, M 01ППП110 – 1 7 2 Пересылка из
памяти в регистр
MVI r, b2 00ППП110 – 2 7 2 Пересылка
непосредственных
данных в регистр

35
Продолжение таблицы 5

Мнемокод Код Флажки Число Содержание


байтов тактов циклов
1 2 3 4 5 6 7
Команды пересылки
MVI M, b2 36 – 2 10 3 Пересылка
непосредственных
данных в память
LXI rp,b3b2 00ПР0001 – 3 10 3 Загрузка
непосредственных
данных в пару
регистров
LDA b3b2 3A – 3 13 4 Прямая загрузка
аккумулятора
STA b3b2 32 – 3 13 4 Прямая запись
аккумулятора в
память
LHLD b3b2 2A – 3 16 5 Прямая загрузка
пары регистров H
SHLD b3b2 22 – 3 16 5 Прямая загрузка
пары регистров H в
память
LDAX rp 00ПР1010 – 1 7 2 Косвенная загрузка
аккумулятора
посредством пары
регистров B или D
STAX rp 00ПР0010 – 1 7 2 Косвенная запись
аккумулятора в
память
посредством пары
регистров B или D
XCHG EB – 1 4 1 Обмен между
парами регистров H
иD
Команды арифметических и логических операций
ADD r 10000ИИИ + 1 4 1 Сложение регистра
и аккумулятора
ADD M 86 + 1 7 2 Сложение памяти и
аккумулятора
ADI b2 C6 + 2 7 2 Сложение
непосредственных
данных и
аккумулятора
ADC r 10001ИИИ + 1 4 1 Сложение регистра

36
и аккумулятора с
переносом

37
Продолжение таблицы 5

Мнемокод Код Флажки Число Содержание


байтов тактов циклов
1 2 3 4 5 6 7
Команды арифметических и логических операций
ADC M 8E + 1 7 2 Сложение памяти
и аккумулятора с
переносом
ACI b2 CE + 2 7 2 Сложение
непосредственных
данных и
аккумулятора с
переносом
SUB r 10010ИИИ + 1 4 1 Вычитание
регистра из
аккумулятора
SUB M 96 + 1 7 2 Вычитание памяти
из аккумулятора
SUI b2 D6 + 2 7 2 Вычитание
непосредственных
данных из
аккумулятора
SBB r 10011ИИИ + 1 4 1 Вычитание
регистра из
аккумулятора с
заемом
SBB M 9E + 1 7 2 Вычитание памяти
из аккумулятора с
заемом
SBI b2 DE + 2 7 2 Вычитание
непосредственных
данных из
аккумулятора с
заемом
INR r 00ППП100 (+) 1 4 1 Инкремент регистра
INR M 34 (+) 1 10 3 Инкремент памяти
DCR r 00ППП101 (+) 1 4 1 Декремент регистра
DCR M 35 (+) 1 10 3 Декремент памяти
INX rp 00ПР0011 – 1 6 1 Инкремент пары
регистров
DCX rp 00ПР1011 – 1 6 1 Декремент пары
регистров
DAD rp 00ПР1001 C 1 10 3 Сложение
регистровой пары

38
H с регистровой
парой

39
Продолжение таблицы 5

Мнемокод Код Флажки Число Содержание


байтов тактов циклов
1 2 3 4 5 6 7
Команды арифметических и логических операций
DAA 27 + 1 4 1 Преобразование
аккумулятора в
двоично-
десятичный код
ANA r 10100ИИИ + 1 4 1 Логическое И
регистра и
аккумулятора
ANA M A6 + 1 7 2 Логическое И
памяти и
аккумулятора
ANI b2 E6 + 2 7 2 Логическое И
непосредственных
данных и
аккумулятора
XRA r 10101ИИИ + 1 4 1 Исключающее
ИЛИ регистра и
аккумулятора
XRA M AE + 1 7 2 Исключающее
ИЛИ памяти и
аккумулятора
XRI b2 EE + 2 7 2 Исключающее
ИЛИ
непосредственных
данных и
аккумулятора
ORA r 10110ИИИ + 1 4 1 Логическое ИЛИ
регистра и
аккумулятора
ORA M B6 + 1 7 2 Логическое ИЛИ
памяти и
аккумулятора
ORI b2 F6 + 2 7 2 Логическое ИЛИ
непосредственных
данных и
аккумулятора
CMP r 10111ИИИ + 1 4 1 Сравнение
регистра и
аккумулятора
CMP M BE + 1 7 2 Сравнение памяти

40
и аккумулятора

41
Продолжение таблицы 5

Мнемокод Код Флажки Число Содержание


байтов тактов циклов
1 2 3 4 5 6 7
Команды арифметических и логических операций
CPI b2 FE + 2 7 2 Сравнение
непосредственных
данных и
аккумулятора
CMA 2F – 1 4 1 Инвертирование
аккумулятора
STC 37 C 1 4 1 Установка флажка
переноса
CMC 3F C 1 4 1 Инвертирование
флажка переноса
RLC 07 C 1 4 1 Циклический сдвиг
аккумулятора влево
RRC 0F C 1 4 1 Циклический сдвиг
аккумулятора
вправо
RAL 17 C 1 4 1 Циклический сдвиг
аккумулятора
влево через разряд
переноса
RAR 1F C 1 4 1 Циклический сдвиг
аккумулятора
вправо через
разряд переноса
Команды управления
JMP b3b2 C3 – 3 10 3 Безусловный
переход
Jусл b3b2 11УУУ010 – 3 10 3 Условный переход
CALL b3b2 CD – 3 18 5 Безусловный вызов
подпрограммы
Cусл b3b2 11УУУ100 – 3 11/18 3/5 Условный вызов
подпрограммы
RET C9 – 1 10 3 Возврат
Rусл 11УУУ000 – 1 5/11 1/3 Возврат при
условии
RST n 11nnn111 – 1 11 3 Повторный запуск
SPHL F9 – 1 6 1 Пересылка пары
регистров H в SP

42
Окончание таблицы 5

Мнемокод Код Флажки Число Содержание


байтов тактов циклов
1 2 3 4 5 6 7
Специальные команды
PUSH rp 11РП0101 – 1 11 3 Пересылка пары
регистров в стек
PUSH PSW F5 – 1 11 3 Пересылка
аккумулятора и
регистра флажков
в стек
POP rp 11РП0001 – 1 10 3 Загрузка
регистровой пары
из стека
POP PSW F1 + 1 10 3 Загрузка
аккумулятора и
регистра флажков
из стека
XTHL E3 – 1 18 5 Обмен между
регистровой парой
H и стеком
PCHL E9 – 1 5 1 Пересылка
регистровой пары
H в PC
IN port DB – 2 10 3 Ввод
OUT port D3 – 2 10 3 Вывод
EI FB – 1 4 1 Разрешение
прерывания
DI F3 – 1 4 1 Запрещение
прерывания
HLT 76 – 1 7 2 Останов
NOP 00 – 1 4 1 Нет операции
RIM 20 – 1 4 1 Чтение маски
прерывания
SIM 30 – 1 4 1 Запись маски
прерывания

Во второй графе коды первого байта команды b1 даются в двоичном


восьмиразрядном представлении, если требуется указать в них адреса операндов,
или в двухразрядном шестнадцатеричном представлении в иных случаях. Разряды
обобщенных адресов регистров – источников данных – выражены буквами ИИИ,
регистров – приемников данных – буквами ППП, пар регистров – буквами ПР.
Подставляя вместо буквенных символов обобщенные адреса (таблица 2), получим
коды конкретных вариантов команды.

43
Пример 1 – Из обобщенной формы команды пересылки MOV r1, r2
(пересылка из регистра r2 в регистр r1) получим код для конкретного варианта
MOV D, B (пересылка из регистра B в регистр D):

01 ППП
 ИИИ
  = 01
010
000 (2) = 50 H.
КОП Адр. r1 Адр. r2 D B
Пример 2 – Определим код команды загрузки непосредственных данных в
пару регистров D–E MVI D, 0800 H:

b1: 00ПР0001 = 0001 0001 (2) = 11 H;


D
b2: 00 H; b3: 08 H.

В данной команде байт b3 пересылается в старший регистр пары (D), а


байт b2 – в младший регистр (E).
Коды условий, при выполнении которых осуществляется указанная в
команде управления операция, обозначены буквами УУУ. Их расшифровка
приведена в таблице 6.

Таблица 6 – Коды условий для команд управления

УУУ Мнемокод Условия


000 NZ Неравенство нулю
001 Z Равенство нулю
010 NC Отсутствие переноса
011 C Наличие переноса
100 PO Нечетность
101 PE Четность
110 P Плюс
111 M Минус

Включая конкретные условия в мнемокоды команд, получаем их варианты.


Например, команда условного перехода из обобщенной формы Jусл b3b2
переводится в вариант JNZ b3b2 – переход к команде с адресом b3b2, если признак
результата говорит о том, что результат не равен нулю. Признаки формируются в
регистре флажков RF по результатам выполненной операции, формат которого
представлен на рисунке 13.

S Z 0 AC 0 P 1 C
бит 7 бит 0

Рисунок 13 – Формат регистра флажков RF

44
Значение признака S = 0 означает «плюс», S = 1 – «минус», Z = 0 –
неравенство нулю, Z = 1 – равенство нулю, C или AC = 1 – наличие переноса, C
или AC = 0 – отсутствие переноса, P = 0 – нечетность, P = 1 – четность. Разряды 5,
3, 1 содержат константы и для признаков не используются.
В коде команды рестарта RST три разряда, отмеченные буквами nnn,
формируются системой прерываний или указываются программистом. При
выполнении команды текущее содержимое программного счетчика PC
загружается в стек, а в PC формируется код с нулевым старшим байтом и
младшим байтом вида 000nnn000.
Операция сравнения производится вычитанием операндов с установкой
признака результата (Z = 1 – равные операнды, S = 0 – содержимое аккумулятора
больше второго операнда, S = 1 – меньше).
В третьей графе прочерк означает, что выполнение команды не
сопровождается выработкой флажков-признаков, знак плюс говорит об установке
всех признаков, знак плюс в скобках – об установке всех признаков, кроме
признака наличия или отсутствия переноса C, а символ C означает, что
вырабатывается только признак наличия или отсутствия переноса.
Команды RLC, RRC, RAL и RAR реализуют циклические (кольцевые)
сдвиги содержимого аккумулятора на один разряд в ту или иную сторону без
включения (RLC и RRC) или с включением (RAL и RAR) в кольцо разряда C
регистра флажков (рисунок 14).

Рисунок 14 – Схемы, поясняющие выполнение сдвигов микропроцессором

45
В командах управления число циклов и тактов следует брать из
знаменателя, если выполняется условие.

Пример выполнения программы

Выполнение команды реализуется в МПС через работу ее шин. Для


иллюстрации рассмотрим выполнение короткого фрагмента программы
пересылки байта 10 H из одной ячейки памяти в другую. Пусть пересылка
производится из ячейки 0100 H в ячейку 0101 H. Пусть также фрагмент
программы размещается в памяти, начиная с ячейки 2000 H.
Для выполнения фрагмента сначала нужно переслать байт в аккумулятор, а
затем из аккумулятора в память. Так как обращение к памяти подразумевает
косвенную адресацию, вначале требуется загрузка пары регистров H адресом
ячейки, к которой идет обращение. С учетом сказанного, фрагмент программы в
мнемокодах (на Ассемблере МП) примет вид, показанный в среднем столбце:
2000 LXI H, 0100 H 21 00 01
2003 MOV A, M 7E
2004 INX H 23
2005 MOV M, A 77

Команда загрузки непосредственных данных в пару регистров LXI rp, b3b2


имеет код 00ПР0001 (см. таблицу 5). Пара регистров H имеет адрес ПР = 10
(таблица 2). Подставив это значение в код команды, получаем код 21. В правом
столбце записана команда в кодах. Она имеет вид 21 00 01, так как после кода
операции из памяти извлекаются сначала младший (00), а затем старший (01)
байты. Команда трехбайтная и занимает ячейки памяти 2000…2002.
Однобайтная команда MOV A, M пересылки из памяти в аккумулятор
является вариантом команды MOV r, M с кодом 01ППП110. Подставив в этот код
адрес регистра A = 111, получаем код 7E.
Команда INX H прибавляет единицу к содержимому регистровой пары и
является вариантом, код которого получается из кода 00ПР0011 при подстановке
адреса пары регистров 10, что дает код 23.
Последняя команда фрагмента программы (пересылка из аккумулятора в
память) MOV M, A, имеющая код 77, пересылает содержимое аккумулятора в
ячейку памяти, адрес который находится в регистровой паре H. Эта команда
завершает выполнение фрагмента программы.

ПРОГРАММИРОВАНИЕ МИКРОПРОЦЕССОРОВ

Приемы программирования микропроцессоров

Микропроцессоры (МП) можно программировать на языках кодовых


комбинаций и Ассемблера. В первом случае команды программы
представляются в виде кодовых комбинаций в двоичной системе счисления. Это
усложняет поиск ошибок, программы трудно читаемы и плохо обозримы, трудно
вносить изменения. Наряду с указанными недостатками язык кодовых

46
комбинаций позволяет составлять программы наиболее эффективно, она занимает
минимальный объем памяти и быстрее исполняется.
При использовании языка Ассемблера программирование упрощается. В
этом языке вместо кодовых комбинаций применяется мнемоническая форма
записи операций, выполняемых в МП. С помощью мнемоники, взятой из
сочетания букв соответствующих английских слов, представляют вид
выполняемой операции, операнды и адреса. Каждой команде на языке
Ассемблера соответствует команда на языке кодовых комбинаций.
Язык Ассемблера упрощает запись команд, облегчает поиск ошибок,
обеспечивает лучший обзор программы и простоту внесения исправлений в
программу.
Перед исполнением программа должна быть переведена с языка
Ассемблера на язык кодовых комбинаций и в таком виде помещена в память
микропроцессорной системы (МПС). Этот перевод осуществляется с помощью
программы трансляции, называемой ассемблером. Язык Ассемблера можно
использовать и при отсутствии программы для трансляции, в этом случае
трансляция осуществляется вручную.
Язык Ассемблера индивидуален для каждого микропроцессорного
комплекта (МПК).
Следующий уровень языка программирования – язык Макроассемблера.
В нем предусматривается возможность присвоения имени некоторой
последовательности команд, а в любых местах программы, где должна быть
использована эта последовательность, указывается лишь имя последовательности.
Применение языка Макроассемблера сокращает запись программы (в среднем на
5…20%) и тем самым улучшает ее обозримость. Каждая серия МПК имеет свой
индивидуальный язык Макроассемблера.
Следующий уровень языка программирования – язык высокого уровня.
Языки высокого уровня обеспечивают большую компактность программы, что
улучшает обзор программы и выявление в ней ошибок.
Различают машинно-независимые и машинно-зависимые языки
высокого уровня. Первые позволяют вести запись программы независимо от
серии МПК (к таким языкам относятся Бейсик, Паскаль и др.). Вторые пригодны
для определенных серий МПК, например, для программирования устройств,
построенных с использованием МПК серии КР580, разработан язык высокого
уровня PLM-80.
Языки высокого уровня требуют более сложных трансляторов, кроме того,
полученная после трансляции программа занимает больший объем памяти (на
10…100%) и медленнее исполняется, чем в том случае, когда эта программа
составляется непосредственно в кодовых комбинациях. При этом эффективность
программ на машинно-независимых языках программирования обычно ниже, чем
в случае использования машинно-зависимых языков.
Для относительно несложных программ (например, объемом до одной
тысячи команд) целесообразно использовать языки низкого уровня: язык кодовых
комбинаций, язык Ассемблера или язык Макроассемблера.

47
Язык Ассемблера

Программа на языке Ассемблера представляется в виде


последовательности предложений, каждое из которых занимает отдельную строку
и содержит четыре фиксированных поля: поле метки, поле команды, поле
операнда и поле комментариев.
Поле метки. Если предложение снабжается именем, то оно записывается в
поле метки. Имя состоит из последовательности заглавных букв латинского
алфавита и цифр. Начинается имя с буквы, содержит не более пяти символов и
заканчивается двоеточием (например, M1:). Обычно именами снабжаются
предложения, на которые производится условный либо безусловный переход.
Поле команды. В этом поле записывается мнемоническое обозначение
кода операции, приводимое в системе команд МП.
Поле операнда. В этом поле приводятся участвующие в операции числа
(непосредственные данные), указания об источниках и приемниках операндов. В
предложениях условных и безусловных переходов в поле операнда указывается
имя (метка) предложения, на которое осуществляется переход.
Числовые данные могут представляться в различных системах счисления.
Для указания выбранной для представления числа системы счисления после
шестнадцатеричного числа ставится символ H (если шестнадцатеричное число
начинается с букв A, …, F, то перед числом ставится цифра 0), после десятичного
числа можно ставить символ D (либо не записывать никакого символа),
восьмеричное число заканчивается символом Q, двоичное – символом B.
Например, пусть требуется загрузить в пару регистров H-L число A195(16).
Указанное действие на языке Ассемблера описывается следующим
предложением:

Метка Команда Операнд Комментарий


M2: LXI H, 0A195H ; загрузка пары регистров H-L

В качестве операндов могут быть указаны счетчик команд


идентификатором PC и двухбайтовое содержимое регистра-аккумулятора вместе
с регистром флажков – идентификатором PSW. В командах ввода (IN) и вывода
(OUT) в поле операнда указывается номер (адрес) устройства, с которым МП
обменивается данными.
При наличии двух операндов они разделяются запятой. Обозначения
операндов отделяются от мнемоники одним или двумя пробелами.
Поле комментариев. Это поле может содержать любой пояснительный
текст, который облегчает чтение программ. Перед комментарием ставится символ
";" (точка с запятой). Приведенная в комментарии запись нужна лишь
программисту, при трансляции она игнорируется ассемблером.

Программирование последовательных участков алгоритма

При программировании последовательных участков алгоритма команды


условных и безусловных переходов не используются. В этом случае команды
48
программы размещаются в ячейках памяти с последовательно нарастающими
адресами. Поле метки может отсутствовать.
Пример 1 – Требуется принять число из ячейки памяти (ЯП) по адресу
0B00 H, проинвертировать его и записать результат в ЯП по адресу 0B01 H.
Начальный адрес программы 0800 H.
Схема алгоритма решения задачи представлена на рисунке 15.

Рисунок 15 – Схема алгоритма инвертирования содержимого ЯП

Для записи программы в память микро ЭВМ (МПС) необходимо перевести


мнемокоды команд в машинные коды (ручная трансляция). Команды в программе
могут быть одно-, двух- или трехбайтные и должны занимать в памяти
соответственно один, два или три адреса. Запись программ удобно проводить в
компактной форме. В программе указывается начальный адрес каждой команды и
при этом понимается, что в зависимости от длины команды в памяти будут
занимать от одной до трех последовательных ячеек.
Программа инвертирования содержимого ЯП на языке Ассемблера при
использовании прямой адресации представлена в таблице 7.

Таблица 7 – Программа инвертирования содержимого ЯП на языке Ассемблера


при использовании прямой адресации

Адрес Метка Команда Операнд Машинный код Комментарий


0800 LDA 0B00 H 3A 00 0B ; чтение числа из памяти
0803 CMA 2F ; инвертирование числа
0804 STA 0B01 H 32 01 0B ; запись числа в память
0807 HLT 76 ; останов

49
Программа инвертирования содержимого ЯП на языке Ассемблера при
использовании косвенной регистровой адресации представлена в таблице 8.

Таблица 8 – Программа инвертирования содержимого ЯП на языке Ассемблера


при использовании косвенной регистровой адресации

Адрес Метка Команда Операнд Машинный код Комментарий


0800 LXI H,0B00H 21 00 0B ; запись в пару регистров
; H-L адреса числа
0803 MOV A,M 7E ; чтение числа из памяти
0804 CMA 2F ; инвертирование числа
0805 INX H 23 ; увеличение на 1 адреса
; числа
0806 MOV M,A 77 ; запись числа в память
0807 HLT 76 ; останов

Две программы решения задачи равноценны по требуемой емкости


памяти. Однако программа в таблице 7 обеспечивает более высокое
быстродействие, так как выполняется за 37 тактовых периодов сигнала
синхронизации (программа в таблице 8 выполняется за 41 тактовый период).

Программирование циклических вычислительных процессов

При программировании участков алгоритмов, содержащих разветвления и


циклы, используются команды условных переходов. При выполнении этих
команд МП проверяет состояние соответствующего разряда регистра флажков
RF. Если при проверке условие не подтверждается, то выполняется следующая по
порядку команда программы. Все команды условных переходов трехбайтные.
Первый байт содержит код команды, второй и третий байты – адрес команды,
которой передается управление. Таким образом, команды условных переходов
позволяют строить ветвящиеся алгоритмы и в зависимости от текущего значения
результата выполнения программы переходить на различные участки программы.
Для счета числа повторений цикла на одном из внутренних регистров МП
организуется счетчик. В этот регистр предварительно записывается число
повторений цикла и после каждого его повторения из регистра вычитается
единица, а затем проверяется, равно ли нулю содержимое регистра. При
достижении нулевого значения производится выход из цикла.
Пример 2 – Составить циклическую программу сложения массива
однобайтных чисел (число слагаемых равно 05 H) с получением двухбайтного
результата. Начальный адрес исходных данных 0A00 H. Счетчик циклов
организовать на регистре B. Старший байт суммы записать в регистр C, а
младший – в аккумулятор AC. Начальный адрес программы 0800 H. Схема
алгоритма программы сложения (рисунок 16) состоит в том, что после
прибавления каждого элемента массива определяется переполнение аккумулятора

50
AC (значение бита C в регистре флажков RF равно единице), и если это имеет
место, то содержимое регистра C

51
Рисунок 16 – Схема алгоритма циклической программы суммирования
однобайтных чисел

52
увеличивается на единицу. Таким образом, за счет суммирования единиц
переноса получается старший байт суммы.
Циклическая программа суммирования однобайтных чисел на языке
Ассемблера представлена в таблице 9.

Таблица 9 – Циклическая программа суммирования однобайтных чисел на языке


Ассемблера

Адрес Метка Команда Операнд Машинный код Комментарий


0800 LXI H,0A00H 21 00 0A ; адрес первого слагаемого
0803 MVI B,05H 06 05 ; количество слагаемых
0805 ADDB: XRA AC AF ; обнуление регистра AC
0806 MOV C,AC 4F ; обнуление регистра C
0807 M1: ADD M 86 ; суммирование
0808 JNC M2 D2 0C 08 ; условный переход на
; M2, если (TC) = 0
080B INR C 0C ; увеличение содержимого
; регистра C на единицу
080C M2: INX H 23 ; увеличение содержимого
; пары регистров H-L на
; единицу
080D DCR B 05 ; уменьшение на единицу
; содержимого счетчика
; циклов
080E JNZ M1 C2 07 08 ; условный переход на
M1, если (TZ) = 0
0811 HLT 76 ; останов

Составление программ, содержащих подпрограммы

Учитывая ограниченные возможности памяти при разработке программ,


нужно стараться сделать их как можно короче. С этой целью часть программы,
которая неоднократно повторяется, или программа, которая часто используется,
могут быть оформлены в виде подпрограмм – последовательностей команд,
выполнение которых может быть вызвано из любого места программы любое
количество раз. Процесс передачи управления к подпрограмме называется ее
вызовом. Данные и адреса, требуемые для работы подпрограммы, называются
входными параметрами. Результаты работы подпрограммы, передаваемые по
окончании ее работы в основную программу, называются выходными
параметрами.
Для вызова подпрограмм и возврата из них используются команды
безусловного и условного вызова подпрограмм и возврата из них.
Команда безусловного вызова подпрограммы CALL b3b2 загружает в
программный счетчик МП PC содержимое байтов b3b2, т.е. начальный адрес

53
подпрограммы. При этом МП автоматически сохраняет в стеке адрес основной
программы, к которому она будет обращаться после выполнения подпрограммы
(адрес возврата).
Команда RET пересылает в программный счетчик PC адрес возврата,
после этого выполнение программы будет осуществляться с этого адреса.
Команды условного вызова подпрограмм и возврата из них позволяют
вызвать подпрограмму и возвратиться из нее в зависимости от состояния
заданных разрядов регистра флажков RF (аналогично командам условных
переходов).
Таким образом, команды вызова подпрограмм и возврата из них
используют стек и указатель стека SP. Поэтому при разработке таких программ
необходимо назначить область стека, записывая в указатель стека SP адрес
(нижняя граница стека) с помощью команд LXI SP, b3b2 или SPHL.
В качестве подпрограммы можно использовать программу,
представленную в таблице 9. Входными параметрами подпрограммы
суммирования ADDB (таблица 9) являются адрес первого слагаемого, записанный
в паре регистров H-L, и число слагаемых, записанное в регистре B. Выходным
параметром является сумма, старший байт которой записан в регистре C, а
младший – в аккумуляторе AC.
Программа суммирования массива однобайтных чисел на языке
Ассемблера, содержащая подпрограмму, представлена в таблице 10.
Таблица 10 – Программа суммирования массива однобайтных чисел на языке
Ассемблера, содержащая подпрограмму

Адрес Метка Команда Операнд Машинный код Комментарий


0800 LXI H,0A00H 21 00 0A ; адрес первого слагаемого
0803 MVI B,05H 06 05 ; количество слагаемых
0805 CALL ADDB CD 09 08 ; вызов подпрограммы
; сложения
0808 HLT 76 ; останов
0809 ADDB: XRA AC AF ; обнуление регистра AC
080A MOV C,AC 4F ; обнуление регистра C
080B M1: ADD M 86 ; суммирование
080C JNC M2 D2 10 08 ; условный переход на
; M2, если (TC) = 0
080F INR C 0C ; увеличение содержимого
; регистра C на единицу
0810 M2: INX H 23 ; увеличение содержимого
; пары регистров H-L на
; единицу
0811 DCR B 05 ; уменьшение на единицу
; содержимого счетчика
; циклов
0812 JNZ M1 C2 0B 08 ; условный переход на
M1, если (TZ) = 0

54
0815 RET C9 ; возврат в основную
; программу

55
ИНТЕРФЕЙСНЫЕ БИС/СБИС

Общие сведения об интерфейсных схемах

Схемы интерфейса обеспечивают функциональную и электрическую


совместимость при обмене информацией между микропроцессором (МП) и
устройствами, участвующими в передаче или приеме информации. К ним
относятся: шинные формирователи (ШФ), буферные регистры (БР), параллельные
и последовательные адаптеры (интерфейсные блоки ввода-вывода) и др.
Как отмечалось выше, выходы МП КР1821ВМ85А имеют низкую
нагрузочную способность ( , ), поэтому к выходам МП
может быть подключено не более одного входа микросхемы ТТЛШ. Так как токи,
потребляемые нагрузкой МП, обычно превышают указанные выше допустимые
значения, в шины адреса и данных включаются буферы. Для построения таких
буферов предусмотрены ШФ.
Для обмена информацией между модулями МПС используются
параллельные и последовательные порты, хранящие информацию до тех пор, пока
она не будет востребована МП или ВУ. Они могут быть реализованы с помощью
параллельных или последовательных адаптеров либо представлять собою более
простые схемы. Например, в простейшем случае в качестве параллельного порта
можно использовать БР, который может выполнять роль буфера и хранить
передаваемую информацию. Параллельные и последовательные адаптеры берут
на себя управляющие функции при вводе-выводе информации, освобождая МП от
этой процедуры.

Шинные формирователи

ШФ, называемые также приемопередатчиками, шинными драйверами и


т.д., включаются между источником информации (МП) и системной шиной. В
английской терминологии ШФ обозначается как BD (Bus Driver). Они усиливают
сигналы по мощности при работе на шину, отключают МП от шины, когда он не
участвует в обмене. Двунаправленные ШФ в зависимости от сигнала управления
позволяют передавать сигналы в шину от МП или, наоборот, принимать их с
шины и передавать МП.
Различные ШФ отличаются разрядностью, электрическими параметрами и
возможностью передачи сигналов в прямом или инвертированном виде (ШФИ).
В МПК серии КР580 имеются ШФ КР580ВА86 и ШФИ КР580ВА87
(аналоги зарубежных микросхем Intel 8286 и 8287 соответственно). Рассмотрим
ШФ КР580ВА86 (рисунок 17).
ШФ КР580ВА86 (схемотехника ТТЛШ) предназначен для
двунаправленной управляемой передачи восьмиразрядных данных. Шина A
(линии А7…0) принимает данные от МП или передает их ему (рисунок 17, а), шина
B (линии B7…0) связана с системной шиной, на которую ШФ передает
информацию или с которой снимает ее. В каждом разряде ШФ включены два
повтори-

56
Рисунок 17 – Шинный формирователь КР580ВА86. Схема логическая (а) и
временные диаграммы работы (б)

57
t1 – задержка распространения сигналов от входов к выходам;
t2 – задержка перехода выходов в Z-состояние;
t3 – задержка перехода выходов в активное состояние;
t4 и t5 – время выдержки и предустановки сигнала T относительно сигнала .

б)

Окончание рисунка 17

теля с Z-состоянием на выходах. Сигнал ( ) высоким уровнем


переводит выходы повторителей (усилителей) в Z-состояние либо разрешает
передачу данных при низком уровне. При разрешении работы ( )
направление передачи зависит от уровня сигнала T (Transmit). Если T = 1, то
передача от шины A к шине B, а если T = 0, то передача в обратном направлении.
Выходы ШФ имеют разную нагрузочную способность. Выходы B
обеспечивают токи: , , выходы A: ,
. Поэтому шина A подключается к МП, а шина B – к системной
шине.
Задержка распространения сигнала через открытые ШФ составляет 20 нс
(интервал t1 на рисунке 17, б).
58
ШФ широко представлены в различных сериях цифровых элементов.
Например, микросхема ЭКР1554АП26 (схемотехника КМОП) представляет собой
восьмиканальный двунаправленный приемопередатчик с раздельным
управлением с Z-состоянием на выходах. Выходные токи ,
. Задержка распространения сигнала не более 6 нс при напряжении
питания 4,5 В.

Буферные регистры

Буферные регистры (БР) также работают на шину, но, в отличие от ШФ,


способны хранить данные. Благодаря этому они могут выполнять временную
буферизацию данных, что составляет важнейшую функцию портов. Буферные
элементы с Z-состоянием на выходах обеспечивают портом возможность
отключения от шины под действием управляющих сигналов, а также
необходимую нагрузочную способность. Через порты ввода данные от ВУ
поступают в системную шину, а через порты вывода данные с системной шины
передаются тому или иному ВУ. Порты ввода-вывода могут выполнять обе
указанные операции.
В МПК серии КР580 имеются восьмиразрядные БР КР580ИР82 и
КР580ИР83 (с инверсией на выходах) – аналоги зарубежных микросхем Intel 8282
и 8283 соответственно.
Рассмотрим БР КР580ИР82 (рисунок 18).
БР содержит восемь D-триггеров, на выходе которых включены буферные
элементы с Z-состоянием. В зависимости от значения сигнала на входе STB
(строб приема) схема работает в режиме ШФ или хранения.
Работа схемы в режиме ШФ происходит при сочетании сигналов STB = 1,
. При этом данные передаются с входов DI7…DI0 на выходы DO7…DO0. По
отрицательному перепаду сигнала STB (рисунок 18, б) происходит фиксация
данных в триггеры регистра, и информация сохраняется там, пока сигнал STB = 0.
В течение этого времени изменение данных на входах DI7…DI0 не влияет на
состояние триггеров.
Сигнал разрешает работу буферных элементов, подключенных к
выходам триггеров (рисунок 18, а), и тем самым передает содержимое регистра на
выходы DO7…DO0. Высокий уровень сигнала переводит выходы буферных
элементов в Z-состояние независимо от значений сигналов STB и DI7…0.
Задержка распространения сигнала от входа к выходу (интервал t1 на
рисунке 18, б) при STB = 1 и составляет 30 нс. Выходные токи те же, что и
для ШФ КР580ВА86.

59
Рисунок 18 – Буферный регистр КР580ИР82. Схема логическая (а) и временные
диаграммы работы (б)

60
t1 – задержка распространения сигналов от входов к выходам;
t2 – задержка перехода выходов в Z-состояние;
t3 – задержка перехода в активное состояние;
t4 – интервал от изменения строба до изменения выхода схемы;
t5 и t6 – времена предустановки и выдержки входного сигнала относительно спада
строба
б)

Окончание рисунка 18

Рассмотренный БР позволяет реализовать порт ввода или вывода. Во


многих сериях цифровых элементов представлены многорежимные БР,
позволяющие реализовать порты ввода-вывода. Например, микросхема
ЭКР1554АП24 представляет собой восьмиканальный двунаправленный
приемопередатчик с регистром с Z-состоянием на выходах. Эта микросхема
обеспечивает выходные токи . Задержка
распространения сигнала не более 10 нс при напряжении питания 4,5 В.

61
Параллельные периферийные адаптеры (ППА)
ШФ и БР осуществляют лишь непосредственную или буферизованную во
времени передачу данных между МП и системной шиной данных. Более сложные
операции выполняются ППА. Программируемость ППА обеспечивает им
широкую область применения вследствие изменяемости процедур обмена с
помощью команд программы без изменений в схеме.
В схемах обмена параллельными данными, как правило, используется
базовая структура параллельного адаптера КР580ВВ55А (аналог зарубежной
микросхемы Intel 8255A). ППА обеспечивает двунаправленный обмен с
квитированием (с подтверждением готовности к обмену) или без него при
программном обмене или обмене по прерываниям. С помощью ППА ВУ,
работающие с параллельными кодами, связываются с системной шиной данных
МПС.
Рассмотрим структурную схему ППА КР580ВВ55А (рисунок 19).
ППА имеет три двунаправленных восьмиразрядных порта PA, PB и PC,
причем порт PC разделен на два четырехразрядных канала: старший PCH и
младший PCL. Обмен данными между каналами A, B и C и системной шиной
данных МПС производится через буфер данных BD в соответствии с сигналами
управления.
Блок управления чтением/записью (рисунок 19) получает стробы чтения
и записи (это управляющие сигналы и стандартного
интерфейса), сигнал сброса RESET, сигнал выбора адаптера , получаемый
декодированием старших разрядов его адреса (A7…A2), и два младших разряда
адреса A1 и A0 для адресации внутренних регистров ППА. Внутренних
адресуемых объектов пять: три порта (A, B и C), регистр управляющего слова
(РУС) и команда установки/сброса битов порта C BSR (Bit Set/Reset). Адресация
и направление передач информации определяются согласно таблице 11.
Таблица 11 – Адресация внутренних регистров ППА и направление передач
информации

A1 A0 Операция
0 0 0 1 0 Порт A → Системная ШД
0 1 0 1 0 Порт B → Системная ШД
1 0 0 1 0 Порт C → Системная ШД
1 1 0 1 0 Запрещенная комбинация
0 0 1 0 0 Системная ШД → Порт A
0 1 1 0 0 Системная ШД → Порт B
1 0 1 0 0 Системная ШД → Порт C
1 1 1 0 0 Системная ШД → РУС при D7 = 1
Системная ШД → BSR при D7 = 0
X X 1 1 0 Шины отключены (Z-состояние)
X X X X 1 Шины отключены (Z-состояние)
Примечание – Знак «X» означает произвольный уровень сигнала (0 или 1)
62
Рисунок 19 – Параллельный периферийный адаптер. Схема электрическая
структурная

Как видно из таблицы 11, адрес А 1А0 = 11 соответствует передаче


управляющих слов (УС) в РУС (УС1) или команды BSR (УС2), причем по этому
адресу допускается только запись. Передача двух разных УС при одном и том же
адресе возможна только потому, что признаком того или иного УС служит
значение старшего бита передаваемого слова D7. Таким образом, этот бит
выполняет дополнительную адресацию УС.
Работа адаптера начинается после загрузки с системной ШД в РУС
управляющего слова УС1, задающего портам адаптера один из трех возможных
режимов работы и направленность порта (ввод или вывод).

63
Возможны три режима работы портов: 0, 1 и 2, причем порт A может
работать в любом из трех режимов, порт B только в двух (0 или 1), а режим порта
C зависит от режимов портов A и B.
Порт C имеет особенности: в отличие от портов A и B, которые оперируют
со словами в целом, разряды порта C могут программироваться и использоваться
поодиночке. В частности, любой из восьми разрядов порта C может быть
установлен или сброшен программным способом. Это нужно для передачи
сигналов квитирования при обмене через порты A и B в режимах 1 и 2. При
работе порта в режиме 1 для него под сигналы управления требуются три линии
порта C, в режиме 2 – пять линий.
Режимы работы портов:
 режим 0 – однонаправленный ввод-вывод без квитирования, в этом
режиме могут работать порты A и B, а также свободные (не занятые передачей
служебных сигналов для портов A и B) линии порта C;
 режим 1 – однонаправленный ввод-вывод с квитированием;
 режим 2 – двунаправленный ввод/вывод с квитированием.
Квитирование позволяет вести асинхронный обмен с учетом готовности
абонента к передаче.
Рассмотрим формат управляющего слова УС1 (рисунок 20).

64
Рисунок 20 – Формат управляющего слова УС1 ППА

65
При записи нового УС1 используется вывод в режиме 0, при этом
регистры портов сбрасываются.
При вводе информация на системную ШД поступает при выполнении МП
команды ввода INport, при выводе – при выполнении команды вывода OUTport.
Во втором байте команд ввода INport и вывода OUTport указывается
адрес порта.
Пример – Составим программу ввода данных из порта A и вывода в порты
B и C.

 MVI A, 90 H ; загрузка УС1 в регистр А МП



 (90 H – код УС1)
Программирование ППА 
 OUT 83 H ; загрузка УС1 в РУС ППА

 (83 H – адрес РУС)
 IN 80 H ; ввод данных из порта A
 (80 H – адрес порта A)

 OUT 81 H ; вывод данных из порта B (81 H
Ввод-вывод данных 
 – адрес порта B)
 OUT 82 H ; вывод данных из порта C (82 H

 – адрес порта C)

При поступлении из шины управления МПС сигнала RESET все


канальные регистры сбрасываются в нулевое состояние, а в РУС записывается
управляющее слово УС1, при котором все порты устанавливаются на ввод в
режиме 0 (буферы всех каналов устанавливаются в Z-состояние).
Управляющее слово УС2 (рисунок 21) задает значение 0 или 1 одному из
разрядов порта C. Для приведения в определенное состояние нескольких разрядов
порта C нужно последовательно подать в адаптер соответствующее число УС2.

Рисунок 21 – Формат управляющего слова УС2 ППА

66
Например, для установки разрядов D0 и D2 порта C в единичное состояние
необходимо выполнить следующую последовательность команд:

MVI A, 01 H ; загрузка УС 2 в регистр A МП (01 H – код УС2)


OUT 83 H ; загрузка команды BSR (83 H – адрес команды)
MVI A, 05 H ; загрузка УС 2 в регистр A МП (05 H – код УС2)
OUT 83 H ; загрузка команды BSR (83 H – адрес команды)

В режимах 0 и 1 изменение направления передачи (ввод или вывод)


требует загрузки в РУС ППА нового УС1, а в режиме 2 для этого достаточно
изменить уровни сигналов на входах чтения и записи ППА. Таким
образом, обеспечивается возможность быстрого переключения направления
передачи информации.
Более подробно ППА рассмотрен в [4].

67
ЛИТЕРАТУРА

1 Калабеков, Б. А. Цифровые устройства и микропроцессорные системы :


учеб. для техникумов связи / Б. А. Калабеков. – М. : Горячая линия. –
Телеком, 2002. – 336 с.
2 Микропроцессоры : учеб. для техн. вузов. В 3 кн. / Н. В. Воробьев
[и др.] ; под общ. ред. Л. Н. Преснухина. – Мн. : Высшая школа, 1987. –
Кн. 3 : Средства отладки. Лабораторный практикум и задачник. – 287 с.
3 Мышляева, И. М. Цифровая схемотехника : учеб. для сред. проф.
образования / И. М. Мышляева. – М. : Издательский центр «Академия»,
2005. – 400 с.
4 Угрюмов, Е. П. Цифровая схемотехника : учеб. пособие для вузов. – 2-е
изд., перераб. и доп. / Е. П. Угрюмов. – Спб. : БХВ-Петербург, 2005. –
800 с.

68
СОДЕРЖАНИЕ

ВВЕДЕНИЕ......................................................................................................................3
ОБЩИЕ СВЕДЕНИЯ О МИКРОПРОЦЕССОРАХ.....................................................3
Общие сведения о микропроцессорах, основные определения и
классификация.............................................................................................................3
Общая структурная схема микропроцессора............................................................7
Два подхода в построении УУ микропроцессора....................................................8
Структурная схема МП со схемной логикой управления.......................................9
Принцип микропрограммного управления. Структурная схема МП на основе
программируемой логики управления....................................................................10
Типовая структурная схема МПС с мультиплексируемой шиной адресов и
данных........................................................................................................................13
Управление памятью и внешними устройствами..................................................16
МИКРОПРОЦЕССОР К1821ВМ85А..........................................................................18
Структура микропроцессора К1821ВМ85А...........................................................18
Блок регистров МП К1821ВМ85А...........................................................................20
Блок управления МП К1821ВМ85А........................................................................21
Синхронизация и последовательность действий МП К1821ВМ85А...................25
Система прерываний.................................................................................................27
Последовательный ввод-вывод................................................................................30
Система команд МП К1821ВМ85А.........................................................................32
Пример выполнения программы..............................................................................40
ПРОГРАММИРОВАНИЕ МИКРОПРОЦЕССОРОВ................................................40
Приемы программирования микропроцессоров....................................................40
Язык Ассемблера.......................................................................................................42
Программирование последовательных участков алгоритма................................42
Программирование циклических вычислительных процессов............................44
Составление программ, содержащих подпрограммы............................................46
ИНТЕРФЕЙСНЫЕ БИС/СБИС....................................................................................48
Общие сведения об интерфейсных схемах.............................................................48
Шинные формирователи...........................................................................................48
Буферные регистры...................................................................................................51
Параллельные периферийные адаптеры.................................................................54
ЛИТЕРАТУРА...............................................................................................................59

69

Вам также может понравиться