Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция ЭиМПТ-№15_дололнение=сам_изучение.doc
Скачиваний:
23
Добавлен:
26.03.2015
Размер:
343.04 Кб
Скачать

2.2.1. Состояние захвата

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

Переход в состояние захвата происходит следующим образом. От внешнего устройства поступает сигнал уровня логической единицы на вход Запрос захвата. Этот сигнал на отрицательном фронте импульса2тактаTgпринимается в триггер захвата управляющего устройства. Управляю­щее устройство заканчивает выполнение текущего цикла, переходит в состояние захвата и подтверждает это выдачей сигнала на выходеПод­тверждение захвата. Сигнал на выходеПодтверждение захвата выдается на положительном фронте импульса1в тактеТд, если те­кущий цикл не является циклом записи; в противном случае этот сиг­нал выдается на положительном фронте импульса1 такта, следую­щего за тактомТд.

После окончания действия сигнала Захват (при переходе от уров­ня логической единице к уровню логического нуля) микропроцессор начинает выполнение сле­дующего цикла с места, где было приостановлено исполнение програм­мы.

2.2.2. Состояние прерывания

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

Если на некотором участке программы допускается ее прерывание, то при составлении программы в начале этого участка предусматрива­ется команда inte, по которой триггер разрешения прерывания в управ­ляющем устройстве микропроцессора устанавливается в состояние логической единицы, а в конце участка - командаintr, при выполнении которой триг­гер сбрасывается в состояние логического нуля. Состояние триггера выдается на выходРазрешение прерывания.

Процесс прерывания связан со следующими действиями. От внеш­него устройства поступает сигнал уровня логической единицы на вход Запрос пре­рывания. Если прерывание разрешено (т. е. на выходеРазрешение прерывания имеется уровень логической единицы), то после окончания выполнения текущей команды триггер разрешения прерывания сбрасывается в со­стояние логического нуля, а в информации о состоянии микропроцессора, выдава­емой на шину данных, появляются сигналыПодтверждение преры­вания (в разрядеD0),Ввод (в разрядеD1) и сигнал о том, что в данном цикле производится прием первого байта команды (в разрядеD5).CигналПодтверждение прерывания используется в качестве строба для выдачи внешним устройством на шину данных команды RST (командыРестарт).

При выполнении команды RST содержимое счетчика команд PC запоминается в стеке, а в счетчик команд PC записывается адрес пер­вой команды прерывающей программы. Этот адрес задается следую­щим образом. Команда RST имеет структуру 11 АAА 111 и в счетчик команд заносится значение 00 000 000 00 ААА 000, которое и служит адресом первой команды прерывающей программы. Задавая опреде­ленную трехразрядную кодовую комбинацию ААА, внешнее устрой­ство может задать адрес первой команды одной из восьми прерываю­щих программ.

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