
- •Росжелдор
- •Лабораторная работа. Исследование функциональных узлов миус. Цифро-аналоговые преобразователи
- •Цель работы Изучить принцип формирования аналоговых сигналов в микропроцессорных системах, познакомиться с работой цап.
- •Общие сведения
- •Подготовка к работе
- •Выполнение работы
- •Содержание отчета
- •Предварительные расчеты и результаты дискретизации заданных сигналов.
- •1. Цель работы
- •2. Общие сведения
- •2.1. Память программ
- •2.2. Память данных
- •2.3. Программная модель микроконтроллеров семейства Intel 8051
- •2.4 Система команд микроконтроллеров семейства Intel 8051
- •2.4.1. Правила записи программ на языке ассемблера
- •2.4.2. Режимы адресации данных
- •2.4.3. Общая характеристика системы команд
- •2.4.4. Директивы ассемблера
- •3. Подготовка к работе
- •4. Выполнение работы
- •5. Содержание отчета
- •Формат регистра рsw
- •Формат регистра pcon
- •Формат регистра tcon
- •Формат регистра ie
- •Формат регистра ip
- •Лабораторная работа. ИнтЕгрированная среда разработки
- •1. Цель работы
- •2. Общие сведения
- •2.1. Этапы подготовки программного обеспечения микропроцессорных систем
- •2.2. Общая характеристика программы Keil mVision ide
- •2.3 Интерфейс пользователя и общие правила работы
- •3. Подготовка к работе
- •4. Выполнение работы
- •4.1. Создание нового проекта
- •4.2. Создание исходного текстового файла
- •Добавление файла в рабочую группу и настройка проекта
- •Компиляция и компоновка проекта
- •Отладка проекта
- •5. Содержание отчета
- •Инструменты отладчика
- •Лабораторная работа Последовательный порт однокристальных микроконтроллеров семейства Intel 8051
- •1. Цель работы
- •2. Общие сведения
- •3. Подготовка к работе
- •Выполнение работы
- •5.Содержание отчета
- •Лабораторная работа Этапы Подготовки программного обеспечения для микропроцессорных систем. Программаторы
- •1. Цель работы
- •2. Общие сведения
- •Подготовка к работе
- •Выполнение работы
- •Сейчас будет выполнено полное тестирование аппаратуры программатора. Убедитесь, что в колодке программатора нет микросхемы
- •Содержание отчета
- •1. Цель работы
- •2. Общие сведения
- •3. Подготовка к работе
- •4. Выполнение работы
- •Проверка работоспособности устройств платы контроллера-конструктора kit-552-p
- •Проверка работы программы циклической передачи данных в последовательный порт
- •5. Содержание отчета
2.4.3. Общая характеристика системы команд
Набор команд микроконтроллеров семейства включает 42 мнемонических обозначения, связанных с конкретными способами адресации и типами данных. Всего система команд содержит 111 базовых команд, разделенных по функциональному признаку на группы:
команды передачи данных;
команды арифметических операций;
команды логических операций;
команды ветвления и передачи управления;
команды битовых операций.
В таблицах Приложения 2 приведены команды микроконтроллеров семейства Intel 8051. Для каждой команды указаны: название, мнемокод, двоичный код операции, количество тактов, байтов и машинных циклов, символическое описание операции.
Большую часть команд передачи данных составляют операции пересылки и обмена байтов. Все команды данной группы не модифицируют флаги результата, за исключением команд загрузки PSW и аккумулятора (флаг Р).
В зависимости от способа адресации и места расположения операнда можно выделить девять типов операндов, между которыми возможен информационный обмен, в том числе и без участия аккумулятора.
Группу команд арифметических операций образуют команды, выполняющие операции сложения, вычитания, умножения, деления, десятичной коррекции и инкремента/декремента байтов. Команды ADD и ADDC допускают сложение аккумулятора с большим числом операндов. Также существуют четыре команды SUBB, что позволяет производить вычитание байтов и многобайтных двоичных чисел.
Группу команд логических операций образуют команды, реализующие функционально полную систему логических операций над байтами. Это операции И, ИЛИ, НЕ, исключающее ИЛИ, циклические сдвиги и обмен тетрадами.
Отличительной особенностью команд операций с битами является то, что они оперируют с одноразрядными операндами. В качестве таких операндов могут выступать отдельные биты некоторых регистров специальных функций и портов, а также 128 программных флагов пользователя. Существуют команды сброса CLR, установки SETB и инверсии CPL битов, а также их конъюнкции и дизъюнкции.
К группе команд передачи управления относятся команды, условных и безусловных переходов, вызова и возврата из подпрограмм, а также пустая операция NOP. В большинстве команд используется прямая адресация.
Система условных переходов предоставляет возможность осуществлять ветвление по следующим условиям: аккумулятор содержит нуль, содержимое аккумулятора не равно нулю, перенос равен единице, перенос равен нулю, адресуемый бит равен единице, адресуемый бит равен нулю.
Для организации программных циклов удобно пользоваться командой DJNZ. В качестве счётчика циклов может использоваться не только регистр, но и прямоадресуемый байт (например, ячейку резидентной памяти данных).
По разрядности указываемого адреса можно выделить три разновидности команд безусловных переходов.
Длинный переход (Long) по всему адресному пространству памяти программ – LJMP ad16.
Абсолютный переход (Absolute) в пределах одной страницы памяти программ размером 2 Кбайта – АJMP ad11. Такая команда содержит только 11 младших битов адреса перехода.
Короткий относительный переход (Short) позволяет передать управление в пределах от – 128 до +127 байт относительно адреса следующей команды – SJMP rel. Относительный адрес перехода содержится во втором байте команды.
Косвенный относительный переход позволяет передавать управление по косвенному адресу – JMP @А+DPTR. Эта команда удобна тем, что предоставляет возможность организации перехода по адресу, вычисляемому самой программой и неизвестному при написании исходного текста программы.
Обслуживание подпрограмм производится при помощи ряда специальных команд. Для вызова подпрограммы необходимо использовать команды LCALL и ACALL. Эти команды, в отличие от команд перехода LJMP и AJMP, сохраняют в стеке адрес возврата в основную программу. Для возврата из подпрограммы необходимо выполнить команду RET. Для возврата из подпрограммы обслуживания прерывания используется команда RETI, отличающаяся от команды RET тем, что разрешает прерывания обслуженного уровня.