Добавил:
kostikboritski@gmail.com Выполнение курсовых, РГР технических предметов Механического факультета. Так же чертежи по инженерной графике для МФ, УПП. Писать на почту. Дипломы по кафедре Вагоны Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

литература / Пухальский Проектирование микропроцессорных систем 2001

.pdf
Скачиваний:
373
Добавлен:
12.11.2017
Размер:
21.12 Mб
Скачать

20 Глава 1. Микропроцессоры 8080 и 8085

полнения — вывода байта данных во внешнее устройство. В начале каждого машинного цикла МП по шине данных выдает слово состояния SW, указывающее, какую операцию будет произ­ водить МП по шине данных (чтение памяти, запись в память, ввод или вывод данных в устрой­ ства ввода-вывода).

Рассмотрим процессы, протекающие в МП при выполнении команды OUT port. По адре­ су, находящемуся в программном счетчике PC, МП после окончания выполнения предыдущей команды переходит к выборке из памяти первого байта команды OUT port. В первом такте ма­ шинного цикла М\ МП выдает на шину адреса А,5_0 адрес первого байта команды, находящейся в памяти. Одновременно с адресом МП по шине данных D7^0 выдает слово состояния S W - 10100010 — код выборки команды, которое значением сигнала STSTB = 0 записывается в регистр памяти системного контроллера 8238 (см. рис. 1.5). Выдача слова состояния SW со­ провождается значением сигнала SYNC = 1, по которому генератор тактовых сигналов 8224 и вырабатывает значение сигнала STSTB = 0. Системный контроллер дешифрирует код слова состояния SW и выдает активный уровень сигнала чтения памяти MEMR = 0, устанавливающий на шине данных значение D7_0 = DI (Data Input) — содержимое ячейки памяти. Сказанное на­ глядно описывается схемой:

SYNC = 1

=>

STSTB = 0

=> MEMR = 0 (последовательность изменения сигналов)

от МП на 8224

от 8224 на 8238

от 8238 на память

5W

=>

Reg 8238

=> МП <— КОП (последовательность передач по шине данных)

из МП

 

фиксация

из памяти

в 8238

 

S W в R eg

в МП

Код первого байта команды, поступивший по шине данных £>7_0 в регистр Instruct. RG (см. рис. 1.3), подается на дешифратор команды и шифратор машинных циклов (Instruction D ecoder and Machine Cycle Encoding), который сообщает схеме управления МП, сколько байт содер­ жится в выбираемой команде. Далее МП выполняет машинный цикл М2 для выборки из памяти второго байта команды OUT port (при этом также выдается слово состояния SW = 10100010).

Цикл команды

Рис. 1.6. Временные диаграммы выполнения команды OUT port в МП 8080

1.3. Машинные циклы

21

Для исполнения команды OUT port требуется один дополнительный машинный цикл Мъ. В первом такте этого цикла МП выдает на шину адреса А 15_0 значения

/415А 14Д13А12^4 [ 10А9Дg = А-]АбА5ДцАз/42АХАо = port

(port — число, прочитанное из памяти в машинном цикле М2), а на шину данных — код слова состояния SW = 00010000 (см. табл. 1.15 в § 1.9), по которому системный контроллер 8238 фор­ мирует активный уровень сигнала управления I/O W = 0, поступающий на вход записи WR внешнего устройства (см. рис. 1.5) в момент времени, когда МП выводит на шину данных D7_0 из аккумулятора А байт данных DO - A {DO Data Output; рис. 1.6). После завершения вы­ полнения текущей команды МП автоматически переходит к выборке первого байта следующей команды. Этот процесс продолжается до выполнения всей программы, заданной оператором. Таким образом, МП представляет собой цифровой детерминированный автомат.

Сигналы квитирования передачи данных READY, INT и HOLD, показанные на рис. 1.3, анализируется микропроцессором в определенных тактах машинных циклов.

С игнал готовности READY. Этот сигнал анализируется в такте Т2 каждого машинного цикла. Если будет обнаружено значение READY = 0, то МП между тактами Т2 и Т3 вводит целое число тактов ожидания Tw (см. рис. 2.8 и 2.9). Такты ожидания Tw вводятся до тех пор, пока сигнал READY не изменится с 0 на 1. В тактах ожидания Tw сигналы на всех шинах МП сохра­ няют те же значения, что и в такте Т2 (изменяется только сигнал WAIT с 0 на 1). Этим самым достигается увеличение длительности активных уровней системных сигналов управления

MEMR, MEMW, liO R и HOW.

Сигнал запроса преры вания INT. Значение сигнала запроса прерывания INT - 1 записы­ вается во внутренний триггер запроса прерывания в последнем такте последнего машинного цикла текущей команды при условии, что установлены значения сигналов INTE = 1 (прерыва­ ния разрешены) и HOLD = 0 (нет запроса прямого доступа к памяти). Микропроцессор, полно­ стью завершив выполнение текущей команды, переходит к выполнению машинного цикла “Подтверждение прерывания” — цикл М\. В такте Тх этого цикла МП сбрасывает в 0 внутрен­ ний триггер INTE (дальнейшие прерывания запрещаются) и на шину данных D1A) выдает код слова состояния SW = 00100011, по которому системный контроллер 8238 вырабатывает актив­ ный уровень сигнала INTA (см. рис. 1.5). Внутренний триггер запроса прерывания сбрасывает­ ся в 0 в такте Т2 машинного цикла М\. Способы аппаратной реализации чтения сигналом INTA команд вызова подпрограмм RST п и CALL adtdr см. в § 2.4.

При значении сигнала INTE = 1 запрос прерывания INT = 1 воспринимается микропроцес­ сором также в состоянии его останова, которое наступает после выполнения команды HLT (при этом выдается код слова состояния SW = 0 0 1 0 1 0 1 1 , по которому также вырабатывается активный уровень сигнала INTA).

С игнал запроса прямого доступа к памяти HOLD. Этот сигнал анализируется в тактах Т2 и Tw каждого машинного цикла. Если будет обнаружено значение HOLD = 1 при условии, что значение сигнала готовности READY = 1, то МП прерывает работу после завершения теку­

щего машинного цикла выполняемой команды (шины данных и адреса

МП

переводятся

в Z-состояние), выдав значение сигнала подтверждения захвата шин HLDA -

1. При выполне­

нии операций чтения памяти (MEMR = 0) или ввода (I/OR = 0) значение HLDA =

1 выдается в

такте Т3 по положительному фронту тактового сигнала Ф2. При выполнении же операций запи­ си в память (MEMW = 0) или вывода (I/OW = 0) значение HLDA = 1 выдается в такте, следую­ щим за тактом Т2, также по положительному фронту тактового сигнала Ф2.

Запрос прямого доступа к памяти HOLD = 1 воспринимается микропроцессором также в состоянии его останова, которое наступает после выполнения команды HLT (при переходе в состояние останова МП выдает значение сигнала WAIT = 1 и переводит шины данных и адре­ са в Z-состояние).

22

Глава 1. Микропроцессоры 8080 и 8085

1.4.Микропроцессор 8085

Врезультате усовершенствования архитектуры микропроцессоров фирма Intel в 1976 г. разработала новый 8-разрядный МП — 8085Л, полностью совместимый с программным обес­ печением МП 8080Д. Изготовляется этот МП по NMOS технологии (N-Channel Metal Oxide Semiconductor — и-МОП технология). В отличие от МП 8080/1 для МП 8085А требуется только

один источник питания Vcc = +5 В (±10%), причем генератор тактового сигнала встроен в МП. Максимальная частота тактового сигнала равна 3 МГц, а минимальная — 0,5 МГц.

Далее были изготовлены МП 8085АЯ, 8085А//-1 и 8085АЯ-2 по HMOS технологии

(.N-Channel high-performance Metal Oxide Semiconductor — высококачественная n-МОП техно­ логия), различающиеся только максимально допустимой частотой тактовых сигналов (3, 6 и 5 МГц соответственно). Максимальные значения токов потребления равны:

Iсс max =135 мА для 8085АН, 8085АЯ-2 и Ice max = 200 мА для 8085А//-1.

Максимальная рассеиваемая мощность составляет 1,5' Вт. Выходные сигналы МП характеризуются параметрами:

VoLmctx = 0,45 В при I0L = 2 мА и Vou тт - 2,4 В при 10Н = -400 мкА.

Выпускается также МП 80С85/4 — CMOS вариант МП (Complementary Metal Oxide Semi­ conductor — КМОП), аналогом которого является отечественный МП 1821ВМ85А с макси­ мально допустимой частотой тактового сигнала 3,6 МГц. Электрические параметры МП

1821ВМ85А:

1СС= 100 мА при VCc = +5,5 В; V0Lпшх = 0,4 В при l0L = 2 мА и Vcc = +4,5 В;

Vон min = 3 В при 10н = -1,2 мА и VCc = +4,5 В.

Структурная схема МП 8085. Система команд МП 8085Л совпадает, за исключением двух новых команд SIM и RIM, с системой команд МП 8080А [4]. Структурная схема 8-разрядного МП 8085/1 изображена на рис. 1.7. Основные отличия МП 8085/1 от МП 8080А:

1)генератор тактового сигнала CLK (Clock) и системный контроллер встроены в МП (включены все возможности, которые обеспечивают СИС 8224 и 8228/8238);

2)добавлены четыре входа запросов векторных прерываний RST 5.5, RST 6.5, RST 7.5 и

TRAP-,

3)добавлены порты последовательного ввода (S1D) и вывода (SOD) данных;

4)использована мультиплексная шина адреса-данных А£>7_о;

5)предусмотрена возможность построения минимальной МП-системы всего на трех БИС

(см. § 3.9) — 8085АЯ/1821ВМ85А (CPU), 8155///1821РУ55 (RAM/Ю ) и 8755А/1821РФ55

(EPROM/IO) — с возможностью расширения до большой системы с использованием стандарт­ ных внешних устройств и памяти.

Большинство функциональных узлов, приведенных на рис. 1.7, аналогичны по назначе­ нию одноименным узлам МП 8080А (см. рис. 1.3). Новые функциональные узлы имеют назна­ чение:

Data/Address Buffer — 8-разрядный двухканальный мультиплексор и 8-разрядный прие­ мопередатчик;

Interrupt Control — схема управления прерываниями;

Serial I/O Control — схема управления последовательными вводом и выводом данных.

Сигналы МП. Сигналы Al5_s, READY, HOLD и HLDA, а также сигналы INTR, RESET IN и CLK OUT (INT, RESET и ф2 в МП 8080А) имеют то же назначение, что и у МП 8080А. Сигналы МП 8085А выполняют следующие функции:

1.4. Микропроцессор 8085

 

ШТА

 

i?ST6.5

TRAP

 

Sl£>

SOD

 

 

 

 

 

 

 

 

J___ L

 

 

Innterrupt Control

 

 

Serial

I / О Control

 

 

 

 

g ~

Internal Data Bus < 8

bit~)

Ж

 

 

U T Z I

7v

TV

ЗГ

Ж

 

Accumul.

 

Temp. RG

 

 

 

 

В

С

 

C85

 

C85

 

 

RG

С8>

С8 }

 

 

 

 

D

E

 

 

 

 

V -

 

 

 

 

 

 

 

 

\7

С8>

< 8 }

 

 

 

 

 

 

 

 

 

 

FFF

 

И

L

 

 

 

 

С5Э

 

Instruct.

С8Э

C8>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Decoder

Stack Pointer

 

 

 

 

 

 

and

 

<1 6>

 

 

 

 

ALU

 

Machine

Program

 

 

 

 

 

 

Cycle

 

 

 

 

 

i

 

Counter

 

 

 

 

 

 

Encoding

C16>

 

 

 

 

C S i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Increm./Decrem.

>+5V

 

 

 

 

 

 

AJdres Latch

 

 

 

 

 

 

 

Cl G>

>GND

 

 

 

 

 

 

 

 

X \ -

CLK

 

Timing an d Control

 

 

 

 

X 2 ~

GEN

Control

Status

DMA

RESET

Address Buffer

 

T П Т Т Г Т Т Т ^

 

C8>

 

5

 

CLK OUT

RD

WR I S^

S 0 Ю / M

HLDA

RESET OUT

 

 

READY

ALE

HOLD

RESET IN

Address Bus

 

 

 

23

bz.

Address /D ata

Вфг ^

AD1 .

Address/D ata Bus

Рис. 1.7. Структурная схема микропроцессора 8085А

Ai5_s (Address Bus) — старший байт адреса памяти или 8-разрядный адрес внешнего уст­ ройства. Сигналы А15_8 устанавливаются в Z-состояние в режимах Hold (прямой доступ к памя­ ти) и Halt (останов МП), а также во время сброса (RESET IN = 0);

AD7_o (Multiplexed Address/Data Bus) — мультиплексная шина адреса-данных. В первом такте машинного цикла по шине AD1 выдается младший байт адреса памяти А7_0 или 8-разрядный адрес внешнего устройства А7_ц. В течение второго и третьего тактов машинного цикла шина AD7_q становится шиной данных для приема или передачи байта данных О7_0;

ALE (Address Latch Enable) — сигнал фиксации младшего байта адреса А7_0 во внешнем регистре (ALE = Л . в первом такте каждого машинного цикла). Истинное значение адреса га­ рантировано по отрицательному (заднему) фронту ALE. Сигнал ALE можно использовать также для фиксации сигналов состояния Si и S0 во внешнем регистре. Сигнал ALE никогда не перево­ дится в Z-состояние;

S|, S0 и Ю /М (Machine Cycle Status) — сигналы состояния машинного цикла, указывающие тип операции, которую будет выполнять МП в текущем машинном цикле (табл. 1.2). Сигналы Si и So становятся истинными в начале машинного цикла и остаются стабильными в течение всего цикла. Детальная информация о машинном цикле, содержащаяся в этих сигналах, мо­ жет быть использована для управления МП-системами, но обычно сигналы S* и S0 игнориру­ ются — для управления МП-системами более пригодны сигналы RD и WR из-за оптимизации временного положения их активных уровней (см. рис. 1.9);

J O /M (Ю/Memory) — сигнал, указывающий на обращение МП к внешнему устройству (Ю /М - 1) или к памяти (Ю /М = 0);

24

Глава 1. Микропроцессоры 8080 и 8085

 

 

 

Таблица 1.2. Типы машинных циклов

 

 

 

Тип машинного цикла

 

Status

 

 

Control

Сигнал МП

Ю/М 5,

So

RD

WR

INTA

8080A

 

 

Выборка кода операции (Opcode fetch)

0

1

1

0

1

1

MEMR = 0

Чтение памяти (Memory read)

 

0

1

0

0

1

1

MEMR = 0

Запись в память (Memory write)

0

0

1

1

0

1

M EM W = 0

Чтение ПО (I/O read — ввод)

 

1

1

0

0

1

1

I/OR = 0

Запись в ПО (НО write — вывод)

1

0

1

1

0

1

I/O W = 0

Подтверждение прерывания (Acknowledge o f INTR)

1

1

1

1

1

0

INTA = 0

Холостые циклы шины (Bus Idle):

 

 

 

 

 

 

 

DAD

 

0

1

0

1

1

1

Acknowledge o f RST 5.5/6.5/7.5 and TRAP

1

1

1

1

1

1

HLT

 

Z

0

0

z

z

1

Сигнал RESET = 1

 

Z

х

X

z

z

1

Сигнал HOLD = 1

 

Z

х

X

z

z

1

П р и м е ч а н и е ^ — Z-состояние; x — безразличное значение; команда DAD выполняется за три машин­ ных цикла, второй и третий из которых холостые — нет обращения к шине данных, поэтому для исключения противоречия с ранее введенным определением машинного никла можно считать, что команда DAD выполняется за один машинный цикл.

RD (Read) — сигнал чтения НО и л и памяти (табл. 1.2). Значение

= 0 указывает, что

шина данных доступна для передачи данных;

 

WR (Write) — сигнал записи данных в память или ПО. Истинные значения данных гаран­ тированы на заднем фронте сигнала WR = "1_Г (табл. 1.2);

INTR (Interrupt Request) — сигнал запроса прерывания высоким уровнем (INTR = 1), по­ ступающий от внешнего устройства (обычно от контроллера прерываний 580ВН59). В ответ на значение INTR = 1 микропроцессор выдает значение сигнала INTA = 0 для ввода из внешнего устройства в МП команды RST или CALL вызова подпрограммы обработки прерывания. Сиг­ нал INTR полностью соответствует сигналу INT в МП 8080А;

INTA (Interrupt Acknowledge) — выходной сигнал подтверждения прерывания, подаваемый на внешнее устройство или контроллер прерываний 580ВН59 в ответ на запрос INTR = 1;

RST 5.5, RST 6.5, R ST1.5 (Restart Interrupts) — входы маскируемых запросов прерывания для вызова подпрограмм, расположенных по фиксированным адресам 5.5x8 = 2С/г, 6.5x8 = 34h и 7.5x8 = ЗСй (команды RST п.5, где п. = 5, 6 и 7, автоматически вставляются внутри МП). Управление индивидуальным маскированием этих запросов прерывания производится двумя командами: RIM (Read Interrupt Mask — чтение маски прерываний; см. рис. 1.16) и SIM (Set Interrupt Mask — установка маски прерываний; см. рис. 1.15). Чувствительность входов: сигна­ лы RST 5.5 и RST 6.5 запрашивают прерывание высоким уровнем, а сигнал RST 7.5 — поло­ жительным фронтом. Запрос прерывания RST 7.5 запоминается во внутреннем триггере, даже когда запросы прерываний замаскированы (вызов подпрограммы обработки прерываний за­ прещен). Значение сигнала RESET I N - 0 маскирует все входы RST п.5',

TRAP (ловушка) — вход запроса немаскированного прерывания положительным фронтом

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

Вответ на значение TRAP - 1 внутри МП автоматически вставляется команда RST 4.5 — ад-

1.4. Микропроцессор 8085

25

pec передачи управления равен 4 .5 хМ = 24h. Запрос прерывания по входу TRAP не может быть запрещен ни программным, ни аппаратным способом. Высокий уровень сигналов запроса пре­ рываний TRAP, RST 5.5, RST 6.5 и INTR должны сохраняться до их выборки в последнем такте последнего машинного цикла текущей команды. Если прерывания разрешены, то МП после завершения текущей команды выполняет соответствующую команду RST и автоматически запрещает все маскируемые прерывания. Запрос прерывания TRAP имеет наивысший приори­ тет. Приоритеты остальных входов запросов прерывания уменьшаются в последовательности RST 7.5, RST 6.5, RST 5.5 и INTR. Эта система приоритетов не принимает во внимание при­ оритет подпрограммы, выполнение которой было начато запросом прерывания с более высо­ ким приоритетом. Так, запрос прерывания по входу RST 5.5 может прервать выполнение под­ программы RST 7.5, если командой EI разрешить прерывания до завершения подпрограммы

RST 7.5;

RESET IN — входной сигнал системного сброса, автоматически подаваемый при включе­ нии питания МП-системы (RESET IN - 0) и производящий сброс в 0 программного счетчика (PC = 0000h — старт программы производится с адреса 0), триггера HLDA и триггера разрешения прерывания (прерывания запрещаются). Для автоматического сброса вход RESET IN под­ ключается к ЛС-цепи (см. рис. 1.10). В МП сигнал RESET IN подается на триггер Шмитта, что обеспечивает задержку отмены сброса относительно момента включения питания. При вклю­ чении питания длительность значения RESET IN = 0 должна быть не мене 10 мс после того, как напряжение питания достигнет номинального значения. В установившемся режиме работы МП эта длительность должна быть не менее трех периодов тактового сигнала CLK. Шины данных, адреса и управления во время сброса находятся в Z-состоянии;

RESET OUT — выходной сигнал системного сброса (реакция на входной сигнал RESET IN), привязанный к тактовому сигналу МП. Длительность активного уровня (1) этого сигнала равна целому числу периодов тактового сигнала CLK',

XI, Х2 — входы для подключения кварцевого резонатора, параллельного LC-контура или RC-цепи, задающих частоту сигнала внутреннего генератора (рис. 1.8, а). Частота внутреннего тактового сигнала МП вдвое меньше частоты сигнала на входе XI. При допуске частоты ±10% можно использовать параллельный резонансный LC-контур:

б )

A D

 

 

DA

DB

 

 

 

 

 

 

 

Transceiver

 

А

 

 

T

 

 

Л]5-я

 

 

 

CPU

-ф оя

1533АПб

1831BM85A

 

 

 

 

X I

 

 

 

 

 

Х 2

ALE

 

 

 

 

A E N -

 

 

 

 

(от DMAC)

 

 

 

 

ЬУ'ЛгтAddress Bus С

 

Ж

 

System Data Bus [

 

 

Data

X Address Y

Dafa

X Address X Data

 

A LE

 

 

 

1

System

 

X

 

X

Addres Buz ■

 

 

Рис. 1.8. Схема формирования шин адреса и данных

26

Глава 1. Микропроцессоры 8080 и 8085

 

2Яд/L(C + С )

где CWr —

паразитная емкость входов XI и Х2 {Сшт ~ 15 пФ); С > 2Сшт- Использование

LC-контура не рекомендуется для частот выше 5 МГц. Сигнал от внешнего генератора подает­ ся на вход XI или на входы XI и Х2 через логические элементы;

CLK {Clock) — выходной тактовый сигнал МП. Частота сигнала CLK в два раза меньше частоты сигнала на входе XI;

SID {Serial Input Data Line), SOD {Serial Output Data Line) — вход и выход канала после­ довательной передачи данных для простого последовательного интерфейса. Ввод одного раз­ ряда данных по линии SID в разряд D1 аккумулятора производится командой RIM (см. рис. 1.16), а вывод разряда D-, аккумулятора на линию SOD — командой SIM (см. рис. 1.15). Выход SOD сбрасывается в 0 сигналом RESET IN.

Сигналы READY, HOLD и HLDA имеют то же самое назначение, что и в МП 8080А (см. § 1.2). Сигналы А!5_8, А£Ь-о, Ю/М, RD и WR находятся в Z-состоянии во время выполнения прямого доступа к памяти {HOLD = 1), в течение системного сброса {RESETIN = 0) и при оста­ нове МП (S', = S0 = 0). Все прерывания, кроме TRAP, запрещаются командой DI и разрешаются командой EI. Частота внутреннего тактового сигнала и внешнего сигнала CLK в два раза меньше частоты кварцевого резонатора.

Особенности работы МП. Разделение шины адреса-данных AD7_o на шину младшего байта адреса Л7_0 и шину данных D7_q показано на рис. 1.8, б. Выдача в первом такте каждого машинного цикла адресных сигналов А7_.0 сопровождается активным уровнем сигнала ALE = 1, который загружает и фиксирует младший байт адреса в 8-разрядном асинхронном потенциаль­ ном регистре 1533ИР22. Управление приемопередатчиком {Transceiver) производится сигна­ лами: AEN — управление Z-состоянием шин адреса и данных (сигнал AEN поступает от кон­ троллера прямого доступа к памяти) и RD — управление направлением передачи данных (вме­ сто сигнала RD можно использовать и сигнал WR).

На рис. 1.9 показаны временные диаграммы, поясняющие работу МП при выполнении команды OUT port {PCh и PCI — старший и младший байты адреса; DI и DO — вводимые в МП и выводимые из МП данные). Эта команда выполняется за три машинных цикла: М х — чтение первого байта команды (кода операции), М2— чтение второго байта команды (значения port — адреса внешнего устройства), Л/3 — выполнение команды (вывод байта из аккумулято­ ра во внешнее устройство по адресу port, введенному в МП во втором машинном цикле).

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

1.4. Микропроцессор 8085

2 1

Обычно машинный цикл состоит из трех тактов Т\, Г2 и 7’3, за исключением машинного цикла выборки кода операции, состоящего из четырех тактов (выборка КОП из памяти) или шести тактов (выборка КОП из I/O при подтверждении прерывания).

Из табл. 1.2 для значений сигналов состояния и управления 10/M, RD, WR (аргументы) и системных сигналов управления MEMR, MEMW, l/OR, I/OW (функции) следует, что системные сигналы управления памятью и внешними устройствами описываются функциями:

C LK <т-

 

 

 

 

ДЗ

2

 

BD

 

 

 

 

 

ДЗ

4

 

 

R 2SE T*

 

AD CPU

 

Д1 О

8

 

 

 

 

0

 

22

Д1 1

8

 

 

HLDA<

 

1

9

 

 

 

 

 

23

Д1 0 ДЕ N

 

 

 

 

 

2

10

1

 

 

 

 

3

11

24

Д1 1

q OE

 

 

 

25

Д1 2

 

 

 

 

 

4

12

 

 

 

 

 

 

 

 

 

BD

 

 

5

13

 

 

 

 

 

 

 

 

 

 

 

 

 

6

14

 

 

 

 

 

 

 

7

15

 

 

 

 

 

S1D -

SID

SOD

-----? SOD

 

 

 

H R Q -

 

HLDA 3 3 H LD A

<t>OE

HOLD

 

 

 

IN T -

m

INTA<

 

 

 

 

 

RESET IN -

'4 RESIN

RESOT

 

 

 

D

0

 

 

 

 

 

 

 

rCCУп -

READY

10/Ы

 

 

-

0

RG DO

 

 

 

1

0

TRAP -

TRAP

RD <

 

 

 

7

т

WR <

 

 

 

?

R ST

 

RST

50

2 9

 

 

 

?

7.5

-

7.5

 

 

5

4

6.5

-

6.5

51

3 3

 

-

6

5

5.5

-

5.5

 

 

 

 

7

6

 

 

 

ALE

 

 

 

L

7

 

 

X I

 

 

 

 

 

 

 

 

X 2

CLK

 

 

 

ЮЕ

 

 

T ‘

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TR/RC

 

 

 

 

 

 

 

 

DB

 

 

 

DI

Ъ

AD1

1 7

 

 

 

 

-

0 0

DO

 

 

 

 

 

 

 

 

 

 

- 01 M U X

 

AD2

1 6

 

 

 

 

 

 

 

A D 3

1 5

 

 

 

 

-

DI

 

AD 4

1 4

 

 

 

 

10

 

A D 5

1 3

 

 

 

 

-

11

 

AD 6

1 2

 

 

 

 

 

157

 

AD7

11

 

 

 

 

 

 

 

 

 

 

 

 

- 20

 

WR

1

 

 

 

 

- 21

 

 

 

 

 

 

A E N

1 3

 

 

 

 

 

 

 

 

 

 

 

 

DI

 

 

 

 

 

 

rcc

-

30

0

 

 

 

 

 

-

31

 

 

 

 

 

 

 

 

 

 

 

 

 

-

А

2

 

 

 

 

 

 

 

 

 

 

 

 

A E N ---------

QOE

3

 

 

 

 

(от Ш А С )

 

 

 

 

 

 

 

Syskvm Bus

^BAq

-»E49

BA 1D

BA * л

-+ В А г

-*BAt -*ВАг

BA 1

-INTA

BA о

-+ B A t

-> b a 2

-*■ BA о

-±BAa

-+ba5

~>BAe

-^BDо

-+BD2

-+ BD 3 ->BD 4

-+BD&

->BD7

- M EM R

I/O R

M EM W

>T7ow

Рис. 1.10. Принципиальная схема центрального процессорного устройства

28

Глава 1. Микропроцессоры 8080 и 8085

MEMR = RD Ю /М ,

M EM W = WR Ю / М , I / O R = R D I O / M , I/O W = W R -IO /M

(эти сигналы аналогичны соответствующим сигналам МП 8080А). На рис. 1.10 изображена принципиальная схема центрального процессорного устройства с тремя буферированными системными шинами (System Bus) — мультиплексор 1533КП11 реализует вышеприведенные функции. Действительно, из функций

fD I :о A v DI •, Л, если ОЕ = AEN = 0,

DOj = I

JA

J'

__

[Z - состояние,

если ОЕ = AEN = 1,

описывающих мультиплексор 1533КП11 [5], например, следует, что

MEMR = £>/00A v D I0lA = R D I O /M

v l- I O /M = R D v IO /M = RD ■10 / M .

Значение сигнала AEN = 1

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

(.DMAC) для отключения центрального процессорного устройства (CPU) от системных шин. Если ввод-вывод по прямому доступу к памяти не используется, то следует задать значение сигнала AEN = 0.

Сигнал INT поступает от контроллера прерываний 8259/8259А, а сигнал INTA подается только на этот контроллер для чтения трехбайтовой команды CALL addr. Для автоматической подачи при включении питания значения сигнала сброса RESET IN = 0 используется ЯС-цепь (75 кОм и 1 мкФ). Кроме того, этот сигнал можно подавать от клавиши системного сброса.

Конфигурации МП-систем, построенных на основе МП 8085 с использованием специаль­ ных БИС (8155/8156, 8755/8355 и 8185), будут рассмотрены в § 3.9.

1.5. Формат команд микропроцессоров 8080 и 8085

Команды МП 8080А/8085А представляются одним, двумя и тремя байтами (рис. 1.11). Многобайтные команды размещаются в последовательных ячейках памяти (адрес первого бай­ та команды является адресом всей команды). Чем больше байт в команде, тем больше времени затрачивается для ее выборки из памяти.

Код операции (КОП) всегда находится в первом байте команды. Второй и третий байты команды используются для задания операндов (данных, портов устройств ввода-вывода и ад­ ресов памяти). Так как КОП задается только одним байтом, то всего может быть не более 28 = 256 различных команд. Все множество КОП по числу байт в команде делится на четыре подмножества (рис. 1.12). В МП 8080А для представления КОП не используется 12 кодов, а в МП 8085А — 10 кодов.

 

D7

 

Первый байт

D1

D6

Второй байт

Dn

Db

Первый байт

£>7

D6

Второй байт

d 7

D6

Третий байт

d 7

Df,

d 5

d 4

D3

d 2

 

D0

КОП

d 5 D4

D3

d 2 D t

D0

к о п

Ds

D4

D3

d 2 D x

D0

8 -разрядный операнд (данные или порт)

d 5 d 4 Dз d 2

o ,

D0

к о п

d 5

d 4

Dз

d 2

Di

Do

1 16-разрядный операнд (данные или

0 5

d 4

D3

d 2

Di

D0

>адрес памяти)

Рис. 1.11. Форматы команд

 

 

 

1.6. Система команд микропроцессоров 8080 и 8085

 

 

29

1 байт — 200/202

2 байта — 18

 

D1

D6

D5

D4

D3

D2

D1

DO

3 байта — 26

Нет — 12/10

 

0

1

D

D

D

S

S

S

Рис. 1.12. Типы команд

 

 

 

Рис. 1.13. Адресация регистров

 

Таблица 1.3. Коды

 

 

Таблица 1.4. Кодирование

 

 

регистров и памяти

 

 

 

регистровых пар

 

 

 

D

D

D

Имя

 

Разряды

 

Регистровая

Регистры

 

S

S

S

регистра

 

/X;

D4

 

пара (гр)

 

 

 

 

 

 

 

1

1

1

А

 

0

0

 

В

 

В и С

 

0

0

0

В

 

0

1

 

D

 

D u E

 

0

0

1

С

 

1

0

 

Н

 

Н и

L

 

0

1

0

D

 

1

1

 

SP или PSW

PSW = А и F

 

0

1

1

Е

 

 

 

 

 

 

 

 

 

 

1

0

0

Н

Примеры.

 

 

 

 

 

 

 

 

1

0

1

L

 

МК = QQD5D40()01 для команд LXI

rp, d \6

 

1

1

0

М

 

 

 

МК = 1ID 5D4OIOI для команд PUSH

гр

 

 

 

 

 

 

 

 

 

 

 

 

МК = H D 5D4OOOI для команд POP

гр

 

Кроме адресации памяти и устройств ввода-вывода, выполняемой по шине адреса А15_0, необходима адресация РОНов и регистровых пар. Эта адресация производится частью разрядов КОП DDD и SSS (D Destination — получатель, 5 — Source — источник), коды которых при­ ведены в табл. 1.3. Пример машинного кода (МК) команды MOV rl, г2, где г, = А, В, С, D, Е, Н и L, показан на рис. 1.13. Код D-jD6 = 01 задает операцию MOV — пересылку содержимого ре­ гистра г2 (код SSS — источник) в регистр rl (код DDD — получатель). В двухоперандных ко­ мандах первым (слева) всегда указывается получатель. Из рис. 1.13 следует, что машинные

коды всех команд передачи данных типа MOV г\, г2 задаются значениями 40h ... l¥ h , за ис­ ключением МК = 76/?, которому должна была бы соответствовать команда MOV М, М — ко­ манд, оперирующих с двумя операндами в памяти нет [3, 4].

Задача. Найти машинный код команды MOV Е, С. Решение'. DDD = 011 для регистра Е и SSS = 001 для регистра С, поэтому МК = 01 011 001 = 59/г (см. табл. 1.6).

Значения DDD = 110 и SSS = 110 указывают операции с операндом, находящимся в памя­ ти, когда его адрес находится в регистрах Н (старший байт) и L (младший байт). В двухоперандных командах только один операнд может находиться в памяти, т. е. могут использоваться только команды пересылки вида MOV М, г2 и MOV rl, М. Для хранения 16-разрядных опе­ рандов 8-разрядные РОНы объединяются в три 16-разрядные регистровые пары: гр В (регистры В и С), rp D (регистры D и Е) и rp Н (регистры Н и L). В обозначении регистровой пары указы­ вается регистр, в котором находится старший байт операнда. Адресация регистровых пар про­ изводится двумя разрядами D5D4 в коде операции (табл. 1.4). Код 11 в табл. 1.4 адресует указа­ тель стека SP (16-разрядный операнд) или PSW в зависимости от типа команды.

1.6. Система команд микропроцессоров 8080 и 8085

Мнемоника команд на языке ассемблера и выполняемые ими операции представлены в табл. 1.5. Операндами могут являться 8-разрядные регистры общего назначения МП с имена­ ми А, В, С, D, Е, Н и L (г, rl, г2), 16-разрядные регистровые пары В, D и Н (гр), указатель стека SP, слово состояния процессора PSW (Processor Status Word — содержимое аккумулятора А и