Устройство управления и синхронизации
К внешним выводам XTAL1 и XTAL2 МК51 подключается кварцевый резонатор, который управляет работой внутреннего генератора OSC. С его помощью устройство управления формирует сигналы синхронизации с частотой FOSC. Устройство управления и синхронизации формирует машинный цикл фиксированной длительности. Каждый машинный цикл равен 12 периодам резонатора или 6 состояниям первичного управляющего автомата.
Состояния обозначаются как S1 - S6. Каждое состояние содержит две фазы P1 и P2. В фазе Р1, как правило, выполняется операция в АЛУ, а в фазе Р2 выполняется межрегистровая передача. Большинство сигналов устройства управления являются внутренними и ненаблюдаемыми. Внешними, наблюдаемыми сигналами синхронизации МК51 являются только сигнал резонатора XTAL2 и строб адреса внешней памяти ALE (рисунок 4.4).
Рисунок 4.4 - Внешние сигналы синхронизации
Сигнал ALE формируется дважды за машинный цикл (S1P2 - S2P1 и S4P2 - S5P1). Этот сигнал используется для управления процессом обращения к внешней памяти. Этот же сигнал можно использовать для синхронизации работы и тактирования внешних устройств, подключенных к МК51.
Весь машинный цикл состоит из 12 фаз, начиная с S1P1 и кончая S6P2. Поэтому при частоте кварцевого резонатора 12 МГц период выполнения машинного цикла составляет 1 · 10-6 с. В этом случае период сигнала ALE составляет 0.5 · 10-6 с.
Большинство команд МК51 выполняются за один машинный цикл. Команды, оперирующие 16-битовыми словами, или требующие обращения к внешней памяти программ или данных, выполняются за два машинных цикла. Только команды умножения и деления выполняются за четыре машинных цикла. На основе знания этих особенностей в работе схемы синхронизации выполняется расчет необходимого времени выполнения прикладных программ.
Порты ввода/вывода
Все четыре порта МК51 являются двунаправленными. Каждый из них состоит из регистра-защелки, выходного драйвера и входного буфера. Выходные драйверы портов Р0 и Р2 и входной буфер порта Р0 используются при обращении к внешней памяти программ и внешней памяти данных. Через порт Р0 в режиме временного мульти-плексирования выводится младший байт адреса внешней памяти, а затем передается или принимается байт данных/команды. Через порт Р2 выдается старший байт адреса при 16-битовых адресах.
Все выводы порта Р3 могут быть использованы для альтернативных функций (таблица 4.3). Для разрешения альтернативных функций в соответствующие разряды регистра-защелки порта Р3 необходимо записать «1».
Таблица 4.3 - Альтернативные функции порта P3
Каждый бит любого порта может быть независимо настроен на ввод или вывод информации. Для использования разряда порта на ввод необходимо записать «1» в соответствующий триггер-защелку, что закрывает выходной МОП-транзистор. Есть некоторая разница в строении порта Р0 и портов Р1, Р2 и Р3. Порт Р0 является двунаправленным, а порты Р1 - Р3 - квазидвунаправленными.
Для вывода информации в нужный разряд порта Р0 (рисунок 4.5) используется сигнал «Запись в порт». Сигнал «Управление» переключает мультиплексор для вывода через порт Р0 байта адреса или данных, поступающих по линии «Адрес/данные». В этом режиме верхний МОП-транзистор открывается только при выдаче бита «1». В других случаях этот транзистор заперт. Поэтому линии порта Р0, используемые для вывода, являются выходами с открытым стоком.
Рисунок 4.5 - Структура одного разряда порта Р0
Строение битов порта Р2 близко к строению битов порта Р0, а строение порта Р1 аналогично строению порта Р3 (рисунок 4.6).
Для выполнения альтернативных функций порта Р3 в его схеме имеются соответствующие выводы ( «Альтернативная функция выхода» и «Альтернативная функция входа». Для разрешения использования альтернативных функций в соответствующие триггеры-защелки порта Р3 необходимо записать «1».
При чтении информации из разрядов порта Р0 и других портов могут использоваться два сигнала:
1. чтение буфера-защелки («Чтение буфера»);
2. чтение контакта вывода («Ввод»).
Соответственно, информация будет читаться из буфера-защелки или с внешнего вывода порта. Вид чтения определяется типом команды. Разные способы чтения необходимы, чтобы исключить неправильное чтение содержания порта в некоторых командах, искажаемое за счет мощной внешней нагрузки разрядов порта.
Рисунок 4.6 - Структура одного разряда порта Р3
По сигналу сброса во все регистры-защелки всех портов записывается «1», и, таким образом, все порты настраиваются на режим ввода.
Выходные линии портов Р1, Р2 и Р3 по нагрузочной способности могут работать на один вход ТТЛ-схемы. Выходы порта Р0 могут быть подключены к двум ТТЛ-входам. Входные сигналы всех портов могут обслуживаться как выходами ТТЛ-схем, так и n-МОП элементами.
Доступ к внешней памяти
Доступ к внешней памяти бывает двух типов: доступ к внешней памяти программ и доступ к внешней памяти данных. При доступе к ВПП в качестве сигнала чтения используется сигнал (Program Store Enable). Для доступа к ВПД используются сигналы чтения и записи .