- •Организация и особенности использования однокристальных микроконтроллеров
- •Организация и особенности использования однокристальных микроконтроллеров (продолжение) Арифметическо-логическое устройство (алу) мк 1816.
- •Организация и особенности использования однокристальных микроконтроллеров (продолжение) Организация ввода-вывода информации в мк 1816
- •Организация и особенности использования однокристальных микроконтроллеров (продолжение) Управление работой микроконтроллера
- •Организация и особенности использования однокристальных микроконтроллеров (продолжение) варианты структур мк-системы
- •Ids48catVersion 1.00
Организация и особенности использования однокристальных микроконтроллеров (продолжение) Арифметическо-логическое устройство (алу) мк 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 Кбайт каждый. Карта адресов памяти программ показана на рисунке
В резидентной памяти программ имеются триспециализированных адреса:
ПК служит для записи как команд, так и таблиц констант. Для отладки программ в микро-ЭВМ существует возможность отключения внутренней ПК подачей сигнала высокого уровня на вывод РВП (ЕА) микро-ЭВМ. |
СК микро-ЭВМ имеет 12 разрядов, 11 из которых меняются последовательно от 000H до 7FFH. При переполнении младших 11 разрядов с 7FFH в 000H переноса в 12-й разряд не происходит. Таким образом, все адресное пространство ПК состоит из двух банков МВ0 и МВ1 по 2К байт. Внутренняя ПК микро-ЭВМ занимает младшие 1К байт. Команды перехода и вызова программ указывают адрес длиной 11 разрядов, а старший разряд загружается во время их выполнения из триггера банка, состояние которого можно менять с помощью специальных команд. При вызове подпрограмм и возврате из них полный 12-разрядный адрес возврата загружается в стек и извлекается оттуда. Такая организация памяти приводит к возникновению затруднений при программировании, связанных с тем, что программе не всегда известно текущее значение разряда триггера банка и отсутствуют средства для его считывания. Для устранения неопределенностей во время обработки прерываний старший разряд программного счетчика принудительно устанавливается в ?0? до выполнения команды возврата из подпрограммы обслуживания прерывания. Память программ, состоящая из двух блоков объемом 2 Кбайт, в свою очередь, разделяется на страницы по 256 байт в каждой. В командах условного перехода задается 8-битный адрес передачи управления в пределах текущей страницы. В случае, когда в программе необходимо иметь много условных переходов, то возможны проблемы размещения подпрограмм в границах страницы и на нескольких страницах. Команды вызова подпрограмммодифицируют 11 разрядов счетчика команд, обеспечивая тем самым межстраничные переходы в пределах выбранногоблока памяти программ. Так как СППЗУ используется не только для хранения команд, но и констант, то в МК 1816 применяются два способа адресации постоянной памяти для чтения неизменяемых данных:
В расширенной МК-системе, работающей с внешней памятью программ, возникает проблема размещения подпрограмм в двух блоках памяти. Проблема связана с тем, что МК не имеет средств считывания и анализа признака МВ (работы с внешней памятью расширения системы), соответствующего содержимому старшего разряда счетчика команд СК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