Использование RS-триггера является самым «капитальным» способом решения проблемы дребезга контактов. Стандартная схема включения показана на рис. 9.8, а
, однако нет никакой нужды «городить» такую схему с резисторами, относительно которых еще нужно соображать, к чему их подключать (для варианта с «ИЛИ-HE» их пришлось бы присоединять к «земле»). На рис. 9.8, б показана упрощенная схема, которая работает точно так же и при этом в ней пригодны любые инверторы, в том числе и одновходовые.
Рис. 9.8
. Схемы «антидребезга» на RS-триггерах
Общий недостаток схем антидребезга как на RS-триггерах, так и на элементе «Исключающее ИЛИ» (см. рис 8,3, б
) — необходимость переключающей кнопки с тремя выводами, которых на рынке предлагается гораздо меньше, чем обычных замыкающих и размыкающих с двумя контактами. Попробуйте приспособить двухвыводную кнопку к любой из указанных схем и вы сами придете к выводу, что это невозможно. Поэтому на практике часто приходится прибегать к схеме на одновибраторе (в том числе реализованной программными способами в микроконтроллерах), несмотря на все ее недостатки.
D-триггеры
D-триггеры получили свое название от слова «delay», что означает «задержка». На самом деле их существует две разновидности, формально различающиеся только тем, что первая (статический
D-триггер или триггер-защелка) управляется уровнем сигнала, как и все схемы, рассмотренные ранее, а вторая (динамический D-триггер) управляется фронтом импульса. Фактически же это разные по устройству и области применения схемы, потому объединение их под одним названием представляется не совсем удачным. Так, микросхема 561ТМЗ содержит четыре статических триггера-защелки, а ТМ2 — два динамических D-триггера с дополнительными входами R и S. Если тип не указывается, то обычно по умолчанию предполагается, что речь идет о динамических D-триггерах.Статический D-триггер легко получить из RS-триггера путем небольшого усложнения его схемы (рис. 9.9, а
). При наличии на входе С уровня логической единицы входные сигналы будут пропускаться на вход RS-триггера и схема будет повторять на выходе Q уровни на входе D. Если же мы установим на входе С уровень логического нуля, то схема немедленно «зависнет» в состоянии выхода, соответствующем входному уровню непосредственно перед приходом отрицательного фронта на вход С — то есть запомнит его! Поэтому такой триггер и называют защелкой — при подаче на вход С короткого тактового импульса он как бы «защелкивает» состояние входа.
Рис. 9.9. D-триггеры
:а
— схема статического D-триггера; б — схема динамического D-триггера на основе двух статических; в — счетный триггер на основе динамического D-триггера
Динамические D-триггеры более универсальны и область применения у них куда шире, чем у статических. Динамический триггер сложнее по устройству. Один из способов построения динамического D-триггера из двух статических показан на рис. 9.9, б
. Эта схема работает следующим образом: когда на общем входе С присутствует отрицательный уровень, состояние входа D переписывается на выход первого (слева) триггера, при этом второй триггер заперт. Сразу после положительного фронта на входе С это состояние переписывается во второй триггер и появляется на выходе Q, а первый триггер запирается. Таким образом, запоминание состояния общего D-входа происходит в точности в момент положительного перепада уровней и никогда больше. Если изменить местоположение инвертора и присоединить его ко входу второго триггера, а на первый триггер подавать тактовые импульсы напрямую, то срабатывание будет происходить по отрицательному фронту и такой тактовый вход будет считаться инверсным. Для того чтобы получить дополнительные входы принудительной установки триггера в нулевое и единичное состояния (R- и S-входы), нужно оба статических триггера реализовать на трехвходовых элементах и объединить соответствующие входы у обоих триггеров — устанавливать по входам R и S только выходной триггер недостаточно (подумайте, почему?).
Счетный триггер