MCS-51 (1031646), страница 6
Текст из файла (страница 6)
Впротивном случае на линии порта РЗ будет присутствовать "0".На рис. 2.7 - 2.10 показаны функциональные схемы одного вывода в каждом изпортов для серии 1816. Для серии 1830 конфигурация портов Р1—РЗ отличается тольковыходным усилительным каскадом, который представлен на рис. 2.11.Электрические параметры портов Р0—РЗ приведены в табл. 2.24.На рис.
2.7—2.10 фиксатор-защелка показан в виде D-триггера, тактируемого внутренним сигналом "Запись в защелку", который вырабатывается при записи данных в порт. Выходтриггера Q может быть подключен на внутреннюю шину ОМЭВМ через буфер В1 сигналом"Чтение защелки", что обеспечивает возможность программного чтения содержимого фиксатора. Значение сигнала непосредственно на выводе порта может быть программно считано навнутреннюю шину ОМЭВМ через буфер В2, управляемый внутренним сигналом "Чтение выводов".
Часть команд ОМЭВМ при чтении порта активизируют сигнал "Чтениезащелки", другая часть команд — сигнал "Чтение выводов".Как показано на рис. 2.7 и 2.9, выходные каскады порта Р0 (образованы транзисторами N1, N) и порта Р2 (образованы транзисторами N1, N2, N) через мультиплексоры MXмогут подключаться либо к выходу защелок, либо к внутренним шинам "Адрес/данные" и"Адрес". Последнее используется при обращении к внешней памяти. Во время обращенияк внешней памяти содержимое защелок порта Р2 не изменяется. В аналогичной ситуациив защелки порта Р0 всегда автоматически записываются "1" во все разряды.2728Из рис. 2.10 видно, что если защелка вывода порта РЗ содержит "1", то выходнымкаскадом управляет внутренний сигнал, названный на рисунке "Альтернативная функциявыхода", обеспечивающий выполнение соответствующей альтернативной функции. Еслиальтернативная функция предполагает, что данный вывод порта РЗ является входом, тозначение уровня сигнала на нем поступает на внутреннюю линию "Альтернативная функция входа".Все выводы портов PI, P2 и РЗ имеют внутренние подключенные к питанию подтягивающие резисторы (выполнены в виде показанных на рис.
2.8—2.Ю транзисторов N2,включенных в режиме источников тока). Каждый вывод указанных портов может незави-29симо от других использоваться как вход или как выход. Для использования вывода в качестве входа необходимо, чтобы его защелка содержала "1", которая при этом запирает выходной транзистор N.
Из-за наличия внутреннего подтягивающего резистора выводы портов P1, Р2, РЗ в режиме "оборванный вход" имеют уровень "1". Благодаря этой особенности порты P1, P2, РЗ иногда называют "квазидвунаправленными".Порт Р0 не имеет внутренних подтягивающих резисторов (рис. 2.7).
Транзистор N1в выходном каскаде выводов порта Р0 открыт только когда через эти выводы выдается "1"при обращениях к внешней памяти. Во всех других режимах работы транзистор N1 заперт. Таким образом, в случае использования порта Р0 в качестве выходного порта общего назначения, необходимо устанавливать на его выводах внешние подтягивающие резисторы для задания уровня "1". Запись "1" в защелку вывода порта Р0 закрывает транзисторN и при отсутствии внешнего подтягивающего резистора переводит вывод в высокоимпедансное состояние. При этом данный 'вывод может использоваться в качестве входа. Еслипорт Р0 используется в качестве порта ввода/вывода общего назначения, каждый из еговыводов может независимо от других работать как вход или как выход. Порт Р0 являетсяв чистом виде двунаправленным портом.Рис.
2.11. Разряд порта 1—3 (серия 1830)Все разряды фиксаторов-защелок портов Р0—РЗ по сбросу устанавливаются в"1".Если защелка вывода порта содержит "0", то для настройки данного вывода на ввод необходимо записать в защелку "1".Процедура записи в порт. При выполнении команды записи в порт новое значениезаписывается в защелку в фазе S6P2 последнего машинного цикла команды. Однако, новое содержимое защелки выводится непосредственно на выходной контакт порта только вфазе S1P1 следующего машинного цикла.При переходе выводов портов PI, P2 и РЗ из состояния "0" в состояние "1" дляуменьшения времени переключения используется дополнительный транзистор N1 (рис.2.8—2.10), который включается на время, равное двум периодам ТBQ тактовой частотыОМЭВМ fBQ (транзистор N1 открыт в течение фаз S1P1 и S1P2 машинного цикла, в котором происходит смена состояния вывода порта).
В открытом состоянии транзистор N1обеспечивает ток приблизительно в 100 раз больший, чем постоянно открытый транзисторN2. В схемах на рис. 2.8 - 2.10 выдержка в два периода TBQ обеспечивается элементом DL.30Как уже отмечалось, рассматривавшиеся до настоящего момента схемы на рис. 2.8 - 2.10относятся к n-МОП ОМЭВМ семейства МК51 (серия 1816). Аналогичные структуры дляkМОП ОМЭВМ семейства МК51 (серия 1830) отличаются только выходным каскадом..Схема выходного каскада портов Р1- РЗ для kМОП ОМЭВМ семейства МК51 показана на рис. 2.11. Рассматриваемый выходной каскад содержит три р-канальных МОПтранзистора (PI, Р2, РЗ), подключенных к источнику питания, и один n-МОП транзистор,подключенный к общей шине. Можно отметить, что n-МОГ транзисторы, используемые ввыходных каскадах ОМЭВМ серий 1816 и 1830 открыты, когда на их затворах логическая"1" и закрыты, когда на их затворах логический "0".
А р-МОП транзисторы, наоборот, открыты, когда на их затворах "0" и закрыты, когда на затворах "1".Транзистор Р1 на рис. 2.11 включается на два периода TBQ для уменьшения временипереключения при переходе вывода порта из состояния "0" в состояние "1". Как толькооткрывается транзистор Р1, сигнал с выхода порта через инвертор поступает на затвортранзистора РЗ и также открывает его.
Этот инвертор и транзистор РЗ образуют триггер,который удерживает состояние логической "1" на выходе порта после того, как транзистор Р1 закрывается. Транзистор РЗ при этом играет роль подтягивающего резистора аналогично N2 на рис. 2.8 - 2.10. Однако, из рис. 2.11 видно, что если вывод порта находитсяв состоянии "1", то внешняя помеха, кратковременно устанавливающая "0" на данном выходе, способна запереть транзистор РЗ и перевести вывод порта в высокоимпедансное состояние. Для предотвращения подобной ситуации служит транзистор Р2, работающий впротивофазе с транзистором N.
После исчезновения помехи транзистор Р2 через инверторвновь откроет транзистор РЗ. Мощность транзистора Р2 приблизительно в 10 раз меньшемощности транзистора РЗ.Режим "Чтение—Модификация—Запись" Команды чтения портов ОМЭВМ делятся на две категории: команды считывающие информацию с выходов защелок, и команды, считывающие информацию непосредственно с внешних контактов выводов порта.Команды считывающие информацию с выходов защелок, реализуют так называемый режим "Чтение— Модификация—Запись", заключающийся в том, что команда считываетсостояние защелки, при необходимости модифицирует полученное значение и записываетрезультат обратно в защелку.Ниже приводятся команды, работающие в режиме "Чтение—МодификацияЗапись".
Во всех случаях, когда операндом и регистром назначения результата являетсяпорт или бит порта, команды считывают информацию с выходов защелок, а не с внешнихконтактов выводов порта.ANL (логическое И, например, AKL P1, А)ORL (логическое ИЛИ, например, ORL Р2,А)XRL (логическое ИСКЛЮЧАЮЩЕЕ ИЛИ, например, XRL РЗ,А)JBC (переход, если бит = 1 и очистка бита, например, JBC Р1.1, LABEL)CPL (инверсия бита, например, CPL РЗ.0)INC (инкремент, например, INC P2)DEC (декремент, например, DEC P2)DJNZ (декремент и переход, если не ноль, например, DJNZ РЗ, LABEL)MOV PX. Y, С (пересылка бита переноса в бит Y порта X)CLR PX. Y (очистка бита Y порта X)SETB PX.
Y (установка бита Y порта X)Не очевидно, что последние три команды в приведенном списке работают в режиме"Чтение—Модификация—запись", однако, это так. Указанные команды считывают с порта весь байт целиком, модифицируют адресуемый бит, после чего записывают полученный новый байт обратно в фиксатор-защелку порта.Чтение информации с выходов защелок, а не с внешних контактов выводов портапозволяет исключить возможную в ряде случаев неправильную интерпретацию уровнянапряжения на выводе порта. К примеру, вывод порта может использоваться для управле-31ния базой n-p-n транзистора. В этом случае когда в защелку вывода порта записывается"1", транзистор открывается. Если после этого ОМЭВМ прочитает состояние внешнегоконтакта рассматриваемого вывода порта, то получит значение логического "0", т. к.
наконтакте в это время присутствует напряжение базы открытого транзистора. Чтение жевыхода защелки покажет истинное значение сигнала на выводе порта, т. е. "1".2.2.7. Память данныхПамять данных предназначена для приема, хранения и выдачи информации, используемой в процессе выполнения программы.
Память данных, расположенная на кристалле ОМЭВМ, состоит из регистра адреса ОЗУ, дешифратора, ОЗУ и указателя стека.Регистр адреса ОЗУ предназначен для приема и хранения адреса выбираемой с помощью дешифратора ячейки памяти, которая может содержать как бит, так и байт информации. ОЗУ представляет собой 128 восьмиразрядных регистров, предназначенных дляприема, хранения и выдачи различной информации.Указатель стека представляет собой восьмиразрядный регистр, предназначенныйдля приема и хранения адреса ячейки стека, к которой было последнее обращение. Привыполнении команд LCALL, ACALL содержимое указателя стека увеличивается на 2.