
- •Теория микропроцессорных систем микроконтроллеры
- •Структура и функциональные возможности мк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 и установка контрольных точек
Работа блока управления и синхронизации
Кварцевый резонатор, подключенный к внешним выводам Х1 и Х2 (рис.11.4), управляет работой внутреннего генератора (рис.11.2), который формирует внутренние сигналы синхронизации.
Устройство управления МК51 на основе сигналов синхронизации формирует машинный цикл фиксированной продолжительности, которая равняется 12 периодам резонатора или 6 состояниям первичного автомата управления (ПАУ) S1...S6. Каждое состояние ПАУ содержит в себе две фазы Р1 и Р2 сигналов резонатора. Соотношение сигналов синхронизации и состояний ПАУ показано на рис.11.3.
Так, весь машинный цикл состоит из 12 фаз, начиная из фазы S1P1 и заканчивая фазой S6P2. При частоте резонатора 12 МГц машинный цикл длится 1 мкс.
В фазе Р1 выполняется операция в АЛУ, в фазе Р2 осуществляется межрегистровая передача. Напомним, что в АЛУ выполняется не только операция, заданные непосредственно в команде, но и все промежуточные действия, связанные с вычислением адресов команд и операндов.
Сигнал ALE формируется два раза за машинный цикл в фазах S1P2-S2P1 и S4P2-S5P1 независимо от типа команды и используется для управления процессом обращение к внешней памяти (ВПП и ВПД). Сигнал ALE, таким образом, сыграет роль внешнего синхросигнала для других БИС, подключенных к МК51.
Рис. 11.3. Примеры циклов выполнения команд в МК51: а) INC A; б) команда 2 байта – 1 МЦ ADD A,#data; в) 1 байт – 2 МЦ INC DPTR г) любая команда MOVX.
Элементы данных в мк51
МК51 работает с четырьмя типами данных:
бит - битовые логические операции - бит в РПД или РСФ;
полубайт - в командах межтетрадного обмена, двоично-десятичные цифры;
байт - большинство команд - данные или адреса РПД и ВПД;
слово (2 байта) - команды переходов, загрузка - адреса ПП или ВПД, непосредственные данные для DPTR.
Возможные форматы команд показаны на рис.3.1 в пособии. Во всех форматах первый байт содержит в себе код операции, во втором и третьем байтах находятся адреса операндов, памяти программ или непосредственные данные.
При описании команд в системе команд приняты следующие условные или обобщенные обозначения:
#d - непосредственный байтовый операнд;
ad - восьмибитовый прямой адрес байта в РПД;
bit - прямой адрес бита;
rel - восьмиразрядное смещение в командах относительного перехода;
ads - прямой восьмибитовый адрес источника в РПД;
add - прямой восьмибитовый адрес приемника в РПД;
ad16h, ad16l - старшая и младшая части прямого адреса перехода в диапазоне 64К;
#d16h, #d16l - старшая и младшая части 16-битового непосредственного операнда.
Расположение 16-битовых адресов и операндов в формате отличаются от К580: во втором байте находится старшая часть, а в третьем байте - младшая.
Важное преимущество системы команд МК51 состоит в том, что мнемоника команд не зависит от типа операндов и адресации: например, все пересылки (байтовые и битовые), загрузка непосредственных операндов имеют мнемонику MOV.
Способы адресации данных
Система команд МК51 предполагает четыре основных типа адресации:
- прямую - адрес операнда или перехода содержится в команде;
- непосредственную - операнд, который загружается, помещается во втором или во втором и третьем байтах команды;
- косвенную – адрес ячейки ВПД (ВПП) находится (вычисляется) в каком-нибудь специальном регистре, ссылка на который содержится в команде;
- регистровую - источником или приемником операнда является регистр активного банка, ссылка на который содержится в команде.
Кроме того, в распоряжении программиста есть такие разновидности косвенной адресации:
- относительная - в команде содержится не весь абсолютный адрес перехода, а лишь смещение в байтах от текущего содержимого РС;
- страничная - в регистре-фиксаторе порта P2 содержится адрес области памяти, выведенной на границу блока размером 256 байтов (так называемый номер страницы), а в другом регистре (R0 ли R1) находится смещение по странице в байтах. Исполнительный адрес ячейки памяти формируется стыковкой содержимого P2 (старшая часть адреса) и содержимого регистров R0 ли R1 (младшая часть адреса);
- базовая - указательный регистр DPTR содержит начальный (так называемый базовый) абсолютный адрес области памяти, где находятся данные произвольной структуры. К адресу базы прибавляется байтовое смещение для определения адреса нужной ячейки памяти. Источником смещения является аккумулятор. Смещение - это беззнаковое число в диапазоне 0...255.
Использование символических имен
Благодаря наличию компилятора Ассемблер МК51 предусматривает возможность присвоения символических имен как байтам РПД, адресам ВП и РПД, непосредственным данным (константам), так и отдельным битам.
Символические имена делятся на такие:
- зарезервированные (ACC, PSW, SBUF, TCON, и т.д.). Много из таких имен упоминались при рассмотрении аппаратных ресурсов МК51;
- имена, определяемые пользователем с помощью директив Ассемблера.
Таким образом, на уровне Ассемблера в команде может присутствовать или прямой адрес байта, или его символическое имя:
MOV PSW, #0 и MOV 0D0H, #0 - это одно и то же.
Адресация битов
Все отдельно адресуемые биты можно поделить на две группы:
1) биты из 16-байтовой области ОЗУ (0-127) - рис.2.6 в пособии;
2) биты блока аппаратных регистров (128-255) - рис.2.7 в пособии.
Биты из области 1 доступны путем указания в команде прямого адреса бита или символического имени бита, присвоенного пользователем раньше. Биты из области 2 доступны или через прямой адрес бита (рис.2.7), или с использованием зарезервированного имени (C, OV, F0). Кроме того, адресовать любой бит из области 1 и 2 можно с использованием битового селектора:
АСС.4 - четвертый бит аккумулятора;
PSW.5, TCON.2 и т.д. – с использованием зарезервированного имени регистра;
V1.3, MY_2.0 - с использованием символического имени, предоставленного пользователем. Для битов не допускается косвенная адресация!