- •Микропроцессорная техника
- •2. Архитектура микропроцесора
- •2.1 Структура микропроцессора к580.
- •Авления
- •2.1.1. Регистры микропроцессора
- •2.1.2. Арифметическо-логическое устройство
- •2.1.3. Шины микропроцессора
- •2.1.4. Стек
- •2.2. Слово состояния микропроцессора
- •2.1.5. Буферные схемы
- •2.2.1. Состояние захвата
- •2.2.2. Состояние прерывания
- •2.2.3. Состояние останова
- •2.3. Система команд микропроцессора к580
- •Приложение
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 (Возврат из подпрограммы). В процессе выполнения этой команды адрес команды основной программы, перед которой произошло прерывание, выбирается из стека и передается в регистр адреса, а увеличенное на единицу значение заносится в счетчик команд.
