Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы автоматизации Ямный,Яновский

.pdf
Скачиваний:
88
Добавлен:
29.02.2016
Размер:
1.36 Mб
Скачать

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

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

Команда десятичной коррекции содержимого аккумулятора используется для организации арифметической обработки десятичных чисел, представленных в двоично-десятичном коде 8-4-2-1.

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

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

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

Команды управления программой. К командам управления програм-

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

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

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

101

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

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

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

8.4. Способы адресации

Перечень возможных способов адресации является одной из важнейших архитектурных характеристик МП. Способ адресации определяет алгоритм преобразования исходного адреса, указанного в поле адреса команды, в исполнительный (действительный) адрес ячейки памяти, устройства ввода/вывода или регистра МП.

В МП Intel 8080 (как и в большинстве МП) применяются прямая, непосредственная, прямая регистровая (регистровая), косвенная регистровая и стековая адресации.

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

Примером команды с прямой адресацией, записанной на языке ассемблера МП Intel 8080, является команда LDA 1234Н. Эта команда пересылает в аккумулятор содержимое ячейки памяти, действительный адрес которой (1234Н) находится в третьем и втором байтах кода команды (рис. 8.4). Выборка из памяти кода команды осуществляется побайтно, путем последовательного инкрементирования содержимого счетчика команд.

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

102

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

Непосредственная адресация. При непосредственной адресации операнд является частью кода команды. Команды с такой адресацией

 

 

 

 

 

 

 

 

 

 

 

код команды

 

 

 

 

 

 

 

 

 

 

 

 

 

код операции

 

 

 

 

 

 

 

адрес операнда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1

1

1

 

0

1

0

 

0

0

1

1

0

1

 

0

0

 

0

0

 

0

1

0

0

1

0

 

 

 

байт 1

 

 

 

 

 

 

 

байт 2

 

 

 

 

 

 

байт 3

 

 

 

Рис. 8.4. Формат команды LDA 1234Н

имеют двухбайтный или трехбайтный формат и используются для загрузки регистров МП. Примером команды с непосредственной адресацией является команда LXI rp, 5678Н (рис. 8.5). Результатом выполнения этой команды является загрузка двухбайтного операнда 5678Н, указанного в третьем и втором байтах кода команды, в регистровую пару микропроцессора, адрес rp которой указан в первом байте кода команды.

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

 

 

 

 

 

 

 

 

 

 

 

 

код команды

 

 

 

 

 

 

 

 

 

 

код операции

 

 

 

 

 

 

 

 

адрес операнда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

r

p

0

0

0

0

 

 

 

0

1

1

1

1

0

0

0

 

0

1

0

1

0

1

1

0

 

 

 

байт 1

 

 

 

байт 2

 

 

 

байт 3

 

 

 

 

 

Рис. 8.5.

 

Формат команды LXI rp, 5678Н

Прямая регистровая (регистровая) адресация. Этот способ адреса-

ции напоминает прямую адресацию, за исключением того, что в коде команды указывается адрес не ячейки памяти, а одного (двух) регистра (регистров) общего назначения МП, в котором (которых) находится однобайтный (двухбайтный) операнд. Примером команды с прямой регистровой адресацией является команда MOV r1, r2 (рис. 8.6), осуществляющая передачу содержимого регистра-источника r2, адрес которого задан в адресном поле SSS кода команды, в регистр-приемник r1, адрес которого задан в адресном поле DDD.

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

103

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

Косвенная регистровая адресация. В адресном поле команд с кос-

венной регистровой адресацией находится адрес регистровой пары МП,

код операции

 

 

адрес

 

 

 

адрес

 

 

регистра-приемника

регистра-источника

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

D

D

D

S

 

S

S

 

 

Рис. 8.6. Формат команды MOV r1, r2

 

 

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

Примером команды с косвенной регистровой адресацией является команда LDAX rp (рис. 8.7), обеспечивающая передачу содержимого ячейки памяти, адрес которой находится в регистровой паре микропроцессора, в аккумулятор. Адрес rp регистровой пары указан в адресном поле кода команды.

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

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

код операции

адресное поле

 

код операции

 

 

 

 

 

 

 

 

 

0

0

r

p

1

0

1

0

 

 

Рис. 8.7. Формат команды LDAX rp

 

 

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

104

8.5. Процесс выполнения команд

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

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

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

Совокупность действий, реализуемых в процессе выполнения команды, называется командным циклом. Командный цикл в МП Intel 8080 может быть реализован за 1–5 машинных циклов. Один МЦ требуется МП для организации обращения к памяти или к устройствам ввода/вывода.

Каждый МЦ может состоять из 3–5 машинных тактов. Длительность машинного такта равна периоду импульсов генератора тактовых импульсов микропроцессорной системы.

Количество МЦ в командном цикле и, следовательно, время выполнения команды определяются используемыми способами адресации.

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

Выполнение программы начинается с фазы выборки первой команды, адрес первого байта (кода операции) которой должен быть предварительно размещен в счетчике команд МП. Содержимое счетчика команд поступает на ША, обеспечивая выборку кодаоперации команды из памяти.

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

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

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

105

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

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

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

106

Лекция 9 МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА MCS-51

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

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

Основным классификационным признаком МК является его разрядность. Имеются 4-, 8-, 16-, 32-разрядные МК. 8-разрядные МК дешевле 16- и 32-разрядных и имеют большие функциональные возможности. Несмотря на непрерывное развитие и появление новых 16- и 32-раз- рядных МК, 8-разрядные являются наиболее массовыми и постоянно расширяющими области применения МК.

Первый 8-разрядный МК Intel 8048 был разработан фирмой Intel в 1976 году. Чуть позже появился МК Intel 8051. Этот МК положил начало семейству МК MCS-51 – семейству 8-разрядных МК с полным набором команд (CISC МК).

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

Несмотря на существенные архитектурные отличия МК двух вышеуказанных стандартов, все 8-разрядные МК имеют много общего.

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

Во многих МК наряду с резидентной (внутренней) памятью данных (РПД) и резидентной (внутренней) памятью программ (РПП) предусмот-

107

рена возможность подключения внешней памяти данных (ВПД) и внешней памяти программ (ВПП).

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

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

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

РПП может быть выполнена в виде РПЗУ с ультрафиолетовым стиранием или в виде флэш-памяти. В последнем случае память программ может быть многократно перепрограммирована в процессе работы системы.

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

9.1. Функциональное назначение выводов корпуса МК Intel 8051

Базовой моделью семейства МК MCS-51 и основой для всех последующих модификаций является МК Intel 8051. МК конструктивно выполнен в корпусе БИС с 40 внешними выводами, все выводы совместимы с элементами ТТЛ. Условное графическое обозначение МК Intel 8051 приведено на рис. 9.1. Ниже приведены символические имена выводов корпуса и даны краткие пояснения их назначения.

Р0.7–Р0.0 – восьмиразрядный двунаправленный порт Р0. При работе с внешней памятью порт Р0 используется также как мультиплексируемая ША(А0–А7)/ШД(D0–D7) для вывода младшего байта адреса, а также вывода и приема в МК байта данных. В режиме программирования резидентной памяти программ (РПП) используется для приема кодов команд, в режиме проверки РПП используется для выдачи содержимого адресуемой ячейки.

108

Р1.7–Р1.0 – восьмиразрядный двунаправленный порт Р1. В режиме программирования и при проверке РПП порт Р1 предназначен для зада-

ния младшего байта адреса (А0–А7).

 

 

P0.0/AD0

 

P2.0/A8

 

 

 

 

 

 

 

 

 

 

Р2.7–Р2.0 – восьмиразрядный

 

 

P0.1/AD1

 

P2.1/A9

 

 

 

 

 

 

 

 

 

 

двунаправленный порт Р2. В режиме

 

 

P0.2/AD2

 

P2.2/A10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P0.3/AD3

Intel

P2.3/A11

 

 

 

 

 

 

 

 

работы с внешней памятью использу-

 

 

P0.4/AD4

P2.4/A12

 

 

 

 

 

 

 

 

 

 

 

 

P0.5/AD5

P2.5/A13

 

 

 

 

 

 

 

 

ется для выдачи старшего байта адре-

P0.6/AD6

8051

P2.6/A14

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P0.7/AD7

 

P2.7/A15

 

 

са (А8–А15). В режиме программиро-

 

 

 

 

 

 

P1.0

 

P3.0/RxD

 

 

вания и при проверке РПП использу-

 

 

 

 

 

 

 

 

P1.1

 

P3.1/TxD

 

 

 

 

 

 

ется для задания старшего байта ад-

 

 

 

P1.2

 

 

 

 

 

 

 

 

 

 

 

 

P3.2/ INT0

 

 

 

 

 

 

 

 

 

 

P1.3

 

 

 

 

 

 

 

реса (А8–А15).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P1.4

 

P3.3/ INT1

 

 

 

 

 

 

 

 

 

 

P1.5

 

P3.4/T0

 

 

 

 

 

 

Р3.7–Р3.0 – восьмиразрядный

 

 

 

 

 

 

 

 

P1.6

 

P3.5/T1

 

 

 

 

 

 

 

 

 

 

 

 

 

P1.7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

двунаправленный порт Р3. Все выво-

 

P3.6/ WR

 

 

ды порта Р3 имеют дополнительные

 

 

 

x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

P3.7/ RD

 

 

 

 

 

 

 

 

функции:

 

 

 

 

 

ALE

 

 

 

 

 

 

 

 

EA

 

 

 

P3.0/RxD – вход приемника по-

 

 

 

PSEN

 

 

 

 

RST

 

 

 

 

 

 

 

 

следовательного порта;

 

 

 

 

 

 

 

 

 

 

 

Рис. 9.1. Условное графическое

 

 

P3.1/TxD – выход передатчика

 

 

последовательного порта;

обозначение МК Intel 8051

 

 

P3.2/ INT 0 – вход сигнала запроса внешнего прерывания 0;

P3.3/ INT1 – вход сигнала запроса внешнего прерывания 1; P3.4/T0 – вход таймера/счетчика 0;

P3.5/T1 – вход таймера/счетчика 1;

P3.6/WR – выход сигнала записи во внешнюю память данных;

P3.7/ RD – выход сигнала чтения внешней памяти данных. RST – вход сигнала установки МК в исходное состояние.

ALE/ PROG – выход управляющего сигнала строба адреса внешней памяти/вход управляющего сигнала для программирования РПП.

PSEN – выходной управляющий сигнал разрешения внешней памяти программ.

EA – вход управляющего сигнала блокировки резидентной памяти программ. При программировании на этот вывод подается 12 В напряжения программирования РПП, если выбран режим 12 В программирования.

XTAL1 – вход инвертирующего усилителя тактового генератора. XTAL2 – выход инвертирующего усилителя тактового генератора. МК содержит все узлы, необходимые для его автономной работы.

Его основные характеристики:

109

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

встроенный тактовый генератор;

адресное пространство памяти программ – 64 Кбайта;

адресное пространство памяти данных – 64 Кбайта;

внутренняя память программ – 4 Кбайта;

внутренняя память данных – 128 байтов;

дополнительные возможности по выполнению операций булевой алгебры (операции с битами);

32 двунаправленные и индивидуально адресуемые линии ввода/вывода;

двашестнадцатиразрядных многофункциональныхтаймера/счетчика;

полнодуплексный асинхронный приемопередатчик;

векторная система прерываний с двумя уровнями приоритета и шестью источниками событий.

Структурная схема МК Intel 8051 приведена на рис. 9.2.

Внешние

прерывания

 

 

Контроллер

 

4К РПП

 

 

128 байт

 

 

Т/СЧ0

 

Входы Т/СЧ

 

 

прерываний

 

 

 

 

 

РПД

 

 

Т/СЧ1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Центральный

 

 

 

 

 

 

 

 

 

 

 

 

 

 

процессор

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Генератор

 

 

 

Параллельные

 

 

Последовательный

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

порты ВВ/ВЫВ

 

 

порт

УАПП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Р0 Р1 Р2 Р3

 

 

TxD

RxD

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 9.2. Структурная схема МК Intel 8051

9.2. Центральный процессор

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

110