Учебники

Микропроцессор — Краткое руководство

Микропроцессор — Обзор

Микропроцессор — это управляющий блок микрокомпьютера, изготовленный на небольшом чипе, способный выполнять операции ALU (Арифметическая логическая единица) и связываться с другими подключенными к нему устройствами.

Микропроцессор состоит из ALU, массива регистров и блока управления. АЛУ выполняет арифметические и логические операции с данными, полученными из памяти или устройства ввода. Массив регистров состоит из регистров, обозначенных буквами, как B, C, D, E, H, L и аккумулятора. Блок управления контролирует поток данных и инструкций внутри компьютера.

Блок-схема базового микрокомпьютера

Базовый микрокомпьютер

Как работает микропроцессор?

Микропроцессор следует последовательности: выборка, декодирование, а затем выполнение.

Первоначально инструкции хранятся в памяти в последовательном порядке. Микропроцессор извлекает эти инструкции из памяти, затем декодирует их и выполняет эти инструкции до тех пор, пока не будет достигнута команда STOP. Позже он отправляет результат в двоичном формате на выходной порт. Между этими процессами регистр временно хранит данные, а ALU выполняет вычислительные функции.

Список терминов, используемых в микропроцессоре

Вот список некоторых часто используемых терминов в микропроцессоре:

  • Набор инструкций — это набор инструкций, которые может понять микропроцессор.

  • Полоса пропускания — это число битов, обрабатываемых в одной инструкции.

  • Тактовая частота — определяет количество операций в секунду, которые может выполнять процессор. Он выражается в мегагерцах (МГц) или гигагерцах (ГГц). Он также известен как тактовая частота.

  • Длина слова — зависит от ширины внутренней шины данных, регистров, ALU и т. Д. 8-разрядный микропроцессор может одновременно обрабатывать 8-разрядные данные. Длина слова варьируется от 4 до 64 бит в зависимости от типа микрокомпьютера.

  • Типы данных — Микропроцессор имеет несколько форматов типов данных, таких как двоичные, BCD, ASCII, числа со знаком и без знака.

Набор инструкций — это набор инструкций, которые может понять микропроцессор.

Полоса пропускания — это число битов, обрабатываемых в одной инструкции.

Тактовая частота — определяет количество операций в секунду, которые может выполнять процессор. Он выражается в мегагерцах (МГц) или гигагерцах (ГГц). Он также известен как тактовая частота.

Длина слова — зависит от ширины внутренней шины данных, регистров, ALU и т. Д. 8-разрядный микропроцессор может одновременно обрабатывать 8-разрядные данные. Длина слова варьируется от 4 до 64 бит в зависимости от типа микрокомпьютера.

Типы данных — Микропроцессор имеет несколько форматов типов данных, таких как двоичные, BCD, ASCII, числа со знаком и без знака.

Особенности микропроцессора

Вот список некоторых из самых выдающихся особенностей любого микропроцессора —

  • Экономически эффективный — микропроцессорные чипы доступны по низким ценам и, как следствие, имеют низкую стоимость.

  • Размер — микропроцессор имеет небольшой размер чипа, поэтому является портативным.

  • Низкое энергопотребление — Микропроцессоры изготавливаются с использованием металлооксидной полупроводниковой технологии, которая имеет низкое энергопотребление.

  • Универсальность — микропроцессоры универсальны, поскольку мы можем использовать один и тот же чип в ряде приложений, конфигурируя программное обеспечение.

  • Надежность — частота отказов IC в микропроцессорах очень низка, поэтому она надежна.

Экономически эффективный — микропроцессорные чипы доступны по низким ценам и, как следствие, имеют низкую стоимость.

Размер — микропроцессор имеет небольшой размер чипа, поэтому является портативным.

Низкое энергопотребление — Микропроцессоры изготавливаются с использованием металлооксидной полупроводниковой технологии, которая имеет низкое энергопотребление.

Универсальность — микропроцессоры универсальны, поскольку мы можем использовать один и тот же чип в ряде приложений, конфигурируя программное обеспечение.

Надежность — частота отказов IC в микропроцессорах очень низка, поэтому она надежна.

Микропроцессор — Классификация

Микропроцессор можно разделить на три категории —

Классификация микропроцессора

RISC-процессор

RISC расшифровывается как компьютер с сокращенным набором команд . Он предназначен для сокращения времени выполнения за счет упрощения набора команд компьютера. Используя процессоры RISC, каждая инструкция требует только одного такта для выполнения результатов в единое время выполнения. Это снижает эффективность, так как появляется больше строк кода, поэтому для хранения инструкций требуется больше оперативной памяти. Компилятор также должен работать больше, чтобы преобразовать инструкции языка высокого уровня в машинный код.

Некоторые из процессоров RISC —

  • Мощность ПК: 601, 604, 615, 620
  • DEC Alpha: 210642, 211066, 21068, 21164
  • MIPS: TS (R10000) RISC-процессор
  • PA-RISC: HP 7100LC

Архитектура РИСК

Микропроцессорная архитектура RISC использует высокооптимизированный набор инструкций. Он используется в портативных устройствах, таких как Apple iPod, благодаря своей энергоэффективности.

Архитектура РИСК

Характеристики РИСК

Основные характеристики процессора RISC следующие:

  • Он состоит из простых инструкций.

  • Он поддерживает различные форматы типов данных.

  • Он использует простые режимы адресации и инструкции фиксированной длины для конвейерной обработки.

  • Он поддерживает регистр для использования в любом контексте.

  • Время выполнения одного цикла.

  • Инструкции «LOAD» и «STORE» используются для доступа к ячейке памяти.

  • Он состоит из большего количества регистров.

  • Он состоит из меньшего количества транзисторов.

Он состоит из простых инструкций.

Он поддерживает различные форматы типов данных.

Он использует простые режимы адресации и инструкции фиксированной длины для конвейерной обработки.

Он поддерживает регистр для использования в любом контексте.

Время выполнения одного цикла.

Инструкции «LOAD» и «STORE» используются для доступа к ячейке памяти.

Он состоит из большего количества регистров.

Он состоит из меньшего количества транзисторов.

CISC Процессор

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

Компилятору приходится выполнять очень мало работы для перевода языка высокого уровня в язык ассемблера / машинный код, поскольку длина кода относительно мала, поэтому для хранения инструкций требуется очень мало ОЗУ.

Некоторые из процессоров CISC —

  • IBM 370/168
  • VAX 11/780
  • Intel 80486

Архитектура CISC

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

Архитектура CISC

Характеристики CISC

  • Разнообразие режимов адресации.
  • Большое количество инструкций.
  • Переменная длина форматов команд.
  • Для выполнения одной инструкции может потребоваться несколько циклов.
  • Логика декодирования инструкций сложна.
  • Для поддержки нескольких режимов адресации требуется одна инструкция.

Специальные процессоры

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

сопроцессор

Сопроцессор — это специально разработанный микропроцессор, который может выполнять свои функции во много раз быстрее, чем обычный микропроцессор.

Например — Математический сопроцессор.

Некоторые математические сопроцессоры Intel —

  • 8087-используется с 8086
  • 80287-используется с 80286
  • 80387-используется с 80386

Процессор ввода / вывода

Это специально разработанный микропроцессор с собственной локальной памятью, который используется для управления устройствами ввода-вывода с минимальным участием ЦП.

Например

  • Контроллер прямого доступа к памяти
  • Контроллер клавиатуры / мыши
  • Контроллер графического дисплея
  • Контроллер порта SCSI

Транспутер (Транзистор Компьютер)

Транспьютер — это специально разработанный микропроцессор с собственной локальной памятью и связями для соединения одного транспортера с другим транспортом для межпроцессорной связи. Впервые он был разработан в 1980 году компанией Inmos и нацелен на использование технологии СБИС.

Транспортер может использоваться как однопроцессорная система или может быть подключен к внешним каналам, что снижает стоимость строительства и повышает производительность.

Например — 16-битный T212, 32-битный T425, процессоры с плавающей запятой (T800, T805 и T9000).

DSP (цифровой сигнальный процессор)

Этот процессор специально разработан для обработки аналоговых сигналов в цифровом виде. Это делается путем выборки уровня напряжения через регулярные промежутки времени и преобразования напряжения в этот момент в цифровую форму. Этот процесс выполняется схемой, называемой аналого-цифровой преобразователь, аналого-цифровой преобразователь или АЦП.

DSP содержит следующие компоненты —

  • Память программ — хранит программы, которые DSP будет использовать для обработки данных.

  • Память данных — хранит информацию для обработки.

  • Compute Engine — выполняет математическую обработку, получая доступ к программе из памяти программ и данным из памяти данных.

  • Ввод / вывод — он подключается к внешнему миру.

Память программ — хранит программы, которые DSP будет использовать для обработки данных.

Память данных — хранит информацию для обработки.

Compute Engine — выполняет математическую обработку, получая доступ к программе из памяти программ и данным из памяти данных.

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

Его приложения —

  • Синтез звука и музыки
  • Аудио и видео компрессия
  • Обработка видеосигнала
  • 2D и 3D графическое ускорение.

Например — серия TMS 320 от Texas Instrument, например, TMS 320C40, TMS320C50.

Микропроцессор — 8085 Архитектура

8085 произносится как «восемьдесят восемьдесят пять» микропроцессор. Это 8-битный микропроцессор, разработанный Intel в 1977 году с использованием технологии NMOS.

Он имеет следующую конфигурацию —

  • 8-битная шина данных
  • 16-битная адресная шина, которая может адресовать до 64 КБ
  • 16-битный программный счетчик
  • 16-битный указатель стека
  • Шесть 8-битных регистров, расположенных попарно: BC, DE, HL
  • Требуется питание + 5 В для работы на однофазных тактовых частотах 3,2 МГц

Используется в стиральных машинах, микроволновых печах, мобильных телефонах и т. Д.

Микропроцессор 8085 — Функциональные блоки

8085 состоит из следующих функциональных блоков —

аккумуляторный

Это 8-битный регистр, используемый для выполнения арифметических, логических операций ввода-вывода и загрузки / сохранения. Он подключен к внутренней шине данных и ALU.

Арифметико-логическое устройство

Как следует из названия, он выполняет арифметические и логические операции, такие как сложение, вычитание, AND, OR и т. Д. Над 8-битными данными.

Регистр общего назначения

В процессоре 8085 имеется 6 регистров общего назначения, то есть B, C, D, E, H & L. Каждый регистр может содержать 8-битные данные.

Эти регистры могут работать в паре для хранения 16-битных данных, и их комбинация сочетания похожа на BC, DE & HL.

Счетчик команд

Это 16-битный регистр, используемый для хранения адреса памяти в следующей команде, которая должна быть выполнена. Микропроцессор увеличивает программу всякий раз, когда выполняется инструкция, так что счетчик программы указывает на адрес памяти следующей инструкции, которая будет выполнена.

Указатель стека

Это также 16-битный регистр, работающий как стек, который всегда увеличивается / уменьшается на 2 во время операций push & pop.

Временный регистр

Это 8-битный регистр, который содержит временные данные арифметических и логических операций.

Флаг регистр

Это 8-битный регистр, имеющий пять 1-битных триггеров, которые содержат 0 или 1 в зависимости от результата, сохраненного в аккумуляторе.

Это набор из 5 шлепанцев —

  • Приметы)
  • Ноль (Z)
  • Вспомогательный Carry (AC)
  • Паритет (P)
  • Нести (С)

Его битовая позиция показана в следующей таблице —

D7 D6 D5 D4 D3 D2 D1 Д0
S Z переменный ток п CY

Регистр команд и декодер

Это 8-битный регистр. Когда инструкция извлекается из памяти, она сохраняется в регистре команд. Декодер команд декодирует информацию, представленную в регистре команд.

Сроки и блок управления

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

  • Управляющие сигналы: ГОТОВ, RD ‘, WR’, ALE
  • Сигналы состояния: S0, S1, IO / M ‘
  • Сигналы DMA: ДЕРЖАТЬ, HLDA
  • Сигналы RESET: RESET IN, RESET OUT

Управление прерываниями

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

В микропроцессоре 8085 имеется 5 сигналов прерывания: INTR, RST 7.5, RST 6.5, RST 5.5, TRAP.

Управление последовательным вводом / выводом

Он управляет последовательной передачей данных с помощью этих двух инструкций: SID (данные последовательного ввода) и SOD (данные последовательного ввода).

Адресный буфер и адресный буфер данных

Содержимое, хранящееся в указателе стека и программном счетчике, загружается в буфер адресов и буфер данных-адресов для связи с ЦП. Микросхемы памяти и ввода / вывода подключены к этим шинам; CPU может обмениваться нужными данными с памятью и чипами ввода / вывода.

Адресная шина и шина данных

Шина данных несет данные для хранения. Он является двунаправленным, тогда как адресная шина переносит место, где она должна храниться, и является однонаправленной. Он используется для передачи данных и адреса устройств ввода-вывода.

8085 Архитектура

Мы попытались изобразить архитектуру 8085 с помощью следующего изображения —

8085 Архитектура

Микропроцессор — 8085 контактов

На следующем рисунке изображена схема контактов микропроцессора 8085 —

Конфигурация контактов 8085

Контакты микропроцессора 8085 можно разделить на семь групп:

Адресная шина

A15-A8, он несет самый значительный 8-битный адрес памяти / ввода-вывода.

Шина данных

AD7-AD0, он несет наименее значимый 8-битный адрес и шину данных.

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

Эти сигналы используются для определения характера операции. Есть 3 сигнала управления и 3 сигнала состояния.

Три управляющих сигнала: RD, WR и ALE.

  • RD — этот сигнал указывает, что выбранное устройство ввода-вывода или запоминающее устройство должно быть прочитано и готово к приему данных, доступных на шине данных.

  • WR — этот сигнал указывает, что данные на шине данных должны быть записаны в выбранную память или место ввода / вывода.

  • ALE — это положительный импульс, генерируемый микропроцессором при запуске новой операции. Когда пульс становится высоким, это указывает на адрес. Когда пульс идет вниз, это указывает на данные.

RD — этот сигнал указывает, что выбранное устройство ввода-вывода или запоминающее устройство должно быть прочитано и готово к приему данных, доступных на шине данных.

WR — этот сигнал указывает, что данные на шине данных должны быть записаны в выбранную память или место ввода / вывода.

ALE — это положительный импульс, генерируемый микропроцессором при запуске новой операции. Когда пульс становится высоким, это указывает на адрес. Когда пульс идет вниз, это указывает на данные.

Три сигнала состояния: IO / M, S0 и S1.

IO / М

Этот сигнал используется для различения операций ввода-вывода и памяти, т. Е. Когда он высокий, это означает работу ввода-вывода, а когда он низкий, то он указывает на работу памяти.

S1 & S0

Эти сигналы используются для определения типа текущей операции.

Источник питания

Есть 2 источника питания — VCC и VSS. VCC указывает источник питания + 5 В, а VSS указывает сигнал заземления.

Тактовые сигналы

Есть 3 тактовых сигнала, то есть X1, X2, CLK OUT.

  • X1, X2 — Кристалл (RC, LC N / W) подключен к этим двум контактам и используется для установки частоты внутреннего тактового генератора. Эта частота внутренне делится на 2.

  • CLK OUT — этот сигнал используется в качестве системных часов для устройств, подключенных к микропроцессору.

X1, X2 — Кристалл (RC, LC N / W) подключен к этим двум контактам и используется для установки частоты внутреннего тактового генератора. Эта частота внутренне делится на 2.

CLK OUT — этот сигнал используется в качестве системных часов для устройств, подключенных к микропроцессору.

Прерывания и внешние сигналы

Прерывания — это сигналы, генерируемые внешними устройствами для запроса микропроцессора на выполнение задачи. Существует 5 сигналов прерывания, т.е. TRAP, RST 7.5, RST 6.5, RST 5.5 и INTR. Мы подробно обсудим прерывания в разделе прерываний.

  • INTA — это сигнал подтверждения прерывания.

  • RESET IN — этот сигнал используется для сброса микропроцессора путем установки счетчика программы на ноль.

  • RESET OUT — этот сигнал используется для сброса всех подключенных устройств при сбросе микропроцессора.

  • ГОТОВ — этот сигнал указывает на то, что устройство готово к отправке или получению данных. Если READY имеет низкий уровень, тогда процессор должен ждать, пока READY поднимется до высокого уровня.

  • HOLD — этот сигнал указывает, что другой мастер запрашивает использование адреса и шин данных.

  • HLDA (HOLD Acknowledge) — указывает на то, что ЦП получил запрос HOLD, и он освободит шину в следующем тактовом цикле. HLDA устанавливается на низкий уровень после снятия сигнала HOLD.

INTA — это сигнал подтверждения прерывания.

RESET IN — этот сигнал используется для сброса микропроцессора путем установки счетчика программы на ноль.

RESET OUT — этот сигнал используется для сброса всех подключенных устройств при сбросе микропроцессора.

ГОТОВ — этот сигнал указывает на то, что устройство готово к отправке или получению данных. Если READY имеет низкий уровень, тогда процессор должен ждать, пока READY поднимется до высокого уровня.

HOLD — этот сигнал указывает, что другой мастер запрашивает использование адреса и шин данных.

HLDA (HOLD Acknowledge) — указывает на то, что ЦП получил запрос HOLD, и он освободит шину в следующем тактовом цикле. HLDA устанавливается на низкий уровень после снятия сигнала HOLD.

Последовательные сигналы ввода / вывода

Есть 2 последовательных сигнала, то есть SID и SOD, и эти сигналы используются для последовательной связи.

  • SOD (строка данных последовательного выхода) — выходной SOD устанавливается / сбрасывается в соответствии с инструкцией SIM.

  • SID (строка последовательного ввода данных) — данные в этой строке загружаются в аккумулятор при каждом выполнении команды RIM.

SOD (строка данных последовательного выхода) — выходной SOD устанавливается / сбрасывается в соответствии с инструкцией SIM.

SID (строка последовательного ввода данных) — данные в этой строке загружаются в аккумулятор при каждом выполнении команды RIM.

8085 адресация режимов и прерываний

Теперь давайте обсудим режимы адресации в микропроцессоре 8085.

Режимы адресации в 8085 году

Это инструкции, используемые для передачи данных из одного регистра в другой регистр, из памяти в регистр и из регистра в память без каких-либо изменений в содержимом. Режимы адресации в 8085 году подразделяются на 5 групп —

Режим немедленной адресации

В этом режиме 8/16-битные данные указываются в самой инструкции как один из ее операндов. Например: MVI K, 20F: означает, что 20F скопирован в регистр K.

Зарегистрировать режим адресации

В этом режиме данные копируются из одного регистра в другой. Например: MOV K, B: означает, что данные в регистре B копируются в регистр K.

Режим прямой адресации

В этом режиме данные напрямую копируются с заданного адреса в регистр. Например: LDB 5000K: означает, что данные по адресу 5000K копируются в регистр B.

Режим косвенной адресации

В этом режиме данные передаются из одного регистра в другой, используя адрес, указанный регистром. Например: MOV K, B: означает, что данные передаются с адреса памяти, указанного регистром, в регистр K.

Подразумеваемый режим адресации

Этот режим не требует никакого операнда; данные определяются самим кодом операции. Например: CMP.

Прерывает в 8085

Прерывания — это сигналы, генерируемые внешними устройствами для запроса микропроцессора для выполнения задачи. Существует 5 сигналов прерывания, т.е. TRAP, RST 7.5, RST 6.5, RST 5.5 и INTR.

Прерывания классифицируются на следующие группы в зависимости от их параметра —

  • Векторное прерывание — в этом типе прерывания адрес прерывания известен процессору. Например: RST7.5, RST6.5, RST5.5, TRAP.

  • Невекторное прерывание — В этом типе прерывания адрес прерывания не известен процессору, поэтому для прерывания адрес прерывания должен отправляться внешним устройством. Например: INTR.

  • Маскируемое прерывание — в этом типе прерывания мы можем отключить прерывание, написав некоторые инструкции в программу. Например: RST7.5, RST6.5, RST5.5.

  • Немаскируемое прерывание — в этом типе прерывания мы не можем отключить прерывание, записав некоторые инструкции в программу. Например: TRAP.

  • Программное прерывание. В этом типе прерывания программист должен добавить в программу инструкции для выполнения прерывания. В 8085 есть 8 программных прерываний, то есть RST0, RST1, RST2, RST3, RST4, RST5, RST6 и RST7.

  • Аппаратное прерывание. В 8085 в качестве аппаратных прерываний используются 5 контактов прерывания, т. Е. TRAP, RST7.5, RST6.5, RST5.5, INTA.

Векторное прерывание — в этом типе прерывания адрес прерывания известен процессору. Например: RST7.5, RST6.5, RST5.5, TRAP.

Невекторное прерывание — В этом типе прерывания адрес прерывания не известен процессору, поэтому для прерывания адрес прерывания должен отправляться внешним устройством. Например: INTR.

Маскируемое прерывание — в этом типе прерывания мы можем отключить прерывание, написав некоторые инструкции в программу. Например: RST7.5, RST6.5, RST5.5.

Немаскируемое прерывание — в этом типе прерывания мы не можем отключить прерывание, записав некоторые инструкции в программу. Например: TRAP.

Программное прерывание. В этом типе прерывания программист должен добавить в программу инструкции для выполнения прерывания. В 8085 есть 8 программных прерываний, то есть RST0, RST1, RST2, RST3, RST4, RST5, RST6 и RST7.

Аппаратное прерывание. В 8085 в качестве аппаратных прерываний используются 5 контактов прерывания, т. Е. TRAP, RST7.5, RST6.5, RST5.5, INTA.

Примечание. NTA не является прерыванием, оно используется микропроцессором для отправки подтверждения. TRAP имеет самый высокий приоритет, затем RST7.5 и так далее.

Программа обработки прерываний (ISR)

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

TRAP

Это немаскируемое прерывание, имеющее самый высокий приоритет среди всех прерываний. По умолчанию он включен, пока не получит подтверждение. В случае сбоя он выполняется как ISR и отправляет данные в резервную память. Это прерывание передает управление в местоположение 0024H.

RST7.5

Это маскируемое прерывание, имеющее второй по приоритетности приоритет среди всех прерываний. Когда выполняется это прерывание, процессор сохраняет содержимое регистра ПК в стек и переходит на адрес 003CH.

RST 6.5

Это маскируемое прерывание, имеющее третий самый высокий приоритет среди всех прерываний. Когда выполняется это прерывание, процессор сохраняет содержимое регистра ПК в стек и переходит по адресу 0034H.

RST 5.5

Это маскируемое прерывание. Когда выполняется это прерывание, процессор сохраняет содержимое регистра ПК в стек и переходит по адресу 002CH.

ВВЕДЕНИ

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

Когда сигнал INTR становится высоким , могут произойти следующие события:

  • Микропроцессор проверяет состояние сигнала INTR во время выполнения каждой инструкции.

  • Когда сигнал INTR высокий, микропроцессор завершает свою текущую команду и посылает активный сигнал подтверждения прерывания низкого уровня.

  • Когда инструкции получены, микропроцессор сохраняет адрес следующей инструкции в стеке и выполняет полученную инструкцию.

Микропроцессор проверяет состояние сигнала INTR во время выполнения каждой инструкции.

Когда сигнал INTR высокий, микропроцессор завершает свою текущую команду и посылает активный сигнал подтверждения прерывания низкого уровня.

Когда инструкции получены, микропроцессор сохраняет адрес следующей инструкции в стеке и выполняет полученную инструкцию.

Микропроцессор — 8085 инструкций

Давайте посмотрим на программирование микропроцессора 8085.

Наборы инструкций — это коды команд для выполнения некоторых задач. Он классифицируется на пять категорий.

S.No. Инструкция и описание
1 Инструкция по управлению

Ниже приведена таблица со списком команд управления с их значениями.

2 Логические Инструкции

Ниже приведена таблица со списком логических инструкций с их значениями.

3 Инструкции по ветвлению

Ниже приведена таблица со списком команд ветвления с их значениями.

4 Арифметические инструкции

Ниже приведена таблица со списком арифметических инструкций с их значениями.

5 Инструкция по передаче данных

Ниже приведена таблица со списком команд передачи данных с их значениями.

Ниже приведена таблица со списком команд управления с их значениями.

Ниже приведена таблица со списком логических инструкций с их значениями.

Ниже приведена таблица со списком команд ветвления с их значениями.

Ниже приведена таблица со списком арифметических инструкций с их значениями.

Ниже приведена таблица со списком команд передачи данных с их значениями.

8085 — Демонстрационные программы

Теперь давайте посмотрим на некоторые демонстрации программ, используя приведенные выше инструкции:

Добавление двух 8-битных чисел

Напишите программу для добавления данных в ячейку памяти 3005H и 3006H и сохраните результат в ячейке памяти 3007H.

Проблема демо

(3005H) = 14H 
   (3006H) = 89H

Результат

14H + 89H = 9DH

Код программы можно записать так:

 LXI H 3005H: «HL points 3005H» 
 MOV A, M: «Получение первого операнда» 
 INX H: «HL points 3006H» 
 ДОБАВИТЬ М: «Добавить второй операнд» 
 INX H: "HL points 3007H" 
 MOV M, A: «Сохранить результат на 3007H» 
 HLT: «Программа выхода» 

Обмен местами памяти

Напишите программу для обмена данными в 5000M и 6000M памяти.

LDA 5000M   : "Getting the contents at5000M location into accumulator" 
MOV B, A    : "Save the contents into B register" 
LDA 6000M   : "Getting the contents at 6000M location into accumulator" 
STA 5000M   : "Store the contents of accumulator at address 5000M" 
MOV A, B    : "Get the saved contents back into A register" 
STA 6000M   : "Store the contents of accumulator at address 6000M" 

Упорядочить числа в порядке возрастания

Напишите программу, чтобы расположить первые 10 чисел с адреса памяти 3000H в порядке возрастания.

MVI B, 09         :"Initialize counter"      
START             :"LXI H, 3000H: Initialize memory pointer" 
MVI C, 09H        :"Initialize counter 2" 
BACK: MOV A, M    :"Get the number" 
INX H             :"Increment memory pointer" 
CMP M             :"Compare number with next number" 
JC SKIP           :"If less, don’t interchange" 
JZ SKIP           :"If equal, don’t interchange" 
MOV D, M 
MOV M, A 
DCX H 
MOV M, D 
INX H             :"Interchange two numbers" 
SKIP:DCR C        :"Decrement counter 2" 
JNZ BACK          :"If not zero, repeat" 
DCR B             :"Decrement counter 1" 
JNZ START 
HLT               :"Terminate program execution" 

Микропроцессор — 8086 Обзор

Микропроцессор 8086 — это расширенная версия микропроцессора 8085, разработанная Intel в 1976 году. Это 16-разрядный микропроцессор с 20 адресными строками и 16 строками данных, который обеспечивает хранение до 1 МБ. Он состоит из мощного набора команд, который позволяет легко выполнять такие операции, как умножение и деление.

Он поддерживает два режима работы, то есть Максимальный режим и Минимальный режим. Режим Maximum подходит для системы с несколькими процессорами, а режим Minimum подходит для системы с одним процессором.

Особенности 8086

Наиболее характерные особенности микропроцессора 8086:

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

  • Это был первый 16-битный процессор с 16-битным ALU, 16-битными регистрами, внутренней шиной данных и 16-битной внешней шиной данных, что привело к более быстрой обработке.

  • Это доступно в 3 версиях, основанных на частоте операции —

    • 8086 → 5 МГц

    • 8086-2 → 8 МГц

    • (c) 8086-1 → 10 МГц

  • Он использует два этапа конвейерной обработки: этап извлечения и этап выполнения, что повышает производительность.

  • Этап выборки может выполнять предварительную выборку до 6 байтов инструкций и сохранять их в очереди.

  • Этап выполнения выполняет эти инструкции.

  • Имеет 256 векторных прерываний.

  • Он состоит из 29 000 транзисторов.

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

Это был первый 16-битный процессор с 16-битным ALU, 16-битными регистрами, внутренней шиной данных и 16-битной внешней шиной данных, что привело к более быстрой обработке.

Это доступно в 3 версиях, основанных на частоте операции —

8086 → 5 МГц

8086-2 → 8 МГц

(c) 8086-1 → 10 МГц

Он использует два этапа конвейерной обработки: этап извлечения и этап выполнения, что повышает производительность.

Этап выборки может выполнять предварительную выборку до 6 байтов инструкций и сохранять их в очереди.

Этап выполнения выполняет эти инструкции.

Имеет 256 векторных прерываний.

Он состоит из 29 000 транзисторов.

Сравнение микропроцессора 8085 и 8086

  • Размер — 8085 — это 8-битный микропроцессор, тогда как 8086 — это 16-битный микропроцессор.

  • Адресная шина — 8085 имеет 16-разрядную адресную шину, а 8086 имеет 20-разрядную адресную шину.

  • Память — 8085 может получить доступ до 64 КБ, а 8086 — до 1 МБ памяти.

  • Инструкция — 8085 не имеет очереди команд, тогда как 8086 имеет очередь команд.

  • Конвейерная обработка — 8085 не поддерживает конвейерную архитектуру, в то время как 8086 поддерживает конвейерную архитектуру.

  • I / O — 8085 может адресовать 2 ^ 8 = 256 I / O, тогда как 8086 может обращаться к 2 ^ 16 = 65 536 I / O.

  • Стоимость — стоимость 8085 низкая, а 8086 высокая.

Размер — 8085 — это 8-битный микропроцессор, тогда как 8086 — это 16-битный микропроцессор.

Адресная шина — 8085 имеет 16-разрядную адресную шину, а 8086 имеет 20-разрядную адресную шину.

Память — 8085 может получить доступ до 64 КБ, а 8086 — до 1 МБ памяти.

Инструкция — 8085 не имеет очереди команд, тогда как 8086 имеет очередь команд.

Конвейерная обработка — 8085 не поддерживает конвейерную архитектуру, в то время как 8086 поддерживает конвейерную архитектуру.

I / O — 8085 может адресовать 2 ^ 8 = 256 I / O, тогда как 8086 может обращаться к 2 ^ 16 = 65 536 I / O.

Стоимость — стоимость 8085 низкая, а 8086 высокая.

Архитектура 8086 года

Следующая диаграмма изображает архитектуру микропроцессора 8086 —

Архитектура 8086 года

Микропроцессор — 8086 функциональных блоков

Микропроцессор 8086 разделен на два функциональных блока: EU (исполнительный модуль) и BIU (шинный интерфейсный модуль).

ЕС (исполнительный блок)

Блок выполнения дает инструкции для BIU, в которых указывается, откуда следует извлечь данные, а затем декодировать и выполнять эти инструкции. Его функция заключается в управлении операциями с данными с использованием декодера команд и ALU. EU не имеет прямого соединения с системными шинами, как показано на рисунке выше, он выполняет операции над данными через BIU.

Давайте теперь обсудим функциональные части 8086 микропроцессоров.

ALU

Он обрабатывает все арифметические и логические операции, такие как операции +, -, ×, /, OR, AND, NOT.

Флаг Регистр

Это 16-битный регистр, который ведет себя как триггер, то есть он меняет свое состояние в соответствии с результатом, сохраненным в аккумуляторе. У этого есть 9 флагов, и они разделены на 2 группы — Условные Флаги и Контрольные Флаги.

Условные флаги

Он представляет результат последней выполненной арифметической или логической инструкции. Ниже приведен список условных флагов —

  • Флаг переноса — этот флаг указывает условие переполнения для арифметических операций.

  • Вспомогательный флаг — Когда операция выполняется в ALU, это приводит к переносу / кургану от нижнего полубайта (то есть D0 — D3) к верхнему полубайту (то есть D4 — D7), тогда этот флаг устанавливается, то есть перенос, данный битом D3 для D4 — флаг AF. Процессор использует этот флаг для выполнения двоичного преобразования в BCD.

  • Флаг четности — этот флаг используется для указания четности результата, т. Е. Когда младшие 8 битов результата содержат четное число единиц, устанавливается флаг четности. Для нечетного числа 1 флаг четности сбрасывается.

  • Флаг нуля — этот флаг равен 1, если результат арифметической или логической операции равен нулю, в противном случае он равен 0.

  • Флаг знака — этот флаг содержит знак результата, т. Е. Когда результат операции отрицательный, тогда флаг знака устанавливается в 1, а в 0.

  • Флаг переполнения — этот флаг представляет результат при превышении емкости системы.

Флаг переноса — этот флаг указывает условие переполнения для арифметических операций.

Вспомогательный флаг — Когда операция выполняется в ALU, это приводит к переносу / кургану от нижнего полубайта (то есть D0 — D3) к верхнему полубайту (то есть D4 — D7), тогда этот флаг устанавливается, то есть перенос, данный битом D3 для D4 — флаг AF. Процессор использует этот флаг для выполнения двоичного преобразования в BCD.

Флаг четности — этот флаг используется для указания четности результата, т. Е. Когда младшие 8 битов результата содержат четное число единиц, устанавливается флаг четности. Для нечетного числа 1 флаг четности сбрасывается.

Флаг нуля — этот флаг равен 1, если результат арифметической или логической операции равен нулю, в противном случае он равен 0.

Флаг знака — этот флаг содержит знак результата, т. Е. Когда результат операции отрицательный, тогда флаг знака устанавливается в 1, а в 0.

Флаг переполнения — этот флаг представляет результат при превышении емкости системы.

Контрольные Флаги

Флаги управления управляют операциями исполнительного блока. Ниже приведен список контрольных флагов —

  • Флаг прерывания — используется для одноэтапного управления и позволяет пользователю выполнять одну инструкцию за один раз для отладки. Если он установлен, то программа может быть запущена в одношаговом режиме.

  • Флаг прерывания — это флаг включения / отключения прерывания, то есть используемый для разрешения / запрета прерывания программы. Он установлен в 1 для состояния разрешения прерывания и в 0 для условия отключения прерывания.

  • Флаг направления — используется в строковой операции. Как следует из названия, когда оно установлено, к строковым байтам обращаются от старшего адреса памяти к младшему адресу памяти и наоборот.

Флаг прерывания — используется для одноэтапного управления и позволяет пользователю выполнять одну инструкцию за один раз для отладки. Если он установлен, то программа может быть запущена в одношаговом режиме.

Флаг прерывания — это флаг включения / отключения прерывания, то есть используемый для разрешения / запрета прерывания программы. Он установлен в 1 для состояния разрешения прерывания и в 0 для условия отключения прерывания.

Флаг направления — используется в строковой операции. Как следует из названия, когда оно установлено, к строковым байтам обращаются от старшего адреса памяти к младшему адресу памяти и наоборот.

Регистр общего назначения

Существует 8 регистров общего назначения: AH, AL, BH, BL, CH, CL, DH и DL. Эти регистры могут использоваться отдельно для хранения 8-битных данных и могут использоваться парами для хранения 16-битных данных. Допустимые регистровые пары: AH и AL, BH и BL, CH и CL, а также DH и DL. Это относится к AX, BX, CX и DX соответственно.

  • Регистр AX — Он также известен как регистр аккумулятора. Он используется для хранения операндов для арифметических операций.

  • Регистр BX — используется в качестве базового регистра. Он используется для хранения начального базового адреса области памяти в сегменте данных.

  • Регистр CX — он называется счетчиком. Он используется в инструкции цикла для хранения счетчика цикла.

  • Регистр DX — этот регистр используется для хранения адреса порта ввода / вывода для команды ввода / вывода.

Регистр AX — Он также известен как регистр аккумулятора. Он используется для хранения операндов для арифметических операций.

Регистр BX — используется в качестве базового регистра. Он используется для хранения начального базового адреса области памяти в сегменте данных.

Регистр CX — он называется счетчиком. Он используется в инструкции цикла для хранения счетчика цикла.

Регистр DX — этот регистр используется для хранения адреса порта ввода / вывода для команды ввода / вывода.

Регистр указателя стека

Это 16-битный регистр, который содержит адрес от начала сегмента до ячейки памяти, где слово было недавно сохранено в стеке.

BIU (блок шинного интерфейса)

BIU заботится обо всех передачах данных и адресов по шинам для ЕС, таких как отправка адресов, извлечение инструкций из памяти, чтение данных из портов и памяти, а также запись данных в порты и память. ЕС не имеет направления связи с системными автобусами, так что это возможно с BIU. ЕС и BIU связаны с внутренней шиной.

Он имеет следующие функциональные части —

  • Очередь инструкций — BIU содержит очередь инструкций. BIU получает до 6 байтов следующих инструкций и сохраняет их в очереди инструкций. Когда EU выполняет инструкции и готов к их следующей инструкции, он просто читает инструкцию из этой очереди команд, что приводит к увеличению скорости выполнения.

  • Выборка следующей инструкции во время выполнения текущей инструкции называется конвейерной обработкой .

  • Сегментный регистр — BIU имеет 4 сегментных шины, то есть CS, DS, SS & ES. Он содержит адреса команд и данных в памяти, которые используются процессором для доступа к ячейкам памяти. Он также содержит 1 указатель регистра IP, который содержит адрес следующей инструкции, выполняемой ЕС.

    • CS — это означает сегмент кода. Он используется для адресации области памяти в сегменте кода памяти, где хранится исполняемая программа.

    • DS — это означает сегмент данных. Он состоит из данных, используемых программой и доступных в сегменте данных по адресу смещения или содержимому другого регистра, который содержит адрес смещения.

    • SS — это означает сегмент стека. Он обрабатывает память для хранения данных и адресов во время выполнения.

    • ES — Это означает дополнительный сегмент. ES — это дополнительный сегмент данных, который используется строкой для хранения дополнительных данных назначения.

  • Указатель инструкции — это 16-битный регистр, используемый для хранения адреса следующей инструкции, которая должна быть выполнена.

Очередь инструкций — BIU содержит очередь инструкций. BIU получает до 6 байтов следующих инструкций и сохраняет их в очереди инструкций. Когда EU выполняет инструкции и готов к их следующей инструкции, он просто читает инструкцию из этой очереди команд, что приводит к увеличению скорости выполнения.

Выборка следующей инструкции во время выполнения текущей инструкции называется конвейерной обработкой .

Сегментный регистр — BIU имеет 4 сегментных шины, то есть CS, DS, SS & ES. Он содержит адреса команд и данных в памяти, которые используются процессором для доступа к ячейкам памяти. Он также содержит 1 указатель регистра IP, который содержит адрес следующей инструкции, выполняемой ЕС.

CS — это означает сегмент кода. Он используется для адресации области памяти в сегменте кода памяти, где хранится исполняемая программа.

DS — это означает сегмент данных. Он состоит из данных, используемых программой и доступных в сегменте данных по адресу смещения или содержимому другого регистра, который содержит адрес смещения.

SS — это означает сегмент стека. Он обрабатывает память для хранения данных и адресов во время выполнения.

ES — Это означает дополнительный сегмент. ES — это дополнительный сегмент данных, который используется строкой для хранения дополнительных данных назначения.

Указатель инструкции — это 16-битный регистр, используемый для хранения адреса следующей инструкции, которая должна быть выполнена.

Микропроцессор — 8086 Pin Configuration

8086 был первым 16-разрядным микропроцессором, доступным в 40-контактном DIP (Dual Inline Package) чипе. Теперь давайте подробно обсудим конфигурацию контактов микропроцессора 8086.

8086 Pin Diagram

Вот схема контактов микропроцессора 8086 —

8086 Pin Diagram

Давайте теперь обсудим сигналы в деталях —

Сигналы питания и частоты

Он использует питание 5 В постоянного тока на выводе V CC 40 и заземление на выводах 1 и 20 V SS для своей работы.

Тактовый сигнал

Тактовый сигнал подается через контакт 19. Он обеспечивает синхронизацию процессора для операций. Его частота различна для разных версий: 5 МГц, 8 МГц и 10 МГц.

Адрес / шина данных

AD0-AD15. Это 16 адрес / шина данных. AD0-AD7 переносит байтовые данные младшего разряда, а AD8AD15 переносит байтовые данные старшего порядка. В течение первого тактового цикла он переносит 16-битный адрес и после этого переносит 16-битные данные.

Адрес / статус шины

A16-A19 / S3-S6. Это 4 адреса / статус шины. В течение первого тактового цикла он несет 4-битный адрес, а затем передает сигналы состояния.

S7 / ППТ

BHE расшифровывается как Bus High Enable. Он доступен на выводе 34 и используется для индикации передачи данных с использованием шины данных D8-D15. Этот сигнал низкий в течение первого тактового цикла, после чего он активен.

Читать ( $ \ overline {RD} $ )

Он доступен на выводе 32 и используется для считывания сигнала для операции чтения.

готовы

Он доступен на выводе 22. Это сигнал подтверждения от устройств ввода-вывода о том, что данные передаются. Это активный высокий сигнал. Когда он высокий, это означает, что устройство готово для передачи данных. Когда оно низкое, это указывает на состояние ожидания.

СБРОС

Он доступен на выводе 21 и используется для возобновления выполнения. Это заставляет процессор немедленно прекратить свою текущую деятельность. Этот сигнал является активным высоким в течение первых 4 тактов для СБРОСА микропроцессора.

ВВЕДЕНИ

Он доступен на выводе 18. Это сигнал запроса прерывания, который дискретизируется в течение последнего тактового цикла каждой команды, чтобы определить, рассматривал ли процессор это как прерывание или нет.

NMI

Он обозначает немаскируемое прерывание и доступен на выводе 17. Это вход, инициируемый фронтом, который вызывает запрос прерывания для микропроцессора.

$ \ Overline {TEST} $

Этот сигнал похож на состояние ожидания и доступен на выводе 23. Когда этот сигнал высокий, то процессор должен ждать состояния IDLE, иначе выполнение продолжается.

MN / $ \ overline {MX} $

Он обозначает Minimum / Maximum и доступен на выводе 33. Он указывает, в каком режиме должен работать процессор; когда он высокий, он работает в минимальном режиме и наоборот.

INTA

Это сигнал подтверждения прерывания и идентификатор, доступный на выводе 24. Когда микропроцессор получает этот сигнал, он подтверждает прерывание.

ALE

Он обозначает защелку разрешения адреса и доступен на выводе 25. Положительный импульс генерируется каждый раз, когда процессор начинает какую-либо операцию. Этот сигнал указывает на наличие действительного адреса в адресной строке / строке данных.

DEN

Он обозначает Data Enable и доступен на выводе 26. Он используется для включения Transreceiver 8286. Transreceiver — это устройство, используемое для отделения данных от адреса / шины данных.

DT / R

Он обозначает сигнал передачи / приема данных и доступен на выводе 27. Он определяет направление потока данных через трансивер. Когда он высокий, данные передаются и наоборот.

М / МО

Этот сигнал используется для различения операций памяти и ввода / вывода. Когда он высокий, это указывает на операцию ввода / вывода, а когда он низкий, указывает на работу памяти. Он доступен на контакте 28.

WR

Он обозначает сигнал записи и доступен на выводе 29. Он используется для записи данных в память или устройство вывода в зависимости от состояния сигнала M / IO.

HLDA

Он обозначает сигнал подтверждения приема и доступен на выводе 30. Этот сигнал подтверждает сигнал HOLD.

ДЕРЖАТЬ

Этот сигнал указывает процессору, что внешние устройства запрашивают доступ к шинам адреса / данных. Он доступен на контакте 31.

QS 1 и QS 0

Это сигналы состояния очереди, которые доступны на контактах 24 и 25. Эти сигналы обеспечивают состояние очереди команд. Их условия показаны в следующей таблице —

QS 0 QS 1 Статус
0 0 Нет операции
0 1 Первый байт кода операции из очереди
1 0 Очистить очередь
1 1 Последующий байт из очереди

S 0 , S 1 , S 2

Это сигналы состояния, которые обеспечивают состояние работы, которое используется контроллером шины 8288 для генерации сигналов управления памятью и вводом / выводом. Они доступны на контактах 26, 27 и 28. Ниже приведена таблица, показывающая их статус —

S 2 S 1 S 0 Статус
0 0 0 Подтверждение прерывания
0 0 1 Чтение ввода / вывода
0 1 0 I / O Write
0 1 1 стой
1 0 0 Извлечение кода операции
1 0 1 Чтение памяти
1 1 0 Запись в память
1 1 1 пассивный

ЗАМОК

Когда этот сигнал активен, он указывает другим процессорам не просить ЦП покинуть системную шину. Он активируется с помощью префикса LOCK любой инструкции и доступен на выводе 29.

RQ / GT 1 и RQ / GT 0

Это сигналы Запроса / Предоставления, используемые другими процессорами, запрашивающими ЦПУ освободить системную шину. Когда ЦП получает сигнал, он отправляет подтверждение. RQ / GT 0 имеет более высокий приоритет, чем RQ / GT 1 .

Микропроцессор — 8086 инструкционных наборов

Микропроцессор 8086 поддерживает 8 типов инструкций —

  • Инструкция по передаче данных
  • Арифметические инструкции
  • Инструкции по управлению битами
  • Строковые Инструкции
  • Инструкции по переносу выполнения программы (инструкции по ветвлению и петле)
  • Инструкция по управлению процессором
  • Инструкции по контролю итерации
  • Инструкции по прерыванию

Давайте теперь обсудим эти наборы команд в деталях.

Инструкция по передаче данных

Эти инструкции используются для передачи данных из исходного операнда в целевой операнд. Ниже приведен список инструкций в этой группе —

Инструкция по переводу слова

  • MOV — используется для копирования байта или слова из предоставленного источника в указанное место назначения.

  • PPUSH — используется для размещения слова в верхней части стека.

  • POP — используется для получения слова с вершины стека в указанное место.

  • PUSHA — используется для помещения всех регистров в стек.

  • POPA — используется для получения слов из стека во все регистры.

  • XCHG — используется для обмена данными из двух мест.

  • XLAT — используется для перевода байта в AL с использованием таблицы в памяти.

MOV — используется для копирования байта или слова из предоставленного источника в указанное место назначения.

PPUSH — используется для размещения слова в верхней части стека.

POP — используется для получения слова с вершины стека в указанное место.

PUSHA — используется для помещения всех регистров в стек.

POPA — используется для получения слов из стека во все регистры.

XCHG — используется для обмена данными из двух мест.

XLAT — используется для перевода байта в AL с использованием таблицы в памяти.

Инструкция по переносу портов ввода и вывода

  • IN — используется для чтения байта или слова из предоставленного порта в аккумулятор.

  • OUT — используется для отправки байта или слова из аккумулятора в указанный порт.

IN — используется для чтения байта или слова из предоставленного порта в аккумулятор.

OUT — используется для отправки байта или слова из аккумулятора в указанный порт.

Инструкция по переводу адреса

  • LEA — используется для загрузки адреса операнда в предоставленный регистр.

  • LDS — используется для загрузки регистра DS и другого предоставленного регистра из памяти

  • LES — используется для загрузки регистра ES и другого предоставленного регистра из памяти.

LEA — используется для загрузки адреса операнда в предоставленный регистр.

LDS — используется для загрузки регистра DS и другого предоставленного регистра из памяти

LES — используется для загрузки регистра ES и другого предоставленного регистра из памяти.

Инструкция по передаче флаговых регистров

  • LAHF — используется для загрузки AH младшим байтом регистра флага.

  • SAHF — используется для сохранения регистра AH в младший байт регистра флага.

  • PUSHF — используется для копирования регистра флага в верхней части стека.

  • POPF — используется для копирования слова из верхней части стека в регистр флага.

LAHF — используется для загрузки AH младшим байтом регистра флага.

SAHF — используется для сохранения регистра AH в младший байт регистра флага.

PUSHF — используется для копирования регистра флага в верхней части стека.

POPF — используется для копирования слова из верхней части стека в регистр флага.

Арифметические инструкции

Эти инструкции используются для выполнения арифметических операций, таких как сложение, вычитание, умножение, деление и т. Д.

Ниже приведен список инструкций в этой группе —

Инструкция по выполнению сложения

  • ДОБАВИТЬ — Используется для добавления предоставленного байта в байт / слово в слово.

  • ADC — используется для добавления с переносом.

  • INC — используется для увеличения предоставленного байта / слова на 1.

  • AAA — Используется для настройки ASCII после добавления.

  • DAA — используется для настройки десятичной дроби после операции сложения / вычитания.

ДОБАВИТЬ — Используется для добавления предоставленного байта в байт / слово в слово.

ADC — используется для добавления с переносом.

INC — используется для увеличения предоставленного байта / слова на 1.

AAA — Используется для настройки ASCII после добавления.

DAA — используется для настройки десятичной дроби после операции сложения / вычитания.

Инструкция по выполнению вычитания

  • SUB — Используется для вычитания байта из байта / слова из слова.

  • SBB — Используется для вычитания с заимствованием.

  • DEC — используется для уменьшения предоставленного байта / слова на 1.

  • NPG — Используется для отрицания каждого бита предоставленного байта / слова и добавления дополнения 1/2.

  • CMP — используется для сравнения 2 предоставленных байтов / слов.

  • AAS — Используется для настройки кодов ASCII после вычитания.

  • DAS — используется для настройки десятичной дроби после вычитания.

SUB — Используется для вычитания байта из байта / слова из слова.

SBB — Используется для вычитания с заимствованием.

DEC — используется для уменьшения предоставленного байта / слова на 1.

NPG — Используется для отрицания каждого бита предоставленного байта / слова и добавления дополнения 1/2.

CMP — используется для сравнения 2 предоставленных байтов / слов.

AAS — Используется для настройки кодов ASCII после вычитания.

DAS — используется для настройки десятичной дроби после вычитания.

Инструкция по выполнению умножения

  • MUL — используется для умножения байта без знака на слово / слово за словом.

  • IMUL — используется для умножения подписанного байта за байтом / слово за словом.

  • AAM — используется для настройки кодов ASCII после умножения.

MUL — используется для умножения байта без знака на слово / слово за словом.

IMUL — используется для умножения подписанного байта за байтом / слово за словом.

AAM — используется для настройки кодов ASCII после умножения.

Инструкция по выполнению деления

  • DIV — Используется для деления беззнакового слова по байту или без знака двойного слова по слову.

  • IDIV — Используется для деления подписанного слова в байтах или подписанного двойного слова в слово.

  • AAD — используется для настройки кодов ASCII после деления.

  • CBW — используется для заполнения старшего байта слова копиями знакового бита младшего байта.

  • CWD — используется для заполнения верхнего слова двойного слова знаковым битом нижнего слова.

DIV — Используется для деления беззнакового слова по байту или без знака двойного слова по слову.

IDIV — Используется для деления подписанного слова в байтах или подписанного двойного слова в слово.

AAD — используется для настройки кодов ASCII после деления.

CBW — используется для заполнения старшего байта слова копиями знакового бита младшего байта.

CWD — используется для заполнения верхнего слова двойного слова знаковым битом нижнего слова.

Инструкции по управлению битами

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

Ниже приведен список инструкций в этой группе —

Инструкция по выполнению логической операции

  • НЕ — используется для инвертирования каждого бита или слова.

  • И — Используется для добавления каждого бита в байте / слове с соответствующим битом в другом байте / слове.

  • ИЛИ — Используется для умножения каждого бита в байте / слове на соответствующий бит в другом байте / слове.

  • XOR — используется для выполнения операции Exclusive-OR над каждым битом в байте / слове с соответствующим битом в другом байте / слове.

  • TEST — используется для добавления операндов для обновления флагов, без влияния на операнды.

НЕ — используется для инвертирования каждого бита или слова.

И — Используется для добавления каждого бита в байте / слове с соответствующим битом в другом байте / слове.

ИЛИ — Используется для умножения каждого бита в байте / слове на соответствующий бит в другом байте / слове.

XOR — используется для выполнения операции Exclusive-OR над каждым битом в байте / слове с соответствующим битом в другом байте / слове.

TEST — используется для добавления операндов для обновления флагов, без влияния на операнды.

Инструкция по выполнению сменных операций

  • SHL / SAL — используется для сдвига битов байта / слова влево и установки нуля (S) в младших битах.

  • SHR — используется для сдвига битов байта / слова вправо и установки нуля (S) в старших битах.

  • SAR — используется для сдвига битов байта / слова вправо и копирования старого MSB в новый MSB.

SHL / SAL — используется для сдвига битов байта / слова влево и установки нуля (S) в младших битах.

SHR — используется для сдвига битов байта / слова вправо и установки нуля (S) в старших битах.

SAR — используется для сдвига битов байта / слова вправо и копирования старого MSB в новый MSB.

Инструкции для выполнения операций поворота

  • ROL — Используется для поворота битов байта / слова влево, то есть от MSB к LSB и к сигналу переноса [CF].

  • ROR — используется для поворота битов байта / слова вправо, то есть от LSB к MSB и к сигналу переноса [CF].

  • RCR — используется для поворота битов байта / слова вправо, то есть от LSB к CF и CF к MSB.

  • RCL — используется для поворота битов байта / слова влево, то есть от MSB к CF и от CF к LSB.

ROL — Используется для поворота битов байта / слова влево, то есть от MSB к LSB и к сигналу переноса [CF].

ROR — используется для поворота битов байта / слова вправо, то есть от LSB к MSB и к сигналу переноса [CF].

RCR — используется для поворота битов байта / слова вправо, то есть от LSB к CF и CF к MSB.

RCL — используется для поворота битов байта / слова влево, то есть от MSB к CF и от CF к LSB.

Строковые Инструкции

Строка — это группа байтов / слов, и их память всегда выделяется в последовательном порядке.

Ниже приведен список инструкций в этой группе —

  • REP — Используется для повторения данной инструкции до CX ≠ 0.

  • REPE / REPZ — Используется для повторения данной инструкции до тех пор, пока CX = 0 или нулевой флаг ZF = 1.

  • REPNE / REPNZ — используется для повторения данной инструкции до тех пор, пока CX = 0 или нулевой флаг ZF = 1.

  • MOVS / MOVSB ​​/ MOVSW — используется для перемещения байта / слова из одной строки в другую.

  • COMS / COMPSB / COMPSW — используется для сравнения двух строковых байтов / слов.

  • INS / INSB / INSW — используется в качестве входной строки / байта / слова из порта ввода-вывода в указанное место памяти.

  • OUTS / OUTSB / OUTSW — используется в качестве выходной строки / байта / слова из предоставленной ячейки памяти в порт ввода / вывода.

  • SCAS / SCASB / SCASW — Используется для сканирования строки и сравнения ее байта с байтом в AL или слова строки со словом в AX.

  • LODS / LODSB / LODSW — используется для сохранения байта строки в AL или слова строки в AX.

REP — Используется для повторения данной инструкции до CX ≠ 0.

REPE / REPZ — Используется для повторения данной инструкции до тех пор, пока CX = 0 или нулевой флаг ZF = 1.

REPNE / REPNZ — используется для повторения данной инструкции до тех пор, пока CX = 0 или нулевой флаг ZF = 1.

MOVS / MOVSB ​​/ MOVSW — используется для перемещения байта / слова из одной строки в другую.

COMS / COMPSB / COMPSW — используется для сравнения двух строковых байтов / слов.

INS / INSB / INSW — используется в качестве входной строки / байта / слова из порта ввода-вывода в указанное место памяти.

OUTS / OUTSB / OUTSW — используется в качестве выходной строки / байта / слова из предоставленной ячейки памяти в порт ввода / вывода.

SCAS / SCASB / SCASW — Используется для сканирования строки и сравнения ее байта с байтом в AL или слова строки со словом в AX.

LODS / LODSB / LODSW — используется для сохранения байта строки в AL или слова строки в AX.

Инструкции переноса выполнения программы (инструкции ветвления и петли)

Эти инструкции используются для передачи / ветвления команд во время исполнения. Он включает в себя следующие инструкции —

Инструкция по передаче инструкции во время исполнения без каких-либо условий —

  • CALL — используется для вызова процедуры и сохранения адреса возврата в стек.

  • RET — используется для возврата из процедуры в основную программу.

  • JMP — используется для перехода к указанному адресу для перехода к следующей инструкции.

CALL — используется для вызова процедуры и сохранения адреса возврата в стек.

RET — используется для возврата из процедуры в основную программу.

JMP — используется для перехода к указанному адресу для перехода к следующей инструкции.

Инструкция для передачи инструкции во время исполнения с некоторыми условиями —

  • JA / JNBE — Используется для перехода, если выполнено указание выше / не ниже / равно.

  • JAE / JNB — используется для перехода, если инструкция выше / не ниже удовлетворяет.

  • JBE / JNA — Используется для перехода, если инструкция ниже / равно / не выше удовлетворяет.

  • JC — используется для прыжка, если флаг переноса CF = 1

  • JE / JZ — используется для перехода, если равен / ноль флаг ZF = 1

  • JG / JNLE — используется для перехода, если инструкция больше / не меньше / равна.

  • JGE / JNL — используется для перехода, если выполнено больше / равно / не меньше, чем инструкция.

  • JL / JNGE — используется для перехода, если удовлетворяется инструкция меньше / не больше / равно.

  • JLE / JNG — используется для перехода, если выполнено меньше / равно / если не больше, чем инструкция.

  • JNC — используется для прыжка, если нет флага переноса (CF = 0)

  • JNE / JNZ — используется для перехода, если не равен / нулевой флаг ZF = 0

  • JNO — используется для перехода, если нет флага переполнения OF = 0

  • JNP / JPO — используется для перехода, если не четность / четность нечетная PF = 0

  • JNS — используется для прыжка, если не знак SF = 0

  • JO — используется для перехода, если флаг переполнения OF = 1

  • JP / JPE — используется для перехода, если четность / четность даже PF = 1

  • JS — Используется для перехода, если флаг знака SF = 1

JA / JNBE — Используется для перехода, если выполнено указание выше / не ниже / равно.

JAE / JNB — используется для перехода, если инструкция выше / не ниже удовлетворяет.

JBE / JNA — Используется для перехода, если инструкция ниже / равно / не выше удовлетворяет.

JC — используется для прыжка, если флаг переноса CF = 1

JE / JZ — используется для перехода, если равен / ноль флаг ZF = 1

JG / JNLE — используется для перехода, если инструкция больше / не меньше / равна.

JGE / JNL — используется для перехода, если выполнено больше / равно / не меньше, чем инструкция.

JL / JNGE — используется для перехода, если удовлетворяется инструкция меньше / не больше / равно.

JLE / JNG — используется для перехода, если выполнено меньше / равно / если не больше, чем инструкция.

JNC — используется для прыжка, если нет флага переноса (CF = 0)

JNE / JNZ — используется для перехода, если не равен / нулевой флаг ZF = 0

JNO — используется для перехода, если нет флага переполнения OF = 0

JNP / JPO — используется для перехода, если не четность / четность нечетная PF = 0

JNS — используется для прыжка, если не знак SF = 0

JO — используется для перехода, если флаг переполнения OF = 1

JP / JPE — используется для перехода, если четность / четность даже PF = 1

JS — Используется для перехода, если флаг знака SF = 1

Инструкция по управлению процессором

Эти инструкции используются для управления действиями процессора путем установки / сброса значений флага.

Ниже приведены инструкции в этой группе:

  • STC — используется для установки флага переноса CF на 1

  • CLC — используется для сброса / сброса флага переноса CF на 0

  • CMC — используется для установки дополнения в состоянии флага переноса CF.

  • STD — используется для установки флага направления DF на 1

  • CLD — используется для сброса / сброса флага направления DF на 0

  • STI — используется для установки флага разрешения прерывания на 1, т. Е. Для включения входа INTR.

  • CLI — используется для сброса флага разрешения прерываний на 0, т. Е. Для отключения входа INTR.

STC — используется для установки флага переноса CF на 1

CLC — используется для сброса / сброса флага переноса CF на 0

CMC — используется для установки дополнения в состоянии флага переноса CF.

STD — используется для установки флага направления DF на 1

CLD — используется для сброса / сброса флага направления DF на 0

STI — используется для установки флага разрешения прерывания на 1, т. Е. Для включения входа INTR.

CLI — используется для сброса флага разрешения прерываний на 0, т. Е. Для отключения входа INTR.

Инструкции по контролю итерации

Эти инструкции используются для выполнения данных инструкций несколько раз. Ниже приведен список инструкций в этой группе —

  • LOOP — используется для зацикливания группы команд до тех пор, пока условие не будет удовлетворено, то есть CX = 0

  • LOOPE / LOOPZ — используется для зацикливания группы команд до тех пор, пока она не удовлетворит ZF = 1 и CX = 0

  • LOOPNE / LOOPNZ — используется для зацикливания группы команд до тех пор, пока она не удовлетворит ZF = 0 и CX = 0

  • JCXZ — используется для перехода к указанному адресу, если CX = 0

LOOP — используется для зацикливания группы команд до тех пор, пока условие не будет удовлетворено, то есть CX = 0

LOOPE / LOOPZ — используется для зацикливания группы команд до тех пор, пока она не удовлетворит ZF = 1 и CX = 0

LOOPNE / LOOPNZ — используется для зацикливания группы команд до тех пор, пока она не удовлетворит ZF = 0 и CX = 0

JCXZ — используется для перехода к указанному адресу, если CX = 0

Инструкции по прерыванию

Эти инструкции используются для вызова прерывания во время выполнения программы.

  • INT — Используется для прерывания программы во время выполнения и вызова указанной службы.

  • INTO — используется для прерывания программы во время выполнения, если OF = 1

  • IRET — используется для возврата из службы прерываний в основную программу

INT — Используется для прерывания программы во время выполнения и вызова указанной службы.

INTO — используется для прерывания программы во время выполнения, если OF = 1

IRET — используется для возврата из службы прерываний в основную программу

Микропроцессор — 8086 прерываний

Прерывание — это метод создания временной остановки во время выполнения программы и позволяет периферийным устройствам получать доступ к микропроцессору. Микропроцессор отвечает на это прерывание ISR (подпрограммой обработки прерываний), которая представляет собой короткую программу для инструктирования микропроцессора о том, как обрабатывать прерывание.

На следующем рисунке показаны типы прерываний, которые мы имеем в микропроцессоре 8086 —

Прерывания

Аппаратные прерывания

Аппаратное прерывание вызывается любым периферийным устройством, посылая сигнал через указанный контакт в микропроцессор.

8086 имеет два вывода аппаратного прерывания, то есть NMI и INTR. NMI является немаскируемым прерыванием, а INTR является маскируемым прерыванием, имеющим более низкий приоритет. Еще один связанный контакт прерывания — это INTA, называемый подтверждением прерывания.

NMI

Это один немаскируемый вывод прерывания (NMI), имеющий более высокий приоритет, чем маскируемый вывод запроса прерывания (INTR), и он имеет прерывание типа 2.

Когда это прерывание активировано, происходят следующие действия:

  • Завершает текущую инструкцию, которая выполняется.

  • Помещает значения регистра флага в стек.

  • Выдвигает значение CS (сегмент кода) и значение IP (указатель инструкции) адреса возврата в стек.

  • IP загружается из содержимого слова местоположения 00008H.

  • CS загружается из содержимого следующего слова местоположения 0000AH.

  • Флаг прерывания и флаг прерывания сбрасываются в 0.

Завершает текущую инструкцию, которая выполняется.

Помещает значения регистра флага в стек.

Выдвигает значение CS (сегмент кода) и значение IP (указатель инструкции) адреса возврата в стек.

IP загружается из содержимого слова местоположения 00008H.

CS загружается из содержимого следующего слова местоположения 0000AH.

Флаг прерывания и флаг прерывания сбрасываются в 0.

ВВЕДЕНИ

INTR является маскируемым прерыванием, потому что микропроцессор будет прерываться только в том случае, если прерывания разрешены с использованием команды установки флага прерывания. Его не следует включать с помощью команды очистки флага прерывания.

Прерывание INTR активируется портом ввода / вывода. Если прерывание включено и NMI отключено, то микропроцессор сначала завершает текущее выполнение и дважды посылает «0» на вывод INTA. Первый «0» означает, что INTA информирует внешнее устройство о готовности, а во время второго «0» микропроцессор получает 8-битный, скажем, X, от программируемого контроллера прерываний.

Эти действия предпринимаются микропроцессором —

  • Сначала завершает текущую инструкцию.

  • Активирует выход INTA и получает тип прерывания, скажем, X.

  • Значение регистра флага, значение CS возвращаемого адреса и значение IP возвращаемого адреса помещаются в стек.

  • Значение IP загружается из содержимого слова местоположения X × 4

  • CS загружается из содержимого местоположения следующего слова.

  • Флаг прерывания и флаг прерывания сбрасываются на 0

Сначала завершает текущую инструкцию.

Активирует выход INTA и получает тип прерывания, скажем, X.

Значение регистра флага, значение CS возвращаемого адреса и значение IP возвращаемого адреса помещаются в стек.

Значение IP загружается из содержимого слова местоположения X × 4

CS загружается из содержимого местоположения следующего слова.

Флаг прерывания и флаг прерывания сбрасываются на 0

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

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

INT- инструкция прерывания с номером типа

Это 2-байтовая инструкция. Первый байт предоставляет код операции, а второй байт — номер типа прерывания. В этой группе 256 типов прерываний.

Его выполнение включает в себя следующие этапы —

  • Значение регистра флага помещается в стек.

  • Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.

  • IP загружается из содержимого слова местоположения «номер типа» × 4

  • CS загружается из содержимого местоположения следующего слова.

  • Флаг прерывания и Флаг ловушки сбрасываются на 0

Значение регистра флага помещается в стек.

Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.

IP загружается из содержимого слова местоположения «номер типа» × 4

CS загружается из содержимого местоположения следующего слова.

Флаг прерывания и Флаг ловушки сбрасываются на 0

Начальный адрес для прерывания типа 0 — 000000H, для прерывания типа 1 — 00004H, аналогично для типа 2 — 00008H и так далее. Первые пять указателей являются выделенными указателями прерывания. то есть

  • Прерывание ТИПА 0 представляет деление на нулевую ситуацию.

  • Прерывание ТИПА 1 представляет одношаговое выполнение во время отладки программы.

  • Прерывание типа 2 представляет немаскируемое прерывание NMI.

  • Прерывание ТИПА 3 представляет прерывание точки останова.

  • Прерывание ТИПА 4 представляет прерывание переполнения.

Прерывание ТИПА 0 представляет деление на нулевую ситуацию.

Прерывание ТИПА 1 представляет одношаговое выполнение во время отладки программы.

Прерывание типа 2 представляет немаскируемое прерывание NMI.

Прерывание ТИПА 3 представляет прерывание точки останова.

Прерывание ТИПА 4 представляет прерывание переполнения.

Прерывания от типа 5 до типа 31 зарезервированы для других усовершенствованных микропроцессоров, а прерывания от 32 до типа 255 доступны для аппаратных и программных прерываний.

INT 3-точка прерывания Инструкция по прерыванию

Это однобайтовая инструкция с кодом операции CCH. Эти инструкции вставляются в программу таким образом, что, когда процессор достигает этого уровня, он останавливает нормальное выполнение программы и выполняет процедуру точки останова.

Его выполнение включает в себя следующие этапы —

  • Значение регистра флага помещается в стек.

  • Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.

  • IP загружается из содержимого слова местоположения 3 × 4 = 0000CH

  • CS загружается из содержимого местоположения следующего слова.

  • Флаг прерывания и Флаг ловушки сбрасываются на 0

Значение регистра флага помещается в стек.

Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.

IP загружается из содержимого слова местоположения 3 × 4 = 0000CH

CS загружается из содержимого местоположения следующего слова.

Флаг прерывания и Флаг ловушки сбрасываются на 0

INTO — прерывание по команде переполнения

Это однобайтовая инструкция и их мнемоническое INTO . Код операции для этой инструкции — CEH. Как следует из названия, это условная команда прерывания, то есть она активна, только когда флаг переполнения установлен в 1 и переходит к обработчику прерываний, чей номер типа прерывания равен 4. Если флаг переполнения сбрасывается, то выполнение продолжается до Следующая инструкция.

Его выполнение включает в себя следующие этапы —

  • Значения регистров флага помещаются в стек.

  • Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.

  • IP загружается из содержимого слова местоположения 4 × 4 = 00010H

  • CS загружается из содержимого местоположения следующего слова.

  • Флаг прерывания и флаг Trap сбрасываются на 0

Значения регистров флага помещаются в стек.

Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.

IP загружается из содержимого слова местоположения 4 × 4 = 00010H

CS загружается из содержимого местоположения следующего слова.

Флаг прерывания и флаг Trap сбрасываются на 0

Микропроцессор — 8086 режимов адресации

Различные способы обозначения исходного операнда в инструкции известны как режимы адресации . В программировании 8086 есть 8 различных режимов адресации —

Режим немедленной адресации

Режим адресации, в котором операнд данных является частью самой инструкции, называется режимом немедленной адресации.

пример

MOV CX, 4929 H, ADD AX, 2387 H,  MOV AL, FFH 

Зарегистрировать режим адресации

Это означает, что регистр является источником операнда для инструкции.

пример

MOV CX, AX   ; copies the contents of the 16-bit AX register into  
             ; the 16-bit CX register),  
ADD BX, AX 

Режим прямой адресации

Режим адресации, в котором эффективный адрес ячейки памяти записывается непосредственно в инструкции.

пример

MOV AX, [1592H], MOV AL, [0300H]

Зарегистрировать режим косвенной адресации

Этот режим адресации позволяет адресовать данные в любом месте памяти через адрес смещения, который хранится в любом из следующих регистров: BP, BX, DI & SI.

пример

MOV AX, [BX]  ; Suppose the register BX contains 4895H, then the contents  
              ; 4895H are moved to AX 
ADD CX, {BX} 

Основанный режим адресации

В этом режиме адресации адрес смещения операнда задается суммой содержимого регистров BX / BP и смещения 8 бит / 16 бит.

пример

MOV DX, [BX+04], ADD CL, [BX+08]

Режим индексированной адресации

В этом режиме адресации адрес смещения операндов находится путем сложения содержимого регистра SI или DI и смещения 8-бит / 16-бит.

пример

MOV BX, [SI+16], ADD AL, [DI+16] 

Режим адресации на основе индекса

В этом режиме адресации адрес смещения операнда вычисляется путем суммирования базового регистра с содержимым регистра индекса.

пример

ADD CX, [AX+SI], MOV AX, [AX+DI] 

На основе индексируется с режимом смещения

В этом режиме адресации смещение операндов вычисляется путем добавления содержимого базового регистра. Индекс регистрирует содержимое и смещение 8 или 16 бит.

пример

MOV AX, [BX+DI+08], ADD CX, [BX+SI+16] 

Обзор многопроцессорной конфигурации

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

  • Конфигурация сопроцессора
  • Тесно связанная конфигурация
  • Слабосвязанная конфигурация

Конфигурация сопроцессора

Копроцессор — это специально разработанная схема на микропроцессорном чипе, которая может очень быстро выполнить ту же задачу, которую выполняет микропроцессор. Это снижает нагрузку на основной процессор. Сопроцессор использует одну и ту же память, систему ввода-вывода, шину, управляющую логику и тактовый генератор. Сопроцессор выполняет специализированные задачи, такие как математические вычисления, графическое отображение на экране и т. Д.

8086 и 8088 могут выполнять большинство операций, но их набор команд не способен выполнять сложные математические операции, поэтому в этих случаях микропроцессору требуется математический сопроцессор, такой как математический сопроцессор Intel 8087, который может легко выполнять эти операции очень быстро.

Блок-схема конфигурации сопроцессора

Конфигурация сопроцессора

Как сопроцессор и процессор связаны?

  • Сопроцессор и процессор соединены через сигналы TEST, RQ- / GT- и QS 0 & QS 1 .

  • Сигнал TEST подключается к контакту BUSY сопроцессора, а остальные 3 контакта подключаются к 3 контактам сопроцессора с тем же именем.

  • Сигнал TEST определяет активность сопроцессора, т.е. сопроцессор занят или находится в режиме ожидания.

  • RT- / GT- используется для автобусного арбитража.

  • Сопроцессор использует QS 0 и QS 1 для отслеживания состояния очереди хост-процессора.

Сопроцессор и процессор соединены через сигналы TEST, RQ- / GT- и QS 0 & QS 1 .

Сигнал TEST подключается к контакту BUSY сопроцессора, а остальные 3 контакта подключаются к 3 контактам сопроцессора с тем же именем.

Сигнал TEST определяет активность сопроцессора, т.е. сопроцессор занят или находится в режиме ожидания.

RT- / GT- используется для автобусного арбитража.

Сопроцессор использует QS 0 и QS 1 для отслеживания состояния очереди хост-процессора.

Тесно связанная конфигурация

Тесно связанная конфигурация аналогична конфигурации сопроцессора, то есть обе они совместно используют одну и ту же память, системную шину ввода-вывода, логику управления и генератор управления с главным процессором. Однако сопроцессор и хост-процессор выбирают и выполняют свои собственные инструкции. Системная шина контролируется сопроцессором и хост-процессором независимо.

Блок-схема тесно связанной конфигурации

Тесно связанная конфигурация

Как связаны процессор и независимый процессор?

  • Связь между хостом и независимым процессором осуществляется через пространство памяти.

  • Ни одна из инструкций не используется для связи, как WAIT, ESC и т. Д.

  • Главный процессор управляет памятью и активирует независимый процессор, посылая команды на один из его портов.

  • Затем независимый процессор обращается к памяти для выполнения задачи.

  • После завершения задачи он отправляет подтверждение хост-процессору, используя сигнал состояния или запрос прерывания.

Связь между хостом и независимым процессором осуществляется через пространство памяти.

Ни одна из инструкций не используется для связи, как WAIT, ESC и т. Д.

Главный процессор управляет памятью и активирует независимый процессор, посылая команды на один из его портов.

Затем независимый процессор обращается к памяти для выполнения задачи.

После завершения задачи он отправляет подтверждение хост-процессору, используя сигнал состояния или запрос прерывания.

Слабосвязанная конфигурация

Слабосвязанная конфигурация состоит из ряда модулей микропроцессорных систем, которые подключены через общую системную шину. Каждый модуль состоит из собственного тактового генератора, памяти, устройств ввода-вывода и подключен через локальную шину.

Блок-схема слабосвязанной конфигурации

Слабосвязанная конфигурация

преимущества

  • Наличие более одного процессора приводит к повышению эффективности.

  • Каждый из процессоров имеет собственную локальную шину для доступа к локальным устройствам памяти / ввода-вывода. Это облегчает параллельную обработку.

  • Структура системы является гибкой, то есть отказ одного модуля не влияет на весь отказ системы; неисправный модуль может быть заменен позже.

Наличие более одного процессора приводит к повышению эффективности.

Каждый из процессоров имеет собственную локальную шину для доступа к локальным устройствам памяти / ввода-вывода. Это облегчает параллельную обработку.

Структура системы является гибкой, то есть отказ одного модуля не влияет на весь отказ системы; неисправный модуль может быть заменен позже.

8087 Числовой процессор данных

Процессор числовых данных 8087 также известен как математический сопроцессор, расширение числового процессора и модуль с плавающей запятой . Это был первый математический сопроцессор, разработанный Intel для сопряжения с 8086/8088, что привело к более простому и быстрому вычислению.

Как только инструкции идентифицированы процессором 8086/8088, они передаются сопроцессору 8087 для дальнейшего выполнения.

Типы данных, поддерживаемые 8087:

  • Двоичные целые числа
  • Упакованные десятичные числа
  • Вещественные числа
  • Временный реальный формат

Наиболее характерные особенности процессора обработки цифровых данных 8087:

  • Он поддерживает данные типа integer, float и real, размером от 2 до 10 байтов.

  • Скорость обработки настолько высока, что она может рассчитать умножение двух 64-битных действительных чисел за ~ 27 мкс, а также вычислить квадратный корень за ~ 35 мкс.

  • Это соответствует стандартам IEEE с плавающей запятой.

Он поддерживает данные типа integer, float и real, размером от 2 до 10 байтов.

Скорость обработки настолько высока, что она может рассчитать умножение двух 64-битных действительных чисел за ~ 27 мкс, а также вычислить квадратный корень за ~ 35 мкс.

Это соответствует стандартам IEEE с плавающей запятой.

8087 Архитектура

Архитектура 8087 разделена на две группы: блок управления (CU) и блок расширения чисел (NEU).

  • Блок управления обрабатывает весь обмен данными между процессором и памятью, например, получает и декодирует инструкции, считывает и записывает операнды памяти, поддерживает параллельную очередь и т. Д. Все инструкции сопроцессора являются инструкциями ESC, т. Е. Начинаются с «F», сопроцессор выполняет только команды ESC, в то время как другие инструкции выполняются микропроцессором.

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

Блок управления обрабатывает весь обмен данными между процессором и памятью, например, получает и декодирует инструкции, считывает и записывает операнды памяти, поддерживает параллельную очередь и т. Д. Все инструкции сопроцессора являются инструкциями ESC, т. Е. Начинаются с «F», сопроцессор выполняет только команды ESC, в то время как другие инструкции выполняются микропроцессором.

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

Архитектура сопроцессора 8087 выглядит следующим образом —

Архитектура 8087 года

8087 Pin Описание

Давайте сначала взглянем на схему контактов 8087 —

Диаграмма контактов 8087

В следующем списке приведено описание Pin 8087 —

  • AD 0 — AD 15 — это линии адреса / данных с мультиплексированием по времени, которые переносят адреса в течение первого тактового цикла и данные со второго тактового цикла и далее.

  • A 19 / S 6 — A 16 / S — Эти строки являются мультиплексированными по времени адресными / статусными строками. Он функционирует аналогично соответствующим контактам 8086. S 6 , S 4 и S3 постоянно высокие, в то время как S 5 постоянно низкие.

  • $ \ overline {BHE} $ / S 7 — во время первого тактового цикла $ \ overline {BHE} $ / S 7 используется для включения данных на старший байт шины данных 8086 и после этого работает как строка состояния S 7 .

  • QS 1 , QS 0 — это входные сигналы состояния очереди, которые обеспечивают состояние очереди команд, их состояние, как показано в следующей таблице:

AD 0 — AD 15 — это линии адреса / данных с мультиплексированием по времени, которые переносят адреса в течение первого тактового цикла и данные со второго тактового цикла и далее.

A 19 / S 6 — A 16 / S — Эти строки являются мультиплексированными по времени адресными / статусными строками. Он функционирует аналогично соответствующим контактам 8086. S 6 , S 4 и S3 постоянно высокие, в то время как S 5 постоянно низкие.

$ \ overline {BHE} $ / S 7 — во время первого тактового цикла $ \ overline {BHE} $ / S 7 используется для включения данных на старший байт шины данных 8086 и после этого работает как строка состояния S 7 .

QS 1 , QS 0 — это входные сигналы состояния очереди, которые обеспечивают состояние очереди команд, их состояние, как показано в следующей таблице:

QS 0 QS 1 Статус
0 0 Нет операции
0 1 Первый байт кода операции из очереди
1 0 Очистить очередь
1 1 Последующий байт из очереди
  • INT — это сигнал прерывания, который изменяется на высокий уровень, когда во время выполнения было получено немаскированное исключение.

  • BUSY — это выходной сигнал, когда он высокий, он указывает на состояние занятости процессора.

  • READY — это входной сигнал, используемый для информирования сопроцессора о том, готова ли шина к приему данных или нет.

  • СБРОС — это входной сигнал, используемый для отклонения внутренних операций сопроцессора и подготовки его к дальнейшему выполнению, когда этого требует ЦП.

  • CLK — Вход CLK обеспечивает основные временные характеристики для работы процессора.

  • VCC — это сигнал источника питания, который требует + 5В для работы схемы.

  • S 0 , S 1 , S 2 — это сигналы состояния, которые обеспечивают состояние операции, которое используется контроллером шины 8087 для генерации сигналов памяти и управляющих сигналов ввода / вывода. Эти сигналы активны в течение четвертого тактового цикла.

INT — это сигнал прерывания, который изменяется на высокий уровень, когда во время выполнения было получено немаскированное исключение.

BUSY — это выходной сигнал, когда он высокий, он указывает на состояние занятости процессора.

READY — это входной сигнал, используемый для информирования сопроцессора о том, готова ли шина к приему данных или нет.

СБРОС — это входной сигнал, используемый для отклонения внутренних операций сопроцессора и подготовки его к дальнейшему выполнению, когда этого требует ЦП.

CLK — Вход CLK обеспечивает основные временные характеристики для работы процессора.

VCC — это сигнал источника питания, который требует + 5В для работы схемы.

S 0 , S 1 , S 2 — это сигналы состояния, которые обеспечивают состояние операции, которое используется контроллером шины 8087 для генерации сигналов памяти и управляющих сигналов ввода / вывода. Эти сигналы активны в течение четвертого тактового цикла.

S 2 S 1 S 0 Состояние очереди
0 Икс Икс неиспользуемый
1 0 0 неиспользуемый
1 0 1 Чтение памяти
1 1 0 Запись в память
1 1 1 пассивный
  • RQ / GT 1 и RQ / GT 0 — это сигналы Запрос / Предоставление, используемые процессорами 8087 для получения контроля над шиной от хост-процессора 8086/8088 для передачи операндов.

RQ / GT 1 и RQ / GT 0 — это сигналы Запрос / Предоставление, используемые процессорами 8087 для получения контроля над шиной от хост-процессора 8086/8088 для передачи операндов.

Микропроцессор — интерфейс ввода-вывода

В этой главе мы обсудим Интерфейс памяти и Интерфейс ввода-вывода с 8085.

Интерфейс — это путь для связи между двумя компонентами. Интерфейс бывает двух типов: интерфейс памяти и интерфейс ввода / вывода.

Интерфейс памяти

Когда мы выполняем любую инструкцию, нам нужен микропроцессор для доступа к памяти для чтения кодов команд и данных, хранящихся в памяти. Для этого и память, и микропроцессор требуют некоторых сигналов для чтения и записи в регистры.

Процесс сопряжения включает в себя некоторые ключевые факторы, чтобы соответствовать требованиям к памяти и сигналам микропроцессора. Следовательно, схема сопряжения должна быть сконструирована таким образом, чтобы она соответствовала требованиям к сигналам памяти с сигналами микропроцессора.

IO Interfacing

Существуют различные устройства связи, такие как клавиатура, мышь, принтер и т. Д. Итак, нам необходимо связать клавиатуру и другие устройства с микропроцессором, используя защелки и буферы. Этот тип интерфейса известен как интерфейс ввода / вывода.

Блок-схема памяти и интерфейса ввода-вывода

Сопряжение

8085 Интерфейсные Пины

Ниже приведен список 8085 контактов, используемых для взаимодействия с другими устройствами.

  • A 15 — A 8 (Высшая адресная шина)
  • AD 7 — AD 0 (нижний адрес / шина данных)
  • ALE
  • RD
  • WR
  • ГОТОВЫ

Способы связи — микропроцессор с внешним миром?

Существует два способа связи, при которых микропроцессор может соединяться с внешним миром.

  • Интерфейс последовательной связи
  • Параллельный интерфейс связи

Интерфейс последовательной связи — при этом типе связи интерфейс получает один микропроцессор данных и поочередно отправляет их в другую систему, и наоборот.

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

8279 — Программируемая клавиатура

Программируемый контроллер клавиатуры / дисплея 8279 разработан компанией Intel, которая связывает клавиатуру с процессором. Сначала клавиатура сканирует клавиатуру и определяет, была ли нажата какая-либо клавиша. Затем он отправляет их относительный ответ нажатой клавиши в ЦП и наоборот.

Сколько способов клавиатура связана с процессором?

Клавиатура может быть подключена как в режиме прерывания, так и в режиме опроса. В режиме прерывания процессор запрашивает обслуживание, только если нажата какая-либо клавиша, в противном случае ЦП продолжит выполнение своей основной задачи.

В режиме опроса ЦПУ периодически считывает внутренний флаг 8279, чтобы проверить, нажата ли какая-либо клавиша или нет при нажатии клавиши.

Как работает клавиатура 8279?

Клавиатура состоит максимум из 64 клавиш, которые взаимодействуют с процессором с помощью кодов клавиш. Эти коды клавиш сбрасываются и сохраняются в 8-байтовом FIFORAM, к которому может обращаться ЦП. Если в FIFO введено более 8 символов, это означает, что одновременно нажимается более восьми клавиш. Это когда статус переполнения установлен.

Если FIFO содержит действительную ключевую запись, то ЦПУ прерывается в режиме прерывания, иначе ЦП проверяет состояние при опросе, чтобы прочитать запись. Как только процессор считывает запись ключа, FIFO обновляется, и запись ключа выталкивается из FIFO, чтобы создать пространство для новых записей.

Архитектура и описание

8279 Архитектура

Контроль ввода / вывода и буфер данных

Этот блок контролирует поток данных через микропроцессор. Он включается только когда D низкий. Его буфер данных связывает внешнюю шину системы с внутренней шиной микропроцессора. Контакты A0, RD и WR используются для команд, состояний или операций чтения / записи данных.

Регистр контроля и синхронизации и контроль синхронизации

Это устройство содержит регистры для хранения клавиатуры, режимов отображения и других операций, запрограммированных ЦПУ. Блок синхронизации и управления управляет временем работы схемы.

Счетчик сканирования

Он имеет два режима: режим кодирования и режим декодирования. В кодированном режиме счетчик обеспечивает двоичный счетчик, который должен быть декодирован извне, чтобы обеспечить линии сканирования для клавиатуры и дисплея.

В режиме декодированного сканирования счетчик внутренне декодирует младшие 2 бита и обеспечивает декодированное сканирование 1 из 4 на SL 0 -SL 3 .

Буферы возврата, отладка клавиатуры и контроль

Этот блок сначала сканирует закрытие клавиш по строкам, если он найден, тогда блок отладки клавиатуры отклоняет ввод ключа. В случае, если та же клавиша обнаружена, код этой клавиши напрямую передается в ОЗУ датчика вместе со статусом клавиши SHIFT & CONTROL.

FIFO / датчик ОЗУ и логика состояния

Это устройство действует как 8-байтовая ОЗУ «первым пришел — первым обслужен» (FIFO), где код клавиши каждой нажатой клавиши вводится в ОЗУ в соответствии с их последовательностью. Логика состояния генерирует запрос прерывания после каждой операции чтения FIFO, пока FIFO не станет пустым.

В режиме отсканированной матрицы датчиков этот модуль действует как ОЗУ датчика, где каждый его ряд загружается со статусом соответствующего ряда датчиков в матрицу. Когда датчик меняет свое состояние, линия IRQ меняется на высокий и прерывает процессор.

Показать регистры адресов и показать ОЗУ

Этот блок состоит из регистров адреса дисплея, которые содержат адреса слова, в настоящее время считываемого / записываемого ЦП в / из ОЗУ дисплея.

8279 — Пин Описание

На следующем рисунке показана схема контактов 8279 —

8279 Pin Diagram

Линии шины данных, DB 0 — DB 7

Это 8 двунаправленных линий шины данных, используемых для передачи данных в / из ЦП.

CLK

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

СБРОС

Как следует из названия, этот вывод используется для сброса микропроцессора.

CS Chip Select

Когда этот вывод установлен на низкий уровень, он разрешает операции чтения / записи, иначе этот вывод должен быть установлен на высокий.

А 0

Этот вывод указывает передачу команды / информации о состоянии. Когда оно низкое, это указывает на передачу данных.

RD, WR

Этот контакт чтения / записи позволяет буферу данных отправлять / получать данные по шине данных.

IRQ

Эта линия вывода прерывания становится высокой, когда в ОЗУ датчика FIFO есть данные. Строка прерывания уменьшается с каждой операцией чтения ОЗУ FIFO. Однако, если ОЗУ FIFO дополнительно содержит какую-либо запись кода ключа, которая должна быть прочитана ЦП, этот вывод снова повышается, чтобы создать прерывание для ЦП.

V ss , V cc

Это линии заземления и питания микропроцессора.

SL 0 — SL 3

Это линии сканирования, используемые для сканирования матрицы клавиатуры и отображения цифр. Эти строки могут быть запрограммированы как закодированные или декодированные с использованием регистра управления режимом.

RL 0 — RL 7

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

СДВИГ

Статус строки ввода Shift сохраняется вместе с каждым кодом клавиши в FIFO в режиме отсканированной клавиатуры. Пока он опущен вниз с помощью ключа, он поднимается изнутри, чтобы держать его высоко

CNTL / STB — режим управления / стробирования I / P

В режиме клавиатуры эта строка используется в качестве управляющего ввода и сохраняется в FIFO при закрытии клавиши. Строка является стробирующей линией, которая вводит данные в FIFO RAM в режиме стробированного ввода. У этого есть внутренняя тяга. Линия снята с ключом закрытия.

BD

Он обозначает пустой дисплей. Он используется для очистки дисплея во время переключения цифр.

OUTA 0 — OUTA 3 и OUTB 0 — OUTB 3

Это выходные порты для двух 16×4 или одного 16×8 внутренних регистров обновления дисплея. Данные из этих строк синхронизируются со строками сканирования для сканирования дисплея и клавиатуры.

Операционные режимы 8279

В 8279 есть два режима работы — режим ввода и режим вывода .

Режим ввода

Этот режим имеет дело с вводом, данным с клавиатуры, и этот режим далее классифицирован на 3 режима.

  • Режим сканированной клавиатуры — в этом режиме матрица клавиш может быть сопряжена с использованием либо кодированного, либо декодированного сканирования. При кодированном сканировании, клавиатуре 8 × 8 или в декодированном сканировании может быть подключена клавиатура 4 × 8. Код клавиши, нажатой с состояниями SHIFT и CONTROL, сохраняется в ОЗУ FIFO.

  • Сканированная матрица датчиков — в этом режиме матрица датчиков может быть сопряжена с процессором с использованием сканирования кодером или декодером. При сканировании кодера может быть сопряжена матрица датчиков 8 × 8 или со сканированием декодера матрица датчиков 4 × 8.

  • Strobed Input — в этом режиме, когда линия управления установлена ​​на 0, данные на обратных линиях сохраняются в байтах FIFO.

Режим сканированной клавиатуры — в этом режиме матрица клавиш может быть сопряжена с использованием либо кодированного, либо декодированного сканирования. При кодированном сканировании, клавиатуре 8 × 8 или в декодированном сканировании может быть подключена клавиатура 4 × 8. Код клавиши, нажатой с состояниями SHIFT и CONTROL, сохраняется в ОЗУ FIFO.

Сканированная матрица датчиков — в этом режиме матрица датчиков может быть сопряжена с процессором с использованием сканирования кодером или декодером. При сканировании кодера может быть сопряжена матрица датчиков 8 × 8 или со сканированием декодера матрица датчиков 4 × 8.

Strobed Input — в этом режиме, когда линия управления установлена ​​на 0, данные на обратных линиях сохраняются в байтах FIFO.

Режим вывода

Этот режим имеет дело с операциями, связанными с отображением. Этот режим далее классифицируется на два режима вывода.

  • Сканирование дисплея — этот режим позволяет организовать мультиплексные дисплеи 8/16 символов в виде двух 4-битных / одиночных 8-битных блоков отображения.

  • Отображение ввода — этот режим позволяет вводить данные для отображения с правой или левой стороны.

Сканирование дисплея — этот режим позволяет организовать мультиплексные дисплеи 8/16 символов в виде двух 4-битных / одиночных 8-битных блоков отображения.

Отображение ввода — этот режим позволяет вводить данные для отображения с правой или левой стороны.

Микропроцессор — контроллер 8257 DMA

DMA означает прямой доступ к памяти. Он разработан Intel для быстрой передачи данных. Это позволяет устройству передавать данные непосредственно в / из памяти без какого-либо вмешательства ЦП.

Используя контроллер DMA, устройство запрашивает у ЦП свои данные, адрес и управляющую шину, поэтому устройство может передавать данные непосредственно в / из памяти. Передача данных DMA начинается только после получения сигнала HLDA от CPU.

Как выполняются операции DMA?

Ниже приведена последовательность операций, выполняемых DMA —

  • Первоначально, когда какое-либо устройство должно отправить данные между устройством и памятью, оно должно отправить запрос DMA (DRQ) на контроллер DMA.

  • Контроллер DMA отправляет запрос удержания (HRQ) в ЦП и ожидает, пока ЦП утвердит HLDA.

  • Затем микропроцессор делит три состояния на всю шину данных, адресную шину и управляющую шину. ЦП покидает контроль над шиной и подтверждает запрос HOLD через сигнал HLDA.

  • Теперь процессор находится в состоянии HOLD, и контроллер DMA должен управлять операциями по шинам между процессором, памятью и устройствами ввода-вывода.

Первоначально, когда какое-либо устройство должно отправить данные между устройством и памятью, оно должно отправить запрос DMA (DRQ) на контроллер DMA.

Контроллер DMA отправляет запрос удержания (HRQ) в ЦП и ожидает, пока ЦП утвердит HLDA.

Затем микропроцессор делит три состояния на всю шину данных, адресную шину и управляющую шину. ЦП покидает контроль над шиной и подтверждает запрос HOLD через сигнал HLDA.

Теперь процессор находится в состоянии HOLD, и контроллер DMA должен управлять операциями по шинам между процессором, памятью и устройствами ввода-вывода.

Особенности 8257

Вот список некоторых выдающихся особенностей 8257 —

  • Он имеет четыре канала, которые можно использовать на четырех устройствах ввода-вывода.

  • Каждый канал имеет 16-битный адрес и 14-битный счетчик.

  • Каждый канал может передавать данные до 64 КБ.

  • Каждый канал может быть запрограммирован независимо.

  • Каждый канал может выполнять операции чтения чтения, записи записи и проверки операций передачи.

  • Он генерирует сигнал MARK для периферийного устройства о том, что было передано 128 байтов.

  • Это требует однофазных часов.

  • Его частота колеблется от 250 Гц до 3 МГц.

  • Он работает в 2 режимах, то есть в режиме Master и Slave .

Он имеет четыре канала, которые можно использовать на четырех устройствах ввода-вывода.

Каждый канал имеет 16-битный адрес и 14-битный счетчик.

Каждый канал может передавать данные до 64 КБ.

Каждый канал может быть запрограммирован независимо.

Каждый канал может выполнять операции чтения чтения, записи записи и проверки операций передачи.

Он генерирует сигнал MARK для периферийного устройства о том, что было передано 128 байтов.

Это требует однофазных часов.

Его частота колеблется от 250 Гц до 3 МГц.

Он работает в 2 режимах, то есть в режиме Master и Slave .

8257 Архитектура

На следующем изображении показана архитектура 8257 —

8257 Архитектура

8257 Pin Описание

На следующем рисунке показана схема контактов контроллера прямого доступа к памяти 8257 —

8257 Pin Схема

DRQ 0 −DRQ 3

Это четыре отдельных канала ввода запроса DMA, которые используются периферийными устройствами для использования услуг DMA. Когда выбран режим с фиксированным приоритетом, то DRQ 0 имеет самый высокий приоритет, а DRQ 3 имеет самый низкий приоритет среди них.

DACK o — DACK 3

Это линии подтверждения активного низкого уровня DMA, которые обновляют запрашивающее периферийное устройство о состоянии их запроса ЦПУ. Эти линии также могут выступать в качестве стробирующих линий для запрашивающих устройств.

Д о — Д 7

Это двунаправленные линии передачи данных, которые используются для сопряжения системной шины с внутренней шиной данных контроллера DMA. В подчиненном режиме он переносит командные слова в 8257 и слово состояния из 8257. В основном режиме эти строки используются для отправки старшего байта сгенерированного адреса в защелку. Этот адрес дополнительно фиксируется с помощью сигнала ADSTB.

IOR

Это двунаправленная входная линия с тремя активными состояниями, которая используется ЦП для считывания внутренних регистров 8257 в подчиненном режиме. В основном режиме он используется для чтения данных с периферийных устройств во время цикла записи в память.

IOW

Это активная линия с тремя состояниями в двух направлениях, которая используется для загрузки содержимого шины данных в регистр 8-битного режима или в верхний / нижний байт 16-битного регистра адресов DMA или регистра подсчета терминалов. В режиме мастера он используется для загрузки данных на периферийные устройства во время цикла чтения памяти DMA.

CLK

Это сигнал тактовой частоты, который требуется для внутренней работы 8257.

СБРОС

Этот сигнал используется для сброса контроллера DMA путем отключения всех каналов DMA.

A o — A 3

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

CS

Это линия выбора активных и низких фишек. В режиме Slave он разрешает операции чтения / записи в / из 8257. В режиме мастера он отключает операции чтения / записи в / из 8257.

А 4 — А 7

Это верхний полубайт младшего байтового адреса, сгенерированного DMA в режиме мастера.

ГОТОВЫ

Это активный высокий асинхронный входной сигнал, который подготавливает DMA путем вставки состояний ожидания.

HRQ

Этот сигнал используется для приема сигнала запроса удержания от устройства вывода. В подчиненном режиме он связан с линией входа DRQ 8257. В режиме Master он связан со входом HOLD ЦПУ.

HLDA

Это сигнал подтверждения удержания, который указывает контроллеру DMA, что шина была предоставлена ​​запрашивающему периферийному устройству центральным процессором, когда он установлен в 1.

МЭМР

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

MEMW

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

ADST

Этот сигнал используется для преобразования старшего байта адреса памяти, сгенерированного контроллером DMA, в защелки.

АЕН

Этот сигнал используется для отключения адресной шины / шины данных.

TC

Он обозначает «Количество терминалов», которое указывает текущий цикл DMA для существующих периферийных устройств.

ОТМЕТКА

Знак будет активироваться после каждых 128 циклов или целых кратных с самого начала. Это указывает на то, что текущий цикл DMA является 128-м циклом с момента предыдущего вывода MARK на выбранное периферийное устройство.

V cc

Это сигнал мощности, необходимый для работы схемы.

Микроконтроллеры — Обзор

Микроконтроллер — это небольшой и недорогой микрокомпьютер, который предназначен для выполнения конкретных задач встроенных систем, таких как отображение информации о микроволновом излучении, прием удаленных сигналов и т. Д.

Общий микроконтроллер состоит из процессора, памяти (RAM, ROM, EPROM), последовательных портов, периферийных устройств (таймеры, счетчики) и т. Д.

Разница между микропроцессором и микроконтроллером

В следующей таблице приведены различия между микропроцессором и микроконтроллером.

микроконтроллер Микропроцессор
Микроконтроллеры используются для выполнения одной задачи в приложении. Микропроцессоры используются для больших приложений.
Его проектирование и стоимость оборудования низкие. Его проектирование и стоимость оборудования высоки.
Легко заменить. Не так легко заменить.
Он построен по технологии CMOS, которая требует меньше энергии для работы. Потребляемая мощность высока, потому что он должен контролировать всю систему.
Он состоит из ЦП, ОЗУ, ПЗУ, портов ввода / вывода. Он не состоит из ОЗУ, ПЗУ, портов ввода / вывода. Он использует свои контакты для взаимодействия с периферийными устройствами.

Типы микроконтроллеров

Микроконтроллеры делятся на различные категории в зависимости от памяти, архитектуры, битов и наборов команд. Ниже приведен список их типов —

Немного

На основе битовой конфигурации микроконтроллер делится на три категории.

  • 8-битный микроконтроллер. Этот тип микроконтроллера используется для выполнения арифметических и логических операций, таких как сложение, вычитание, умножение и т. Д. Например, Intel 8031 ​​и 8051 представляют собой 8-битный микроконтроллер.

  • 16-разрядный микроконтроллер — этот тип микроконтроллера используется для выполнения арифметических и логических операций, где требуется более высокая точность и производительность. Например, Intel 8096 представляет собой 16-разрядный микроконтроллер.

  • 32-разрядный микроконтроллер. Этот тип микроконтроллера обычно используется в устройствах с автоматическим управлением, таких как автоматы, медицинские приборы и т. Д.

8-битный микроконтроллер. Этот тип микроконтроллера используется для выполнения арифметических и логических операций, таких как сложение, вычитание, умножение и т. Д. Например, Intel 8031 ​​и 8051 представляют собой 8-битный микроконтроллер.

16-разрядный микроконтроллер — этот тип микроконтроллера используется для выполнения арифметических и логических операций, где требуется более высокая точность и производительность. Например, Intel 8096 представляет собой 16-разрядный микроконтроллер.

32-разрядный микроконтроллер. Этот тип микроконтроллера обычно используется в устройствах с автоматическим управлением, таких как автоматы, медицинские приборы и т. Д.

объем памяти

В зависимости от конфигурации памяти микроконтроллер делится на две категории.

  • Микроконтроллер с внешней памятью. Микроконтроллеры такого типа спроектированы таким образом, что на чипе отсутствует программная память. Следовательно, он называется микроконтроллером внешней памяти. Например: микроконтроллер Intel 8031.

  • Микроконтроллер со встроенной памятью. Этот тип микроконтроллера спроектирован таким образом, что микроконтроллер имеет все программы и память данных, счетчики и таймеры, прерывания, порты ввода / вывода встроены в микросхему. Например: микроконтроллер Intel 8051.

Микроконтроллер с внешней памятью. Микроконтроллеры такого типа спроектированы таким образом, что на чипе отсутствует программная память. Следовательно, он называется микроконтроллером внешней памяти. Например: микроконтроллер Intel 8031.

Микроконтроллер со встроенной памятью. Этот тип микроконтроллера спроектирован таким образом, что микроконтроллер имеет все программы и память данных, счетчики и таймеры, прерывания, порты ввода / вывода встроены в микросхему. Например: микроконтроллер Intel 8051.

Набор инструкций

На основе конфигурации набора команд микроконтроллер делится на две категории.

  • CISC — CISC расшифровывается как компьютер с комплексными инструкциями. Это позволяет пользователю вставить одну инструкцию в качестве альтернативы многим простым инструкциям.

  • RISC — RISC расшифровывается как Компьютеры с сокращенным набором команд. Это сокращает время работы за счет сокращения тактового цикла на инструкцию.

CISC — CISC расшифровывается как компьютер с комплексными инструкциями. Это позволяет пользователю вставить одну инструкцию в качестве альтернативы многим простым инструкциям.

RISC — RISC расшифровывается как Компьютеры с сокращенным набором команд. Это сокращает время работы за счет сокращения тактового цикла на инструкцию.

Применение микроконтроллеров

Микроконтроллеры широко используются в различных устройствах, таких как —

  • Светочувствительные и контролирующие устройства, такие как LED.

  • Приборы для измерения и контроля температуры, такие как микроволновая печь, дымоходы.

  • Пожарная сигнализация и устройства безопасности, такие как пожарная сигнализация.

  • Измерительные приборы, такие как вольтметр.

Светочувствительные и контролирующие устройства, такие как LED.

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

Пожарная сигнализация и устройства безопасности, такие как пожарная сигнализация.

Измерительные приборы, такие как вольтметр.

Микроконтроллеры — архитектура 8051

Микроконтроллер 8051 разработан Intel в 1981 году. Это 8-битный микроконтроллер. Он состоит из 40-контактного DIP (двойной встроенный пакет), 4 КБ памяти ROM и 128 байтов памяти RAM, 2 16-битных таймеров. Он состоит из четырех параллельных 8-битных портов, которые программируются и адресуются в соответствии с требованиями. Кристаллический генератор на кристалле встроен в микроконтроллер с частотой кристалла 12 МГц.

Давайте теперь обсудим архитектуру микроконтроллера 8051.

На следующем рисунке системная шина соединяет все вспомогательные устройства с процессором. Системная шина состоит из 8-битной шины данных, 16-битной адресной шины и сигналов управления шиной. Все другие устройства, такие как память программ, порты, память данных, последовательный интерфейс, управление прерываниями, таймеры и центральный процессор, все соединены вместе через системную шину.

8051 Архитектура

Микроконтроллеры — 8051 Pin Описание

Схема выводов микроконтроллера 8051 выглядит следующим образом:

Схема контактов 8051

  • Контакты с 1 по 8 — Эти контакты известны как Порт 1. Этот порт не выполняет никаких других функций. Это внутренний двунаправленный порт ввода-вывода.

  • Вывод 9 — это вывод RESET, который используется для сброса микроконтроллера к его начальным значениям.

  • Контакты с 10 по 17 — эти контакты известны как порт 3. Этот порт выполняет некоторые функции, такие как прерывания, вход таймера, сигналы управления, сигналы последовательной связи RxD и TxD и т. Д.

  • Выводы 18 и 19 — эти выводы используются для сопряжения внешнего кристалла, чтобы получить системные часы.

  • Контакт 20 — Этот контакт обеспечивает питание цепи.

  • Контакты с 21 по 28 — эти контакты известны как порт 2. Он служит портом ввода / вывода. Сигналы шины адреса более высокого порядка также мультиплексируются с использованием этого порта.

  • Вывод 29 — это вывод PSEN, означающий включение хранилища программ. Используется для считывания сигнала из внешней памяти программ.

  • Вывод 30 — это вывод EA, который обозначает вход внешнего доступа. Он используется для включения / выключения интерфейса внешней памяти.

  • Вывод 31 — это вывод ALE, который обозначает включение фиксации адреса. Он используется для демультиплексирования сигнала адрес-данные порта.

  • Контакты с 32 по 39 — эти контакты известны как порт 0. Он служит портом ввода / вывода. Адрес младшего разряда и сигналы шины данных мультиплексируются через этот порт.

  • Вывод 40 — этот вывод используется для подачи питания в цепь.

Контакты с 1 по 8 — Эти контакты известны как Порт 1. Этот порт не выполняет никаких других функций. Это внутренний двунаправленный порт ввода-вывода.

Вывод 9 — это вывод RESET, который используется для сброса микроконтроллера к его начальным значениям.

Контакты с 10 по 17 — эти контакты известны как порт 3. Этот порт выполняет некоторые функции, такие как прерывания, вход таймера, сигналы управления, сигналы последовательной связи RxD и TxD и т. Д.

Выводы 18 и 19 — эти выводы используются для сопряжения внешнего кристалла, чтобы получить системные часы.

Контакт 20 — Этот контакт обеспечивает питание цепи.

Контакты с 21 по 28 — эти контакты известны как порт 2. Он служит портом ввода / вывода. Сигналы шины адреса более высокого порядка также мультиплексируются с использованием этого порта.

Вывод 29 — это вывод PSEN, означающий включение хранилища программ. Используется для считывания сигнала из внешней памяти программ.

Вывод 30 — это вывод EA, который обозначает вход внешнего доступа. Он используется для включения / выключения интерфейса внешней памяти.

Вывод 31 — это вывод ALE, который обозначает включение фиксации адреса. Он используется для демультиплексирования сигнала адрес-данные порта.

Контакты с 32 по 39 — эти контакты известны как порт 0. Он служит портом ввода / вывода. Адрес младшего разряда и сигналы шины данных мультиплексируются через этот порт.

Вывод 40 — этот вывод используется для подачи питания в цепь.

Микроконтроллеры 8051 Входные выходные порты

Микроконтроллеры 8051 имеют 4 порта ввода-вывода каждый из 8-битных, которые можно настроить как вход или выход. Следовательно, всего 32 входных / выходных контакта позволяют микроконтроллеру быть связанным с периферийными устройствами.

  • Конфигурация выводов, т.е. вывод можно настроить как 1 для входа и 0 для выхода в соответствии с логическим состоянием.

    • Вывод входа / выхода (I / O) — Все цепи в микроконтроллере должны быть подключены к одному из его выводов, кроме порта P0, поскольку в него не встроены подтягивающие резисторы.

    • Входной вывод — Логика 1 применяется к биту P-регистра. Выходной FE-транзистор выключен, а другой вывод остается подключенным к напряжению источника питания через подтягивающий резистор высокого сопротивления.

  • Порт 0Порт P0 (ноль) характеризуется двумя функциями —

    • Когда используется внешняя память, к ней применяется младший байт адреса (адреса A0A7), в противном случае все биты этого порта конфигурируются как вход / выход.

    • Когда порт P0 сконфигурирован как выход, тогда другие порты, состоящие из выводов со встроенным подтягивающим резистором, подключенным его концом к источнику питания 5 В, на выводах этого порта этот резистор не используется.

Конфигурация выводов, т.е. вывод можно настроить как 1 для входа и 0 для выхода в соответствии с логическим состоянием.

Вывод входа / выхода (I / O) — Все цепи в микроконтроллере должны быть подключены к одному из его выводов, кроме порта P0, поскольку в него не встроены подтягивающие резисторы.

Входной вывод — Логика 1 применяется к биту P-регистра. Выходной FE-транзистор выключен, а другой вывод остается подключенным к напряжению источника питания через подтягивающий резистор высокого сопротивления.

Порт 0Порт P0 (ноль) характеризуется двумя функциями —

Когда используется внешняя память, к ней применяется младший байт адреса (адреса A0A7), в противном случае все биты этого порта конфигурируются как вход / выход.

Когда порт P0 сконфигурирован как выход, тогда другие порты, состоящие из выводов со встроенным подтягивающим резистором, подключенным его концом к источнику питания 5 В, на выводах этого порта этот резистор не используется.

Конфигурация входа

Если какой-либо вывод этого порта сконфигурирован как вход, то он действует так, как будто он «плавает», т. Е. Вход имеет неограниченное входное сопротивление и неопределенный потенциал.

Конфигурация выхода

Когда вывод сконфигурирован как выход, он действует как «открытый сток». При применении логики 0 к биту порта соответствующий вывод будет подключен к заземлению (0 В), а при применении логики 1 внешний выход будет оставаться «плавающим».

Чтобы применить логику 1 (5 В) к этому выходному контакту, необходимо создать внешний подтягивающий резистор.

Порт 1

P1 является истинным портом ввода / вывода, так как у него нет альтернативных функций, как в P0, но этот порт можно настроить только как общий ввод / вывод. Он имеет встроенный подтягивающий резистор и полностью совместим с цепями TTL.

Порт 2

P2 аналогичен P0, когда используется внешняя память. Контакты этого порта занимают адреса, предназначенные для внешней микросхемы памяти. Этот порт может использоваться для старшего байта адреса с адресами A8-A15. Если память не добавлена, этот порт можно использовать как общий порт ввода-вывода, аналогичный порту 1.

Порт 3

В этом порту функции аналогичны другим портам, за исключением того, что логика 1 должна применяться к соответствующему биту регистра P3.

Ограничения тока на контактах

  • Когда выводы сконфигурированы как выход (т. Е. Логический 0), то выводы одного порта могут получать ток 10 мА.

  • Когда эти выводы настроены как входы (т. Е. Логическая 1), тогда встроенные подтягивающие резисторы обеспечивают очень слабый ток, но могут активировать до 4 входов TTL серии LS.

  • Если все 8 бит порта активны, то общий ток должен быть ограничен 15 мА (порт P0: 26 мА).

  • Если все порты (32 бита) активны, то максимальный максимальный ток должен быть ограничен 71 мА.

Когда выводы сконфигурированы как выход (т. Е. Логический 0), то выводы одного порта могут получать ток 10 мА.

Когда эти выводы настроены как входы (т. Е. Логическая 1), тогда встроенные подтягивающие резисторы обеспечивают очень слабый ток, но могут активировать до 4 входов TTL серии LS.

Если все 8 бит порта активны, то общий ток должен быть ограничен 15 мА (порт P0: 26 мА).

Если все порты (32 бита) активны, то максимальный максимальный ток должен быть ограничен 71 мА.

Микроконтроллеры — 8051 Прерывания

Прерывания — это события, которые временно приостанавливают основную программу, передают управление внешним источникам и выполняют их задачу. Затем он передает управление основной программе, где он остановился.

8051 имеет 5 сигналов прерывания, то есть INT0, TFO, INT1, TF1, RI / TI. Каждое прерывание можно включить или отключить, установив биты регистра IE, и всю систему прерываний можно отключить, очистив бит EA того же регистра.

IE (Разрешение прерывания) Регистрация

Этот регистр отвечает за включение и отключение прерывания. Для регистра EA установлено значение 1 для разрешения прерываний и значение 0 для отключения прерываний. Последовательность битов и их значения показаны на следующем рисунке.

IE Регистрация

Е.А. IE.7 Это отключает все прерывания. Когда EA = 0, прерывание не будет подтверждено, а EA = 1 разрешает прерывание по отдельности.
IE.6 Зарезервировано для будущего использования.
IE.5 Зарезервировано для будущего использования.
ES IE.4 Включает / отключает прерывание последовательного порта.
ET1 IE.3 Включает / отключает прерывание переполнения таймера1.
EX1 IE.2 Включает / отключает внешнее прерывание1.
ET0 IE.1 Включает / отключает прерывание переполнения таймера 0.
EX0 IE.0 Включает / отключает внешнее прерывание0.

Регистр IP (приоритет прерывания)

Мы можем изменить уровни приоритета прерываний, изменив соответствующий бит в регистре приоритетов прерываний (IP), как показано на следующем рисунке.

  • Прерывание с низким приоритетом может быть прервано только прерыванием с высоким приоритетом, но не может быть прервано другим прерыванием с низким приоритетом.

  • Если два прерывания разных уровней приоритета получены одновременно, запрос более высокого уровня приоритета обслуживается.

  • Если запросы с одинаковыми уровнями приоритета принимаются одновременно, то внутренняя последовательность опроса определяет, какой запрос должен быть обслужен.

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

Если два прерывания разных уровней приоритета получены одновременно, запрос более высокого уровня приоритета обслуживается.

Если запросы с одинаковыми уровнями приоритета принимаются одновременно, то внутренняя последовательность опроса определяет, какой запрос должен быть обслужен.

Регистр IP

IP.6 Зарезервировано для будущего использования.
IP.5 Зарезервировано для будущего использования.
PS IP.4 Он определяет уровень приоритета прерывания последовательного порта.
PT1 IP.3 Он определяет прерывание по таймеру 1 приоритета.
PX1 IP.2 Он определяет уровень приоритета внешнего прерывания.
PT0 IP.1 Он определяет уровень приоритета прерывания timer0.
PX0 IP.0 Он определяет внешнее прерывание с нулевым уровнем приоритета.

TCON Зарегистрироваться

Регистр TCON определяет тип внешнего прерывания для микроконтроллера.

8255A — Программируемый периферийный интерфейс

8255A — это программируемое устройство ввода-вывода общего назначения, предназначенное для передачи данных из ввода-вывода для прерывания ввода-вывода при определенных условиях по мере необходимости. Может использоваться практически с любым микропроцессором.

Он состоит из трех 8-битных двунаправленных портов ввода / вывода (24I / O линий), которые могут быть настроены в соответствии с требованиями.

Порты 8255А

8255A имеет три порта: порт A, порт B и порт C.

  • Порт A содержит один 8-разрядный выходной фиксатор / буфер и один 8-разрядный входной буфер.

  • Порт B похож на Порт A.

  • Порт C может быть разделен на две части: PORT C нижний (PC0-PC3) и PORT C верхний (PC7-PC4) с помощью управляющего слова.

Порт A содержит один 8-разрядный выходной фиксатор / буфер и один 8-разрядный входной буфер.

Порт B похож на Порт A.

Порт C может быть разделен на две части: PORT C нижний (PC0-PC3) и PORT C верхний (PC7-PC4) с помощью управляющего слова.

Эти три порта дополнительно разделены на две группы, то есть группа A включает в себя PORT A и верхний PORT C. Группа B включает в себя PORT B ​​и нижний PORT C. Эти две группы могут быть запрограммированы в трех разных режимах, т.е. первый режим называется как mode 0, второй режим называется режимом 1, а третий режим называется режимом 2.

Режимы работы

8255A имеет три различных режима работы —

  • Режим 0 — в этом режиме порт A и B используются как два 8-битных порта, а порт C — как два 4-битных порта. Каждый порт может быть запрограммирован либо в режиме ввода, либо в режиме вывода, где выходы заблокированы, а входы не заблокированы. Порты не имеют возможности прерывания.

  • Режим 1 — В этом режиме порты A и B используются как 8-битные порты ввода / вывода. Они могут быть настроены как входные или выходные порты. Каждый порт использует три линии от порта C в качестве сигналов квитирования. Входы и выходы заблокированы.

  • Режим 2 — В этом режиме порт A может быть настроен как двунаправленный порт, а порт B — в режиме 0 или режиме 1. Порт A использует пять сигналов от порта C в качестве сигналов квитирования для передачи данных. Оставшиеся три сигнала от порта C могут использоваться как простой ввод-вывод или как квитирование для порта B.

Режим 0 — в этом режиме порт A и B используются как два 8-битных порта, а порт C — как два 4-битных порта. Каждый порт может быть запрограммирован либо в режиме ввода, либо в режиме вывода, где выходы заблокированы, а входы не заблокированы. Порты не имеют возможности прерывания.

Режим 1 — В этом режиме порты A и B используются как 8-битные порты ввода / вывода. Они могут быть настроены как входные или выходные порты. Каждый порт использует три линии от порта C в качестве сигналов квитирования. Входы и выходы заблокированы.

Режим 2 — В этом режиме порт A может быть настроен как двунаправленный порт, а порт B — в режиме 0 или режиме 1. Порт A использует пять сигналов от порта C в качестве сигналов квитирования для передачи данных. Оставшиеся три сигнала от порта C могут использоваться как простой ввод-вывод или как квитирование для порта B.

Особенности 8255A

Выдающиеся особенности 8255A следующие:

  • Он состоит из 3 8-битных портов ввода-вывода, т.е. PA, PB и ПК.

  • Шина адреса / данных должна быть внешне demux’d.

  • Это TTL-совместимый.

  • Это улучшило способность вождения постоянного тока.

Он состоит из 3 8-битных портов ввода-вывода, т.е. PA, PB и ПК.

Шина адреса / данных должна быть внешне demux’d.

Это TTL-совместимый.

Это улучшило способность вождения постоянного тока.

8255 Архитектура

На следующем рисунке показана архитектура 8255A —

8255A Архитектура

Intel 8255A — Описание контактов

Давайте сначала взглянем на схему контактов Intel 8255A —

8255A Схема контактов

Теперь давайте обсудим функциональное описание контактов в 8255A.

Буфер данных

Это 8-битный буфер с тремя состояниями, который используется для подключения микропроцессора к системной шине данных. Данные передаются или принимаются буфером в соответствии с инструкциями ЦПУ. Управляющие слова и информация о состоянии также передаются по этой шине.

Логика управления чтением / записью

Этот блок отвечает за управление внутренней / внешней передачей данных / контроля / слова состояния. Он принимает входные данные от адреса ЦП и шин управления и, в свою очередь, выдает команды обеим группам управления.

CS

Это означает Chip Select. НИЗКИЙ на этом входе выбирает микросхему и обеспечивает связь между 8255A и CPU. Он подключен к декодированному адресу, а A 0 и A 1 подключены к адресным линиям микропроцессора.

Их результат зависит от следующих условий —

CS А 1 А 0 Результат
0 0 0 ПОРТ А
0 0 1 ПОРТ Б
0 1 0 ПОРТ С
0 1 1 Контрольный регистр
1 Икс Икс Нет выбора

WR

Стоит писать. Этот управляющий сигнал включает операцию записи. Когда этот сигнал становится низким, микропроцессор записывает данные в выбранный порт ввода-вывода или регистр управления.

СБРОС

Это активный высокий сигнал. Он очищает регистр управления и устанавливает все порты в режиме ввода.

RD

Это стоит для чтения. Этот управляющий сигнал включает операцию чтения. Когда сигнал низкий, микропроцессор считывает данные с выбранного порта ввода-вывода 8255.

А 0 и А 1

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

А 1 А 0 RD WR CS Результат
0 0 0 1 0

Операция ввода

ПОРТ А → Шина данных

0 1 0 1 0 ПОРТ B → Шина данных
1 0 0 1 0 ПОРТ C → Шина данных
0 0 1 0 0

Операция вывода

Шина данных → ПОРТ А

0 1 1 0 0 Шина данных → ПОРТ А
1 0 1 0 0 Шина данных → ПОРТ B
1 1 1 0 0 Шина данных → ПОРТ D

Операция ввода

Операция вывода

Intel 8253 — Программируемый интервальный таймер

Intel 8253 и 8254 представляют собой программируемые интервальные таймеры (PTI), разработанные для микропроцессоров для выполнения функций синхронизации и подсчета с использованием трех 16-разрядных регистров. Каждый счетчик имеет 2 входа, то есть Clock & Gate, и 1 контакт для выхода «OUT». Для работы счетчика в его регистр загружается 16-битный счетчик. По команде он начинает уменьшать счет до тех пор, пока не достигнет 0, а затем генерирует импульс, который можно использовать для прерывания ЦП.

Разница между 8253 и 8254

В следующей таблице различаются функции 8253 и 8254 —

8253 8254
Его рабочая частота составляет 0 — 2,6 МГц. Его рабочая частота составляет 0 — 10 МГц.
Использует технологию N-MOS Использует технологию H-MOS
Команда Read-Back недоступна Доступна команда Read-Back
Чтение и запись одного и того же счетчика не могут чередоваться. Чтение и запись одного и того же счетчика могут чередоваться.

Особенности 8253/54

Наиболее характерные особенности 8253/54:

  • Он имеет три независимых 16-битных счетчика вниз.

  • Он может обрабатывать входы от постоянного тока до 10 МГц.

  • Эти три счетчика могут быть запрограммированы для двоичного или BCD-счетчика.

  • Он совместим практически со всеми микропроцессорами.

  • 8254 имеет мощную команду READ BACK, которая позволяет пользователю проверять значение счетчика, запрограммированный режим, текущий режим и текущее состояние счетчика.

Он имеет три независимых 16-битных счетчика вниз.

Он может обрабатывать входы от постоянного тока до 10 МГц.

Эти три счетчика могут быть запрограммированы для двоичного или BCD-счетчика.

Он совместим практически со всеми микропроцессорами.

8254 имеет мощную команду READ BACK, которая позволяет пользователю проверять значение счетчика, запрограммированный режим, текущий режим и текущее состояние счетчика.

8254 Архитектура

Архитектура 8254 выглядит следующим образом —

8254 Архитектура

8254 Pin Описание

Вот схема контактов 8254 —

8254 Pin Описание

На рисунке выше показаны три счетчика, буфер шины данных, логика управления чтением / записью и регистр управления. Каждый счетчик имеет два входных сигнала — CLOCK & GATE и один выходной сигнал — OUT.

Буфер данных

Это трехсторонний, двунаправленный, 8-битный буфер, который используется для интерфейса 8253/54 с системной шиной данных. У него есть три основные функции —

  • Программирование режимов 8253/54.
  • Загрузка регистров счета.
  • Чтение значений счетчика.

Чтение / запись логики

Он включает в себя 5 сигналов, то есть RD, WR, CS и адресные линии A 0 и A 1 . В режиме периферийного ввода / вывода сигналы RD и WR подключаются к IOR и IOW соответственно. В режиме ввода-вывода с отображением в памяти они подключены к MEMR и MEMW.

Адресные линии A 0 и A 1 ЦПУ подключены к линиям A 0 и A 1 8253/54, а CS привязан к декодированному адресу. Регистр командного слова и счетчики выбираются в соответствии с сигналами в строках A 0 и A 1 .

А 1 А 0 Результат
0 0 Счетчик 0
0 1 Счетчик 1
1 0 Счетчик 2
1 1 Регистр управляющих слов
Икс Икс Нет выбора

Регистр управляющих слов

Этот регистр доступен, когда строки A 0 и A 1 находятся в логике 1. Он используется для записи командного слова, которое указывает используемый счетчик, его режим, а также операцию чтения или записи. Следующая таблица показывает результат для различных входов управления.

А 1 А 0 RD WR CS Результат
0 0 1 0 0 Счетчик записи 0
0 1 1 0 0 Счетчик записи 1
1 0 1 0 0 Счетчик записи 2
1 1 1 0 0 Напишите контрольное слово
0 0 0 1 0 Счетчик чтения 0
0 1 0 1 0 Считать счетчик 1
1 0 0 1 0 Считать счетчик 2
1 1 0 1 0 Нет операции
Икс Икс 1 1 0 Нет операции
Икс Икс Икс Икс 1 Нет операции

Счетчики

Каждый счетчик состоит из одного 16-разрядного счетчика, который может работать как в двоичном, так и в двоичном формате. Его вход и выход настраивается путем выбора режимов, сохраненных в регистре командного слова. Программист может читать содержимое любого из трех счетчиков, не нарушая фактический счетчик в процессе.

Intel 8253/54 — рабочие режимы

8253/54 может работать в 6 различных режимах. В этой главе мы обсудим эти режимы работы.

Он используется для генерации прерывания для микропроцессора после определенного интервала.

Первоначально выходной сигнал низкий после установки режима. Выход остается НИЗКИМ после загрузки значения счетчика в счетчик.

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

Сигнал GATE высокий для нормального счета. Когда значение GATE становится низким, отсчет прекращается, и текущий счет фиксируется до тех пор, пока значение GATE снова не станет высоким.

Может использоваться как моностабильный мультивибратор.

В этом режиме вход затвора используется как триггерный вход.

Выход остается высоким до тех пор, пока счет не будет загружен и не будет применен триггер.

Выход обычно высокий после инициализации.

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

Этот режим аналогичен режиму 2, за исключением того, что выход остается низким в течение половины периода таймера и высоким для другой половины периода.

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

Счет фиксируется, когда сигнал GATE становится НИЗКИМ.

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

Этот режим генерирует строб в ответ на внешний сигнал.

Этот режим аналогичен режиму 4, за исключением того, что отсчет инициируется сигналом на входе затвора, что означает, что он запускается аппаратно, а не программно.

После того, как он инициализирован, выходной сигнал становится высоким.

Когда счетчик контактов достигнут, выходной сигнал понижается в течение одного тактового цикла.