Методические указания к практическим занятиям по курсу "Микропроцессорная техника"


Цель работы: изучение системы команд и тактирования распространенного микропроцессора КР580ВМ80А.

Микросхема КР580ВМ80А функционально законченный однокристальный параллельный 8-разрядный микропроцессор с фиксированной системой команд, применяется в качестве центрального процессора в устройствах обработки данных и управления.

Микропроцессор имеет раздельные 16-разрядный канал адреса и 8- разрядный канал данных. Канал адреса обеспечивает прямую адресацию внешней памяти объемом до 65536 байт, 256 устройств ввода и 256 устройств вывода.


Структурная схема показана на рис. 1, временная диаграмма основных сигналов — на рис. 2.

Рис. 1. Структурная схема КР580ВМ80А

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

В состав блока регистров входят: 16-разрядный регистр адреса команды (IP), 16-разрядный регистр указателя стека (SP), 16-разрядный регистр временного хранения (WZ), 16-разрядная схема инкремента-декремента и шесть 8 - разрядных регистров общего назначения (В, С, D, Е, Н, L), которые могут использоваться и как три 16-разрядных регистра (ВС, DE, HL).

Микропроцессор выполняет команды по машинным циклам. Число циклов, необходимое для выполнения команды, зависит от ее типа и может быть от одного до пяти. Машинные циклы выполняются по машинным тактам. Число тактов в цикле определяется кодом выполняемой команды и может быть от трех до пяти. Длительность такта равна периоду тактовой частоты и при частоте 2,0 МГц составляет 500 нс.

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

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

Рис. 2. Временная диаграмма входных и выходных управляющих, адресных, информационных и тактовых сигналов КР580ВМ80А

После подачи на вывод SR сигнала высокого уровня микропроцессор устанавливается в исходное состояние. В такте Т1 микропроцессор выдает на адресный канал адрес ячейки, в которой хранится команда программы, а через канал данных — информацию состояния. В такте Т2 анализируются состояния сигналов на входе READY, «Подтверждение останова» и в зависимости от состояния этих сигналов МП переходит в состояние ожидания, останова или к выполнению такта Т3. В такте Т3 при наличии сигнала высокого уровня на входе READY МП принимает информацию по каналу данных; анализирует состояние сигнала на входе HOLD и если этот сигнал высокого уровня, то после окончания такта Т3 переходит в состояние захвата. В зависимости от кода выполняемой команды машинный цикл завершается после выполнения тактов Т3, Т4 или Т5.

В конце машинного цикла снова анализируется состояние сигнала на входе HOLD. При низком уровне сигнала проверяется, окончено ли выполнение команды. Если команда не закончена, то микропроцессор выполняет следующий машинный цикл команды, начиная с такта Т1. В конце каждой команды микропроцессор анализирует состояние сигнала на входе INT. Если сигнал высокого уровня и прерывание было ранее разрешено командой EI, то микропроцессор переходит к выполнению машинного цикла «Прерывание», начиная с такта Т1, В противном случае выполняется первый машинный цикл новой команды с такта Т1.

Действия, выполняемые микропроцессором в конкретном машинном цикле, определяются 8-разрядной информацией состояния, которая выдается через канал данных в такте Т1 каждого машинного цикла. Эта информация может использоваться для выработки сигналов обращения к ЗУ, УВВ и для организации различных режимов работы микропроцессора.

 

 

Рис. 3. Диаграмма состояний типичного машинного цикла КР580ВМ80А

 

В зависимости от сочетания сигналов состояния, выдаваемых в конкретном цикле, машинные циклы можно разделить на 10 типов:

1. Цикл Ml — прием первого байта команды в регистр команд.

2. Цикл чтения ЗУ - - чтение ЗУ по содержимому программного счетчика или содержимому одного из регистров ВС, DE, HL.

3. Цикл записи в ЗУ — запись в ЗУ по содержимому одного из регистров ВС, DE, HL.

4. Цикл чтения стека — чтение ЗУ по содержимому указателя стека.

5. Цикл записи в стек — запись в ЗУ по содержимому указателя стека.

6. Цикл ввода — ввод информации в регистр результата (аккумулятор) из внешнего устройства.

7. Цикл вывода — вывод информации из регистра результата во внешнее устройство.

8. Цикл прерывания — прием кода команды RST или CALL из контроллера прерываний.

9. Цикл останова.

10. Цикл прерывания при останове — прием кода команды RST или CALL при выводе микропроцессора из режима «Останов» по прерыванию.

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

 

Таблица 1. Значения сигналов состояния

Разряд канала данных

Сигнал состояния

Цикл М1

Цикл чтения ЗУ

Цикл

записи в ЗУ

Цикл чтения стека

Цикл

записи в стек

Цикл ввода

Цикл

вывода

Цикл прерывания

Цикл

останова

Цикл прерывания при останове

DO

Подтверждение прерывания

0

0

0

0

0

0

0

1

0

1

D1

Запись/Вывод

1

1

0

1

0

1

0

1

1

1

D2

Стек

0

0

0

1

1

0

0

0

0

0

D3

Подтверждение останова

0

0

0

0

0

0

0

0

1

1

D4

Вывод

0

0

0

0

0

0

1

0

0

0

D5

Ml

1

0

0

0

0

0

0

0

0

1

D6

Ввод

0

0

0

0

0

1

0

0

0

0

D7

Чтение

1

1

0

1

0

0

0

0

1

0

При выполнении команд микропроцессор может переходить в одно из трех состояний: «Ожидание», «Захват» и «Останов», длительность которых определяется внешними управляющими сигналами.

Сигнал высокого уровня на входе READY обеспечивает автоматическое выполнение команд программы микропроцессором с частотой тактовых сигналов. Если на выводе READY установлен сигнал низкого уровня, то микропроцессор переходит в режим «Ожидание» и формирует выходной сигнал WAIT высокого уровня.

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

При подаче на вход HOLD сигнала высокого уровня микропроцессор переходит в состояние «захват» и подтверждает переход в это состояние формированием сигнала высокого уровня на выходе HLDA.

Буферные схемы канала адреса и данных микропроцессора переключаются в высокоомное состояние, а выходные управляющие сигналы в состояние низкого уровня (за исключением сигналов WR и HLDA). Микропроцессор переходит в состояние «захват» в такте Т3, если выполняется цикл чтения и на входе READY сигнал высокого уровня, и в такте, следующим за Т3, если выполняется цикл записи. Сигналы HOLD и HLDA позволяют организовать режим прямого доступа к памяти для любого внешнего устройства, формирующего сигнала HOLD.

При выполнении команды HLT микропроцессор переходит в состояние «останов» и переводит буферные схемы канала адреса и данных в высокоомное состояние. Из состояния «останов» микропроцессор выходит при наличии сигнала высокого уровня на одном из его входов:

  • на входе Reset — микропроцессор начинает работать с такта Т1 цикла M1;
  • на входе HOLD — микропроцессор переходит в состояние «захват», а после перехода сигнала HOLD на низкий уровень возвращается в состояние «останов»;
  • на входе INT — микропроцессор переходит к выполнению цикла прерывания при останове с такта T1, если команде HLT предшествовала команда ЕI «разрешение прерывания», иначе остается в состоянии «останов».

Сигнал высокого уровня на выводе INT позволяет прерывать выполнение текущей программы и переводить микропроцессор на выполнение подпрограммы обслуживания устройства, выдавшего запрос прерывания. При поступлении сигнала INT микропроцессор (после окончания текущей команды) переходит с такта Т1 к выполнению машинного цикла «Прерывание» в том случае, если прерывание было разрешено ранее командой EI. При выполнении цикла «Прерывание» в такте Т1 микропроцессор выдает по шине данных сигнал состояния «Подтверждение прерывания», который используется для разрешения выдачи из внешнего контроллера прерывания (КР580ВН59) на канал данных системы команды и адреса перехода на подпрограмму прерывания. По окончании подпрограммы прерывания осуществляют возврат к прерванной программе.

Сигнал высокого уровня на входе Reset (длительность которого должна быть не менее трех периодов тактовой частоты) устанавливает микропроцессор в исходное состояние: триггер разрешения прерывания, триггер захвата, регистр команд, регистр признаков и регистр адреса команды устанавливаются в нулевое состояние. После окончания действия сигнала Reset микропроцессор производит первое обращение за чтением команды к ячейке памяти по адресу 000016.

Система команд микропроцессора состоит из 78 базовых команд, которые можно разделить на пять групп:

  • команды передачи данных — используются для передачи данных из регистра в регистр, из памяти в регистр, из регистра в память;
  • арифметические команды — используются для сложения, вычитания, инкремента или декремента содержимого регистров или ячейки памяти;
  • логические команды: И, ИЛИ, исключающее ИЛИ, сравнение, сдвиги;
  • команды переходов — используются для условных и безусловных переходов, вызова подпрограмм и возврата из них;
  • команды управления, ввода/вывода и работы со стеком — используются для управления прерыванием, регистром признаков, ввода и вывода информации.

В микропроцессоре КР580ВМ80А принят формат информационного слова, представляющего собой 8-разрядное двоичное слово (байт). Формат информационного слова (данных):

D7

D6

D5

D4

D3

D2

D1

D0

где D7 — старший разряд слова, D0 — младший разряд.

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

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

Адрес ячейки памяти

Однобайтовая команда

 

D7

D6

D5

D4

D3

D2

D1

D0

Код операции

Двухбайтовая команда

 

Байт В1

D7

D6

D5

D4

D3

D2

D1

D0

Код операции

Байт В2

D7

D6

D5

D4

D3

D2

D1

D0

Данные или адрес

 

Трехбайтовая команда

 

Байт В1

D7

D6

D5

D4

D3

D2

D1

D0

Код операции

Байт В2

D7

D6

D5

D4

D3

D2

D1

D0

Данные или адрес

Байт В3

D7

D6

D5

D4

D3

D2

D1

D0

Данные или адрес

Обобщенный список машинных команд микропроцессора приведен в табл. 2.


Таблица 2. Обобщенный список машинных команд микропроцессора

Команда

Код операции

Число

Признак результата

байтов

циклов

тактов

S

Z

АС

Р

С

ACI                 DATA

1100 1110

2

2

7

+

+

+

+

+

ADC                R/M

1000 1R/M

1

1/2

4/7

+

+

+

+

+

ADD                R/M

1000 0R/M

1

1/2

4/7

+

+

+

+

+

ADI                 DATA

1100 0110

2

2

7

+

+

+

+

+

ANA                R/M

1010 0R/M

1

1/2

4/7

+

+

U

+

0

ANI                 DATA

1110 0110

2

2

7

+

+

U

+

0

CALL  ADDR

1100 1101

3

5

17

-

-

-

-

-

Ccnd*                ADDR

11CND100

3

3/5

11/17

-

-

-

-

-

CMA

0010 1111

1

1

4

-

-

-

-

-

CMC

0011 1111

1

1

4

-

-

-

-

+

CMP                R/M

1011 1R/M

1

1/2

4/7

+

+

+

+

+

CPI                  DATA

1111 1110

2

2

7

+

+

+

+

+

DAA

0010 0111

1

1

4

+

+

+

+

+

DAD                RS

00RS 1001

1

3

10

-

-

-

-

+

OCR                R/M

00R/M101

1

1/3

5/10

+

+

+

+

-

OCX                RS

00RS 1011

1

1

5

-

-

-

-

-

POP                 RP

11RP 0001

1

3

10

-

-

-

-

-

POP                 PSW

1111 0001

1

3

10

+

+

+

+

+

PUSH              RP

11RP 0101

1

3

11

-

-

-

-

-

RAL

0001 0111

1

1

4

-

-

-

-

+

RAR

0001 1111

1

1

4

-

-

-

-

+

RET

1100 1001

1

3

10

-

-

-

-

-

Rcnd**

11CND000

1

1/3

5/11

-

-

-

-

-

RLC

0000 0111

1

1

4

-

-

-

-

+

RRC

0000 1111

1

1

4

-

-

-

-

+

RST                 NUM

11NUM111

1

3

11

-

-

-

-

-

SBB                 R/M

1001 1R/M

1

1/2

4/7

+

+

+

+

+

SBI                  DATA

1101 1110

2

2

7

+

+

+

+

+

SHLD  ADDR

0010 0010

3

5

16

-

-

-

-

-

SPHL

1111 1001

1

1

5

-

-

-

-

-

STA                 ADDR

0011 0010

3

4

13

-

-

-

-

-

STAX  R

000R 0010

1

2

7

-

-

-

-

-

STC

0011 0111

1

1

4

-

-

-

-

1

SUB                 R/M

10010R/M

1

1/2

4/7

+

+

+

+

+

SUI                  DATA

11010110

2

2

7

+

+

+

+

+

XCHG

11101011

1

1

4

-

-

-

-

-

XRA                R/M

1010 1R/M

1

1/2

4/7

+

+

0

+

0

XRI                  DATA

1110 1110

2

2

7

+

+

0

+

0

XTHL

1110 0011

1

5

18

-

-

-

-

-

DI

1111 0011

1

1

4

-

-

-

-

-

EI

1111 1011

1

1

4

-

-

-

-

-

HLT

0111 0110

1

1

7

-

-

-

-

-

IN                    PORT

1101 1011

2

3

10

-

-

-

-

-

INR                 R/M

00R/M100

1

1/3

5/10

+

+

+

+

-

INX                 RS

00RS 0011

1

1

5

-

-

-

-

-

JMP                 ADDR

1100 0011

3

3

10

-

-

-

-

-

Jcnd*** ADDR

11CND010

3

3

10

-

-

-

-

-

LDA                ADDR

0011 1010

3

4

13

-

-

-

-

-

LDAX  R

000R 1010

1

2

7

-

-

-

-

-

LHLD  ADDR

0010 1010

3

5

16

-

-

-

-

-

LXI         RS,DATA 16

00RS 0001

3

3

10

-

-

-

-

-

MOV*4 R/M,R/M

01R/MR/M

1

1/2

5/7

-

-

-

-

-

MVI        R/M,DATA

00R/M110

2

2/3

7/10

-

-

-

-

-

NOP

0000 0000

1

1

4

-

-

-

-

-

ORA                R/M

1011 0R/M

1

1/2

4/7

+

+

0

+

0

ORI                 DATA

1111 0110

2

2

7

+

+

0

+

0

OUT                PORT

1101 0011

2

3

10

-

-

-

-

-

PCHL

1110 1001

1

1

5

-

-

-

-

-

 

Примечания. 1. Состояние признака результата указывается следующим образом: «+» — признак устанавливается в 1 или 0 в зависимости от результата выполнения команды; «-» — признак не изменяется; Uпризнак не определен.

*          Ccnd обозначает группу команд CNZ, CZ. CNC, CC, CPO, CPE, CP, СМ.

**        Rcnd обозначает группу команд RNZ. RZ, RNC, КС, RPO, RРЕ, RP, RM.

***      Jcnd обозначает группу команд JNZ, JZ, INC, JC, JPO, JPE, JP, JM.

*4            Первый и второй операнды не должны определять имя ячейки памяти одновременно.

 

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

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

  • S — бит знака; равен 1, если старший значащий разряд результата операции равен 1 (т. е. результат операции — отрицательное число);
  • Z — бит нуля; равен 1, если результат операции paвен нулю;
  • АС — бит вспомогательного переноса; равен 1, если при выполнении операции был перенос из третьего разряда сумматора в четвертый;
  • С — бит переноса; равен 1, если при выполнении операции был перенос из седьмого разряда сумматора или заем в седьмой разряд сумматора;
  • Р — бит четности; равен 1, если число единиц результата операции четное.

Распределение разрядов в регистре признаков следующее:

D7

D6

D5

D4

D3

D2

D1

D0

S

Z

0

AC

0

P

1

C