![]() |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Методические указания к практическим занятиям по курсу "Микропроцессорная техника"
Микросхема КР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. Значения сигналов состояния
При выполнении команд микропроцессор может переходить в одно из трех состояний: «Ожидание», «Захват» и «Останов», длительность которых определяется внешними управляющими сигналами. Сигнал высокого уровня на входе READY обеспечивает автоматическое выполнение команд программы микропроцессором с частотой тактовых сигналов. Если на выводе READY установлен сигнал низкого уровня, то микропроцессор переходит в режим «Ожидание» и формирует выходной сигнал WAIT высокого уровня. Сигнал READY может быть использован для согласования работы микропроцессора с работой медленнодействующих устройств, если длительность их цикла обращения составляет более одного периода тактовой частоты, а также для организации пошагового (по циклам) выполнения команды или покомандного выполнения программы. При подаче на вход HOLD сигнала высокого уровня микропроцессор переходит в состояние «захват» и подтверждает переход в это состояние формированием сигнала высокого уровня на выходе HLDA. Буферные схемы канала адреса и данных микропроцессора переключаются в высокоомное состояние, а выходные управляющие сигналы в состояние низкого уровня (за исключением сигналов WR и HLDA). Микропроцессор переходит в состояние «захват» в такте Т3, если выполняется цикл чтения и на входе READY сигнал высокого уровня, и в такте, следующим за Т3, если выполняется цикл записи. Сигналы HOLD и HLDA позволяют организовать режим прямого доступа к памяти для любого внешнего устройства, формирующего сигнала HOLD. При выполнении команды HLT микропроцессор переходит в состояние «останов» и переводит буферные схемы канала адреса и данных в высокоомное состояние. Из состояния «останов» микропроцессор выходит при наличии сигнала высокого уровня на одном из его входов:
Сигнал высокого уровня на выводе INT позволяет прерывать выполнение текущей программы и переводить микропроцессор на выполнение подпрограммы обслуживания устройства, выдавшего запрос прерывания. При поступлении сигнала INT микропроцессор (после окончания текущей команды) переходит с такта Т1 к выполнению машинного цикла «Прерывание» в том случае, если прерывание было разрешено ранее командой EI. При выполнении цикла «Прерывание» в такте Т1 микропроцессор выдает по шине данных сигнал состояния «Подтверждение прерывания», который используется для разрешения выдачи из внешнего контроллера прерывания (КР580ВН59) на канал данных системы команды и адреса перехода на подпрограмму прерывания. По окончании подпрограммы прерывания осуществляют возврат к прерванной программе. Сигнал высокого уровня на входе Reset (длительность которого должна быть не менее трех периодов тактовой частоты) устанавливает микропроцессор в исходное состояние: триггер разрешения прерывания, триггер захвата, регистр команд, регистр признаков и регистр адреса команды устанавливаются в нулевое состояние. После окончания действия сигнала Reset микропроцессор производит первое обращение за чтением команды к ячейке памяти по адресу 000016. Система команд микропроцессора состоит из 78 базовых команд, которые можно разделить на пять групп:
В микропроцессоре КР580ВМ80А принят формат информационного слова, представляющего собой 8-разрядное двоичное слово (байт). Формат информационного слова (данных):
где D7 — старший разряд слова, D0 — младший разряд. Отрицательные числа хранятся в памяти в дополнительном коде. Формат команды зависит от типа операции и может быть одно- двух- или трехбайтовым. Байты двух- и трехбайтовых команд должны храниться в ячейках памяти, следующих одна за другой. Адрес первого байта всегда является адресом кода операции. Формат команд процессора:
Обобщенный список машинных команд микропроцессора приведен в табл. 2. Таблица 2. Обобщенный список машинных команд микропроцессора
Примечания. 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 Первый и второй операнды не должны определять имя ячейки памяти одновременно.
Операнды команд могут храниться в программно доступных регистрах микропроцессора или памяти. Для указания операнда в регистре используются регистровая и регистровая неявная адресации, для указания операнда в памяти — непосредственная, прямая, косвенная регистровая и стековая адресации. Регистр признаков микропроцессора используется для хранения пяти битов признаков, которые вырабатываются в результате выполнения некоторых операций:
Распределение разрядов в регистре признаков следующее:
|
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
![]() |