Скачиваний:
134
Добавлен:
21.02.2014
Размер:
205.79 Кб
Скачать

2.7 Прерывания

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

2.8 Пзу

Внутреннее ПЗУ занимает старшие 12 Кбайт адресного пространства. ПЗУ запрещено, когда бит ROMON регистра конфигурации CONFIG сброшен. Бит ROMON встроен в ячейку ЭСППЗУ и программируется процедурой, аналогичной программированию других ячеек памяти. Этот процесс подробно описан ниже. В однокристальном режиме работы внутреннее ПЗУ доступно независимо от состояния бита ROMON. В MC68HC11E9 есть также маскируемая область размером 192 байта, в которой размещается программа-загрузчик, управляющая работой ОЗВМ в специальном режиме загрузки и доступная сразу после сброса в этом режиме.

2.9 Озу

Внутреннее ОЗУ объемом 512 байт может быть переадресовано в течение инициализации. По умолчанию, после сброса ОЗУ устанавливается по адресам $0000-$01FF. ОЗУ состоит из статических ячеек памяти. Информация в ячейках сохраняется в течение режимов WAIT и STOP. Содержимое ОЗУ сохраняется также при подаче поддерживающего напряжения на вывод MODB/VSTBY. Когда используется дополнительный источник питания напряжение с вывода VDD можно снять, однако уровень сигнала на входе RESET\ должен стать низким до спада VDD и оставаться низким до тех пор, пока питание на вывод VDD снова не будет подано.

2.10 Регистры цп

В дополнение к набору команд M6800 и M6801, микроконтроллер MC68HC11E9 имеет четырехстраничную карту команд, которая позволяет выполнять 91 новую команду. Как показано на рисунке 3, программисту доступно семь регистров, рассматриваемых в следующих параграфах.

7

A

0

7

B

0

8-разрядные аккумуляторы A и B

15

D

0

или 16-разр. двойной аккумулятор D

15

X

0

индексный регистр X

15

Y

0

индексный регистр Y

15

SP

0

указатель стека

15

PC

0

программный счетчик

7

0

S

X

H

I

N

Z

V

C

регистр условий

флаг заема/переноса

флаг переполнения

флаг нуля

флаг отрицательного числа

флаг маскирования прерываний I

флаг полупереноса (из бита 3)

флаг маскирования прерываний X

флаг запрещения режима STOP

Рисунок 3 - Программная модель

Аккумуляторы A и B. Аккумулятор A и аккумулятор B - это 8-разрядные регистры общего назначения, используемые для хранения операндов и результатов арифметических вычислений или работы с данными. Эти два аккумулятора могут быть объединены в один 16-разрядный аккумулятор, называемый аккумулятором D.

Индексный регистр X. 16-разрядный регистр X используется для индексного режима адресации. Он обеспечивает 16-разрядный индекс, который добавляется к 8-битовому смещения, содержащемуся в команде для того, чтобы вычислить эффективный адрес. Регистр X можно также использовать как счетчик или регистр для временного хранения данных.

Индексный регистр Y. 16-разрядный регистр Y также может быть использован для индексной адресации, подобно регистру X. Однако, все команды, использующие регистр Y содержат один дополнительный байт кода и время выполнения увеличивается на один дополнительный цикл.

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