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

2.Арифметическо-логическое устройство (алу) микроконтроллера мк1816

В состав арифметическо-логического устройства входят следующие блоки:

  • комбинационная схема обработки байт,

  • регистр временного хранения операнда Т,

  • регистр-аккумулятор А,

  • схема десятичного корректора,

  • схема формирования признаков, часть из которых фиксируется в регистре слова состояния программы ССП и используется логической схемой управления-переходами по программе.

Аккумулятор является двухтактным регистром, так как он используется в качестве регистра операнда и регистра результата. Динамический регистр Т программно недоступен. Он служит для временного хранения второго операнда при выполнении двухоперандных команд.

Комбинационная схема АЛУ может выполнять следующие операции:

  • сложение байта с переносом или без него;

  • логические операции И, ИЛИ и исключающее ИЛИ;

  • инкремент;

  • декремент байта;

  • инверсию бита;

  • циклический сдвиг влево, вправо (через или минуя признак переноса);

  • обмен тетрад в байте;

  • десятичную коррекцию содержимого аккумулятора.

При выполнении операций обработки данных в АЛУ формируются признаки, часть которых не фиксируется на триггерах, а формируется на комбинационной схеме. К таким признакам относятся следующие:

  • признак нулевого содержимого аккумулятора,

  • признак наличия единицы в селектируемом разряде аккумулятора.

Логика условных переходов по указанным признакам позволяет без фиксации на триггерах выполнять команды передачи управления (JZ, JNZ, JB0 - JB7).

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

Кроме перечисленных признаков, при условных переходах МК оперирует

  • признаками F0 и F1. Их функциональное назначение определяется разработчиком,

  • признаком переполнения таймера FT,

  • признаками наличия сигналов на входах Т0 и Т1.

Программистом могут быть использованы признаки рабочего банка регистров BS и выбранного блока внешней памяти программ MB.

Кроме того, после окончания каждого машинного цикла опрашивается еще один признак, а именно признак разрешения/запрета прерываний EI.

Подробно работа АЛУ освещается при описании системы команд МК 1816.

3.Память микроконтроллера мк1816

Внутреннее устройство памяти разделено на модули памяти программ и памяти данных.

3.1.Память программ (или - память команд, пк)

Реализована в резидентном СППЗУ емкостью 1 Кбайт. Максимальное адресное пространство, отводимое для программ, составляет 4 Кбайт. Счетчик команд (СК, или программный счетчик - PC) содержит 12 разрядов, но инкрементируются в процессе счета только младшие 11 разрядов. Поэтому счетчик команд из предельного состояния 7FFH (если только по этому адресу не расположена команда передачи управления) перейдет в состояние 000H. Состояние старшего разряда счетчика команд может быть изменено специальными командами ("SEL МВ0" и "SEL MB1"). Подобный режим работы СК позволяет создать два блока памяти емкостью по 2 Кбайт каждый. Карта адресов памяти программ показана на рисунке

В резидентной памяти программ имеются три специализированных адреса:

адрес 0, к которому передается управление сразу после окончания сигнала системного сброса СБРОС; по этому адресу должна находиться команда безусловного перехода к началу программы (точка входа после начальной установки);

адрес 3, по которому расположен вектор прерывания от внешнего источника (точка входа при обработке внешних прерываний);

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

ПК служит для записи, как команд, так и таблиц констант. Для отладки программ в микро-ЭВМ существует возможность отключения внутренней ПК подачей сигнала высокого уровня на вывод РВП (ЕА) микро-ЭВМ.

СК микро-ЭВМ имеет 12 разрядов, 11 из которых меняются последовательно от 000H до 7FFH. При переполнении младших 11 разрядов с 7FFH в 000H переноса в 12-й разряд не происходит. Таким образом, все адресное пространство ПК состоит из двух банков МВ0 и МВ1 по 2К байт. Внутренняя ПК микро-ЭВМ занимает младшие 1К байт. Команды перехода и вызова программ указывают адрес длиной 11 разрядов, а старший разряд загружается во время их выполнения из триггера банка, состояние которого можно менять с помощью специальных команд. При вызове подпрограмм и возврате из них полный 12-разрядный адрес возврата загружается в стек и извлекается оттуда. Такая организация памяти приводит к возникновению затруднений при программировании, связанных с тем, что программе не всегда известно текущее значение разряда триггера банка и отсутствуют средства для его считывания. Для устранения неопределенностей во время обработки прерываний старший разряд программного счетчика принудительно устанавливается в ?0? до выполнения команды возврата из подпрограммы обслуживания прерывания.

Память программ, состоящая из двух блоков объемом 2 Кбайт, в свою очередь, разделяется на страницы по 256 байт в каждой. В командах условного перехода задается 8-битный адрес передачи управления в пределах текущей страницы. В случае, когда в программе необходимо иметь много условных переходов, то возможны проблемы размещения подпрограмм в границах страницы и на нескольких страницах. Команды вызова подпрограмм модифицируют 11 разрядов счетчика команд, обеспечивая тем самым межстраничные переходы в пределах выбранного блока памяти программ.

Так как СППЗУ используется не только для хранения команд, но и констант, то в МК 1816 применяются два способа адресации постоянной памяти для чтения неизменяемых данных:

непосредственная адресация, при которой второй байт двухбайтной команды представляет собой операнд;

косвенная адресация, при которой содержимое аккумулятора используется в качестве указателя данных в текущей странице или в странице 3 памяти программ.

В расширенной МК-системе, работающей с внешней памятью программ, возникает проблема размещения подпрограмм в двух блоках памяти. Проблема связана с тем, что МК не имеет средств считывания и анализа признака МВ (работы с внешней памятью расширения системы), соответствующего содержимому старшего разряда счетчика команд СК11. Поэтому, в каждый текущий момент исполнения программы, состоящей из потока вызовов подпрограмм, нет возможности определения блока памяти, из которого осуществляется выборка. Так как межблочные переходы выполняются только по командам SEL MB0 и SEL MB1 (SEL - выбор), то необходимо следить за тем, чтобы подпрограммы, взаимно вызывающие друг друга, располагались в пределах одного блока памяти. В противном случае возникает необходимость модификации признака MB в вызываемой подпрограмме и восстановления его при возврате в вызывающую подпрограмму. Но если вызов такой подпрограммы носит условных характер, то проблема восстановления может оказаться трудноразрешимой.

При обработке запросов прерываний в МК 1816 старший разряд СК11 принудительно устанавливается в 0. Это приводит к необходимости подпрограмму обслуживания прерывания и все подпрограммы, вызываемые ею, размещать в пределах блока памяти MB0.

Соседние файлы в папке МП К1816ВЕ4