- •Российская открытая академия транспорта микропроцессорные информационно-управлчющие системы
- •Микроконтроллеры серии 1830ве51
- •1.1. Структурная схема микроконтроллера 1830ве51
- •1.1.1. Блок управления
- •1.1.2. Арифметико-логический блок
- •1.1.3. Организация памяти программ
- •1.1.4. Резидентная память данных
- •1.1.5. Счетчик команд и регистр указателя данных
- •1.1.6. Регистр указателя стека
- •1.1.7. Таймеры/счетчики
- •Режимы работы таймера/счетчика
- •1.1.8. Блок последовательного интерфейса и прерываний
- •1.1.9. Порты мк51
- •1.1.10. Начальная установка и режимы работы мк51
- •1.2. Система команд микроконтроллера 1830ве51
- •1.2.1. Команды пересылки данных
- •1.2.2. Команды арифметических операций
- •1.2.3. Команды логических операций
- •1.2.4. Команды операций над битами
- •1.2.5. Команды передачи управления
- •1.3. Структурная организация систем на основе микроконтроллеров
- •1.3.1. Подключение внешней памяти
- •1.3.2. Расширение каналов ввода/вывода информации
- •2. Программная реализация типовых вычислительных процедур
- •2.1 Типовые структуры схем алгоритмов обработки данных
- •2.2 Приемы программирования
- •2.3 Примеры программ обработки данных в мк51
- •2.3.1 Примеры использования команд передачи данных
- •2.3.2 Примеры использования команд арифметических операций
- •2.3.3 Примеры использования команд логических операций
- •3. Применение микропроцессорных информационно-управляющих систем на железнодорожном транспорте
- •3.1. Классификация микропроцессорных информационно-управляющих систем на железнодорожном транспорте
- •3.2 Автоматизированные системы управления и контроля движения поездов
- •3.3 Автоматизированные системы диспетчерского контроля
- •3.4 Информационные системы обслуживания пассажиров
- •Литература
1.2. Система команд микроконтроллера 1830ве51
Система команд МК51 содержит 111 базовых команд, которые по функциональному признаку можно подразделить на следующие пять групп:
команды передачи данных;
арифметические команды;
логические команды с байтовыми переменными;
команды битового процессора;
команды ветвления программ и передачи управления.
Формат команд - одно-, двух- и трехбайтовый, причем большинство команд (94) имеют формат один или два байта. Первый байт команды любого типа и формата всегда содержит код операции, второй и третий байты содержат либо адреса операндов, либо непосредственные операнды.
Операнды могут быть четырех типов: биты, тетрады (4 разряда), байты и 16-битные слова. Время выполнения команд составляет 1, 2 или 4 машинных цикла. При тактовой частоте 12 МГц длительность машинного цикла составляет 1 мкс, при этом 64 команды исполняются за 1 мкс, 45 команд - за 2 мкс и 2 команды (умножение и деление) - за 4 мкс.
В МК51 поддерживает следующие способы адресации:
Прямая адресация (DirectAddressing). Операнд определяется 8-битным адресом в команде. Эта адресация используется только для внутренней памяти данных и регистров специальных функций;
Косвенная адресация (IndirectAddressing). В этом случае команда адресует регистр, в котором содержится адрес операнда. Данный вид адресации может применяться при обращении как к внутреннему, так и внешнему ОЗУ. Для указания 8-битных адресов могут использоваться регистрыR0 иR1 выбранного банка памяти или указатель стекаSP. Для 16-битной адресации используется только регистрDPTR.
Регистровая адресация (RegisterInstruction). Данная адресация применяется для доступа к регистрамR0…R7 выбранного банка. Адреса регистров содержатся в байте кода операции и представляют собой трехбитовое поле, определяющее номер регистра. Выбор одного из четырех регистровых банков осуществляется программированием битов селектора банка (RS1,RS0) вPSW;
Непосредственная адресация (Immediateconstants). Операнд содержится непосредственно в поле команды вслед за кодом операции и может занимать один или два байта (data8,data16).
Индексная адресация (IndexedAddressing). Индексная адресация используется при обращении к памяти программ и только при чтении. В этом режиме осуществляется просмотр таблиц в памяти программ. 16-битовый регистр (DPTRилиPC) указывает базовый адрес требуемой таблицы, а аккумулятор указывает на точку входа в нее. Адрес элемента таблицы находится сложением базы с индексом (содержимым аккумулятора).
Другой тип индексной адресации применяется в командах “перехода по выбору”. При этом адрес перехода вычисляется как сумма указателя базы и аккумулятора.
Неявная адресация (Register-Specific Instructions). Некоторые команды используют индивидуальные регистры (например, операции с аккумулятором,DPTR), при этом данные регистры не имеют адреса, указывающего на них; это заложено в коде операции.
В табл. 1.15 приведены обозначения и символы, используемые в командах.
Таблица 1.15
Обозначение, символ |
Назначение |
А |
Аккумулятор |
Rn (n = 0... 7) |
Регистр общего назначения в выбранном банке памяти |
direct |
Прямо адресуемый 8-ми битовый внутренний адрес ячейки данных, который может быть ячейкой внутреннего ОЗУ (0…127) или SFR (128…255) |
@Ri(i= 0, 1) |
Регистр общего назначения в выбранном банке регистров, используемый в качестве регистра косвенного адреса |
#data 8 |
8-ми битовый непосредственный операнд |
#data 16 |
16-ти битовый непосредственный операнд |
data H |
Старшие биты (15…8) непосредственных 16-ти битовых данных |
data L |
Младшие биты (7…0) непосредственных 16-ти битовых данных |
addr 11 |
11-ти битовый адрес назначения |
addr 16 |
16-ти битовый адрес назначения |
addr L |
Младшие биты адреса назначения |
disp 8 |
8-ми битовый байт смещения со знаком |
bit |
Бит с прямой адресацией, находящийся во внутреннем ОЗУ или SFR |
/bit |
Инверсия прямо адресуемого бита |
rel |
Относительный адрес перехода |
(X) |
Содержимое элемента Х |
((X)) |
Содержимое по адресу, хранящемся в элементе Х |
(X) [M] |
Разряд М элемента Х |
(X) [M1…M2] |
Группа разрядов М1…М2 элемента Х |