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

Организация и особенности использования однокристальных микроконтроллеров (продолжение) Арифметическо-логическое устройство (алу) мк 1816.

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

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

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

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

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

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

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

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

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

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

  • инкремент;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://www.kosmos.mk.ua/usmtu/mpk/k1816/k1816org2.html

ОРГАНИЗАЦИЯ И ОСОБЕННОСТИ ИСПОЛЬЗОВАНИЯ ОДНОКРИСТАЛЬНЫХ МИКРОКОНТРОЛЛЕРОВ (продолжение)

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

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

Память программ (или - память команд, ПК)реализована в резидентном СППЗУ емкостью 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.

Память данных (или - оперативная память, ОЗУ)- резидентная память данных емкостью 64 байта. Имеет в своем составе два банка рабочих регистров 0-7 и 24-31 по восемь регистров в каждом. Структура регистров (карта адресов) памяти данных МК представлена на следующем рисунке.Выбор одного из двух банков выполняется по команде "SEL RB". Рабочие регистры доступны командам спрямой адресацией, а все ячейки ОЗУ доступны по командам скосвенной адресацией. В качестве регистров косвенного адреса используются регистры R0, R1, R0*, R1*

Ячейки ОЗУ с адресами 8 - 23 адресуются указателем стека SP из ССП (PSW) (см. рисунок регистра флагов в описании АЛУ). Они могут быть использованы в качестве 8-уровневого стека (см. рис. карты адресов памяти МК выше). Если уровень вложенности подпрограмм меньше 8, то незадействованные в стеке регистры можно использовать как ячейки ОЗУ. Используемая ячейка определяется числом в 3-разрядном указателе стека SP, который является частью слова состояния программы. Порядок записи информации в стек приведен на рисунке. Загрузка в стек приводит к увеличению SP, чтение из стека - к уменьшению. При переполнении стека содержимое перезаписывается в регистры R8 и R9, т. е. SP изменяется со 111 на 000. При выполнении операций чтения из стека может происходить изменение SP с 000 на 111. Слово состояния программы РSW микро-ЭВМ может читаться и загружаться с помощью аккумулятора. Возможность загружать РSW необходима для перезапуска микро-ЭВМ после сбоя питания. Четыре старших бита PSW заносятся в стек и могут быть восстановлены при возврате с использованием специальной команды возврата.

МК 1816 не имеет команд загрузки байта в стек или его извлечения из стека, и в нем (в стеке) фиксируются только содержимое СК и старшая тетрада ССП (признаки). В связи с этим, не допускается во вложенных подпрограммах использование одноименных ячеек ОЗУ в качестве рабочих регистров. Если же такая необходимость возникает, то загрузку в стек и извлечение из него можно выполнять программно, путем передачи PSW в аккумулятор, выделения по маске указателя стека, передачи его в регистр косвенного адреса R0 или R1 с последующим обращением к ОЗУ по сформированому таким образом адресу вершины стека.

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

В расширенных МК-системах, где используется внешнее ОЗУ, через регистры косвенного адреса R0 и R1 возможен доступ к внешней памяти объемом 256 байт. В случае необходимости в МК-системах можно применять внешнее ОЗУ требуемого объема, если, например, использовать 4 бита порта ввода - вывода информации для выбора одной из 16 страниц внешней памяти, каждая из которых имеет объем 256 байт. При этом 4-битный указатель страниц становится дополнением ССП и должен сохраняться в стеке при обработке прерываний.

http://www.kosmos.mk.ua/usmtu/mpk/k1816/k1816org3.html

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.

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