Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания к учебной практике.docx
Скачиваний:
13
Добавлен:
28.09.2019
Размер:
2.44 Mб
Скачать
  1. Основные понятия и определения

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

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

  • что такое команда, и какие сведения она в себя включает?

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

  • как пишутся команды, и в каком виде вводятся в память МК?

  • какие операции может выполнять МК?

    1. Форматы данных

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

АЛУ может оперировать четырьмя типами форматов данных:

  • 1 бит (1 разряд) – для представления булевских переменных;

  • 4 бит (4 разряда) – для представления двоично-десятичных чисел;

  • 1 байт (8 разрядов) – для представления чисел и адресов в двоичном виде;

  • 16 бит (16 разрядов) – для представления адресов в двоичном виде.

    1. Команда

Для выполнения преобразований над данными (операндами) микроконтроллер должен «знать»:

  • какое преобразование (операцию) он должен выполнить;

  • какие исходные данные (операнды) участвуют в операции.

Вся информация, поступающая в микроконтроллер через устройства ввода, так и программа, которая ее обрабатывает, хранится в разных частях памяти ОЗУ и ПЗУ. Для передачи данных (операндов) в АЛУ для обработки требуется указать место расположения операнда в памяти – его адрес. Поэтому структура любой команды содержит два поля: поле кода операции (КОП) и поле операнда или его адреса (или операндов, если их два) (рис.2).

Рис.2. Структура команды микроконтроллера:

а) с двумя операндами; б) с одним операндом

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

    1. Код операции

Код операции команды определяет набор действий, которые должен выполнить ЦП для преобразования операнда (операндов). Он представляется в виде 8-разрядного двоичного кода. Например: 00100101В – код операции сложения двух операндов. В таком виде в составе команды он записывается в ПЗУ микроконтроллера. Полная система команд содержит 255 кодов операций. Запомнить 255 двоичных кодов и применять их при разработке программы достаточно сложно. Можно сократить число цифр кода, представив его в шестнадцатеричном виде. Тот же код будет выглядеть как 25Н. В любом случае использование кодов операции в виде цифр является сложным и неблагодарным занятием.

Разработка программы значительно упрощается, если использовать язык программирования АССЕМБЛЕР. В этом языке для упрощения процедуры записи, проверки и чтения программ используется мнемоническое или символическое кодирование для обозначения кода операции. При этом каждая машинная команда, реально используемая как машинный двоичный код, обозначается трех- или четырехбуквенным мнемоническим символом. В основе этих символов лежит описание выполняемой операции на английском языке в виде абревиатуры (либо сокращенное слово, либо начальные буквы словосочетания) от полной записи наименования команды на английском языке. Основное достоинство мнемокодов заключается в том, что такие символы легко запоминаются и легко воспринимаются, так как символическое имя команды напоминает смысловое содержание соответствующей операции, например:

MOV – сокращение от Move (перемещение);

INC – сокращение от Increment (увеличение на единицу);

ADD – сокращение от Addition (добавление);

SUBB – сокращение от Substraction with Borrow (вычитание c займом);

MUL – сокращение от Multiply (умножение) и другие операции.

В процессе компиляции исходный текст программы на языке АССЕМВЛЕРА, обычно выполняемой автоматически с помощью ПК, преобразуется в двоичный машинный код, который «понимает» ЦП.

    1. Адрес

Адресом называется указание месторасположения элемента данных (операнда) в памяти микроконтроллера. Память микроконтроллера включает в себя помимо ОЗУ и ПЗУ ряд специализированных отдельных ячеек памяти – регистров. Они предназначены для обслуживания АЛУ. На рис. 3 показана упрощенная структура памяти МК.

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

В – восьмиразрядный регистр как дополнение аккумулятора при выполнении операций умножения и деления. Для других операций он может рассматриваться как дополнительный сверхоперативный регистр.

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

DPTR 16-разрядный регистр (указатель адреса) для косвенной адресации при

Рис. 3. Упрощенная структура памяти МК

обращении к памяти программ. Может быть использован как два независимых 8-разрядных регистра DPH и DPL для хранения данных программы.

R0-R7 – 8 восьмиразрядных регистров общего назначения. Предназначены для хранения оперативных данных программы. Команды, использующие для операндов эти регистры, имеют минимальное время выполнения, а сами команды занимают в памяти минимальное место.

ОЗУ содержит 128 8-разрядных ячеек памяти, каждая из которых имеет собственный номер – адрес, от 00Н до 7FH (в шестнадцатеричном коде).

ПЗУ имеет 2048 (2К) ячеек, с адресами от 0000Н до 07FFH.

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

Формат адреса для ОЗУ – 1 байт, для ПЗУ – 2 байта.

Рассмотренные выше регистры также имеют свои собственные 8-разрядные адреса, однако, особенность программирования на АССЕМБЛЕРЕ, позволяет использовать для регистров символические имена (адреса). В поле адреса команды, если используется регистр, записывается его обозначение А, PSW, R0-R7 и т.д.

Для работы с булевскими (битовыми) операндами используется часть памяти ОЗУ с адресами 20Н – 2FH, которая представляет собой так называемую битовую область ОЗУ. В ней имеется возможность при помощи специальных битовых команд адресоваться к каждому отдельному разряду ячеек памяти. Битовое пространство имеет объем 128 бит с адресами 00Н до 7FH и занимает 16 ячеек памяти. Адрес прямоадресуемых битов может быть записан либо в виде (Адрес Байта).(Разряд), например выражение 21.3Н означает третий разряд ячейки памяти с адресом 21H, либо в виде абсолютного битового адреса - 0ВН. Соответствие этих двух способов адресации можно определить по табл. 1.