авторефераты диссертаций БЕСПЛАТНАЯ БИБЛИОТЕКА РОССИИ

КОНФЕРЕНЦИИ, КНИГИ, ПОСОБИЯ, НАУЧНЫЕ ИЗДАНИЯ

<< ГЛАВНАЯ
АГРОИНЖЕНЕРИЯ
АСТРОНОМИЯ
БЕЗОПАСНОСТЬ
БИОЛОГИЯ
ЗЕМЛЯ
ИНФОРМАТИКА
ИСКУССТВОВЕДЕНИЕ
ИСТОРИЯ
КУЛЬТУРОЛОГИЯ
МАШИНОСТРОЕНИЕ
МЕДИЦИНА
МЕТАЛЛУРГИЯ
МЕХАНИКА
ПЕДАГОГИКА
ПОЛИТИКА
ПРИБОРОСТРОЕНИЕ
ПРОДОВОЛЬСТВИЕ
ПСИХОЛОГИЯ
РАДИОТЕХНИКА
СЕЛЬСКОЕ ХОЗЯЙСТВО
СОЦИОЛОГИЯ
СТРОИТЕЛЬСТВО
ТЕХНИЧЕСКИЕ НАУКИ
ТРАНСПОРТ
ФАРМАЦЕВТИКА
ФИЗИКА
ФИЗИОЛОГИЯ
ФИЛОЛОГИЯ
ФИЛОСОФИЯ
ХИМИЯ
ЭКОНОМИКА
ЭЛЕКТРОТЕХНИКА
ЭНЕРГЕТИКА
ЮРИСПРУДЕНЦИЯ
ЯЗЫКОЗНАНИЕ
РАЗНОЕ
КОНТАКТЫ


Pages:     | 1 |   ...   | 5 | 6 ||

«МИНИСТЕРСТВО ОБОРОНЫ РОССИЙСКОЙ ФЕДЕРАЦИИ ВОЕННЫЙ ИНСТИТУТ РАДИОЭЛЕКТРОНИКИ Г.Л. КЛОЧКОВ ЦИФРОВЫЕ УСТРОЙСТВА И МИКРОПРОЦЕССОРЫ ...»

-- [ Страница 7 ] --

Такт При установке WR 0 и READY=1 данные из буфера адресов дан ных поступают на шину данных через внешний буфер данных.

Такт 3.

Данные вводятся в ячейку ЗУ с заданным адресом, если сигнал READY=1. После этого сигнал WR устанавливается в единичное значе ние.Если же в последнем такте сигнал READY=0, то в процессе выставля ется такт ожидания Тw.

Рис.9. Аналогичный порядок работы справедлив и для цикла IOW(Input Output Write) – записи во внешнее устройство(ВУ), только при этом сигнал IO / M 1.

Пример выполнения команды Продемонстрируем процессы при выполнении 3-х байтной команды STA 7AOIH, записываемой в ЗУ по адресам 1001, 1002 и 1003.

Адрес содержание Комментарий 1001 32 STA 1002 01 Младший байт адреса 1003 7А Старший байт адреса Процессор перезаписывает адрес и данные всегда в следующей после довательности: младший байт - старший байт.

На рис.9.10 показано, что в первом цикле получаем команду STA, во втором цикле младшую часть адреса (01) и в третьем цикле старшую часть адреса (7А). В каждом из трех циклов программный счетчик увеличивает свое значение на 1, от 1001 до 1003. В четвертом цикле адрес 7А01Н пода ется на адресную шину и содержание (3В) накапливающего регист ра(аккумулятора) записывается в адресованную таким образом ячейку па мяти ЗУ.

Рис 910.

9.6. Управление с помощью прерывания Остановка выполняемой программы извне осуществляется с помощью прерываний (interrupt). Прерывания необходимы при запросах на обслужи вание от внешних устройств, например, при вводе команды с клавиатуры, при аварийной остановке выполняемой программы, переполнении разряд ной сетки, попытке деления на нуль и т. д. Извне могут поступать сигналы об аварийных ситуациях в управляемых объектах, о неисправности источ ников питания и др. Прерывания по запросам от медленно действующих внешних устройств увеличивают производительность МПС, позволяя за нимать время процессора только при готовности ВУ к обмену.

Если на вход прерывания INTR подан сигнал высокого уровня, вы полняемая программа прерывается после реализации текущей команды, запоминается состояние МП и выполняется подпрограмма обработки пре рывания (ISR), а затем управление передается соответствующей команде программы, выполняемой до запроса на прерывание.

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

Микропроцессор К1821 имеет пять входов запросов на прерывание (таблица 9.3) TRAP;

RST 7,5;

RST 6,5;

RST 5,5;

INTR и один выход INTA управления ими. Прерывание приводит в действие команду CALL, соглас но которой состояние счетчика команд передается в стек, а в счетчик ко манд загружается адрес подпрограммы, подлежащей выполнению.

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

Маскирование состоит в запрещении действия соответствующего входа запросов прерывания и осуществляется с помощью команды SIM (set interrup mask – установка маски прерывания), позволяющей осуществ лять раздельное маскирование запросов типа RST независимо друг от дру га. Установленная маска запрещает соответствующее прерывание. Сброс масок прерывания осуществляется командой RIM (reset interrup mask – сброс маски прерывания).

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

Таблица 9. Имя Приоритет Стартовый адрес Вид сигнала TRAP 1 0024Н Переход из 0 в 1, затем RST 7.5 2 002СH(003СН) Переход из 0 в RST 6.5 3 003СH(0034Н) RST 5.5 4 0034H(002СН) INTR 5 Вводится извне Высший приоритет у входа RST 7,5, а низший – у входа RST 5,5.

Начальные адреса или векторы подпрограмм обслуживания прерываний:

RST 7,5 –002СН, RST 6,5 – 003СН и RST 5,5 –0034Н. Прерывания по этим входам маскируемые, т. е. могут быть разрешены или запрещены коман дами EI (enable interrupt – разрешение прерывания) и DI (disable interrupt запрещение прерывания), действующими на все три входа одновременно.

Начальный сброс микропроцессора запрещает обслуживание этих запро сов, для их разрешения следует подать команду EI. Во время обработки прерываний, т.е. пока не выполнится команда EI, запрещаются другие прерывания кроме TRAP Вход RST 7,5 является прямым динамическим, т.е. реагирует на положительный фронт сигнала, а входы RST 6,5 и RST 5,5 — статические, реагируют на уровень сигнала и, следовательно, автоматически снимаются при исчезновении запросов по этим входам. Запрос RST 7,5, принимаемый триггером с динамическим входом, после снятия сигнала запроса не сни мается и сохраняется, пока не будет обработано прерывание или до коман ды SIM или RESET.

Вектор прерывания по входу INTR (Interrupt) передается в МП из вне. К этому входу, в частности, подключают контроллер прерываний — блок, который воспринимает несколько запросов от внешних устройств, решает задачу приоритетности, маскировки и вырабатывает для МП един ственный сигнал INTR, с пересылкой в МП соответствующего вектора прерывания. На сигнал запроса INTR при разрешенных прерываниях мик ропроцессор отвечает сигналом INTA, во время действия которого на ши не AD появляется вводимый байт.

Во время обработки прерываний запрещаются другие прерывания кроме TRAP, которое блокирует другие прерывания.

9.7. Команды микропроцессора Команды микропроцессора разрабатываются независимо от структу ры микросхемы, однако их разрядность обычно совпадает с разрядностью микропроцессора. Команда микропроцессора состоит из инструкции и обозначается как код операции КОП (или INS в англоязычной литерату ре). Она может состоять только из кода операции, когда не требуется ука зывать адрес операнда (операнды это данные, над которыми команда про изводит какое либо действие), или может состоять из кода операции и ад ресов операндов или данных. Форматы команд зависят от структуры мик ропроцессора.

Рассмотрим построение команд для восьмиразрядного процессора, построенного по структуре Фон-Неймана. Примеры построения команд для такого процессора приведены на рисунке 9.11.

Рис.9. Первый байт содержит код операции КОП и сведения о способе ад ресации, а если команда однобайтная, то и код адреса операнда. Однобай товые команды позволяют работать с внутренними программно доступны ми регистрами процессора. Наличие кода адреса возможно для операций типа "регистр-регистр" с короткими адресами. Для адресации 8 регистров общего назначения достаточен трехразрядный код адреса, а для адресации регистровых пар – двухразрядный. Коды адресов регистров и регистровых пар приведены в таблице 9.4.

Таблица 9.4.

Регистры Пары регистров В С D Е Н L А В D Н SP 000 001 010 011 100 101 111 00 01 10 Второй байт содержит младший полуадрес операнда, если команда трехбайтная, или непосредственный операнд, либо адрес ВУ, если команда двухбайтная.

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

Именно системой команд и определяется конкретное семейство процессо ров.

Для выполнения одной и той же операции над разными регистрами процессора назначаются разные коды. Запоминать эти коды очень утоми тельно для человека. При программировании в машинных кодах легко со вершить ошибку и очень трудно найти её, особенно если коды различают ся только на один бит. Для сокращения объёма записи вместо двоичного можно воспользоваться шестнадцатиричным кодом, однако это не увели чивает наглядности программы. Фрагмент исполняемого шестнадцатирич ного кода микропроцессора приведён на рисунке 9.12. Однако и эта запись не очень понятна.

Рис. 9. Чтобы уменьшить объём запоминаемой информации и увеличить наглядность исходного текста программы, каждой операции процессора назначают мнемоническое обозначение. В качестве мнемонического обо значения операции обычно используют сокращения английских слов, обо значающих эту операцию. Например, для операции копирования использу ется мнемоническое обозначение MOV;

для операции суммирования ис пользуется мнемоническое обозначение ADD;

для операции вычитания используется мнемоническое обозначение SUB;

для операции умножения используется мнемоническое обозначение MUL и т.д.

Для полного обозначения команды используется мнемоническое обозначение операции и используемые ею операнды, которые перечисля ются через запятую. При этом в большинстве процессоров операнд приём ник информации записывается первым, а операнд источник информации вторым. Например:

MOV r0, A ;

Скопировать содержимое регистра A в регистр r ADD A, r5 ;

Просуммировать содержимое регистров r5 и A, результат по местить в регистр A Приведённые выше команды - это однобайтовые команды, так как в них используются только внутренние регистры процессора. Если в ко манде используется константа в качестве операнда или указывается адрес операнда в системной памяти, то команда будет занимать в системной па мяти два или три байта. Например:

MOV A, 1025 ;

Скопировать содержимое 1025 ячейки памяти в регистр A ADD A, #110 ;

Просуммировать содержимое регистра A с числом Несмотря на то, что общий объём исходного текста программы увеличивается, скорость написания и особенно отладки программ в таком виде возрастает. Теперь вместо одного текста программы в памяти компь ютера или на бумаге придется хранить два текста: один для человека, ко торый в дальнейшем будем называть исходным текстом программы;

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

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

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

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

Команды МП К1821ВМ85А приведены в приложении 1.

Схемы, поясняющие выполнение сдвигов микропроцессором приведе ны на рис.9.13. Команды RLC, RRC, RAL и RAR реализуют циклические (кольцевые) сдвиги содержимого аккумулятора на один разряд в ту или иную сторону без включения (RLC и RRC) или с включением (RAL и RAR) в кольцо разряда С регистра флажков.

Команды RIM и SIM подробно рассмотрены выше. Два возможных значения чисел тактов и циклов приведены для команд, выполнение кото рых зависит от состояния признаков — флажков.

Рис 9. В табл. 9.6 на примере микропроцессоров фирмы Intel приведены срав нительные параметры двух типов микропроцессоров, "возраст" которых соста вляет около двадцати лет, и двух современных, появившихся в 1997—99 гг.

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

Таблица 9. 8085А 8086 Pentium IV Параметр 1977 1978 Год выпуска Разрядность 8 16 Адресное прост 64K 1M 64Г ранство Частота тактовых 3 8 импульсов, МГц Среднее число »10 =10 0, тактов на операцию Число выводов кор пуса/Число тран- 40/6,2 40/29 420/ зисторов, тыс. шт.

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

9.8. Интерфейсные БИС микропроцессорных систем 9.8.1. Шинные формирователи Шинные формирователи (ШФ или приемопередатчики включаются между источником информации и шиной. Они усиливают сигналы по мощности при работе на шину, отключают источник информации от шины, когда он не участвует в обмене, формируют при необходимости требуемые уровни сигналов логической 1 или 0. Двунаправленные ШФ позволяют в зависимости от сигнала управления передавать сигналы в шину или принимать их из шины и передавать приемнику данных.

Схема шинного формирователя (а) и временные диаграммы его ра боты (б) приведены на рис.9.14.

Различные ШФ отличаются не только разрядностью, но и передачей сигналов в прямом или инвертированном виде (ШФИ), а также прямыми или инверсными сигналами разрешения работы. Отличаются они и электриче скими характеристиками.

Рис 9. Схема шинного формирователя ВА86 показана на рис. 9.14, а.

Шина А (линии А7-0) принимает данные от МП или передает их ему, а ши на В (линии В7-0) связана с магистралью, на которую передает или с кото рой принимает информацию. Сигнал ОЕ переводит выходы усилителей в третье состояние (при его высоком уровне), либо разрешает их работу (при низком уровне). При разрешении работы направление передачи зависит от сигнала Т (Transmit). Режимы работы ШФ приведены в таблице 9.7.

Таблица 9. Т Режим ОЕ 1 0 Нет передачи 1 1 Нет передачи 0 1 Передача от А к В 0 0 Передача от В к А Так как шина А связана с МП, а шина В —• с магистралью, для них предусмотрена разная нагрузочная способность: выходы В обеспечивают токи 32 мА и -5 мА (при высоком и низком уровнях выходного напряжения соответственно), выходы А обеспечивают токи 16 мА и — 1 мА. Уровни вы ходного напряжения 2,4 В и 0,5 В, требуемые уровни входного напряжения 2,0 В и 0,8 В.

На временных диаграммах (рис. 9.14, б) показаны задержки выход ных сигналов относительно изменений управляющих при их распростране нии через открытые ШФ. Первая задержка t1 составляет 22 - 30 нС, за держка t2 перехода выходов в состояние “отключено“ не превышает нС, задержка t3 переходов от состояния “отключено“ к активным со стояниям не более 30 нС. Времена выдержки t4 и предустановки t5 сигна ла относительно моментов изменения сигнала ОЕ составляют соответ ственно не менее t2 и не более 30нС.

Шинные формирователи широко представлены в сериях К589, К555, КР1533, КР1554 и др.

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

Данные от ВУ через порты ввода поступают в магистраль, а через порты вывода данные с магистрали передаются тому или иному модулю. Порты вво да-вывода могут выполнять обе указанные операции.

Рис. 9. Буферный регистр ИР82 (рис. 9.15, а) принимает данные по шине А (линии А7-0). Сигнал ОЕ низким уровнем разрешает работу вентиль-буферов и тем самым передает содержимое регистра на выходную шину, высоким уровнем переводит выходы вентиль-буферов в состояние "отключено". Прием данных в регистр разрешается сигналом строба STB.

Временные диаграммы работы буферного регистра (рис. 9.15, б) пока зывают задержку t1 сигналов от входа к выходу при STB = 1, задержку t2 от моментов изменения ОЕ до перехода к режиму "отключено" и задержку t до выхода из этого режима. Численно эти задержки не превышают 30, 18 и 30 нC соответственно. Задержка t4 от момента изменения строба до изме нения выхода схемы не более 45 нC. Время t5 предустановки сигнала на входе относительно спада строба не лимитировано, время выдержки вход ного сигнала относительно спада строба t6 25 нC.

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

9.8.3. Параллельный периферийный адаптер Периферийные интерфейсы или адаптеры выполняют более сложные операции, чем шинные формирователи и буферные регистры, хотя и те и другие могут входить в их состав. Отличительной особенностью адаптеров является их программируемость, что обеспечивает им изменяемость проце дур обмена без изменений в схеме. В МПК имеются ИМС параллельного и последовательного адаптеров. В качестве примера рассмотрим структурную схему параллельного адаптера К580ВВ55А, обеспечивающего обмен парал лельными данными. Эти БИС представляют собою устройства параллельного ввода/вывода и обеспечивают двунаправленный обмен при программном обмене или обмене по прерываниям. С их помощью ВУ, работающие с па раллельными кодами, связываются с магистралью системы.

Параллельный периферийный адаптер (ППА) (рис. 9.16) имеет три двунаправленных 8-разрядных порта РА, РВ и PC и командный регистр. Ко мандный регистр или регистр управляющего слова (РУС) содержит инфор мацию о режимах работы адаптера и направлении обмена информацией.

Порт PC разделен на два четырехразрядных канала: старших и младших разрядов. Обмен информацией между каналами А, В, С и шиной данных МПС производится через буфер данных BD в соответствии с сигналами управления.

РА7 …РА0 РВ7 …РВ0 РС7 …РС D7...D CS WR RD A1 A0 RESET Рис.9. Блок управления считыванием и записью получает стробы чтения и записи RD и WR, сигнал сброса RESET, сигнал выбора адаптера CS, и два младших разряда адреса A1 и A0 для адресации внутренних регистров.

Выбор регистров определяется согласно таблице 9.8.

Таблица 9. А1 А0 Регистр 0 0 Регистр данных, порт А 0 1 Регистр данных, порт В 1 0 Регистр данных, порт С 1 1 Запись в командный регистр Линии данных D7...D0 подключены к шине данных ШД и являют ся высокоомными до момента выбора адаптера с помощью сигнала CS. К выводам регистров А, В и С можно подключать датчики, светодиоды, пе реключатели, принтеры и др. устройства.

9.9. Микроконтроллеры 9.9.1. Структура микроконтроллера Микроконтроллеры (МК) — разновидность микропроцессорных систем (микроЭВМ), ориентированная на реализацию алгоритмов управле ния техническими устройствами и технологическими процессами. По срав нению с универсальными микроЭВМ микроконтроллеры проще, и размеща ются на одном кристалле. Поэтому вторым названием МК стало название "однокристальная микроЭВМ".

Микроконтроллер отличается от микропроцессора тем, что поми мо центрального процессора (ЦП) содержит память и многочисленные устройства ввода/вывода: аналого-цифровые преобразователи, последо вательные и параллельные каналы передачи информации, таймеры ре ального времени, широтно-импульсные модуляторы (ШИМ), генераторы программируемых импульсов и т. д. По своей структуре и принципу функционирования МК, в сущности, не отличается от персонального компьютера. Поэтому слова микроконтроллер и микро-ЭВМ являются синонимами. Однако первый термин (от английского слова control — управлять) более распространен, поскольку отражает его основное на значение — использование в системах автоматического управления, встроенных в различные устройства: кредитные карточки, фотоаппараты, сотовые телефоны, музыкальные центры, телевизоры, видеомагнитофоны и видеокамеры, стиральные машины, микроволновые печи, системы ох ранной сигнализации, системы зажигания бензиновых двигателей, ядерные реакторы и многое другое. Встраиваемые системы управления стали настолько массовым явлением, что фактически сформировалась новая отрасль экономики, получившая название Embedded Systems (встраиваемые системы — англ.). В радиоэлектронной аппаратуре МК нашли применение в системах обнаружения неисправностей и других сис темах автоматики.

В настоящее время в мире выпускаются тысячи разновидностей МК. Они поставляются в корпусах с числом выводов от 8 до 356, рабо тают при температуре от -55 до +125оС на частотах от 32 кГц до МГц, способны функционировать при напряжении питания от 1,2 В, потребляя при этом ток, не превышающий единиц микроампер.

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

Первые МК были выпущены фирмой Intel в 1976 г. (восьмиразряд ный МК 8048). В настоящее время многими поставщиками выпускаются 8-, 16- и 32-разрядные МК с емкостью памяти программ до десятков Кбайт, небольшими ОЗУ данных и набором таких интерфейсных и пери ферийных схем, как параллельные и последовательные порты вво да/вывода, таймеры, аналого-цифровые и цифроаналоговые преобразова тели, широтно-импульсные модуляторы и др. Среди выпускаемых МК ши роко известно семейство восьмиразрядных контроллеров MCS-51/151/ и 16-разрядных MCS-96/196/296 (фирмы Intel). Очень многие производи тели выпускают аналоги этих семейств или совместимые с ними МК. В отечественной номенклатуре это К1816ВЕ51 и К1830ВЕ51 (восьмиразряд ные МК). В последнее время фирма Intel сосредоточила усилия на разра ботке сложных микропроцессоров для компьютеров и уступила рынок простых МК другим фирмам, в частности, фирме Atmel, которая выпускает популярное семейство восьмиразрядных МК серии АТ89 с Флэш-памятью программ.

В структуре МК, как правило, используются раздельные блоки про граммной памяти типа Флэш и ОЗУ данных. При необходимости возможно подключение внешних БИС ПЗУ и ОЗУ для расширения памяти. Средства ввода/вывода представлены 4 параллельными портами (32 линии) и ли ниями TxD (выход передатчика) и RxD (вход приемника) для последова тельного ввода/вывода. В состав МК входят 2—3 таймера-счетчика (16 разрядных), которые выдают системные метки времени и отрабатывают интервалы. Для сокращения ширины физического интерфейса функции линий параллельных портов совмещены, и в разных режимах имеют раз ное назначение. Система прерываний обслуживает 2 внешних запроса, запроса от таймеров и 1 - от последовательного порта. При частоте ГТИ МГц большинство команд выполняется за 1 мкс, некоторые команды — за 2 мкс.

Рис. 9. Структурная схема микроконтроллера МК 8051 приведена на рис.

9.18. Микроконтроллер МК 8051 можно считать классическим образцом, по образу и подобию которого позднее было создано множество других изделий. ЦП - главный узел МК. С ним связано такое важнейшее поня тие, как система команд.

Система команд — это уникальный, характерный для данного ЦП набор двоичных кодов, определяющих перечень всех его возможных операций. Каждый такой код определяет одну операцию и называется кодом операции или командой. Чем больше кодов используется в системе команд, тем больше операций способен выполнить ЦП. МК 8051 - вось миразрядный, поэтому коды операций у него имеют размер 8 бит. Теоре тически может быть всего 256 восьмибитных кодов операций. В используются 255.

В зависимости от числа использованных кодов операций системы команд подразделяют на две группы: CISC и RISC. Термин CISC озна чает сложную систему команд и является аббревиатурой английского оп ределения Complex Instruction Set Computer. Аналогично термин RISC оз начает сокращенную систему команд и происходит от английского Re duced Instruction Set Computer. Систему команд МК 8051 можно отне сти к типу CISC.

Однако несмотря на широкую распространенность этих понятий, необходимо признать, что сами названия не отражают главного различия между системами команд CISC и RISC. Основная идея RISC-архитектуры — это тщательный подбор таких комбинаций кодов операций, которые можно было бы выполнить за один такт тактового генератора. Основной выигрыш от такого подхода — резкое упрощение аппаратной реализации ЦП и возможность значительно повысить его производительность.

Первоначально реализовывать такой подход удавалось, лишь суще ственно сократив набор команд, отсюда и родилось название RISC. На пример, система команд МК семейства Microchip PIC16 включает в себя всего 35 инструкций и может быть отнесена к типу RISC. Очевидно, что в общем случае одной команде CISC-архитектуры должны соответствовать несколько команд RISC-архитектуры. Однако обычно выигрыш от по вышения быстродействия в рамках RISC-архитектуры перекрывает по тери от менее эффективной системы команд, что приводит к более вы сокой эффективности RISC-систем в целом по сравнению с CISC. Так, самая быстрая команда МК 8051 выполняется за 12 тактов. Даже если для каждой инструкции потребуется выполнить три инструкции RISC контроллера, то в итоге RISC-архитектура обеспечит четырехкратное увеличение производительности.

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

Однако в настоящее время грань между этими двумя понятиями стремительно стирается. Например, МК семейства AVR фирмы Atmel имеют систему команд из 120 инструкций, что соответствует типу CISC.

Однако большинство из них выполняется за один такт, что является при знаком RISC-архитектуры. Сегодня принято считать, что основным при знаком RISC-архитектуры является выполнение команд за один такт так тового генератора. Число команд само по себе значения уже не имеет.

Назначение основных узлов структурной схемы МК такое же, как и у МПС. Рассмотрим некоторые их особенности.

Тактовый генератор вырабатывает импульсы для синхронизации работы всех узлов устройства. Устройство не отличается от тактового ге нератора рассмотренного выше микропроцессора. Если используется кварцевый резонатор на 12 МГц, то длительность такта равна 1мкс.

Архитектура МК 8051 предполагает раздельное использование па мяти программ и данных и носит название гарвардской. Обычно такую архитектуру используют для повышения быстродействия системы за счет разделения путей доступа к памяти программ и данных, но в она была применена с целью получения памяти программ и данных, не требующих одинакового размера. Антипод гарвардской — архитектура фон Неймана — предполагает хранение программ и данных в общей па мяти и наиболее характерна для микропроцессоров, ориентированных на использование в компьютерах. Примером могут служить микропроцес соры семейства х86.

ПЗУ — постоянное запоминающее устройство, предназначенное для хранения программ. Информационная емкость ПЗУ 4Кбайта (в зави симости от модели МК этого семейства емкость может быть до Кбайт). Современная технология реализации ПЗУ — Flash-память. При менение Flash-памяти повышает гибкость МК-систем, так как позволяет вносить изменения в программу МК как на этапе разработки системы, так и в процессе его работы в реальном устройстве.

ОЗУ — оперативное запоминающее устройство, информационная емкость которого 128 байт, предназначено для хранения данных. Адрес ное пространство ОЗУ 8-разрядное, что дает возможность обращения к 256 байтам памяти. Старшие адреса используются для обращения к функциональным регистрам МК. Начальные ячейки ОЗУ используются под однобайтовые регистры общего назначения: R0, R1, R2, R3, R4, R5, R6 и R7. Их физические адреса зависят отсодержимого 3 и 4 разрядов однобайтового регистра слова состояния процессора (PSW). Большинст во функциональных регистров МК восьмиразрядные. К ним относятся:

регистр аккумулятора А, дополнительный регистр В, используемый для операций умножения и деления, регистр признаков результата операции (флагов) PSW, программный счетчик РС, регистр стека SP, регистр раз решения прерываний IE и приоритетов прерываний IP.

Таймеры ТО, Т1 — шестнадцатиразрядные программируемые таймеры/счетчики, которые могут быть запрограммированы на выпол нение целого ряда функций. Их можно использовать для точного фор мирования временных интервалов, подсчета импульсов на выводах МК, формирования последовательности импульсов, тактирования приемо передатчика последовательного канала связи. Таймеры/счетчики спо собны вырабатывать запросы прерываний, переключая ЦП на их обслу живание по событиям и освобождая его от необходимости периодическо го опроса состояния таймеров. Поскольку основное применение МК на ходят в системах реального времени, таймеры/счетчики являются их обязательным элементом. В некоторых модификациях число таймеров достигает 32.

Последовательный порт — канал информационного обмена МК с внешними удаленными устройствамим. Такие каналы связи занимают минимальное число выводов кристалла, обеспечивая связь на значитель ные расстояния с минимальными аппаратными затратами. В МК реализован универсальный асинхронный последовательный приемопе редатчик (UART), поддерживающий протокол стандарта RS-232C, что обеспечивает возможность организации связи этого МК с персо нальным компьютером. Кроме RS-232C, популярными протоколами в мире встраиваемых систем являются RS-485, I2C (двухпроводная двуна правленная шина), SPI (последовательный периферийный трехпровод ный интерфейс), Bitbus (последовательная магистраль управления), CAN (межконтроллерный сетевой интерфейс), USB (универсальная последо вательная шина) и некоторые другие. Практически для любого типа по следовательного канала сегодня можно найти МК, имеющий в своем составе соответствующий последовательный порт.

Параллельные порты ввода/вывода — также обязательная часть любого МК. Обычно их используют для связи с ближайшим окружени ем — датчиками и исполнительными механизмами.

Важная особенность параллельных портов МК — возможность программирования на выполнение нескольких функций. Например, в МК 8051 выводы портов РО и Р2 могут использоваться либо как обыч ные статические регистры ввода/вывода, либо в качестве шины адреса и данных для подключения внешних устройств, таких как дополнительная память программ, память данных, устройства ввода/вывода. Это придает МК архитектурную гибкость. Порт РЗ может либо использоваться как статический регистр ввода/вывода, либо выполнять специальные функ ции для работы последовательного канала, таймеров, контроллера преры ваний и т. д. Возможность перепрограммирования позволяет с макси мальной эффективностью задействовать все выводы МК в проектируе мом устройстве.

Система прерываний — одна из важнейших частей МК. Особен ность систем реального времени заключается в том, что для них чрезвы чайно важным параметром является время реакции на внешние события.

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

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

Другая функция контроллера прерываний — установка приорите тов событий. Понятие приоритет означает, что выполняемая подпро грамма прерывания может быть прервана другим событием только при условии, что оно имеет более высокий приоритет, чем текущее. В против ном случае ЦП перейдет к обработке нового события после окончания обработки предыдущего. Контроллер прерываний, входящий в состав МК 8051, имеет пять входов событий: два от внешних устройств, два от таймеров и один от последовательного канала.

Обычно, когда говорят о каком-либо МК, то всегда упоминают семейство, к которому он принадлежит. К одному семейству относят изделия, имеющие одинаковое ядро, под которым понимают совокуп ность таких понятий, как система команд, циклограмма работы ЦП, орга низация памяти программ и памяти данных, система прерываний и базо вый набор периферийных устройств. Фактически на рис.918 представле но ядро, ставшее основой для создания сотен других модификаций се мейства 8051.

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

Наиболее важная особенность семейства - программная совмес тимость на уровне двоичного кода всех входящих него МК. Это позво ляет разработчикам систем заменять одни МК семейства другими без потери наработок своего программного обеспечения. Естественно, чем большее число разновидностей входит в семейство, тем больше шансов выбрать оптимальный вариант, тем привлекательнее это семейство для разработчика.

9.9.2. Основы пректирования устройств на микроконтроллерах.

Взаимодействие любой МК системы с оператором и объектом управления можно представить показанной на рис.9.19 схемой. В общем случае объект управления снабжен исполнительными устройствами и датчиками. Человек-оператор воздействует на МК с помощью задающих устройств и получает информацию о состоянии объекта из показаний устройств индикации. Первые представляют собой переключатели, кнопки, переменные резисторы, вторые — световые (в том числе графи ческие и буквенно-цифровые) индикаторы, звукоизлучающие и другие сигнальные устройства.

Рис. 9. Все приведенные на рис.9.19 функциональные узлы и связи обяза тельны лишь в комплексных диалоговых системах контроля и управления.

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


Методика проектирования систем на МК включает в себя постанов ку и анализ задачи, ее инженерную интерпретацию, разработку блок схемы алгоритма и текста прикладной программы. В подобных системах максимальное число функций стремятся возложить на программные сред ства. Эффективность их реализации определяет требуемый объем памяти, быстродействие и надежность работы системы в целом.

Постановка задачи – это словесная формулировка требований к про ектируемой системе. Постановка задачи включает определение назначения системы, характеристик объекта управления, необходимых датчиков, ин дикаторов, исполнительных и задающих устройств.

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

Инженерная интерпретация задачи включает составление списков входных и выходных сигналов МК, исходя из словесного описания. В пер вый список включают команды, подаваемые оператором, и сигналы датчи ков. Во второй – сигналы управления исполнительными устройствами.

Исходя из общего количества сигналов управления, предварительно определяется необходимое количестве выводов применяемого МК. Если имеются аналоговые входные сигналы, то целесообразно применение МК со встроенным АЦП или компаратором, т.е. можно сформулировать на этом этапе требования к МК и предварительно выбрать его.

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

Пример графа автомата приведен на рис.9.20. Состояния автомата изображены узлами (вершинами) графа. В данном случае их четыре:

А,В,С, и D. Вершины соединены дугами со стрелками, показывающими направление перехода. Над дугой указывается событие Хi, вызывающее этот переход, а под ней – набор Yi выходных сигналов, формируемых ав томатом в этот момент и не изменяющихся до следующего перехода. Тео ретически из каждой вершины графа должно выходить ровно столько дуг, сколько возможно различных внешних воздействий на автомат. Если неко торое событие не изменяет состояния автомата, соответствующую дугу показывают входящей в ту же вершину, из которой она вышла. Однако, чтобы не загромождать чертеж, на практике оставляют только те дуги, с которыми связаны изменения выходных сигналов. Например, из графа, приведенного на рис.9.20, можно удалить дуги А-А и В-В. Это означает, что автомат в состояниях А и В на событие Х3 не реагирует.

Рис.9. Разработка блок-схемы алгоритма и текста прикладной программы.

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

последовательность команд, разрабатывается в соответствии с блок схемой алгоритма.

Блок-схема состоит из элементов прямоугольной и ромбовидной формы. Прямоугольники соответствуют операторам программы (коман дам), а ромбы используются как блоки принятия решений, таких как выбор направления выполнения программы в зависимости от некоторых условий.

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

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

9.9.3. Кросс-средства для микроконтроллеров Разработка программы — один из наиболее важных этапов в созда нии устройства на базе МК.

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

После выполнения действия МК считывает значение из следующей по порядку ячейки памяти и т.д. МК разных семейств имеют разные системы команд, т. е. машинные коды у них имеют разные значения, хотя и выпол няют похожие действия.

Программа для МК представляет собой последовательность чисел, значения которых указывают ему, какие действия выполнять. Результатом разработки программы является компьютерный файл, содержащий эти ма шинные коды. С помощью программатора ПЗУ его заносят в память про грамм МК. Первые программы для МК были программами в машинных ко дах. Для разработки таких программ разработчику необходимо было пом нить значения машинных кодов и вручную задавать их последовательность.

Такой способ очень трудоемок и неэффективен.

Первым шагом в облегчении процесса создания программ была ком пьютерная программа — так называемый транслятор с языка ассемблера.

Язык ассемблера позволяет выражать выполняемые МК действия на более понятном человеку языке. Так машинная инструкция, которая считывает значение кода из порта 2 и помещает его в аккумулятор, условно обознача ется как MOVA, port Здесь слово MOV (от англ, move), называемое мнемоникой инструк ции, обозначает пересылку операндов, из port 2, в аккумулятор. Система по добных обозначений называется языком ассемблера. Программа, написан ная на нем, обрабатывается транслятором, который преобразует конструк ции языка ассемблера в машинные коды.

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

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

С появлением трансляторов разработка программ для МК резко упро стилась. Если, например, нужно сложить в программе два числа, то теперь достаточно просто написать а = b + с, а транслятор преобразует это выра жение в необходимую последовательность машинных команд в зависимо сти от типов переменных а, b и с.


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

Рассмотрим процесс создания программы для МК на языке Си.

После уяснения поставленной задачи разработчик пишет исходный текст своей программы на языке Си с помощью любого текстового редактора. За тем он запускает программу-транслятор с языка Си, которая преобразует исходный текст в промежуточный объектный файл. Транслятор управляет ся с помощью набора ключей (их описание можно найти в его документа ции), которые указываются в его командной строке. Если при написании программы разработчик допустил синтаксические ошибки, транслятор вы дает на экран их список с указанием для каждой номера строки в файле ис ходного текста. Разработчик должен исправить все ошибки. После успеш ной трансляции объектные файлы нужно обработать редактором связей (линкером), который и генерирует файл программы в машинных кодах.

При использовании языка высокого уровня возникает одна проблема.

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

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

Описанный процесс выглядит довольно громоздким: разработчик должен вручную запускать разнообразные программы (текстовый редак тор, компилятор Си, линкер), помнить управляющие ключи, искать ошибки в программе по номерам строк в файле. Последним на сегодняшний день шагом в облегчении труда разработчика программ для МК стало появление интегрированных сред разработки (Integrated Development Environment, IDE).

Интегрированная среда разработки — это компьютерная программа, связывающая воедино все этапы разработки программы. Она совмещает в себе текстовый редактор для написания исходных текстов, трансляторы с ас семблера и Си, линкер, отладчик, справочную информацию по МК и дру гие средства, необходимые разработчику. Настройка трансляторов, линкера и других компонентов производится не методом указания ключей в ко мандной строке, а в виде диалоговых окон, где нужно только расставить "галочки" в нужных местах. Преобразование исходных текстов программ в файл машинных кодов запускается одной клавишей.

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

Основные характеристики наиболее популярных пакетов средств раз работки приведены в таблице 9.9.

Таблица 9. Фирма (ад- Поддерживаемые Характеристики пакета рес сайта) семейства МК Простая и удобная среда разработки. Компилятор Си генерирует Keil Software MCS-51 компактный и быстрый код, не содержит ошибок. Отладчик не интег (www.keil.com) рирован в среду разработки MCS-51.MCS IAR Systems Среда разработки несколько неудобна. Компилятор Си генери 196, PICmicro и (www.iar.com) рует хороший код Отладчик не интегрирован в среду разработки.

др.

Franklin Soft- Среда разработки вполне удобна Компилятор Си генерирует ком ware MCS-51 пактный и быстрый код, однако, по отзывам пользователей, содержит (www.fsinc.com) ошибки Отладчик не интегрирован в среду разработки.

MCS-51.MCS- Среда разработки сильно устарела Качество генерируемого кода Hi-Tech Software 196. PICmicro и относительно невысокое (это не относится к компилятору Сидля (www.htsoft.com) др PlCmicro] Среда разработки перегружена ненужными функциями Контекстная Tasking Soft обработка ошибок сделана неудовлетворительно. Компилятор генери ware MCS-51, MCS- рует хороший код, имеется множество опций управления генерацией (www.tasking.com) кода.

Microchip Среда разработки простая и не очень удобная Компилятор языка Си PICmicro (www.microch.com) сильно урезан "Микропроцессор Русифицированная среда разработки функционирующая в среде ные системы МИ MCS-51 DOS Отладчик не интегрирован в среду разработки. Макроассемблер и ФИ " компилятор языка Паскаль.

(www.msl.gaw.ru) Удобная русифицированная (по желанию) среда разработки Вся MCS-51, MCS-196, "Фитон" справочная информация - на русском языке Дополнительно поддер PICmicro, Atmel живает интегрированную разработку программ для пакетов Keil, Mi (www.phyton.ru) AVR crochip, Tasking (для MCS-196), Hi-Tech (для PICmicro) Появление интегрированных сред разработки программ еще больше повысило эффективность создания программ для МК, позволило разработ чику сосредоточиться на сути решаемой задачи и отвлечься от конкретных деталей ее реализации.

Приложение. Команды МП К1821ВМ85А Число Код Флажки Содержание Мнемокод байтов тактов циклов 1 2 3 4 5 6 Команды пересылки МОVr1,r2 01ПППИИИ Пересылка из регистра r - 1 4 в регистр r МОV М,r 01110ИИИ Пересылка из регистра в - 1 7 память МОVr.M 01ППП110 Пересылка из памяти в - 1 7 регистр MVI r,b2 ООППП110 Пересылка непосредст - 2 7 венных данных в регистр MVI M,b2 36 Пересылка непосредст - 2 10 венных данных в регистр LXIrрb3b2 OOПР0001 Загрузка непосредствен - 3 10 ных данных в пару реги стров LDAb3b2 3A Прямая загрузка аккуму - 3 13 лятора STA b3 b2 32 Прямая запись аккумуля - 3 13 тора в память LHLD b3b2 2A Прямая загрузка пары - 3 16 регистров SHLD b3 b2 22 Прямая запись пары реги - 3 16 стров Н в память LDAXrp 00ПР1010 Косвенная загрузка акку - 1 7 мулятора по средством пары регистров В или D STAXrp 00ПР0010 Косвенная запись акку - 1 7 мулятора в память по средством пары j регист ров В или D XCHG EB - 1 4 1 Обмен между парами регистров Н и D Команды арифметических и логических операций ADDr 10000ИИИ Сложение регистра и ак + 1 4 кумулятора ADD M 86 Сложение памяти и акку + 1 7 мулятора ADI b2 C6 Сложение непосредст + 2 7 венных данных и аккуму лятора АDCr 10001ИИИ Сложение регистра и ак + 1 4 кумулятора с переносом ADCM 8E Сложение памяти и акку + 1 7 мулятора 1 2 3 4 5 6 ACI b2 CE Сложение непосредст + 2 7 венных данных и аккуму лятора с переносом SUB r 10010ИИИ Вычитание регистра из + 1 4 аккумулятора SUBM 96 Вычитание памяти из + 1 7 аккумулятора SUI b2 D6 Вычитание непосредст + 2 7 венных данных из акку мулятора SBB r 10011ИИИ Вычитание регистра из + 1 4 аккумулятора с заемом SBB M 9E Вычитание памяти из + 1 7 аккумулятора c pftvjv SBI b2 DE Вычитание непосредст + 2 7 венных данных из акку мулятора с заемом INR r 00ППП10О (+) 1 4 1 Инкремент регистра INR М 34 (+) 1 10 3 Инкремент памяти DCR r 00ППП101 (+) 1 4 1 Декремент регистра DCR М 35 (+) 1 10 3 Декремент памяти INX rp 00ПР0011 Инкремент пары регист - 1 6 ров DCX rp 00ПР1011 Декремент пары регист - 1 6 ров DAD rp ООПР1001 Сложение регистровой С 1 10 пары Н с регистровой парой DAA 27 Преобразование аккуму + 1 4 лятора в двоично десятичный код ANA r 10100ИИИ Логическое И регистра и + 1 4 аккумулятора ANA M A6 Логическое И памяти и + 1 4 аккумулятора ANI b2 E6 Логическое И непосред + 2 7 ственных данных и акку мулятора XRA r 10101ИИИ Исключающее ИЛИ реги + 1 4 стра и аккумулятора XRA M AE Исключающее ИЛИ па + 1 7 мяти и аккумулятора XRI b2 EE Исключающее ИЛИ не + 2 7 посредственных данных и аккумулятора ORA r 10110ИИИ Логическое ИЛИ регистра + 1 7 и аккумулятора ORA M B6 Логическое ИЛИ памяти + 1 7 и аккумулятора 1 2 3 4 5 6 OR b2 F6 Логическое ИЛИ непо + 2 7 средственных данных и аккумулятора CMP r 10111ИИИ Сравнение регистра и + 1 4 аккумулятора CMP М 10111110 Сравнение памяти и ак + 1 7 кумулятора CPI b2 FE Сравнение непосредст + 2 7 венных данных и аккумулятора СМА 2F Инвертирование аккуму - 1 4 лятора STC 37 Установка флажка пере С 1 4 носа СМС 3F Инвертирование флажка С 1 4 переноса RLC 07 Циклический сдвиг акку С 1 4 мулятора влево RBC OF Циклический сдвиг акку С 1 4 мулятора вправо RAL 17 Циклический сдвиг акку С 1 4 мулятора влево через разряд переноса RAR 1F Циклический сдвиг акку С 1 4 мулятора вправо через разряд переноса JMP b3 b2 С3 - 3 10 3 Безусловный переход Jусл b3 b2 11УУУУ01 - 3 10 3 Условный переход CALL b3 b2 CD Безусловный вызов под - 3 18 программы Сусл b3 b2 11УУУ100 Условный вызов подпро - 3 2/5 9/ граммы RET C9 - 3 10 3 Возврат Rусл 11УУУ100 - 3 17/11 5/3 Возврат при условии RST n 11nnn111 - 1 11 3 Повторный запуск SPHL E9 Пересылка пары регист - 1 6 ров Н в SP Специальные команды PUSH rp 11РП0101 Пересылка пары регист - 1 11 ров в стек PUSH PSW F5 Пересылка аккумулятора - 1 11 и регистра флажков в стек POP rp 11РП0001 Загрузка регистровой - 1 10 пары из стека POP PSW F1 Загрузка аккумулятора и + 1 10 регистра флажков из сте ка 1 2 3 4 5 6 XTHL E3 Обмен между регистро - 1 18 вой парой Н и стеком PCHL F9 Пересылка регистровой - 1 5 пары Н в РС IN port DB - 2 10 3 Ввод OUT port D3 - 2 10 3 Вывод EI FB - 1 4 1 Разрешение прерывания DI F3 - 1 4 1 Запрещение прерывания HLT 76 - 1 7 2 Останов NOP 00 - 1 4 1 Нет операции RIM 20 Чтение маски прерывания - 1 4 д SIM 30 - 1 4 1 Запись маски прерывания В первой графе таблицы даны мнемокоды команд с обозначениями регистров через r, пар регистров через rp, ячеек памяти через М, третьего и второго байтов команды через b3 b2, адресов ВУ через port. Ссылки на ячейки памяти М подразумевают косвенную адресацию — адреса этих ячеек берутся из регистровой пары Н (регистров Н и L) и, следовательно, не нуждаются в указании в самой команде.

Во второй графе коды первого байта команды b1 даются в двоичном восьмиразрядном представлении, если требуется указать в них адреса опе рандов, или в двухразрядном шестнадцатиричном представлении в иных случаях. Разряды обобщенных адресов регистров — источников данных выражены буквами ИИИ, регистров — приемников данных — буквами ППП, пар регистров — буквами ПР. Подставляя вместо буквенных симво лов определенные адреса, получим коды конкретных вариантов команды (например, из обобщенной формы "пересылка из регистра в регистр" кон кретный вариант "пересылка из регистра В в регистр D").

Коды условий, при выполнении которых осуществляется указанная в команде операция, обозначены буквами УУУ, расшифровка которых при ведена в таблице 1.

Включая конкретные условия в мнемокоды команд, получаем их ва рианты. Например, команда условного перехода из обобщенной формы Jyсл b3b2 переводится в вариант JNZ b3b2 — переход к команде с адресом b3b2, если признак результата говорит о том, что результат не равен нулю.

В коде команды рестарта RST три разряда, отмеченные буквами nnn, формируются системой прерываний или указываются программистом. При выполнении команды текущее содержимое программного счетчика PC заг ружается в стек, а в PC формируется код с нулевым старшим байтом и млад шим байтом вида 000nnn000.

Таблица Мнемокод Условия УУУ NZ Неравенство нулю Z Равенство нулю NC' Отсутствие переноса С Наличие переноса РО Нечетность РЕ Четность Р Плюс М Минус Операция сравнения производится вычитанием операндов с установ кой признака результата (Z = 1 — равные операнды, S = 0 — содержимое ак кумулятора больше второго операнда, S = 1 — меньше).

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

ЛИТЕРАТУРА 1. Бродин В.Б., Шагурин И.И. Микроконтроллеры: Справочник. – М.:

ЭКОМ, 1999. – 395с.

2. Вениаминов В.Н., Лебедев О.Н., Мирошниченко А.Н. Микросхемы и их применение: Справ. Пособие. – 3-е изд., перераб. и доп. – М.: Радио и связь,1989. – 240с.

3. Гилмор Ч. Введение в микропроцессорную технику: Пер. с англ. _ М.:

Мир, 1984. 334 с.

4. Гусев В. В.,Зеличенко Л.Г., Конев К.В. и др. Основы импульсной и цифровой техники. Уч. Пос. для вузов. – М.: Сов. Радио, 1975. – 440с.

5. Зельдин Е.А. Цифровые интегральные микросхемы в информационной измерительной аппаратуре. – Л.: Энергоатомиздат, 1986. – 280с.

6. Каган Б.М., Сташин В.В. Основы проектирования микропроцессорных устройств автоматики. – М.: Энергоатомиздат, 1983. - 304 с.

7. Клочков Г.Л. Импульсные и цифровые узлы радиоэлектронных средств.

В 4 - х частях. – Воронеж: ВИРЭ, 1995. – 560 с.

5. Лебедев О.Н., Мирошниченко А.В., Телец В.А. Изделия электронной техники. Цифровые микросхемы. Микросхемы памяти. Микросхемы ЦАП и АЦП: Справочник – М.: Радио и связь, 1994. - 248 с.

6. Микросхемы памяти, ЦАП и АЦП: Справочник – 2-е изд. /О.Н. Лебе дев, А-Й. К. Марцинкявичус, Э-А. К. Багданскис и др. – М.: КУбК-а, 1996. - 384 с.

7. Макаров Г.В., Плутес Д.В., Тюрин С.В. Элементы проектирования мик ропроцессорных устройств и систем: Учебное пособие. Воронеж: Изд во ВГТУ, 1998. - 128 с.

8. Пухальский Г.И., Новосельцева Т.Я. Проектирование дискретных уст ройств на интегральных микросхемах: Справочник. – М.: Радио и связь, 1990. – 304с.

9. Память на любой вкус.Компьютер пресс, декабрь 2002г.

10. Сташин В.В., Урусов А.В., Мологонцева О.Ф. Проектирование цифро вых устройств на однокристальных микроконтроллерах. – М.: Энерго атомиздат, 1990. – 224 с.

11. Угрюмов Е.П. Цифровая схемотехника. – СПб.: БХВ – Санкт-Петер бург, 2000. 528 с.

12. Фрике К. Вводный курс цифровой электроники. – М: Техносфера, 2003.

432с.

13. Хоровиц П., Хилл У. Искусство схемотехники: В трех томах: Т.2. Пер.

с англ. – 4-е изд., перер. и доп. – М.: Мир, 1993. – 371 с.

14. Шило В.Л. Популярные цифровые микросхемы: Справочник / 2-е изд. – Челябинск: Металлургия, 1989. – 352 с.



Pages:     | 1 |   ...   | 5 | 6 ||
 





 
© 2013 www.libed.ru - «Бесплатная библиотека научно-практических конференций»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.