Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кормилин_2003_Устрой.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
576 Кб
Скачать
☆
    1. Режимы пониженного энергопотребления

Для применений, где потребление энергии критично, например, при питании от батарей, МК51 имеет два режима пониженного энергопотребления: режим ожидания Idle (холостого хода) и режим микропотребления PD (Power Down). Для активизации этих режимов требуется установить соответствующие биты PCON.0 (IDL) или PCON.1 (PD) (таблица 4.9)

Режим ожидания. При поступлении команды, которая установит бит IDL, МК переходит в режим ожидания (холостого хода). В контроллере работает внутренний тактовый генератор, работает схема прерываний, таймеры и последовательный порт. Останавливается процесс выборки команд, сохраняются данные в регистрах и на разрядах портов.

Для выхода из режима ожидания можно воспользоваться одним из двух способов:

  1. аппаратный сброс. Используется сигнал сброса . При этом переопределяются многие регистры блока специальных функций, но сохраняется содержимое РПД;

  2. прерывание. Активизация любого разрешенного прерывания приведет к сбросу бита IDL, вызову программы обслуживания прерывания и возврату в основной программе к команде, следующей за командой, которая включила режим ожидания.

Режим пониженной мощности. При выполнении команды, которая установит бит PD, МК перейдет в режим низкого потребления Power Down. В этом режиме выключается работа тактового генератора, все функции МК замораживаются, но РПД и блок регистров специальных функций сохраняют свои значения. Напряжение питания схемы при этом можно понизить до +2 В. Важно не понижать напряжение до самого момента включения режима Power Down, иначе может произойти аппаратный сброс.

Для выхода из данного режима можно использовать аппаратный сброс, или разрешенное прерывание от внешнего источника. Перед выходом из режима необходимо восстановить нормальный уровень питания и удержать его не менее 10-3 с. В этом случае успеет запуститься тактовый генератор, и его частота станет стабильной к моменту активизации МК.

    1. Система прерываний

      1. Источники прерываний

МК51 имеет пять источников прерываний (внешние прерывания , , прерывания от таймеров Т0, Т1 и прерывания от последовательного порта).

Внешние прерывания. Прерывания и могут быть вызваны либо уровнем, либо отрицательным перепадом на одноименных входах МК. Выбор определяется состоянием программно изменяемых бит IT0 и IT1 регистра TCON (TCON.0, TCON.2). При значении соответствующего бита «1», данное внешнее прерывание вызывается отрицательным перепадом.

Для генерации внешних прерываний используются флаги IE0 и IE1, находящиеся в регистре TCON (TCON.1, TCON.3). Если прерывание было вызвано отрицательным перепадом, то биты прерывания сбрасываются при вызове программы обслуживания прерываний. Если прерывание вызвано низким уровнем внешнего сигнала, то сброс флагов прерывания связан со снятием активного уровня запроса прерывания.

При формировании запроса прерывания по перепаду высокий и низкий уровни входных сигналов должны удерживаться не менее одного машинного цикла.

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

Прерывания таймеров. Прерывания вызываются флагами TF0 и TF1 регистра TCON (TCON.5, TCON.7). Флаги устанавливаются при переполнении соответствующего таймера/счетчика. Флаги сбрасываются аппаратно при вызове программы прерывания.

Прерывания последовательного порта. Прерывание от последовательного порта вызывается при единичном значении одного из флагов RI или TI регистра SCON (SCON.0, SCON.1). Значения флагов проверяются по логическому условию ИЛИ. Программа обслуживания прерывания от последовательного порта должна сама определить флаг, вызвавший прерывание, и сбросить его программно.

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

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

Таблица 4.10 - Адреса векторов прерываний

Источник прерывания

Бит запроса прерывания

Сбрасывается аппаратно

Адрес вектора

INT0

IE0

Нет (уровень)

Да (переход)

0003H

Таймер 0

TF0

Да

000BH

INT1

IE1

Нет (уровень)

Да (переход)

0013H

Таймер 1

TF1

Да

001BH

Последователь-ный порт

RI, TI

Нет

0023H

В системе прерываний МК51 имеется возможность индивидуально разрешать и запрещать реакцию системы на любое прерывание. Кроме этого имеется возможность группового запрета всех прерываний, независимо от индивидуального разрешения/запрета.

Для управления процессом разрешения и запрета используется специальный регистр масок прерываний IE (таблица 4.11).

При разрешении некоторого прерывания требуется отменить запрет всех прерываний (EA=1), и установить нужный бит. Если сбросить бит (EA=0), все прерывания запрещаются, независимо от индивидуального разрешения.

Таблица 4.11 - Регистр IE

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