метод_к лаб раб по ПРССУ (539892), страница 2
Текст из файла (страница 2)
Рассмотрим некоторые наиболее часто употребимые команды, которые сведены в таблицу 1.
Таблица 1.
Обозначе-ние | Формат команды | Описание команды | |
КОП | Операнд | ||
АКТ СЧ | 26 | Номер счетчика | Активизация адресованного счетчика. |
ЗАП СЧ | 28 | Значение | Запись значения в активизированный счетчик. |
Т | 07 | Параметр времени | Выдержка времени, кратного 0,1 сек. |
БУП | 09 | Адрес команды | Безусловный переход к выполнению команды, содержащейся по указанному адресу. |
КСП | 15 | Номер страницы памяти | Вычисление контрольной суммы кодов, содержащихся в странице памяти с данным номером. |
+СЧ | 0C | Номер счетчика | Инкремент счетчика с заданным номером. |
ИНД | 2A | Младший байт адре-са служеб-ного ОЗУ | Вывод на дисплей содержимого байта служебного ОЗУ и останов до нажатия любой клавиши. |
В служебном ОЗУ по адресам FF60-FF6F организовано 16 однобайтных счетчиков с номерами от 00 до 0F. Последняя цифра номера счетчика соответствует последней цифре адреса служебного ОЗУ, показывающего физическую ячейку памяти, в которой организован данный счетчик.
Для того чтобы осуществить какую-либо операцию с одним из счетчиков, он в данный момент должен быть активизирован. Для предварительной активизации счетчика используется команда АКТ СЧ.
Командой ЗАП СЧ можно записать в активизированный счетчик любой код от 00 до FF, задав его в поле операнда.
Команда ИНД позволяет отобразить на дисплее микроконтроллера содержимое любого байта служебного ОЗУ, младший байт адреса которого задается в поле операнда этой команды. Формат отображения информации на дисплее показан на рис. 2.
При выводе информации на дисплей по команде ИНД происходит приостанов выполнения программы, и программа останавливается со значением счетчика команд, указывающим на адрес, следующий за адресом команды ИНД. Приостанов выполнения программы при выполнении команды ИНД обусловлен необходимостью дать оператору возможность прочитать информацию с дисплея микроконтроллера. Продолжение выполнения программы произойдет после нажатия на любую клавишу, при этом дисплей гасится.
Команда КСП производит вычисление контрольной суммы кодов команд, содержащихся в странице памяти с заданным номером. При выполнении этой команды содержимое памяти рассматривается не как команды, а как шестнадцатеричные числа (поскольку каждая команда в микроконтроллере представляется в числовом представлении). Таким образом, вычисление контрольной суммы кодов команд позволяет проверить правильность ввода программы, не прибегая к ее просмотру, а так же позволяет проверить исправность постоянной и оперативной памяти микроконтроллера.
5. Структура памяти микроконтроллера МКП-1.
Память микроконтроллера делится на три части:
-
постоянное запоминающее устройство (ПЗУ), в котором хранится исполнительная программа,
-
энергонезависимое запоминающее устройство (ЭНЗУ), в котором хранится управляющая программа,
-
служебное ОЗУ.
Исполнительная программа является неотъемлемой частью микроконтроллера, невидимой и недоступной для пользователя. Она является интерпретатором, преобразующим инструкции от управляющей программы в последовательность кодов машинного языка микропроцессора, реализующего эти инструкции.
Управляющая программа - программа, написанная пользователем в кодах команд входного языка микроконтроллера и обеспечивающая выполнение заданного алгоритма управления внешним оборудованием.
Совокупность команд микроконтроллера, образующая управляющую программу, записывается и хранится в модуле (модулях) ЭНЗУ. Структура модулей ЭНЗУ показана на рис 3.
Модуль 1 | Модуль 2 | Модуль 3 | Модуль 4 | ||||
Зона 0 | Зона 1 | Зона 2 | Зона 3 | ||||
БА 0 | БА 1 | БА 2 | БА 3 | ||||
08 | 09 | 0А | 0B | 0С | 0D | 0Е | 0F |
Рис. 3. Структура памяти микроконтроллера МКП-1.
Максимально может быть установлено 4 модуля ЭНЗУ. Вся область энергонезависимой памяти делится на четыре зоны. Конструктивно каждая зона памяти выполнена в виде отдельного модуля, т.е., как видно на рисунке 3, если установлен только один модуль памяти, то доступной будет только нулевая зона, если будут установлены все четыре модуля, то доступны будут все зоны памяти с номерами 0, 1, 2 и 3. При адресации памяти адрес формируется из номера зоны (базового адреса) и номера команды в данной зоне. Таким образом номер зоны совпадает с базовым адресом.
Внутри каждой зоны память подразделяется на две страницы. Каждая страница памяти имеет свой уникальный номер. На рисунке 3 показана нумерация всех страниц памяти, входящих в структуру энергонезависимого запоминающего устройства микроконтроллера.
Объём модуля ЭНЗУ составляет 512 байт и позволяет осуществить запись 256 команд. Адресное пространство каждого модуля образует одну зону памяти, а каждая зона памяти делится на 2 страницы памяти, таким образом, объем каждой страницы памяти составляет 256 байт, что позволяет записать в неё 128 команд.
Каждая команда микроконтроллера в физической памяти занимает два байта.
В служебном ОЗУ организованы следующие регистры:
БА – базовый адрес (является номером зоны),
СК - учетчик команд микроконтроллера, содержимое которого определяет адрес (номер) команды в пределах зоны памяти,
БУ - бит условия, значение которого устанавливается в зависимости от результата выполнения ряда операций; анализ бита условия используется для управления ходом выполнения управляющей программы,
УС - указатель стека, определяющий адреса ячеек стековой памяти, в которых запоминаются значения "БА" и "СК" при обращении к подпрограмме.
РРР – регистр режима работы.
Регистр режима работы РРР является внутренним регистром, в котором отражается текущее состояние микроконтроллера. Регистр УС так же в основном используется самим микроконтроллером (автоматически) для сохранения промежуточных результатов и сохранения адреса возврата при выполнении команд обращения к подпрограммам.
Адрес команды при вводе и отладке программы отображается на дисплее (рис. 1) и представляет собой совокупность содержимого регистров БА и СК.
Регистр БУ (бит условия) активно используется при написании программ для организации нелинейных программ с переходами в зависимости от различных условий.
Микроконтроллер построен на микропроцессоре К580ВМ80А, который имеет максимальное адресное пространство 64 Кбайт (от 0000H до FFFFH). Распределение адресного пространства показано в таблице 2.
Как видно из таблицы 2, вся область адресного пространства делится на:
-
область исполнительной программы (ПЗУ с интерпретатором входного языка программирования микроконтроллера),
-
энергонезависимое оперативное запоминающее устройство,
-
резервную область памяти,
-
область служебного ОЗУ.
Таблица 2.
Распределение адресного пространства микроконтроллера.
Диапазон адресов | Номер страницы памяти | Назначение области памяти | |
От | До | ||
0000 | 00FF | 00 | Область исполнительной программы |
0100 | 01FF | 01 | |
0200 | 02FF | 02 | |
0300 | 03FF | 03 | |
0400 | 04FF | 04 | |
0500 | 05FF | 05 | |
0600 | 06FF | 06 | |
0700 | 07FF | 07 | |
0800 | 08FF | 08 | ЭНЗУ, зона 0 |
0900 | 09FF | 09 | |
0A00 | 0AFF | 0A | ЭНЗУ, зона 1 |
0B00 | 0BFF | 0B | |
0C00 | 0CFF | 0C | ЭНЗУ, зона 2 |
0D00 | 0DFF | 0D | |
0E00 | 0EFF | 0E | ЭНЗУ, зона 3 |
0F00 | 0FFF | 0F | |
… | … | … | … |
2000 | 20FF | 20 | Резервная область |
2100 | 21FF | 21 | |
2200 | 22FF | 22 | |
2300 | 23FF | 23 | |
2400 | 24FF | 24 | Область исполнительной программы |
2500 | 25FF | 25 | |
2600 | 26FF | 26 | |
2700 | 27FF | 27 | |
… | …. | … | … |
FF00 | FFFF | FF | Область служебного ОЗУ |
Область служебного ОЗУ распределяется следующим образом:
FF00-FF01 – УС (указатель стека),
FF02 – СК (счетчик команд),
FF03 – БА (базовый адрес),
FF04 – БУ (бит условия),
FF05 – регистр режима работы.
FF30 – FF3F – стек,