
литература / Пухальский Проектирование микропроцессорных систем 2001
.pdf20 Глава 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 — содержимое аккумулятора А и