Микропроцессор - Краткое руководство
Микропроцессор - это управляющий блок микрокомпьютера, выполненный на небольшом чипе, способный выполнять операции ALU (арифметический логический блок) и взаимодействовать с другими подключенными к нему устройствами.
Микропроцессор состоит из АЛУ, массива регистров и блока управления. ALU выполняет арифметические и логические операции с данными, полученными из памяти или устройства ввода. Массив регистров состоит из регистров, обозначенных буквами типа B, C, D, E, H, L, и аккумулятора. Блок управления контролирует поток данных и инструкций внутри компьютера.
Блок-схема базового микрокомпьютера
Как работает микропроцессор?
Микропроцессор выполняет последовательность: выборка, декодирование, а затем выполнение.
Изначально инструкции сохраняются в памяти в последовательном порядке. Микропроцессор извлекает эти инструкции из памяти, затем декодирует их и выполняет эти инструкции до тех пор, пока не будет достигнута инструкция STOP. Позже он отправляет результат в двоичном формате на выходной порт. Между этими процессами регистр временно хранит данные, а ALU выполняет вычислительные функции.
Список терминов, используемых в микропроцессоре
Вот список некоторых из часто используемых терминов в микропроцессоре:
Instruction Set - Это набор инструкций, понятных микропроцессору.
Bandwidth - Это количество бит, обрабатываемых в одной инструкции.
Clock Speed- Он определяет количество операций в секунду, которые может выполнять процессор. Он выражается в мегагерцах (МГц) или гигагерцах (ГГц). Он также известен как тактовая частота.
Word Length- Это зависит от ширины внутренней шины данных, регистров, ALU и т. Д. 8-битный микропроцессор может обрабатывать 8-битные данные за раз. Длина слова составляет от 4 до 64 бит в зависимости от типа микрокомпьютера.
Data Types - Микропроцессор имеет несколько форматов типов данных, таких как двоичный, BCD, ASCII, числа со знаком и без знака.
Особенности микропроцессора
Вот список некоторых из самых выдающихся функций любого микропроцессора:
Cost-effective - Микропроцессорные микросхемы доступны по невысокой цене и, как следствие, невысокой стоимости.
Size - Микропроцессор представляет собой микросхему небольшого размера, поэтому портативный.
Low Power Consumption - Микропроцессоры производятся по металлооксидной полупроводниковой технологии, которая имеет низкое энергопотребление.
Versatility - Микропроцессоры универсальны, поскольку мы можем использовать один и тот же чип в ряде приложений, настроив программное обеспечение.
Reliability - Частота отказов ИС в микропроцессорах очень низкая, следовательно, она надежна.
Микропроцессор можно разделить на три категории:
RISC процессор
RISC означает Reduced Instruction Set Computer. Он предназначен для сокращения времени выполнения за счет упрощения набора команд компьютера. При использовании процессоров RISC каждая инструкция требует только одного тактового цикла для выполнения результатов с одинаковым временем выполнения. Это снижает эффективность, поскольку есть больше строк кода, следовательно, для хранения инструкций требуется больше оперативной памяти. Компилятору также нужно больше работать, чтобы преобразовать инструкции языка высокого уровня в машинный код.
Некоторые из процессоров RISC -
- Питание ПК: 601, 604, 615, 620
- Дек Альфа: 210642, 211066, 21068, 21164
- MIPS: TS (R10000) RISC-процессор
- PA-RISC: HP 7100LC
Архитектура RISC
Архитектура микропроцессора RISC использует высокооптимизированный набор инструкций. Он используется в портативных устройствах, таких как Apple iPod, из-за его энергоэффективности.
Характеристики RISC
Основные характеристики процессора RISC следующие:
Он состоит из простых инструкций.
Он поддерживает различные форматы типов данных.
Он использует простые режимы адресации и инструкции фиксированной длины для конвейерной обработки.
Он поддерживает регистр для использования в любом контексте.
Время выполнения одного цикла.
Инструкции «ЗАГРУЗИТЬ» и «СОХРАНИТЬ» используются для доступа к ячейке памяти.
Он состоит из большего количества регистров.
Он состоит из меньшего количества транзисторов.
CISC процессор
CISC означает Complex Instruction Set Computer. Он разработан для минимизации количества инструкций в программе, игнорируя количество циклов на инструкцию. Акцент делается на встраивании сложных инструкций непосредственно в оборудование.
Компилятору требуется очень мало работы для перевода языка высокого уровня в язык / машинный код уровня ассемблера, потому что длина кода относительно мала, поэтому для хранения инструкций требуется очень мало оперативной памяти.
Некоторые из процессоров CISC -
- IBM 370/168
- VAX 11/780
- Intel 80486
Архитектура CISC
Его архитектура предназначена для снижения стоимости памяти, поскольку для более крупных программ требуется больше памяти, что приводит к более высокой стоимости памяти. Чтобы решить эту проблему, количество инструкций в программе можно уменьшить, включив количество операций в одну инструкцию.
Характеристики CISC
- Разнообразие режимов адресации.
- Большее количество инструкций.
- Переменная длина форматов инструкций.
- Для выполнения одной инструкции может потребоваться несколько циклов.
- Логика декодирования инструкций сложна.
- Для поддержки нескольких режимов адресации требуется одна инструкция.
Специальные процессоры
Это процессоры, которые предназначены для каких-то специальных целей. Кратко обсуждаются некоторые из специальных процессоров -
Сопроцессор
Сопроцессор - это специально разработанный микропроцессор, который может выполнять свою конкретную функцию во много раз быстрее, чем обычный микропроцессор.
For example - Математический сопроцессор.
Некоторые математические сопроцессоры Intel -
- 8087-используется с 8086
- 80287-используется с 80286
- 80387-используется с 80386
Процессор ввода / вывода
Это специально разработанный микропроцессор, имеющий собственную локальную память, которая используется для управления устройствами ввода-вывода с минимальным использованием ЦП.
For example -
- Контроллер DMA (прямой доступ к памяти)
- Контроллер клавиатуры / мыши
- Контроллер графического дисплея
- Контроллер порта SCSI
Транспьютер (транзисторный компьютер)
Транспьютер - это специально разработанный микропроцессор с собственной локальной памятью и связями для подключения одного транспьютера к другому для межпроцессорной связи. Он был впервые разработан в 1980 году компанией Inmos и ориентирован на использование технологии СБИС.
Транспьютер может использоваться как однопроцессорная система или может быть подключен к внешним каналам, что снижает стоимость строительства и увеличивает производительность.
For example - 16-битные T212, 32-битные T425, процессоры с плавающей запятой (T800, T805 и T9000).
DSP (цифровой сигнальный процессор)
Этот процессор специально разработан для преобразования аналоговых сигналов в цифровую форму. Это делается путем измерения уровня напряжения через равные промежутки времени и преобразования напряжения в этот момент в цифровую форму. Этот процесс выполняется схемой, называемой аналого-цифровым преобразователем, аналого-цифровым преобразователем или АЦП.
DSP содержит следующие компоненты -
Program Memory - В нем хранятся программы, которые DSP будет использовать для обработки данных.
Data Memory - В нем хранится информация, которую нужно обработать.
Compute Engine - Выполняет математическую обработку, обращаясь к программе из памяти программ и к данным из памяти данных.
Input/Output - Он подключается к внешнему миру.
Его приложения -
- Звук и синтез музыки
- Сжатие аудио и видео
- Обработка видеосигнала
- Ускорение 2D и 3D графики.
For example - Серия TMS 320 от Texas Instrument, например TMS 320C40, TMS320C50.
8085 произносится как «восемьдесят восемьдесят пять» микропроцессора. Это 8-битный микропроцессор, разработанный Intel в 1977 году с использованием технологии NMOS.
Он имеет следующую конфигурацию -
- 8-битная шина данных
- 16-битная адресная шина, которая может адресовать до 64 КБ
- 16-битный программный счетчик
- 16-битный указатель стека
- Шесть 8-битных регистров, расположенных попарно: BC, DE, HL
- Требуется питание +5 В для работы на однофазной частоте 3,2 МГц
Используется в стиральных машинах, микроволновых печах, мобильных телефонах и т. Д.
Микропроцессор 8085 - Функциональные блоки
8085 состоит из следующих функциональных блоков -
Аккумулятор
Это 8-битный регистр, используемый для выполнения арифметических, логических операций ввода-вывода и ЗАГРУЗКИ / СОХРАНЕНИЯ. Он подключен к внутренней шине данных и ALU.
Арифметико-логический блок
Как следует из названия, он выполняет арифметические и логические операции, такие как сложение, вычитание, И, ИЛИ и т. Д. С 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)
- Вспомогательная переноска (AC)
- Четность (P)
- Нести (С)
Его битовое положение показано в следующей таблице -
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
S | Z | AC | п | CY |
Регистр инструкций и декодер
Это 8-битный регистр. Когда инструкция извлекается из памяти, она сохраняется в регистре инструкций. Декодер команд декодирует информацию, представленную в регистре команд.
Блок хронометража и управления
Он обеспечивает синхронизацию и управляющий сигнал микропроцессору для выполнения операций. Ниже приведены временные и управляющие сигналы, управляющие внешними и внутренними цепями.
- Сигналы управления: ГОТОВ, RD ', WR', ALE
- Сигналы состояния: S0, S1, IO / M '
- Сигналы DMA: HOLD, HLDA
- Сигналы сброса: RESET IN, RESET OUT
Контроль прерывания
Как следует из названия, он контролирует прерывания во время процесса. Когда микропроцессор выполняет основную программу и всякий раз, когда возникает прерывание, микропроцессор переключает управление с основной программы на обработку входящего запроса. После выполнения запроса управление возвращается к основной программе.
В микропроцессоре 8085 имеется 5 сигналов прерывания: INTR, RST 7.5, RST 6.5, RST 5.5, TRAP.
Управление последовательным вводом / выводом
Он управляет последовательной передачей данных с помощью этих двух инструкций: SID (последовательные входные данные) и SOD (последовательные выходные данные).
Буфер адреса и буфер данных адреса
Содержимое, хранящееся в указателе стека и программном счетчике, загружается в буфер адреса и буфер данных адреса для связи с ЦП. К этим шинам подключаются микросхемы памяти и ввода-вывода; ЦП может обмениваться желаемыми данными с памятью и микросхемами ввода-вывода.
Адресная шина и шина данных
По шине данных передаются данные для хранения. Он двунаправленный, тогда как адресная шина передает местоположение туда, где оно должно быть сохранено, и является однонаправленным. Он используется для передачи данных и адресных устройств ввода-вывода.
8085 Архитектура
Мы попытались изобразить архитектуру 8085 следующим образом:
На следующем изображении показана схема выводов микропроцессора 8085 -
Контакты микропроцессора 8085 можно разделить на семь групп:
Адресная шина
A15-A8, он содержит 8 старших разрядов адреса памяти / ввода-вывода.
Шина данных
AD7-AD0, он несет младший 8-битный адрес и шину данных.
Сигналы управления и состояния
Эти сигналы используются для определения характера операции. Есть 3 сигнала управления и 3 сигнала состояния.
Три управляющих сигнала - это RD, WR и ALE.
RD - Этот сигнал указывает, что выбранный ввод-вывод или устройство памяти необходимо прочитать и готово к приему данных, имеющихся на шине данных.
WR - Этот сигнал указывает, что данные на шине данных должны быть записаны в выбранную память или ячейку ввода-вывода.
ALE- Это положительный импульс, генерируемый при запуске микропроцессором новой операции. Когда импульс становится высоким, это указывает адрес. Когда пульс идет вниз, это указывает на данные.
Три сигнала состояния: IO / M, S0 и S1.
IO / M
Этот сигнал используется для различения операций ввода-вывода и операций с памятью, то есть, когда он высокий, указывает на операцию ввода-вывода, а когда он низкий, он указывает на работу с памятью.
S1 и S0
Эти сигналы используются для определения типа текущей операции.
Источник питания
Есть 2 сигнала питания - VCC и VSS. VCC указывает источник питания + 5 В, а VSS указывает сигнал заземления.
Тактовые сигналы
Есть 3 тактовых сигнала, то есть X1, X2, 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 низкий, то ЦП должен ждать, пока READY перейдет в высокий уровень.
HOLD - Этот сигнал указывает, что другой мастер запрашивает использование шины адреса и данных.
HLDA (HOLD Acknowledge)- Это указывает на то, что ЦП получил запрос HOLD и освободит шину в следующем тактовом цикле. HLDA устанавливается на низкий уровень после удаления сигнала HOLD.
Сигналы последовательного ввода / вывода
Есть 2 последовательных сигнала, то есть SID и SOD, и эти сигналы используются для последовательной связи.
SOD (Последовательная строка выходных данных) - Выходной SOD устанавливается / сбрасывается в соответствии с инструкцией SIM.
SID (Последовательная строка входных данных) - данные в этой строке загружаются в аккумулятор всякий раз, когда выполняется инструкция RIM.
Теперь обсудим режимы адресации в микропроцессоре 8085.
Режимы адресации в 8085
Это инструкции, используемые для передачи данных из одного регистра в другой, из памяти в регистр и из регистра в память без каких-либо изменений в содержании. Режимы адресации в 8085 подразделяются на 5 групп:
Режим немедленной адресации
В этом режиме 8/16-битные данные указываются в самой инструкции как один из ее операндов. For example: MVI K, 20F: означает, что 20F копируется в регистр K.
Зарегистрируйте режим адресации
В этом режиме данные копируются из одного регистра в другой. For example: MOV K, B: означает, что данные из регистра B копируются в регистр K.
Режим прямой адресации
В этом режиме данные напрямую копируются с заданного адреса в регистр. For example: LDB 5000K: означает, что данные по адресу 5000K копируются в регистр B.
Режим косвенной адресации
В этом режиме данные передаются из одного регистра в другой с использованием адреса, указанного регистром. For example: MOV K, B: означает, что данные передаются из адреса памяти, указанного регистром, в регистр K.
Подразумеваемый режим адресации
Этот режим не требует никаких операндов; данные определяются самим кодом операции.For example: CMP.
Прерывания в 8085
Прерывания - это сигналы, генерируемые внешними устройствами, чтобы запросить микропроцессор выполнить задачу. Имеется 5 сигналов прерывания, то есть TRAP, RST 7.5, RST 6.5, RST 5.5 и INTR.
Прерывания классифицируются на следующие группы в зависимости от их параметра -
Vector interrupt - В этом типе прерывания адрес прерывания известен процессору. For example: РСТ7.5, РСТ6.5, РСТ5.5, ЛОВУШКА.
Non-Vector interrupt - В этом типе прерывания адрес прерывания не известен процессору, поэтому для выполнения прерывания устройство должно посылать адрес прерывания извне. For example: INTR.
Maskable interrupt - В этом типе прерывания мы можем отключить прерывание, записав в программу некоторые инструкции. For example: RST7.5, RST6.5, RST5.5.
Non-Maskable interrupt - В этом типе прерывания мы не можем отключить прерывание, записав некоторые инструкции в программу. For example: ЛОВУШКА.
Software interrupt- В этом типе прерывания программист должен добавить инструкции в программу для выполнения прерывания. В 8085 есть 8 программных прерываний, то есть RST0, RST1, RST2, RST3, RST4, RST5, RST6 и RST7.
Hardware interrupt - В 8085 имеется 5 контактов прерывания, используемых в качестве аппаратных прерываний, то есть TRAP, RST7.5, RST6.5, RST5.5, INTA.
Note- NTA не является прерыванием, он используется микропроцессором для отправки подтверждения. Наивысший приоритет имеет TRAP, затем RST7.5 и так далее.
Процедура обслуживания прерывания (ISR)
Небольшая программа или подпрограмма, которая при выполнении обслуживает соответствующий источник прерывания, называется ISR.
ЛОВУШКА
Это немаскируемое прерывание, имеющее наивысший приоритет среди всех прерываний. По умолчанию он включен, пока не будет подтвержден. В случае сбоя он выполняется как ISR и отправляет данные в резервную память. Это прерывание передает управление в ячейку 0024H.
RST7.5
Это маскируемое прерывание, имеющее второй по приоритету среди всех прерываний. Когда это прерывание выполняется, процессор сохраняет содержимое регистра ПК в стек и переходит к адресу 003CH.
RST 6.5
Это маскируемое прерывание, имеющее третий приоритет среди всех прерываний. Когда это прерывание выполняется, процессор сохраняет содержимое регистра ПК в стек и переходит к адресу 0034H.
RST 5.5
Это маскируемое прерывание. Когда это прерывание выполняется, процессор сохраняет содержимое регистра ПК в стек и переходит к адресу 002CH.
INTR
Это маскируемое прерывание, имеющее самый низкий приоритет среди всех прерываний. Его можно отключить, сбросив микропроцессор.
когда INTR signal goes high, могут произойти следующие события -
Микропроцессор проверяет состояние сигнала INTR во время выполнения каждой инструкции.
Когда сигнал INTR высокий, микропроцессор завершает свою текущую инструкцию и отправляет активный сигнал подтверждения прерывания с низким уровнем.
Когда инструкции получены, микропроцессор сохраняет адрес следующей инструкции в стеке и выполняет полученную инструкцию.
Давайте посмотрим на программирование микропроцессора 8085.
Наборы инструкций - это коды инструкций для выполнения некоторой задачи. Он разделен на пять категорий.
S.No. | Инструкция и описание |
---|---|
1 | Инструкции по управлению Ниже приведена таблица со списком команд управления с их значениями. |
2 | Логические инструкции Ниже приведена таблица, в которой показан список логических инструкций с их значениями. |
3 | Инструкции по разветвлению В следующей таблице показан список инструкций ветвления с их значениями. |
4 | Арифметические инструкции Ниже приведена таблица со списком арифметических инструкций и их значениями. |
5 | Инструкции по передаче данных В следующей таблице показан список инструкций по передаче данных с их значениями. |
8085 - Демо-программы
Теперь давайте посмотрим на некоторые демонстрации программ, используя приведенные выше инструкции -
Сложение двух 8-битных чисел
Напишите программу для добавления данных в ячейки памяти 3005H и 3006H и сохраните результат в ячейках памяти 3007H.
Problem demo -
(3005H) = 14H
(3006H) = 89H
Result -
14H + 89H = 9DH
Программный код можно записать так -
LXI H 3005H : "HL points 3005H"
MOV A, M : "Getting first operand"
INX H : "HL points 3006H"
ADD M : "Add second operand"
INX H : "HL points 3007H"
MOV M, A : "Store result at 3007H"
HLT : "Exit program"
Обмен местами в памяти
Напишите программу для обмена данными в ячейках памяти 5000 и 6000 МБ.
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 - это усовершенствованная версия микропроцессора 8085, разработанная Intel в 1976 году. Это 16-разрядный микропроцессор, имеющий 20 адресных линий и 16 линий данных, который обеспечивает до 1 МБ памяти. Он состоит из мощного набора инструкций, который легко обеспечивает такие операции, как умножение и деление.
Он поддерживает два режима работы: максимальный режим и минимальный режим. Максимальный режим подходит для системы с несколькими процессорами, а минимальный режим подходит для системы с одним процессором.
Особенности 8086
Наиболее заметные особенности микропроцессора 8086 следующие:
Он имеет очередь инструкций, которая способна хранить шесть байтов инструкций из памяти, что приводит к более быстрой обработке.
Это был первый 16-битный процессор, имеющий 16-битный ALU, 16-битные регистры, внутреннюю шину данных и 16-битную внешнюю шину данных, что привело к более быстрой обработке.
Доступен в 3 версиях в зависимости от частоты эксплуатации -
8086 → 5 МГц
8086-2 → 8 МГц
(c) 8086-1 → 10 МГц
Он использует два этапа конвейерной обработки, то есть этап выборки и этап выполнения, что повышает производительность.
Этап выборки может предварительно выбрать до 6 байт инструкций и сохранить их в очереди.
Этап выполнения выполняет эти инструкции.
Он имеет 256 векторных прерываний.
Он состоит из 29 000 транзисторов.
Сравнение микропроцессоров 8085 и 8086
Size - 8085 - это 8-битный микропроцессор, а 8086 - 16-битный микропроцессор.
Address Bus - 8085 имеет 16-битную адресную шину, а 8086 - 20-битную адресную шину.
Memory - 8085 может получить доступ к 64 КБ, тогда как 8086 может получить доступ к 1 МБ памяти.
Instruction - 8085 не имеет очереди инструкций, тогда как 8086 имеет очередь инструкций.
Pipelining - 8085 не поддерживает конвейерную архитектуру, а 8086 поддерживает конвейерную архитектуру.
I/O - 8085 может адресовать 2 ^ 8 = 256 I / O, тогда как 8086 может обращаться к 2 ^ 16 = 65 536 I / O.
Cost - Стоимость 8085 низкая, а 8086 высокая.
Архитектура 8086 года
На следующей диаграмме показана архитектура микропроцессора 8086.
Микропроцессор 8086 разделен на два функциональных блока, т. Е. EU (Исполнитель) и BIU (Блок интерфейса шины).
ЕС (исполнительная группа)
Блок выполнения дает инструкции для BIU, указывающие, откуда следует получать данные, а затем декодировать и выполнять эти инструкции. Его функция - управлять операциями с данными с помощью декодера инструкций и ALU. EU не имеет прямого соединения с системными шинами, как показано на рисунке выше, он выполняет операции с данными через BIU.
Давайте теперь обсудим функциональные части микропроцессоров 8086.
ALU
Он обрабатывает все арифметические и логические операции, такие как операции +, -, ×, /, OR, AND, NOT.
Флаг Регистр
Это 16-битный регистр, который ведет себя как триггер, т. Е. Меняет свой статус в соответствии с результатом, сохраненным в аккумуляторе. Он имеет 9 флагов, и они разделены на 2 группы - условные флаги и контрольные флаги.
Условные флаги
Он представляет собой результат последней выполненной арифметической или логической инструкции. Ниже приведен список условных флагов -
Carry flag - Этот флаг указывает на состояние переполнения для арифметических операций.
Auxiliary flag- Когда операция выполняется в ALU, это приводит к переносу / переходу от нижнего полубайта (то есть D0 - D3) к верхнему полубайту (то есть D4 - D7), тогда этот флаг устанавливается, т. Флаг AF. Процессор использует этот флаг для преобразования двоичного кода в двоично-десятичный.
Parity flag- Этот флаг используется для индикации четности результата, т. Е. Когда младшие 8 битов результата содержат четное количество единиц, то устанавливается флаг четности. Для нечетного числа единиц флаг четности сбрасывается.
Zero flag - Этот флаг устанавливается в 1, если результат арифметической или логической операции равен нулю, иначе он устанавливается в 0.
Sign flag - Этот флаг содержит знак результата, т. Е. Когда результат операции отрицательный, тогда флаг знака устанавливается в 1, иначе устанавливается в 0.
Overflow flag - Этот флаг представляет результат, когда емкость системы превышена.
Контрольные флаги
Флаги управления контролируют операции исполнительного модуля. Ниже приводится список контрольных флагов -
Trap flag- Он используется для пошагового управления и позволяет пользователю выполнять одну инструкцию за раз для отладки. Если он установлен, то программа может работать в пошаговом режиме.
Interrupt flag- Это флаг разрешения / запрета прерывания, т.е. используется для разрешения / запрета прерывания программы. Он установлен в 1 для состояния разрешения прерывания и установлен в 0 для состояния отключения прерывания.
Direction flag- Используется в строковой операции. Как следует из названия, когда он установлен, доступ к байтам строки осуществляется от более высокого адреса памяти к более низкому адресу памяти и наоборот.
Регистр общего назначения
Есть 8 регистров общего назначения, то есть AH, AL, BH, BL, CH, CL, DH и DL. Эти регистры могут использоваться индивидуально для хранения 8-битных данных и могут использоваться парами для хранения 16-битных данных. Допустимые пары регистров: AH и AL, BH и BL, CH и CL, а также DH и DL. Это относится к AX, BX, CX и DX соответственно.
AX register- Он также известен как регистр аккумулятора. Он используется для хранения операндов для арифметических операций.
BX register- Используется как базовый регистр. Он используется для хранения начального базового адреса области памяти в сегменте данных.
CX register- Это называется счетчиком. Он используется в инструкции цикла для хранения счетчика цикла.
DX register - Этот регистр используется для хранения адреса порта ввода / вывода для инструкции ввода / вывода.
Регистр указателя стека
Это 16-битный регистр, в котором хранится адрес от начала сегмента до той области памяти, где слово было сохранено в стеке самым последним.
BIU (блок интерфейса шины)
BIU заботится обо всех передачах данных и адресов на шинах для ЕС, таких как отправка адресов, выборка инструкций из памяти, чтение данных из портов и памяти, а также запись данных в порты и память. ЕС не имеет прямого сообщения с системными шинами, поэтому это возможно с помощью BIU. EU и BIU соединены внутренней шиной.
Он имеет следующие функциональные части -
Instruction queue- BIU содержит очередь инструкций. BIU получает до 6 байтов следующих инструкций и сохраняет их в очереди инструкций. Когда EU выполняет инструкции и готов к следующей инструкции, он просто считывает инструкцию из этой очереди инструкций, что приводит к увеличению скорости выполнения.
Вызывается выборка следующей инструкции во время выполнения текущей инструкции pipelining.
Segment register- BIU имеет 4 сегмента шины, то есть CS, DS, SS и ES. Он содержит адреса инструкций и данных в памяти, которые используются процессором для доступа к ячейкам памяти. Он также содержит 1 регистр указателя IP, в котором хранится адрес следующей инструкции, выполняемой ЕС.
CS- Это означает сегмент кода. Он используется для адресации области памяти в сегменте кода памяти, где хранится исполняемая программа.
DS- Это означает сегмент данных. Он состоит из данных, используемых программой, и доступен в сегменте данных по адресу смещения или содержимому другого регистра, который содержит адрес смещения.
SS- Это означает сегмент стека. Он обрабатывает память для хранения данных и адресов во время выполнения.
ES- Это расшифровывается как Extra Segment. ES - это дополнительный сегмент данных, который используется строкой для хранения дополнительных данных назначения.
Instruction pointer - Это 16-битный регистр, используемый для хранения адреса следующей инструкции, которая должна быть выполнена.
8086 был первым 16-разрядным микропроцессором, доступным в 40-контактном чипе DIP (Dual Inline Package). Давайте теперь подробно обсудим конфигурацию выводов микропроцессора 8086.
Схема контактов 8086
Вот схема контактов микропроцессора 8086 -
Давайте теперь обсудим сигналы подробно -
Power supply and frequency signals
Он использует питание 5 В постоянного тока на контакте 40 V CC и заземление на контактах 1 и 20 V SS для своей работы.
Clock signal
Тактовый сигнал подается через контакт 19. Он обеспечивает синхронизацию операций с процессором. Его частота разная для разных версий, то есть 5 МГц, 8 МГц и 10 МГц.
Address/data bus
AD0-AD15. Это 16 шин адреса / данных. AD0-AD7 передает байтовые данные младшего разряда, а AD8AD15 - байтовые данные более высокого порядка. В течение первого такта он передает 16-битный адрес, а после этого - 16-битные данные.
Address/status bus
A16-A19 / S3-S6. Это 4 шины адреса / состояния. В течение первого такта он передает 4-битный адрес, а затем передает сигналы состояния.
S7/BHE
BHE расшифровывается как Bus High Enable. Он доступен на выводе 34 и используется для индикации передачи данных по шине данных D8-D15. Этот сигнал низкий в течение первого тактового цикла, после чего он активен.
Read($\overline{RD}$)
Он доступен на выводе 32 и используется для считывания сигнала операции чтения.
Ready
Он доступен на выводе 22. Это сигнал подтверждения от устройств ввода / вывода о передаче данных. Это активный высокий сигнал. Высокий уровень означает, что устройство готово к передаче данных. Когда он низкий, это указывает на состояние ожидания.
RESET
Он доступен на выводе 21 и используется для перезапуска выполнения. Это заставляет процессор немедленно прекратить свою текущую деятельность. Этот сигнал активен на высоком уровне в течение первых 4 тактовых циклов для СБРОСА микропроцессора.
INTR
Он доступен на выводе 18. Это сигнал запроса прерывания, который дискретизируется в течение последнего такта каждой инструкции, чтобы определить, считает ли процессор это прерыванием или нет.
NMI
Он означает немаскируемое прерывание и доступен на выводе 17. Это вход, запускаемый по фронту, который вызывает запрос прерывания на микропроцессор.
$\overline{TEST}$
Этот сигнал похож на состояние ожидания и доступен на выводе 23. Когда этот сигнал высокий, процессор должен ждать состояния IDLE, иначе выполнение продолжается.
MN/$\overline{MX}$
Он обозначает минимум / максимум и доступен на выводе 33. Он указывает, в каком режиме должен работать процессор; при высоком он работает в режиме минимума и наоборот.
INTA
Это сигнал подтверждения прерывания и идентификатор, доступный на выводе 24. Когда микропроцессор получает этот сигнал, он подтверждает прерывание.
ALE
Он обозначает защелку разрешения адреса и доступен на выводе 25. Положительный импульс генерируется каждый раз, когда процессор начинает любую операцию. Этот сигнал указывает на наличие действительного адреса в строках адреса / данных.
DEN
Он означает включение данных и доступен на выводе 26. Он используется для включения приемопередатчика 8286. Приемопередатчик - это устройство, используемое для отделения данных от шины адреса / данных.
DT/R
Он обозначает сигнал передачи / приема данных и доступен на выводе 27. Он определяет направление потока данных через приемопередатчик. Когда он высокий, данные передаются и наоборот.
M/IO
Этот сигнал используется для различения операций памяти и ввода-вывода. Когда он высокий, это указывает на операцию ввода / вывода, а когда он низкий - на операцию с памятью. Он доступен на контакте 28.
WR
Он обозначает сигнал записи и доступен на выводе 29. Он используется для записи данных в память или в устройство вывода в зависимости от состояния сигнала M / IO.
HLDA
Он означает сигнал подтверждения удержания и доступен на выводе 30. Этот сигнал подтверждает сигнал удержания.
HOLD
Этот сигнал указывает процессору, что внешние устройства запрашивают доступ к шинам адреса / данных. Он доступен на контакте 31.
QS1 and QS0
Это сигналы состояния очереди, которые доступны на выводах 24 и 25. Эти сигналы предоставляют состояние очереди команд. Их условия показаны в следующей таблице -
QS 0 | QS 1 | Положение дел |
---|---|---|
0 | 0 | Нет операции |
0 | 1 | Первый байт кода операции из очереди |
1 | 0 | Очистить очередь |
1 | 1 | Последующий байт из очереди |
S0, S1, S2
Это сигналы состояния, которые обеспечивают состояние работы, которое используется контроллером шины 8288 для генерации сигналов управления памятью и вводом / выводом. Они доступны на выводах 26, 27 и 28. Ниже приводится таблица, показывающая их статус:
S 2 | S 1 | S 0 | Положение дел |
---|---|---|---|
0 | 0 | 0 | Подтверждение прерывания |
0 | 0 | 1 | I / O чтение |
0 | 1 | 0 | I / O Запись |
0 | 1 | 1 | Остановка |
1 | 0 | 0 | Получение кода операции |
1 | 0 | 1 | Чтение из памяти |
1 | 1 | 0 | Запись в память |
1 | 1 | 1 | Пассивный |
LOCK
Когда этот сигнал активен, он указывает другим процессорам, чтобы они не просили ЦП покинуть системную шину. Он активируется с помощью префикса LOCK для любой инструкции и доступен на выводе 29.
RQ/GT1 and RQ/GT0
Это сигналы запроса / предоставления, используемые другими процессорами, запрашивающими ЦП освободить системную шину. Когда сигнал получен ЦП, он отправляет подтверждение. RQ / GT 0 имеет более высокий приоритет, чем RQ / GT 1 .
Микропроцессор 8086 поддерживает 8 типов инструкций -
- Инструкции по передаче данных
- Арифметические инструкции
- Инструкции по обработке битов
- Строковые инструкции
- Инструкции по передаче выполнения программы (инструкции ветвления и цикла)
- Инструкции по управлению процессором
- Инструкции по контролю итерации
- Инструкции по прерыванию
Давайте теперь обсудим эти наборы инструкций подробно.
Инструкции по передаче данных
Эти инструкции используются для передачи данных из исходного операнда в целевой операнд. Ниже приведен список инструкций для этой группы -
Инструкция по переносу слова
MOV - Используется для копирования байта или слова из предоставленного источника в указанное место назначения.
PPUSH - Используется для размещения слова в верхней части стопки.
POP - Используется для передачи слова из вершины стопки в указанное место.
PUSHA - Используется для помещения всех регистров в стек.
POPA - Используется для передачи слов из стека во все регистры.
XCHG - Используется для обмена данными из двух мест.
XLAT - Используется для перевода байта в AL с использованием таблицы в памяти.
Инструкции по переносу порта ввода и вывода
IN - Используется для чтения байта или слова из предоставленного порта в аккумулятор.
OUT - Используется для отправки байта или слова из аккумулятора в указанный порт.
Инструкция по переносу адреса
LEA - Используется для загрузки адреса операнда в указанный регистр.
LDS - Используется для загрузки регистра DS и другого предоставленного регистра из памяти
LES - Используется для загрузки регистра ES и других предоставленных регистров из памяти.
Инструкции по переносу регистров флагов
LAHF - Используется для загрузки в AH младшего байта регистра флага.
SAHF - Используется для хранения регистра AH в младшем байте регистра флага.
PUSHF - Используется для копирования регистра флага наверху стека.
POPF - Используется для копирования слова из верхней части стека в регистр флага.
Арифметические инструкции
Эти инструкции используются для выполнения арифметических операций, таких как сложение, вычитание, умножение, деление и т. Д.
Ниже приведен список инструкций для этой группы -
Инструкции по выполнению сложения
ADD - Используется для добавления предоставленного байта к байту / слово к слову.
ADC - Используется для добавления при переносе.
INC - Используется для увеличения предоставленного байта / слова на 1.
AAA - Используется для настройки ASCII после добавления.
DAA - Используется для настройки десятичной дроби после операции сложения / вычитания.
Инструкции по выполнению вычитания
SUB - Используется для вычитания байта из байта / слова из слова.
SBB - Используется для вычитания с заимствованием.
DEC - Используется для уменьшения предоставленного байта / слова на 1.
NPG - Используется для инвертирования каждого бита предоставленного байта / слова и добавления дополнения 1/2.
CMP - Используется для сравнения 2 предоставленных байта / слова.
AAS - Используется для корректировки кодов ASCII после вычитания.
DAS - Используется для настройки десятичной дроби после вычитания.
Инструкция по выполнению умножения
MUL - Используется для умножения байта без знака на байт / слово на слово.
IMUL - Используется для умножения подписанного байта на байт / слово на слово.
AAM - Используется для корректировки кодов ASCII после умножения.
Инструкция по выполнению деления
DIV - Используется для разделения беззнакового слова на байты или беззнакового двойного слова на слово.
IDIV - Используется для разделения слова со знаком на байты или двойного слова со знаком на слово.
AAD - Используется для настройки кодов ASCII после деления.
CBW - Используется для заполнения старшего байта слова копиями знакового бита младшего байта.
CWD - Используется для заполнения верхнего слова двойного слова знаковым битом нижнего слова.
Инструкции по обработке битов
Эти инструкции используются для выполнения операций, в которых задействованы биты данных, то есть таких операций, как логические операции, сдвиг и т.д.
Ниже приведен список инструкций для этой группы -
Инструкции по выполнению логической операции
NOT - Используется для инвертирования каждого бита байта или слова.
AND - Используется для добавления каждого бита в байте / слове с соответствующим битом в другом байте / слове.
OR - Используется для умножения каждого бита в байте / слове на соответствующий бит в другом байте / слове.
XOR - Используется для выполнения операции исключающего ИЛИ над каждым битом в байте / слове с соответствующим битом в другом байте / слове.
TEST - Используется для добавления операндов к флагам обновления, не затрагивая операнды.
Инструкции по выполнению сменных операций
SHL/SAL - Используется для сдвига битов байта / слова влево и установки нуля (S) в младшие биты.
SHR - Используется для сдвига битов байта / слова вправо и установки нуля (S) в MSB.
SAR - Используется для сдвига битов байта / слова вправо и копирования старого MSB в новый MSB.
Инструкции по выполнению операций поворота
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.
Инструкции по передаче выполнения программы (инструкции ветвления и цикла)
Эти инструкции используются для передачи / разветвления инструкций во время выполнения. Он включает следующие инструкции -
Инструкции по передаче инструкции во время выполнения без каких-либо условий -
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
Инструкции по управлению процессором
Эти инструкции используются для управления работой процессора путем установки / сброса значений флагов.
Ниже приведены инструкции для этой группы -
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
Инструкции по прерыванию
Эти инструкции используются для вызова прерывания во время выполнения программы.
INT - Используется для прерывания программы во время выполнения и вызова указанной службы.
INTO - Используется для прерывания программы во время выполнения, если OF = 1
IRET - Используется для возврата из службы прерывания в основную программу
Interruptэто метод создания временной остановки во время выполнения программы, позволяющий периферийным устройствам получить доступ к микропроцессору. Микропроцессор реагирует на это прерывание сигналомISR (Interrupt Service Routine), которая представляет собой короткую программу, инструктирующую микропроцессор о том, как обрабатывать прерывание.
На следующем изображении показаны типы прерываний, которые есть в микропроцессоре 8086.
Аппаратные прерывания
Аппаратное прерывание вызывается любым периферийным устройством, отправляя сигнал через указанный вывод на микропроцессор.
8086 имеет два контакта аппаратного прерывания, то есть NMI и INTR. NMI - немаскируемое прерывание, а INTR - маскируемое прерывание с более низким приоритетом. Еще один связанный вывод прерывания - это INTA, называемый подтверждением прерывания.
НМИ
Это единственный вывод немаскируемого прерывания (NMI) с более высоким приоритетом, чем вывод запроса маскируемого прерывания (INTR), и это прерывание типа 2.
Когда это прерывание активируется, происходят следующие действия:
Завершает текущую инструкцию, которая выполняется.
Помещает значения регистра флага в стек.
Помещает значение CS (сегмент кода) и значение IP (указатель инструкции) адреса возврата в стек.
IP загружается из содержимого слова по адресу 00008H.
CS загружается из содержимого следующей позиции слова 0000AH.
Флаг прерывания и флаг прерывания сбрасываются в 0.
INTR
INTR - это маскируемое прерывание, потому что микропроцессор будет прерван только в том случае, если прерывания разрешены с помощью команды установки флага прерывания. Его не следует включать с помощью инструкции сброса флага прерывания.
Прерывание INTR активируется портом ввода-вывода. Если прерывание разрешено, а NMI отключен, микропроцессор сначала завершает текущее выполнение и дважды отправляет «0» на вывод INTA. Первый «0» означает, что INTA информирует внешнее устройство о готовности, а во время второго «0» микропроцессор получает 8 бит, скажем X, от программируемого контроллера прерываний.
Эти действия выполняет микропроцессор -
Сначала завершает текущую инструкцию.
Активирует выход INTA и принимает тип прерывания, скажем X.
Значение регистра флага, значение CS адреса возврата и значение IP адреса возврата помещаются в стек.
Значение IP загружается из содержимого местоположения слова X × 4
CS загружается из содержимого следующего слова.
Флаг прерывания и флаг прерывания сбрасываются на 0
Программные прерывания
Некоторые инструкции вставляются в желаемую позицию в программу для создания прерываний. Эти инструкции прерывания можно использовать для проверки работы различных обработчиков прерываний. Он включает -
INT - инструкция прерывания с номером типа
Это 2-байтовая инструкция. Первый байт обеспечивает код операции, а второй байт предоставляет номер типа прерывания. В этой группе 256 типов прерываний.
Его выполнение включает в себя следующие шаги -
Значение регистра флага помещается в стек.
Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.
IP загружается из содержимого слова location 'type number' × 4
CS загружается из содержимого следующего слова.
Флаг прерывания и флаг ловушки сбрасываются на 0
Начальный адрес для прерывания type0 - 000000H, для прерывания type1 - 00004H, аналогично для type2 - 00008H и …… и так далее. Первые пять указателей - это выделенные указатели прерываний. т.е. -
TYPE 0 прерывание представляет собой деление на нулевое положение.
TYPE 1 прерывание представляет собой пошаговое выполнение во время отладки программы.
TYPE 2 прерывание представляет собой немаскируемое прерывание NMI.
TYPE 3 прерывание представляет прерывание от точки останова.
TYPE 4 прерывание представляет собой прерывание переполнения.
Прерывания от типа 5 до типа 31 зарезервированы для других усовершенствованных микропроцессоров, а прерывания от 32 до 255 доступны для аппаратных и программных прерываний.
Инструкция прерывания INT 3-Break Point
Это 1-байтовая инструкция с операционным кодом CCH. Эти инструкции вставляются в программу, так что когда процессор достигает их, он останавливает нормальное выполнение программы и следует процедуре точки останова.
Его выполнение включает в себя следующие шаги -
Значение регистра флага помещается в стек.
Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.
IP загружается из содержимого места слова 3 × 4 = 0000CH
CS загружается из содержимого следующего слова.
Флаг прерывания и флаг ловушки сбрасываются на 0
INTO - прерывание при переполнении инструкции
Это 1-байтовая инструкция и их мнемоника INTO. Код операции для этой инструкции - CEH. Как следует из названия, это условная инструкция прерывания, т. Е. Она активна только тогда, когда флаг переполнения установлен в 1 и переходит к обработчику прерывания, номер типа прерывания которого равен 4. Если флаг переполнения сброшен, выполнение продолжается до следующая инструкция.
Его выполнение включает в себя следующие шаги -
Значения флаговых регистров помещаются в стек.
Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.
IP загружается из содержимого позиции слова 4 × 4 = 00010H
CS загружается из содержимого следующего слова.
Флаг прерывания и флаг ловушки сбрасываются на 0
Различные способы обозначения исходного операнда в инструкции известны как addressing modes. В программировании 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 для отслеживания состояния очереди главного процессора.
Тесно связанная конфигурация
Тесно связанная конфигурация аналогична конфигурации сопроцессора, то есть оба используют одну и ту же память, системную шину ввода-вывода, логику управления и генератор управления с главным процессором. Однако сопроцессор и главный процессор выбирают и исполняют свои собственные инструкции. Системная шина контролируется сопроцессором и хост-процессором независимо.
Блок-схема тесно связанной конфигурации
Как связаны процессор и независимый процессор?
Связь между хостом и независимым процессором осуществляется через пространство памяти.
Ни одна из инструкций, таких как WAIT, ESC и т. Д., Не используется для связи.
Главный процессор управляет памятью и пробуждает независимый процессор, отправляя команды на один из его портов.
Затем независимый процессор обращается к памяти для выполнения задачи.
После завершения задачи он отправляет подтверждение хост-процессору с помощью сигнала состояния или запроса прерывания.
Слабо связанная конфигурация
Слабосвязанная конфигурация состоит из ряда модулей микропроцессорных систем, которые соединены общей системной шиной. Каждый модуль состоит из собственного тактового генератора, памяти, устройств ввода-вывода и подключается через локальную шину.
Блок-схема слабосвязанной конфигурации
Преимущества
Наличие более одного процессора приводит к повышению эффективности.
Каждый из процессоров имеет собственную локальную шину для доступа к локальной памяти / устройствам ввода-вывода. Это упрощает параллельную обработку.
Структура системы гибкая, то есть отказ одного модуля не влияет на сбой всей системы; неисправный модуль можно заменить позже.
Процессор числовых данных 8087 также известен как Math co-processor, Numeric processor extension и Floating point unit. Это был первый математический сопроцессор, разработанный Intel в сочетании с 8086/8088, что позволило упростить и ускорить вычисления.
После того как инструкции идентифицированы процессором 8086/8088, они передаются сопроцессору 8087 для дальнейшего выполнения.
8087 поддерживает следующие типы данных:
- Двоичные целые числа
- Упакованные десятичные числа
- Вещественные числа
- Временный реальный формат
Наиболее заметные особенности процессора числовых данных 8087 следующие:
Он поддерживает данные типа integer, float и real в диапазоне от 2 до 10 байтов.
Скорость обработки настолько высока, что можно вычислить умножение двух 64-битных действительных чисел за ~ 27 мкс, а также вычислить квадратный корень за ~ 35 мкс.
Он соответствует стандартам IEEE с плавающей запятой.
8087 Архитектура
Архитектура 8087 делится на две группы: Control Unit (CU) и Numeric Extension Unit (NEU).
В control unit обрабатывает всю связь между процессором и памятью, например, принимает и декодирует инструкции, считывает и записывает операнды памяти, поддерживает параллельную очередь и т. д. Все инструкции сопроцессора являются инструкциями ESC, то есть они начинаются с 'F', только сопроцессор выполняет инструкции ESC, в то время как другие инструкции выполняются микропроцессором.
В numeric extension unitобрабатывает все инструкции числового процессора, такие как арифметические, логические, трансцендентные инструкции и инструкции по передаче данных. Он имеет стек из 8 регистров, в котором хранятся операнды для инструкций и их результатов.
Архитектура сопроцессора 8087 следующая -
8087 Контакт Описание
Давайте сначала взглянем на схему контактов 8087 -
В следующем списке представлено описание контактов 8087 -
AD0 – AD15 - Это мультиплексированные по времени строки адреса / данных, которые несут адреса в течение первого тактового цикла и данные, начиная со второго тактового цикла.
A19 / S6 – A16/S- Эти строки представляют собой временные мультиплексированные строки адреса / состояния. Он функционирует аналогично соответствующим выводам 8086. S 6 , S 4 и S3 постоянно высокий, а S 5 постоянно низкий.
$\overline{BHE}$/S7 - Во время первого тактового цикла $\overline{BHE}$/ S 7 используется для передачи данных в старший байт шины данных 8086 и после этого работает как строка состояния S 7 .
QS1, QS0 - Это входные сигналы состояния очереди, которые предоставляют состояние очереди инструкций, их условия, как показано в следующей таблице -
QS 0 | QS 1 | Положение дел |
---|---|---|
0 | 0 | Нет операции |
0 | 1 | Первый байт кода операции из очереди |
1 | 0 | Очистить очередь |
1 | 1 | Последующий байт из очереди |
INT - Это сигнал прерывания, который меняется на высокий, когда во время выполнения было получено немаскированное исключение.
BUSY - Это выходной сигнал, высокий уровень указывает на состояние занятости ЦП.
READY - Это входной сигнал, используемый для информирования сопроцессора о том, готова ли шина к приему данных или нет.
RESET - Это входной сигнал, используемый для отклонения внутренних действий сопроцессора и подготовки его к дальнейшему выполнению, когда это потребуется ЦП.
CLK - Вход CLK обеспечивает основные тайминги для работы процессора.
VCC - Это сигнал источника питания, которому для работы схемы требуется питание +5 В.
S0, S1, S2- Это сигналы состояния, которые обеспечивают состояние операции, которая используется контроллером шины 8087 для генерации сигналов управления памятью и вводом / выводом. Эти сигналы активны в течение четвертого такта.
S 2 | S 1 | S 0 | Статус очереди |
---|---|---|---|
0 | Икс | Икс | Неиспользованный |
1 | 0 | 0 | Неиспользованный |
1 | 0 | 1 | Чтение из памяти |
1 | 1 | 0 | Запись в память |
1 | 1 | 1 | Пассивный |
RQ/GT1 & RQ/GT0 - Это Request/Grant сигналы, используемые процессорами 8087 для получения управления шиной от хост-процессора 8086/8088 для передачи операндов.
В этой главе мы обсудим интерфейс памяти и интерфейс ввода-вывода с 8085.
Interfaceэто путь для связи между двумя компонентами. Интерфейс бывает двух типов: интерфейс памяти и интерфейс ввода-вывода.
Интерфейс памяти
Когда мы выполняем любую инструкцию, нам нужен микропроцессор для доступа к памяти для чтения кодов инструкций и данных, хранящихся в памяти. Для этого и памяти, и микропроцессору требуются некоторые сигналы для чтения и записи в регистры.
Процесс сопряжения включает некоторые ключевые факторы, которые соответствуют требованиям к памяти и сигналам микропроцессора. Следовательно, интерфейсная схема должна быть спроектирована таким образом, чтобы она согласовывала требования к сигналам памяти с сигналами микропроцессора.
IO интерфейс
Существуют различные устройства связи, такие как клавиатура, мышь, принтер и т. Д. Итак, нам нужно связать клавиатуру и другие устройства с микропроцессором с помощью защелок и буферов. Этот тип интерфейса известен как интерфейс ввода-вывода.
Блок-схема памяти и интерфейса ввода-вывода
8085 Интерфейсные штифты
Ниже приведен список из 8085 контактов, используемых для взаимодействия с другими устройствами.
- A 15 - A 8 (шина высшего адреса)
- AD 7 - AD 0 (нижняя шина адреса / данных)
- ALE
- RD
- WR
- READY
Способы связи микропроцессора с внешним миром?
Существует два способа связи микропроцессора с внешним миром.
- Интерфейс последовательной связи
- Интерфейс параллельной связи
Serial Communication Interface - В этом типе связи интерфейс получает один байт данных от микропроцессора и последовательно отправляет его по битам другой системе и наоборот.
Parallel Communication Interface - В этом типе связи интерфейс получает байт данных от микропроцессора и отправляет его бит за битом в другие системы одновременно (или) параллельно и наоборот.
Программируемый контроллер клавиатуры / дисплея 8279 разработан Intel, который обеспечивает взаимодействие клавиатуры с процессором. Клавиатура сначала сканирует клавиатуру и определяет, была ли нажата какая-либо клавиша. Затем он отправляет их относительный ответ на нажатую клавишу в ЦП и наоборот.
Сколько способов взаимодействия клавиатуры с процессором?
Клавиатура может работать как в режиме прерывания, так и в режиме опроса. вInterrupt mode, процессор запрашивает обслуживание только при нажатии любой клавиши, иначе процессор продолжит выполнение своей основной задачи.
в Polled modeЦП периодически считывает внутренний флаг 8279, чтобы проверить, нажата ли какая-либо клавиша при нажатии клавиши.
Как работает клавиатура 8279?
Клавиатура состоит максимум из 64 клавиш, которые связаны с ЦП с помощью кодов клавиш. Эти коды клавиш восстанавливаются и сохраняются в 8-байтовом FIFORAM, доступ к которому может получить ЦП. Если в FIFO введено более 8 символов, это означает, что одновременно нажимается более восьми клавиш. Это когда установлен статус переполнения.
Если FIFO содержит действительную ключевую запись, тогда ЦП прерывается в режиме прерывания, иначе ЦП проверяет статус в опросе, чтобы прочитать запись. После того, как ЦП считывает ключевую запись, FIFO обновляется, и ключевой элемент выталкивается из FIFO для создания пространства для новых записей.
Архитектура и описание
Управление вводом / выводом и буфер данных
Этот блок управляет потоком данных через микропроцессор. Он доступен только при низком уровне D. Его буфер данных связывает внешнюю шину системы с внутренней шиной микропроцессора. Контакты A0, RD и WR используются для команд, состояний или операций чтения / записи данных.
Регистр контроля и времени и контроль времени
Этот блок содержит регистры для хранения клавиатуры, режимов отображения и других операций, запрограммированных ЦП. Блок хронометража и управления обрабатывает тайминги работы схемы.
Счетчик сканирования
Он имеет два режима, т.е. Encoded modeи режим декодирования. В кодированном режиме счетчик обеспечивает двоичный счет, который должен быть декодирован извне, чтобы обеспечить строки развертки для клавиатуры и дисплея.
в decoded scan mode, счетчик внутренне декодирует 2 младших бита и обеспечивает декодированное сканирование 1 из 4 на SL 0 -SL 3 .
Буферы возврата, устранение дребезга клавиатуры и управление
Это устройство сначала сканирует закрытие клавиш по строкам, если оно обнаружено, тогда устройство устранения дребезга клавиатуры отскакивает от ввода клавиши. В случае обнаружения того же ключа, код этого ключа передается непосредственно в ОЗУ датчика вместе с состоянием клавиши SHIFT & CONTROL.
FIFO / ОЗУ датчика и логика состояния
Этот блок действует как 8-байтовое ОЗУ по принципу «первым пришел - первым вышел» (FIFO), где код каждой нажатой клавиши вводится в ОЗУ в соответствии с их последовательностью. Логика состояния генерирует запрос прерывания после каждой операции чтения FIFO, пока FIFO не станет пустым.
В режиме сканированной матрицы датчиков этот блок действует как ОЗУ датчиков, где каждая его строка загружается в матрицу со статусом соответствующей строки датчиков. Когда датчик меняет свое состояние, линия IRQ переходит в высокий уровень и прерывает работу ЦП.
Регистры адреса дисплея и ОЗУ дисплея
Этот блок состоит из регистров адреса дисплея, которые содержат адреса слова, которое в данный момент считывает / записывает ЦП в / из ОЗУ дисплея.
8279 - Описание контактов
На следующем рисунке показана схема контактов 8279 -
Линии шины данных, DB 0 - DB 7
Это 8 двунаправленных линий шины данных, используемых для передачи данных в / из CPU.
CLK
Вход часов используется для генерации внутренних таймингов, необходимых микропроцессору.
СБРОС
Как следует из названия, этот вывод используется для сброса микропроцессора.
CS Chip Select
Когда этот вывод установлен на низкий уровень, он разрешает операции чтения / записи, в противном случае этот вывод должен быть установлен на высокий уровень.
А 0
Этот вывод указывает на передачу информации о команде / состоянии. Когда он низкий, это указывает на передачу данных.
RD, WR
Этот вывод чтения / записи позволяет буферу данных отправлять / получать данные по шине данных.
IRQ
Эта выходная линия прерывания переходит в высокий уровень, когда есть данные в ОЗУ датчика FIFO. Линия прерывания переходит в низкий уровень с каждой операцией чтения FIFO RAM. Однако, если FIFO RAM дополнительно содержит какой-либо код ключа, который должен быть прочитан ЦП, этот вывод снова переходит в высокий уровень, генерируя прерывание для ЦП.
В сс , В см
Это провода заземления и питания микропроцессора.
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
Это порты вывода для двух внутренних регистров обновления дисплея 16x4 или одного 16x8. Данные из этих строк синхронизируются со строками развертки для сканирования дисплея и клавиатуры.
Режимы работы 8279
На 8279 есть два режима работы - Input Mode и Output Mode.
Режим ввода
Этот режим обрабатывает ввод с клавиатуры, и этот режим подразделяется на 3 режима.
Scanned Keyboard Mode- В этом режиме матрица ключей может быть сопряжена с использованием кодированных или декодированных сканирований. При кодированном сканировании клавиатура 8 × 8 или при декодированном сканировании может взаимодействовать клавиатура 4 × 8. Код клавиши, нажатой в состоянии SHIFT и CONTROL, сохраняется в FIFO RAM.
Scanned Sensor Matrix- В этом режиме матрица датчиков может быть подключена к процессору с помощью сканирования кодировщиком или декодером. При сканировании кодировщика может быть сопряжена матрица датчиков 8 × 8 или матрица датчиков 4 × 8 при сканировании декодера.
Strobed Input - В этом режиме, когда линия управления установлена в 0, данные в линиях возврата сохраняются в байтах FIFO.
Режим вывода
Этот режим имеет дело с операциями, связанными с отображением. Этот режим далее подразделяется на два режима вывода.
Display Scan - Этот режим позволяет организовывать 8/16-символьные мультиплексированные дисплеи как двойные 4-битные / одиночные 8-битные дисплеи.
Display Entry - Этот режим позволяет вводить данные для отображения справа или слева.
DMA означает прямой доступ к памяти. Он разработан Intel для максимальной скорости передачи данных. Это позволяет устройству передавать данные напрямую в / из памяти без какого-либо вмешательства со стороны ЦП.
Используя контроллер DMA, устройство запрашивает ЦП для хранения его данных, адреса и шины управления, поэтому устройство может свободно передавать данные непосредственно в / из памяти. Передача данных DMA инициируется только после получения сигнала HLDA от CPU.
Как выполняются операции прямого доступа к памяти?
Ниже приводится последовательность операций, выполняемых DMA:
Первоначально, когда какое-либо устройство должно отправить данные между устройством и памятью, устройство должно отправить запрос DMA (DRQ) контроллеру DMA.
Контроллер DMA отправляет запрос удержания (HRQ) в ЦП и ждет, пока ЦП подтвердит HLDA.
Затем микропроцессор переключает все шину данных, шину адреса и шину управления. CPU оставляет управление шиной и подтверждает запрос HOLD посредством сигнала HLDA.
Теперь ЦП находится в состоянии УДЕРЖАНИЯ, и контроллер DMA должен управлять операциями по шинам между ЦП, памятью и устройствами ввода-вывода.
Особенности 8257
Вот список некоторых выдающихся особенностей 8257 -
Он имеет четыре канала, которые можно использовать с четырьмя устройствами ввода-вывода.
Каждый канал имеет 16-битный адрес и 14-битный счетчик.
Каждый канал может передавать данные размером до 64 КБ.
Каждый канал можно запрограммировать независимо.
Каждый канал может выполнять операции передачи чтения, записи и проверки передачи.
Он генерирует сигнал MARK на периферийное устройство о том, что было передано 128 байт.
Это требует однофазных часов.
Его частота составляет от 250 Гц до 3 МГц.
Он работает в 2-х режимах, т.е. Master mode и Slave mode.
8257 Архитектура
На следующем изображении показана архитектура 8257 -
8257 Описание контактов
На следующем изображении показана схема контактов контроллера 8257 DMA -
DRQ 0 -DRQ3
Это четыре индивидуальных входа запроса канала DMA, которые используются периферийными устройствами для использования служб DMA. Когда выбран режим с фиксированным приоритетом, тогда DRQ 0 имеет наивысший приоритет, а DRQ 3 имеет самый низкий приоритет среди них.
DACK o - DACK 3
Это строки подтверждения DMA с активным низким уровнем, которые обновляют запрашивающее периферийное устройство о состоянии их запроса от ЦП. Эти линии также могут действовать как стробоскопические линии для запрашивающих устройств.
Д о - Д 7
Это двунаправленные линии данных, которые используются для сопряжения системной шины с внутренней шиной данных контроллера прямого доступа к памяти. В режиме Slave он передает командные слова в 8257 и слово состояния из 8257. В режиме Master эти строки используются для отправки старшего байта сгенерированного адреса в защелку. Этот адрес дополнительно фиксируется с помощью сигнала ADSTB.
IOR
Это двунаправленная входная линия с тремя состояниями с активным низким уровнем, которая используется ЦП для чтения внутренних регистров 8257 в режиме Slave. В ведущем режиме он используется для чтения данных с периферийных устройств во время цикла записи в память.
IOW
Это активная двухсторонняя линия с двумя состояниями, которая используется для загрузки содержимого шины данных в 8-битный регистр режима или старший / младший байт 16-битного адресного регистра DMA или регистра терминального счетчика. В ведущем режиме он используется для загрузки данных в периферийные устройства во время цикла чтения памяти DMA.
CLK
Это сигнал тактовой частоты, который необходим для внутренней работы 8257.
СБРОС
Этот сигнал используется для СБРОСА контроллера DMA путем отключения всех каналов DMA.
А о - А 3
Это четыре наименее значимые адресные строки. В ведомом режиме они действуют как вход, который выбирает один из регистров для чтения или записи. В главном режиме это четыре наименее значимых строки вывода адреса памяти, генерируемые 8257.
CS
Это строка выбора микросхемы с активным низким уровнем. В режиме Slave он разрешает операции чтения / записи в / из 8257. В ведущем режиме он отключает операции чтения / записи в / из 8257.
А 4 - А 7
Это старший полубайт младшего байтового адреса, генерируемый DMA в ведущем режиме.
ГОТОВ
Это асинхронный входной сигнал с активным высоким уровнем, который делает DMA готовым путем вставки состояний ожидания.
HRQ
Этот сигнал используется для приема сигнала запроса удержания от устройства вывода. В режиме ведомого он соединен с входной линией 8257 DRQ. В режиме ведущего он соединен с входом HOLD ЦП.
HLDA
Это сигнал подтверждения удержания, который указывает контроллеру DMA, что шина была предоставлена запрашивающему периферийному устройству процессором, когда он установлен в 1.
MEMR
Это сигнал чтения из низкой памяти, который используется для чтения данных из адресованных ячеек памяти во время циклов чтения DMA.
MEMW
Это сигнал трех состояний с низким уровнем активности, который используется для записи данных в адресуемую ячейку памяти во время операции записи DMA.
ADST
Этот сигнал используется для преобразования старшего байта адреса памяти, сгенерированного контроллером DMA, в защелки.
AEN
Этот сигнал используется для отключения адресной шины / шины данных.
TC
Это означает «Счетчик терминалов», который указывает текущий цикл прямого доступа к памяти для имеющихся периферийных устройств.
ОТМЕТКА
Метка будет активирована после каждых 128 циклов или целых кратных от него с самого начала. Он указывает, что текущий цикл прямого доступа к памяти является 128-м циклом с момента предыдущего вывода MARK на выбранное периферийное устройство.
V куб.
Это сигнал мощности, который необходим для работы схемы.
А microcontroller это небольшой и недорогой микрокомпьютер, который предназначен для выполнения определенных задач встроенных систем, таких как отображение информации микроволн, прием удаленных сигналов и т. д.
Общий микроконтроллер состоит из процессора, памяти (RAM, ROM, EPROM), последовательных портов, периферийных устройств (таймеров, счетчиков) и т. Д.
Разница между микропроцессором и микроконтроллером
В следующей таблице показаны различия между микропроцессором и микроконтроллером.
Микроконтроллер | Микропроцессор |
---|---|
Микроконтроллеры используются для выполнения одной задачи в приложении. | Микропроцессоры используются для больших приложений. |
Стоимость его конструкции и оборудования невысока. | Его конструкция и стоимость оборудования высоки. |
Легко заменить. | Не так-то просто заменить. |
Он построен по технологии CMOS, которая требует меньше энергии для работы. | Его потребляемая мощность высока, потому что он должен контролировать всю систему. |
Он состоит из ЦП, ОЗУ, ПЗУ, портов ввода-вывода. | Он не состоит из ОЗУ, ПЗУ, портов ввода-вывода. Он использует свои контакты для взаимодействия с периферийными устройствами. |
Типы микроконтроллеров
Микроконтроллеры делятся на различные категории в зависимости от памяти, архитектуры, битов и наборов инструкций. Ниже приводится список их типов -
Немного
В зависимости от битовой конфигурации микроконтроллер делится на три категории.
8-bit microcontroller - Этот тип микроконтроллера используется для выполнения арифметических и логических операций, таких как сложение, вычитание, деление умножения и т. Д. Например, Intel 8031 и 8051 являются 8-битными микроконтроллерами.
16-bit microcontroller- Этот тип микроконтроллера используется для выполнения арифметических и логических операций там, где требуется более высокая точность и производительность. Например, Intel 8096 - это 16-битный микроконтроллер.
32-bit microcontroller - Этот тип микроконтроллера обычно используется в устройствах с автоматическим управлением, таких как автоматические рабочие машины, медицинские приборы и т. Д.
объем памяти
В зависимости от конфигурации памяти микроконтроллер делится на две категории.
External memory microcontroller- Микроконтроллеры этого типа сконструированы таким образом, что в них нет программной памяти на кристалле. Следовательно, он назван микроконтроллером внешней памяти. Например: микроконтроллер Intel 8031.
Embedded memory microcontroller- Этот тип микроконтроллера устроен таким образом, что микроконтроллер имеет все программы и память данных, счетчики и таймеры, прерывания, порты ввода-вывода встроены в микросхему. Например: микроконтроллер Intel 8051.
Набор инструкций
В зависимости от конфигурации набора команд микроконтроллер делится на две категории.
CISC- CISC означает компьютер со сложным набором команд. Это позволяет пользователю вставить одну инструкцию в качестве альтернативы множеству простых инструкций.
RISC- RISC означает компьютеры с сокращенным набором команд. Это сокращает рабочее время за счет сокращения тактового цикла на инструкцию.
Применение микроконтроллеров
Микроконтроллеры широко используются в различных устройствах, таких как -
Светочувствительные и управляющие устройства, такие как светодиоды.
Устройства измерения и контроля температуры, такие как микроволновая печь, дымоходы.
Устройства обнаружения пожара и безопасности, такие как пожарная сигнализация.
Измерительные приборы типа вольтметра.
Микроконтроллер 8051 разработан Intel в 1981 году. Это 8-битный микроконтроллер. Он построен с 40-контактным DIP (двойной встроенный корпус), 4 Кбайт ПЗУ и 128 байтов ОЗУ, 2 16-битных таймера. Он состоит из четырех параллельных 8-битных портов, которые можно программировать и адресовать в соответствии с требованиями. Встроенный кварцевый генератор интегрирован в микроконтроллер с тактовой частотой 12 МГц.
Давайте теперь обсудим архитектуру микроконтроллера 8051.
На следующей схеме системная шина подключает все поддерживающие устройства к ЦП. Системная шина состоит из 8-битной шины данных, 16-битной адресной шины и сигналов управления шиной. Все другие устройства, такие как программная память, порты, память данных, последовательный интерфейс, управление прерываниями, таймеры и ЦП, связаны друг с другом через системную шину.
Схема выводов микроконтроллера 8051 выглядит следующим образом -
Pins 1 to 8- Эти контакты известны как порт 1. Этот порт не выполняет никаких других функций. Это двунаправленный порт ввода-вывода с внутренним подтягиванием.
Pin 9 - Это вывод RESET, который используется для сброса микроконтроллера к его начальным значениям.
Pins 10 to 17 - Эти контакты известны как порт 3. Этот порт выполняет некоторые функции, такие как прерывания, ввод таймера, управляющие сигналы, сигналы последовательной связи RxD и TxD и т. Д.
Pins 18 & 19 - Эти контакты используются для подключения внешнего кристалла для получения системных часов.
Pin 20 - Этот вывод обеспечивает питание схемы.
Pins 21 to 28- Эти контакты известны как порт 2. Он служит портом ввода-вывода. Сигналы шины адреса высшего порядка также мультиплексируются с помощью этого порта.
Pin 29- Это вывод PSEN, который означает включение хранилища программ. Он используется для чтения сигнала из внешней памяти программ.
Pin 30- Это вывод EA, обозначающий вход внешнего доступа. Он используется для включения / выключения взаимодействия с внешней памятью.
Pin 31- Это вывод ALE, который означает включение фиксации адреса. Он используется для демультиплексирования сигнала адрес-данные порта.
Pins 32 to 39- Эти контакты известны как порт 0. Он служит портом ввода-вывода. Через этот порт мультиплексируются сигналы шины адресов и данных низшего порядка.
Pin 40 - Этот вывод используется для подачи питания на схему.
Микроконтроллеры 8051 имеют 4 порта ввода / вывода по 8 бит каждый, которые можно настроить как ввод или вывод. Таким образом, всего 32 контакта ввода / вывода позволяют подключать микроконтроллер к периферийным устройствам.
Pin configuration, т.е. вывод может быть сконфигурирован как 1 для входа и 0 для выхода в соответствии с логическим состоянием.
Input/Output (I/O) pin - Все схемы микроконтроллера должны быть подключены к одному из его выводов, кроме порта P0, поскольку он не имеет встроенных подтягивающих резисторов.
Input pin- Логическая 1 применяется к разряду регистра P. Выходной транзистор FE отключается, а другой вывод остается подключенным к источнику питания через подтягивающий резистор с высоким сопротивлением.
Port 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 мА.
Прерывания - это события, которые временно приостанавливают выполнение основной программы, передают управление внешним источникам и выполняют свою задачу. Затем он передает управление основной программе, где она остановилась.
8051 имеет 5 сигналов прерывания, т.е. INT0, TFO, INT1, TF1, RI / TI. Каждое прерывание можно разрешить или запретить, установив биты регистра IE, а всю систему прерываний можно отключить, очистив бит EA того же регистра.
Регистр IE (разрешение прерывания)
Этот регистр отвечает за включение и отключение прерывания. Регистр EA установлен в единицу для разрешения прерываний и установлен в 0 для отключения прерываний. Его битовая последовательность и их значения показаны на следующем рисунке.
EA | IE.7 | Он отключает все прерывания. Когда EA = 0, прерывание не будет подтверждено, а EA = 1 разрешает прерывание индивидуально. |
- | IE.6 | Зарезервировано для использования в будущем. |
- | IE.5 | Зарезервировано для использования в будущем. |
ES | IE.4 | Включает / отключает прерывание последовательного порта. |
ЕТ1 | IE.3 | Включает / отключает прерывание переполнения таймера 1. |
EX1 | IE.2 | Включает / отключает внешнее прерывание 1. |
ET0 | IE.1 | Включает / отключает прерывание переполнения таймера0. |
EX0 | IE.0 | Включает / отключает внешнее прерывание0. |
Регистр IP (приоритета прерывания)
Мы можем изменить уровни приоритета прерываний, изменив соответствующий бит в регистре приоритета прерывания (IP), как показано на следующем рисунке.
Прерывание с низким приоритетом может быть прервано только прерыванием с высоким приоритетом, но не может быть прервано другим прерыванием с низким приоритетом.
Если одновременно получены два прерывания с разным уровнем приоритета, то обслуживается запрос с более высоким уровнем приоритета.
Если запросы с одинаковыми уровнями приоритета принимаются одновременно, то внутренняя последовательность опроса определяет, какой запрос должен быть обслужен.
- | IP.6 | Зарезервировано для использования в будущем. |
- | IP.5 | Зарезервировано для использования в будущем. |
PS | IP.4 | Он определяет уровень приоритета прерывания последовательного порта. |
PT1 | IP.3 | Он определяет прерывание по таймеру с 1 приоритетом. |
PX1 | IP.2 | Он определяет уровень приоритета внешнего прерывания. |
PT0 | IP.1 | Он определяет уровень приоритета прерывания таймера0. |
PX0 | IP.0 | Он определяет внешнее прерывание с нулевым уровнем приоритета. |
Регистр TCON
Регистр TCON определяет тип внешнего прерывания микроконтроллера.
8255A - это программируемое устройство ввода / вывода общего назначения, предназначенное для передачи данных от ввода / вывода для прерывания ввода / вывода при определенных условиях по мере необходимости. Его можно использовать практически с любым микропроцессором.
Он состоит из трех 8-битных двунаправленных портов ввода-вывода (24 линии ввода-вывода), которые можно настроить в соответствии с требованиями.
Порты 8255A
8255A имеет три порта: ПОРТ A, ПОРТ B и ПОРТ C.
Port A содержит одну 8-битную защелку / буфер вывода и один 8-битный буфер ввода.
Port B похож на ПОРТ A.
Port C может быть разделен на две части: ПОРТ C нижний (PC0-PC3) и ПОРТ C верхний (PC7-PC4) с помощью управляющего слова.
Эти три порта далее делятся на две группы, т. Е. Группа A включает ПОРТ A и верхний ПОРТ C. Группа B включает ПОРТ B и нижний ПОРТ C. Эти две группы могут быть запрограммированы в трех различных режимах, то есть первый режим называется режимом. 0 второй режим называется Mode 1, а третий режим называется Mode 2.
Режимы работы
8255A имеет три различных режима работы -
Mode 0- В этом режиме порты A и B используются как два 8-битных порта, а порт C - как два 4-битных порта. Каждый порт может быть запрограммирован либо в режиме ввода, либо в режиме вывода, при котором выходы фиксируются, а входы не фиксируются. Порты не имеют возможности прерывания.
Mode 1- В этом режиме порты A и B используются как 8-битные порты ввода / вывода. Их можно настроить как порты ввода или вывода. Каждый порт использует три линии от порта C в качестве сигналов подтверждения. Входы и выходы защелкиваются.
Mode 2- В этом режиме порт A может быть настроен как двунаправленный порт, а порт B либо в режиме 0, либо в режиме 1. Порт A использует пять сигналов из порта C в качестве сигналов подтверждения для передачи данных. Остальные три сигнала из порта C могут использоваться либо как простой ввод-вывод, либо как квитирование для порта B.
Особенности 8255A
Основные особенности 8255A следующие:
Он состоит из 3 8-битных портов ввода-вывода, то есть PA, PB и ПК.
Шина адреса / данных должна иметь внешний демультиплексор.
Он совместим с TTL.
Он имеет улучшенные возможности управления постоянным током.
8255 Архитектура
На следующем рисунке показана архитектура 8255A -
Давайте сначала взглянем на схему контактов Intel 8255A -
Теперь обсудим функциональное описание контактов в 8255A.
Буфер шины данных
Это 8-битный буфер с тремя состояниями, который используется для сопряжения микропроцессора с системной шиной данных. Данные передаются или принимаются буфером в соответствии с инструкциями ЦП. По этой шине также передаются управляющие слова и информация о состоянии.
Логика управления чтением / записью
Этот блок отвечает за управление внутренней / внешней передачей слова данных / управления / состояния. Он принимает входные данные от шины адреса и управления ЦП и, в свою очередь, выдает команду обеим группам управления.
CS
Это расшифровывается как Chip Select. Низкий уровень на этом входе выбирает микросхему и разрешает связь между 8255A и ЦП. Он подключен к декодированному адресу, а A 0 и A 1 подключены к адресным линиям микропроцессора.
Их результат зависит от следующих условий -
CS | А 1 | А 0 | Результат |
---|---|---|---|
0 | 0 | 0 | ПОРТ А |
0 | 0 | 1 | ПОРТ B |
0 | 1 | 0 | ПОРТ C |
0 | 1 | 1 | Регистр управления |
1 | Икс | Икс | Без выбора |
WR
Это означает писать. Этот управляющий сигнал разрешает операцию записи. Когда этот сигнал становится низким, микропроцессор записывает в выбранный порт ввода / вывода или регистр управления.
СБРОС
Это активный высокий сигнал. Он очищает регистр управления и устанавливает все порты в режим ввода.
RD
Это означает чтение. Этот управляющий сигнал разрешает операцию чтения. Когда сигнал низкий, микропроцессор считывает данные из выбранного порта ввода / вывода 8255.
A 0 и A 1
Эти входные сигналы работают с RD, WR и одним из управляющих сигналов. Ниже приводится таблица, в которой показаны их различные сигналы и их результаты.
А 1 | А 0 | RD | WR | CS | Результат |
---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | Input Operation ПОРТ A → Шина данных |
0 | 1 | 0 | 1 | 0 | ПОРТ B → Шина данных |
1 | 0 | 0 | 1 | 0 | ПОРТ C → Шина данных |
0 | 0 | 1 | 0 | 0 | Output Operation Шина данных → ПОРТ A |
0 | 1 | 1 | 0 | 0 | Шина данных → ПОРТ A |
1 | 0 | 1 | 0 | 0 | Шина данных → ПОРТ B |
1 | 1 | 1 | 0 | 0 | Шина данных → ПОРТ D |
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 |
Команда обратного чтения недоступна | Доступна команда обратного чтения |
Чтение и запись одного и того же счетчика не могут чередоваться. | Чтение и запись одного и того же счетчика могут чередоваться. |
Особенности 8253/54
Наиболее заметные особенности 8253/54 следующие:
Он имеет три независимых 16-битных счетчика вниз.
Он может обрабатывать входы от постоянного тока до 10 МГц.
Эти три счетчика можно запрограммировать либо для двоичного, либо для двоично-десятичного счета.
Он совместим практически со всеми микропроцессорами.
8254 имеет мощную команду READ BACK, которая позволяет пользователю проверить значение счетчика, запрограммированный режим, текущий режим и текущее состояние счетчика.
8254 Архитектура
Архитектура 8254 выглядит следующим образом -
8254 Контакт Описание
Вот схема контактов 8254 -
На приведенном выше рисунке показаны три счетчика, буфер шины данных, логика управления чтением / записью и регистр управления. Каждый счетчик имеет два входных сигнала - ЧАСЫ И ЗАБРОС и один выходной сигнал - ВЫХОД.
Буфер шины данных
Это двунаправленный 8-разрядный буфер с тремя состояниями, который используется для подключения 8253/54 к системной шине данных. Он имеет три основные функции -
- Программирование режимов 8253/54.
- Загрузка счетных регистров.
- Считывание значений счетчика.
Чтение / запись логики
Он включает в себя 5 сигналов, то есть RD, WR, CS и адресные линии A 0 и A 1 . В режиме периферийного ввода-вывода сигналы RD и WR подключаются к IOR и IOW соответственно. В режиме ввода-вывода с отображением памяти они связаны с MEMR и MEMW.
Адрес линии А 0 & 1 процессор соединены с линиями А 0 и А 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-разрядного счетчика с понижением частоты, который может работать как в двоичном, так и в двоично-десятичном формате. Его вход и выход конфигурируются выбором режимов, хранящихся в регистре управляющего слова. Программист может прочитать содержимое любого из трех счетчиков, не нарушая фактический подсчет в процессе.
8253/54 может работать в 6 различных режимах. В этой главе мы обсудим эти режимы работы.
Режим 0 ─ прерывание по счетчику терминала
Он используется для генерации прерывания микропроцессору через определенный интервал.
Первоначально выход низкий после установки режима. Выход остается НИЗКИМ после загрузки значения счетчика в счетчик.
Процесс уменьшения счетчика продолжается до тех пор, пока не будет достигнут конечный счетчик, т. Е. Счетчик станет нулевым, а выход станет ВЫСОКИМ и будет оставаться высоким до тех пор, пока он не перезагрузит новый счет.
Сигнал GATE высокий для нормального счета. Когда GATE становится низким, счет прекращается, и текущий счет фиксируется, пока GATE снова не станет высоким.
Режим 1 - Программируемый One Shot
Его можно использовать как моностабильный мультивибратор.
В этом режиме вход затвора используется как вход триггера.
Выходной сигнал остается высоким до тех пор, пока не будет загружен счетчик и не будет применен триггер.
Режим 2 - Генератор скорости
После инициализации выход обычно высокий.
Когда счет становится нулевым, на выходе генерируется еще один низкий импульс, и счетчик перезагружается.
Режим 3 - Генератор прямоугольных волн
Этот режим аналогичен режиму 2, за исключением того, что выходной сигнал остается низким в течение половины периода таймера и высоким в течение второй половины периода.
Режим 4 - Программный режим
В этом режиме выход будет оставаться высоким, пока таймер не покажет ноль, после чего на выходе будет импульс низкого уровня, а затем снова высокий уровень.
Счетчик фиксируется, когда сигнал GATE становится НИЗКИМ.
По счетчику клемм на выходе устанавливается низкий уровень в течение одного тактового цикла, затем становится высокий уровень. Этот слабый импульс можно использовать как стробоскоп.
Режим 5 - Режим аппаратного запуска
Этот режим генерирует стробоскоп в ответ на сигнал, генерируемый извне.
Этот режим аналогичен режиму 4, за исключением того, что счет запускается сигналом на входе затвора, что означает, что он запускается аппаратно, а не запускается программно.
После инициализации выход становится высоким.
Когда достигается счетчик клемм, на выходе устанавливается низкий уровень на один такт.