замыкающих и размыкающих с двумя контактами. Попробуйте приспособить двухвыводную кнопку к любой из указанных схем, и вы сами придете к выводу, что это невозможно. Поэтому на практике часто приходится использовать схему «антидребезга» с использованием одновибратора (в том числе реализованного программными способами в микроконтроллерах) — при всех ее недостатках.
Рис. 16.10. Схемы «антидребезга» на RS-триггерах
D-триггеры
D-триггеры получили свое название от слова «delay», что означает «задержка». На самом деле существуют две их разновидности, формально различающиеся только тем, что первая из них управляется уровнем сигнала (статический D-триггер или триггер-защелка), а вторая — фронтом импульса (динамический D-триггер). Фактически же это разные по устройству и области использования схемы.
Для того чтобы отличить статический D-триггер от динамического, мы в обозначении на схеме для первого поставим букву L (от слова «level» — уровень), а для второго — букву «Е» (от слова «edge» — фронт). Эти обозначения не являются общепринятыми, и в дальнейшем мы их использовать не будем, только здесь — для наглядности. Микросхема 561ТМЗ содержит четыре статических триггера-защелки с общим входом синхронизации, а 561ТМ2 — два динамических D-триггера с раздельными дополнительными входами R и S (мы с ней уже знакомы — см. рис. 16.5). Если тип вообще не указывается, то обычно по умолчанию предполагается, что речь идет о динамических D-триггерах.
Статический D-триггер легко получить из RS-триггера путем небольшой модификации его схемы. Если из схемы на рис. 16.11, а исключить вход С (например, объединив входы каждого элемента и превратив их тем самым в простые инверторы), то получится довольно бесполезное устройство, которое на выходе Q будет просто повторять входные сигналы, а на втором выходе, соответственно — выдавать их инверсии. Наличие тактового входа С (от слова «clock», которое в цифровой электронике значит «тактовый импульс») все меняет.
Рис. 16.11. D-триггеры:
а — схема статического D-триггера;
б — схема динамического D-триггера на основе двух статических,
в — счетный триггер на основе динамического D-триггера
Если мы обратимся к диаграммам на рис. 15.8, а, то увидим, что при наличии на этом входе уровня логической единицы входные сигналы будут пропускаться на вход RS-триггера, и схема станет повторять на выходе Q уровни на входе D. Если же мы установим на входе С уровень нуля, то схема немедленно «зависнет» в состоянии выхода, соответствующем входному уровню непосредственно перед приходом отрицательного фронта на вход С, — т. е. запомнит его! Поэтому такой триггер и называют защелкой — при подаче на вход С короткого положительного тактового импульса он как бы «защелкивает» состояние входа. Статический D-триггер можно использовать в качестве буферного регистра для хранения данных — например, результатов счета импульсов на то время, пока идет сам процесс счета. Статическая энергозависимая память (SRAM) также, как правило, использует такие триггеры в качестве элементарных ячеек.
Динамические D-триггеры более универсальны, и область применения у них куда шире, чем у статических. Динамический триггер устроен более сложно. Один из способов построения динамического D-триггера из двух статических показан на рис. 16.11, б. Эта схема работает следующим образом: когда на общем входе С наличествует отрицательный уровень, состояние входа D переписывается на выход первого (слева) триггера, при этом второй триггер заперт. Сразу после положительного фронта на входе С это состояние переписывается во второй триггер и появляется на выходе Q, а первый триггер запирается. Таким образом, запоминание состояния общего D-входа происходит в точности в момент положительного перепада уровней и никогда больше. Если изменить местоположение инвертора и присоединить его ко входу второго триггера, а на первый триггер подавать тактовые импульсы напрямую, то срабатывание станет происходить по отрицательному фронту, и такой тактовый вход будет считаться инверсным. Для того чтобы получить дополнительные входы асинхронной принудительной установки триггера в нулевое и единичное состояние (R- и S-входы), нужно для обоих статических триггеров выходные (правые по схеме рис. 16.11, а) элементы сделать