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

Kharakhnin / Система команд миконтроллера

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

Министерство образования и науки Российской Федерации Федеральное агентство по образованию

ГОУ ВПО Череповецкий государственный университет Кафедра автоматизации и управления

С И С Т Е М А К О М А Н Д О Д Н О К Р И С Т А Л Ь Н Ы Х М И К Р О К О Н Т Р О Л Л Е Р О В С Е М Е Й С Т В А

M C S 5 1

У ч е б н о – м е т о д и ч е с к о е п о с о б и е

Для специальностей: 15.03.04 “Автоматизация технологических процессов и производств”; 27.03.04” Управление в технических системах”.

Ч е р е п о в е ц 2006

1

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

Пособие содержит теоретические сведения о системе команд однокристального микроконтроллера К1816ВЕ751. Рассматриваются различные способы адресации операндов микроконтроллера, команды, приведены примеры, позволяющие закрепить изученный материал. Рассмотрены правила написания программ на языке Assembler.

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

Составитель: К.А. Харахнин - канд. техн. наук, профессор.

Научный редактор: В.А. Шабалов - канд. техн. наук, профессор.

Рецензенты: В.А. Шабалов В.А. - канд. техн. наук, профессор. А.Н. Зуев - канд. техн. наук, доцент.

© Череповецкий государственный университет, 2006

2

Введение

С появлением современных программных средств – компиляторов разработку прикладных программ для однокристальных МК можно проводить в различных инструментальных средах. Это могут быть языки С, PASCAL, ASSEMBLER. Программа - компилятор преобразует операторы прикладной программы в машинные коды однокристальной МК. Более близким из всех языков к машинным кодам является язык ASSEMBLER. Другими словами, ASSEMBLER – это символическое представление машинного языка, поэтому программа, написанная на этом языке, занимает очень малый объем памяти и имеет высокое быстродействие. Разработчик – программист имеет доступ ко всем ресурсам МК, что позволяет ему построить микропроцессорный контроллер оптимально, находя компромисс между аппаратными средствами и программным обеспечением с учетом особенностей конкретного МК.

Методические указания предназначены для студентов специальностей 220301 и 220201 дневного отделения, выполняющих лабораторные работы по курсам “Однокристальные микроконтроллеры”, “Цифровые устройства автоматики”, лабораторные работы, курсовые и дипломные проекты, связанные с применением однокристальных МК семейства MCS51. В указаниях рассматривается система команд МК К1816ВЕ751, приведены многочисленные примеры и задания, позволяющие закрепить изучаемый материал.

Цель работы: Изучение системы команд однокристальной МК К1816ВЕ751, правил написания программ на языке ASSEMBLER.

1. Способы адресации операндов

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

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

В машинном коде команда занимает один, два или три байта. Команды выполняются за один, два или четыре (умножение и деление) машинных цикла. При тактовой частоте 12 МГц одноцикловые команды выполняются за 1 мкс, двухцикловые за 2мкс и т.д. Большинство команд имеют формат в один или два байта и выполняются за один или два машинных цикла. На рис. 1 показаны 13 типов команд.

Первый байт команды любого типа и формата всегда содержит код операции (КОП). Второй и третий байты содержат либо адреса операндов, либо непосредственные операнды.

3

1-й байт

 

D7 … D0

 

 

1

КОП

2-й байт

 

 

 

 

D7 … D0

 

2

КОП

#data

 

 

 

 

 

 

3

КОП

Direct

 

 

 

 

 

 

4

КОП

Bit

 

 

 

 

 

 

5

КОП

Rel

 

 

 

 

 

 

6

a10a9a8

КОП

a7 … a0

3-й байт

 

 

 

 

D7 … D0

7

КОП

Direct

#data

 

 

 

 

8

КОП

Direct

Rel

 

 

 

 

9

КОП

Direct

Direct

 

 

 

 

10

КОП

#data

Rel

 

 

 

 

11

КОП

Bit

Rel

 

 

 

 

12

КОП

Adr16 H

Ad16 L

 

 

 

 

13

КОП

#data16 H

#data16 L

Рис. 1. Типы команд

Существуют следующие способы адресации операндов – источников:

регистровая; прямая адресация; косвенная регистровая; непосредственная адресация; косвенная регистровая по сумме базового и индексного регистра.

Рассмотрим каждый вид адресации в отдельности.

Регистровая адресация. Регистровая адресация используется для обращения к восьми рабочим регистрам (R0 – R7) выбранного банка (эти же регистры могут быть выбраны с помощью прямой адресации и косвенно-регистровой адресации как обычные ячейки внутреннего ОЗУ данных). Регистровая адресация используется также для обращения к регистрам А, В, АВ (сдвоенному регистру), DPTR и к флагу переноса С. Использование регистровой адресации позволяет получать двухбайтовый эквивалент трехбайтовых команд прямой адресации.

Прямая адресация. Прямая байтовая адресация используется для обращения к ячейкам внутренней памяти (ОЗУ) данных (0—127) и к регистрам специальных функций. Прямая побитовая адресация используется для обращения к отдельно адресуемым 128 битам, расположенным в ячейках с адресами 20Н—2FH, и к отдельно адресуемым битам регистров специального назначения. Старший бит байта кода прямого адреса выбирает одну из двух групп отдельно адресуемых битов, расположенных в ОЗУ или регистрах специального назначения. Прямо адресуе-

4

мые биты с адресами 0—127 (00H—7FH) расположены в блоке из 16 ячеек внутреннего ОЗУ, имеющих адреса 20Н—2FH. Указанные ячейки последовательно пронумерованы от младшего бита младшего байта до старшего бита старшего байта. Отдельно адресуемые биты в регистрах специального назначения пронумерованы следующим образом: пять старших разрядов адреса совпадают с пятью старшими разрядами адреса самого регистра, а три младших — определяют местоположение отдельного бита внутри регистра.

Косвенно-регистровая адресация. Косвенно - регистровая адресация используется для обращения к ячейкам внутреннего ОЗУ данных. В качестве регистровуказателей используются только регистры R0, R1 выбранного банка регистров.

Косвенно-регистровая адресация используется также для обращения к внешней памяти данных. В этом случае с помощью регистров-указателей R0 и R1 (выбранного банка рабочих регистров) можно адресовать 256 байт внешней памяти данных. Номер блока предварительно задается содержимым порта Р2.

16-разрядный указатель данных (DPTR) может быть использован для обращения к любой ячейке адресного пространства внешней памяти данных объемом до 64 Кбайт.

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

Косвенно-регистровая адресация по сумме базового и индексного реги-

стров. Косвенно-регистровая адресация по сумме: базовый регистр плюс индексный регистр (содержимое аккумулятора А) упрощает просмотр таблиц, зашитых в памяти программ. Любой байт из таблицы может быть выбран по адресу, определяемому суммой содержимого DPTR или PC и содержимого А.

2. Система команд МК

Рассмотрим мнемонику и назначение команд, представленных в табл. 1.

 

 

 

Таблица 1

 

 

 

 

 

Мнемоника

Код

Кол - во байт

Кол – во циклов

 

ACALL addr11

11

2

2

 

 

31

2

2

 

 

51

2

2

 

 

71

2

2

 

 

91

2

2

 

 

B1

2

2

 

 

D1

2

2

 

 

F1

2

2

 

5

Продолжение табл. 1

6

Продолжение табл. 1

7

Продолжение табл. 1

8

Продолжение табл. 1

9

Окончание табл. 1

10