метод_к лаб раб по ПРССУ (539892), страница 3
Текст из файла (страница 3)
FF60 – FF6F – счетчики,
FF75 – FF7A – область состояния входных сигналов,
FFC0 – FFDF – область однобитной памяти,
FFE0 – FFE5 - область состояния выходных сигналов.
Бит условия (регистр БУ), принимает исходное состояние, соответствующее логической единице в следующих случаях:
-
при включении питания МКП-1,
-
при нажатии кнопки «СБРОС»,
-
после выполнения команд условных переходов,
-
после принудительного изменения его значения соответствующими командами.
Бит условия не изменяется при выполнении команды безусловного перехода.
6. Система команд микроконтроллера (часть 2).
Наиболее простые и часто употребляемые команды были уже рассмотрены в четвертом разделе. Здесь рассмотрим команды управления ходом выполнения программы, т.е. команды сравнения, ветвления, подпрограмм и некоторые другие. Рассматриваемые команды представлены в таблице 3.
Команда ССЧ предназначена для активизирования счетчика с одновременной записью в него нуля.
Команда =СЧ (код 0E) предназначена для сравнения значения в счетчике с некоторым числом, причём в операнде этой команды указывается и число для сравнения, и номер счетчика. Поскольку операнд команды однобайтовый, то половина его занята указанием номера счетчика, а другая половина байта операнда содержит число для сравнения с содержимым счетчика. Эта команда может оперировать лишь с числами от 0 до F.
Команды ССЧ и =СЧ (код 0E) следует использовать лишь при работе с числами не более F, во избежание ошибок при счёте, так как максимальная ёмкость счетчиков при использовании этих команд не превышает F.
Команда =СЧ (код 29) требует предварительно активизировать счетчик, но позволяет работать со счётчиками ёмкостью до FF.
Команда ±СЧ (код 27) дублирует команду инкремента при «признаке действия», равном нулю, и позволяет выполнять декремент при других значениях параметра «признак действия».
Таблица 3.
Обозначе-ние | Формат команды | Описание команды | |
КОП | Операнд | ||
ССЧ | 0D | Номер счетчика | Сброс счетчика с его обнулением. |
±СЧ | 27 | Признак действия | Если «признак действия» равен нулю, то инкремент активизированного счетчика. Если «признак действия» не равен нулю, то декремент активизированного счетчика. |
=СЧ | 0E | Старший разряд – значение, младший разряд –номер счетчика | Если содержимое счетчика равно значению (от 0 до F), то БУ не меняется, иначе сбрасывается. |
=СЧ | 29 | Значение | Сравнение счетчика. Если содержимое активизированного счетчика равно значению, то БУ не меняется, иначе сбрасывается. |
НОП | 00 | 00 | Нет операции |
СТОП | 08 | 00 | Останов программы |
УП1 | 0A | Адрес в пределах зоны памяти | Если БУ=1, то переход по указанному адресу в пределах текущей зоны памяти |
УП0 | 0B | Адрес в пределах зоны памяти | Если БУ=0, то переход по указанному адресу в пределах текущей зоны памяти |
БАП | 0F | Новый базовый адрес | Изменение базового адреса программы |
ПП | 10 | Адрес | Переход к подпрограмме по заданному адресу |
ВОЗВРАТ | 11 | 00 | Возврат из подпрограммы |
Команды УП0 и УП1 анализируют значение регистра БУ, который может менять значение при выполнении некоторых команд, таких, как команды =СЧ, и в зависимости от его значения позволяют менять ход программы (осуществлять ветвление).
Следует иметь в виду, что при использовании команд, допускающих максимальное значение счетчика не более «F», прибавление 1 к счетчику, значение которого равно F, не вызывает его обнуления, поэтому дальнейшее использование этого счетчика в программе возможно только после сброса его соответствующей командой.
Пара команд ПП и ВОЗВРАТ предназначена для организации подпрограмм.
Команды БУП (см. раздел 4), УП0, УП1 и ПП могут осуществлять переход только внутри текущей зоны памяти. Для перехода в другую зону памяти следует сначала изменить базовый адрес командой БАП, а затем выполнить команду перехода. После выполнения команды БАП с указанием в качестве операнда нового базового адреса следующей командой должна быть команда перехода с операндом, показывающим адрес команды уже в другой зоне памяти. Последовательность таких команд позволяет переходить во все зоны памяти и размещать длинные программы, занимающие сразу всю память микроконтроллера.
7. Понятие линейных и нелинейных алгоритмов.
Программная реализация алгоритма, в котором команды выполняются последовательно одна за другой, согласно их физического расположения в оперативной памяти, называется линейным.
На практике часто требуется составить программу с непоследовательным выполнением команд (относительно их физического расположения в памяти). Если во время выполнения программы происходит нарушение последовательного (относительно физического расположения в памяти) выполнения операций, то такие алгоритмы называются нелинейными.
Нелинейные алгоритмы программируются с помощью команд условных и безусловных переходов, использования подпрограмм и команд, влияющих на значение регистра бита условия (БУ).
Нелинейные алгоритмы являются обычными в практике автоматического программного управления технологическим оборудованием и промышленными роботами. Практически всегда имеется необходимость выбора дальнейших действий робота в зависимости от текущих условий технологического процесса или от результата выполнения предыдущих операций. Например, если заготовка или деталь может находиться в одном из нескольких возможных положений, то автомат должен последовательно перемещаться в каждое из этих положений и по сигналу от датчика определять, найдена ли деталь. В том положении, в котором по результатам проверки будет обнаружена деталь, произойдет изменение последовательного выполнения команд по операции перехода, и по данному алгоритму управление будет передано той части программы управления автомата, в которой запрограммирован процесс дальнейших действий с найденной деталью.
8. Регистры однобитной памяти.
В разделе 5 уже указывалось, что в служебном ОЗУ имеется область адресов (от FFC0 до FFDF), в которой располагаются регистры однобитной памяти. Регистры однобитной памяти адресуются с помощью специально предназначенных для этого команд, которые будут рассмотрены далее и предназначены для работы (запоминания и обработки) с бинарной информацией.
В каждой ячейке памяти в диапазоне адресов от FFC0 до FFDF располагается по одному однобайтовому регистру, каждый регистр имеет свой уникальный номер от 00 до 1F, т.е. всего имеется 32 таких регистра.
Каждый бит любого из этих регистров имеет также свой уникальный номер, причём эта нумерация сквозная, т.е. в тридцатидвух однобайтовых регистрах всего имеется 32*8=256 бит, каждый из которых имеет свой номер от 00 до FF.
Распределение регистров однобитной памяти, и их адреса представлены в таблице 4.
К примеру, в ячейке памяти с адресом FFCA содержится регистр, имеющий номер 0A. Младший бит этого регистра (бит 0) имеет адрес 50, а старший бит (бит 7) имеет адрес 57. Следует заметить, что адрес регистра позволяет обращаться к этому регистру как к восьмиразрядной ячейке, а адрес бита позволяет обращаться к каждому биту отдельно внутри регистра.
Регистры однобитной памяти позволяют сохранять промежуточную информацию в процессе управления технологическим оборудованием, а также производить с этой информацией определённые необходимые действия по её преобразованию.
Регистры однобитной памяти Таблица 4 (начало).
Старшие разряды физического адреса | Младшие разряды физического адреса | Разряды байта | |||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | ||
Номера регистров | |||||||||||||||||
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | ||
Адреса битов | |||||||||||||||||
FFC.. | 00 | 08 | 10 | 18 | 20 | 28 | 30 | 38 | 40 | 48 | 50 | 58 | 60 | 68 | 70 | 78 | 0 |
01 | 09 | 11 | 19 | 21 | 29 | 31 | 39 | 41 | 49 | 51 | 59 | 61 | 69 | 71 | 79 | 1 | |
02 | 0A | 12 | 1A | 22 | 2A | 32 | 3A | 42 | 4A | 52 | 5A | 62 | 6A | 72 | 7A | 2 | |
03 | 0B | 13 | 1B | 23 | 2B | 33 | 3B | 43 | 4B | 53 | 5B | 63 | 6B | 73 | 7B | 3 | |
04 | 0C | 14 | 1C | 24 | 2C | 34 | 3C | 44 | 4C | 54 | 5C | 64 | 6C | 74 | 7C | 4 | |
05 | 0D | 15 | 1D | 25 | 2D | 35 | 3D | 45 | 4D | 55 | 5D | 65 | 6D | 75 | 7D | 5 | |
06 | 0E | 16 | 1E | 26 | 2E | 36 | 3E | 46 | 4E | 56 | 5E | 66 | 6E | 76 | 7E | 6 | |
07 | 0F | 17 | 1F | 27 | 2F | 37 | 3F | 47 | 4F | 57 | 5F | 67 | 6F | 77 | 7F | 7 |
Регистры однобитной памяти Таблица 4 (окончание).
Старшие разряды физического адреса | Младшие разряды физического адреса | Разряды байта | |||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | ||
Номера регистров | |||||||||||||||||
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1F | ||
Адреса битов | |||||||||||||||||
FFD.. | 80 | 88 | 90 | 98 | A0 | A8 | B0 | B8 | C0 | C8 | D0 | D8 | E0 | E8 | F0 | F8 | 0 |
81 | 89 | 91 | 99 | A1 | A9 | B1 | B9 | C1 | C9 | D1 | D9 | E1 | E9 | F1 | F9 | 1 | |
82 | 8A | 92 | 9A | A2 | AA | B2 | BA | C2 | CA | D2 | DA | E2 | EA | F2 | FA | 2 | |
83 | 8B | 93 | 9B | A3 | AB | B3 | BB | C3 | CB | D3 | DB | E3 | EB | F3 | FB | 3 | |
84 | 8C | 94 | 9C | A4 | AC | B4 | BC | C4 | CC | D4 | DC | E4 | EC | F4 | FC | 4 | |
85 | 8D | 95 | 9D | A5 | AD | B5 | BD | C5 | CD | D5 | DD | E5 | ED | F5 | FD | 5 | |
86 | 8E | 96 | 9E | A6 | AE | B6 | BE | C6 | CE | D6 | DE | E6 | EE | F6 | FE | 6 | |
87 | 8F | 97 | 9F | A7 | AF | B7 | BF | C7 | CF | D7 | DF | E7 | EF | F7 | FF | 7 |
9. Система команд микроконтроллера (часть 3).