
- •Теория микропроцессорных систем микроконтроллеры
- •Структура и функциональные возможности мк51
- •Электрический интерфейс мк51
- •Резидентная память данных
- •Работа блока управления и синхронизации
- •Элементы данных в мк51
- •Характеристика функциональных групп команд
- •2.5. Система команд семейства mcs-51.
- •2.5.1. Команды пересылки данных.
- •Команда обработки данных.
- •Команды передачи управления.
- •Характеристика периферийных блоков в составе мк51
- •Управление таймерами-счетчиками (т/с)
- •Описание вариантов конфигурации таймеров-счетчиков
- •Особенности реализации временных интервалов
- •Структура последовательного порта и принципы управления
- •Описание режимов работы уапп
- •Назначение и принципы функционирования системы прерываний
- •Управление приоритетами запросов прерываний
- •Работа системы обслуживания прерываний
- •Заполнение начальной области памяти программ
- •Шестнадцатиразрядные микроконтроллеры Motorola
- •Современные встраиваемые микроконтроллеры, выпускаемые производственной фирмой Freescale Semiconductor
- •Номенклатура и функциональный состав микроконтроллеров cемейства 68hcs12
- •2.1. Микроконтроллеры семейства 68нс12/912
- •2.1.3. Начальный запуск и обработка прерываний
- •2.1.4. Режимы работы и конфигурация микроконтроллеров
- •2.1.5. Функционирование и программирование Flash-памяти и эсппзу
- •2.1.6. Блок контроля функционирования и генератор тактовых импульсов
- •2.1.7. Параллельный ввод-вывод данных и подключение внешней памяти
- •2.1.8. Последовательные порты sci и spi
- •2.1.9. Таймерные модули и широтно-импульсные модуляторы
- •2.1.10. Модуль аналого-цифрового преобразователя atd
- •2.1.11. Модуль последовательного интерфейса msCan
- •2.1.12. Режим отладки bdm и установка контрольных точек
Характеристика функциональных групп команд
Все команды МК51 можно разделить на группы по функциональным признакам: передача данных, арифметические, логические, битовых операций, передача управления.
Команды арифметических операций, логические, битовые операции и команды сравнения модифицируют четыре флага, которые находятся в регистре PSW:
Р - жестко связанный с содержимым аккумулятора. Если количество единиц в нем нечетное, то (Р)=1, иначе (Р)=0;
АСС - устанавливается в "1", если при суммировании (вычитании) возник межтетрадный перенос (заем) в аккумуляторе;
С - устанавливается в "1", если возник перенос из старшего (АСС.7) бита в аккумуляторе или заем в старший бит;
OV - устанавливается в "1", если в результате суммирования/вычитания знаковых чисел возникло переполнение, то есть этот флаг свидетельствует о факте переполнения без указания типа - положительное или отрицательное;
При делении (OV)=1, если выполнялось деление на нуль.
При умножении (OV)=1, если результат больше 255.
Потоки передачи данных
Соответственно структуре памяти МК51 можно выделить три информационных потока: пересылка из ВПП в РПД, пересылка между ВПД и РПД, обмен данными внутри РПД (включая РСФ).
Возможные направления передачи байтов, битов и слов с указанием способа адресации показаны в виде графа на рис.3.2. Основным информационным каналом является аккумулятор (А), поэтому считают, что МК51 имеет аккумуляторно-ориентированную структуру. Внутри РПД возможная передача данных без использования аккумулятора, но при операциях с ВПП или ВПД он используется всегда. ВП доступна только через косвенную адресацию.
КОМАНДЫ ПЕРЕДАЧИ ДАННЫХ являются наиболее многочисленной группой. Они охватывают все потоки передачи, рассмотренные ранее. В таблице "Система команд МК51" команды сгруппированы по общему приемнику информации.
КОМАНДЫ АРИФМЕТИЧЕСКИХ и ЛОГИЧЕСКИХ ОПЕРАЦИЙ характеризуются тем, что для них одним из операндов всегда является содержимое аккумулятора, однако результат может помещаться или в аккумулятор, или на место второго операнда, если это прямо адресованный байт РПД или блока РСФ.
КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ. К данной группе относятся команды, которые реализуют безусловные и условные переходы, вызовы подпрограммы и возврат из подпрограммы.
По способу адресации перехода можно выделить такие типы:
1. ДЛИННЫЙ переход - осуществляется по АП в объеме 64К. В команде помещается полный 16-битовый абсолютный адрес перехода, который загружается в (РС). Мнемоника команд начинается с буквы L.
2. АБСОЛЮТНЫЙ переход - осуществляется в границах страницы ВПП (РПП) размером 2048 байтов (2К). В команде помещаются только 11 бит адреса (a0...a10). При выполнении команды в вычисленном адресе следующей команды (РС)=(РС)+2 младшие 11 бит заменяются на a0...a10, взятые с команды. Формат - номер 6. Мнемоника начинается с символа А.
3. КОРОТКИЙ ОТНОСИТЕЛЬНЫЙ переход - разрешает передать управления в границах - 128...+127 байтов относительно адреса команды, следующей за командой перехода, то есть относительно (РС)=(РС)+2 или (РС)=(РС)+3. Относительный адрес перехода rel помещается во втором или третьем байте команды. Мнемоника начинается с символа S для безусловных переходов. Команды условных переходов также реализованы по этому формату.
4. КОСВЕННЫЙ переход - разрешает передать управление по косвенному адресу, который формируется по содержимому регистра DPTR и смещению из аккумулятора. Позволяет организовать переход по адресу, вычисленному в процессе работы программы.
Ассемблер предполагает использование обобщенной мнемоники команд JМР и CALL, которые в процессе трансляции заменяются на оптимальные и допустимые по формату команды перехода (AJMP, SJMP, LJMP) или вызова (ACALL, LCALL).