Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория микропроцессорных систем АТ_Методическое...docx
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
3.72 Mб
Скачать

Работа блока управления и синхронизации

Кварцевый резонатор, подключенный к внешним выводам Х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 - с использованием символического имени, предоставленного пользователем. Для битов не допускается косвенная адресация!